Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на 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.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.