Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на Record
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Art87
Задача такая
Сформировать массив сведений о наличии учебников в библиотеке, следующей структуры: автор, название, шифр книги, количество экземпляров, год издания.
Получить список новых изданий.

Программа

program z2;
var o:char;
i,n:integer;
year: string;
a: array [1..50,1..5] of string;
begin
 year:='2005';
 writeln ('Please input quantity of elements:');
 readln(n);
 for i:=1 to n do begin
  writeln('Please input new element (Autor, Name, Code, Quantity ex. and Year');
  readln(a[i,1]);
  readln(a[i,2]);
  readln(a[i,3]);
  readln(a[i,4]);
  readln(a[i,5]);
 end;
 for i:=1 to n do begin
  if a[i,5]=Year then begin

   writeln(i+': '+a[i,1]+' '+a[i,2]+' '+a[i,3]+' '+a[i,4]+' ' + a[i,5]);
   { !!! Вот здесь вывод строки, а выдается ошибка !!! }

  end;
 end;
end.


Подскажите.
volvo
writeln(i, ': '+a[i,1]+' '+a[i,2]+' '+a[i,3]+' '+a[i,4]+' ' + a[i,5]);
(обрати внимание, что идет после i) smile.gif

Ошибка была в том, что ты пытался "перемешать" типы String и Integer, чего компилятор, естественно, не позволит сделать...
klem4
Прошу прощения я просто невъехал сначала, надо всего навсего заменить все плюсы на запятые и получишь на экране то, что хотел.
volvo
Не надо ничего больше менять. Все будет прекрасно работать (все данные объединятся в одну строку, и она будет выведена на экран). Чем именно тебе этот подход не нравится?
Art87
А конкретно то что сделать, я не понял.
klem4
:fire: Да я не прав. Извиняюсь еше раз ! Не досмотерл что массив то из строк ... Извините никак не хотел нарушать правил :molitva:
volvo
Art87,
См. пост №2
Art87
Пардон, сразу не заметил smile.gif
Все заработало. Спасибо огромное.
Art87
А ка эту же задачу именно через record сделать?
volvo
А заменить матрицу массивом записей никак нельзя догадаться?
program z2;
type
  myrec = record
    Autor,
    Name,
    Code,
    Quantity, 
    Year: string;
  end;
var
  o:char;
  i,n:integer;
  s_year: string;
  a: array [1..50] of myrec;
begin
  s_year:='2005';
  writeln ('Please input quantity of elements:');
  readln(n);
  for i:=1 to n do begin
    writeln('Please input new element (Autor, Name, Code, Quantity ex. and Year');
    with a[i] do begin
      readln(Autor); readln(Name); readln(Code); readln(Quantity); readln(Year);
      {
        или просто:
        readln(Autor, Name, Code, Quantity, Year);
      }
    end;
  end;

  for i:=1 to n do begin
    if a[i].Year=s_year then
      with a[i] do
        writeln(i, ': '+Autor+' '+Name+' '+Code+' '+Quantity+' '+Year);
  end;
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.