Представить полученную информацию в виде списка характеристик - Pascal
Формулировка задачи:
В результате проведённого анкетирования Иванова Ивана Ивановича были определены ответы на поставленные вопросы (год рождения, семейное положение, увлечения, любимые времена года). Представить полученную информацию в виде списка характеристик, каждой из которых соответствует список значений характеристики. Определить процедуры добавления и удаления для характеристик и их значений.
Решение задачи: «Представить полученную информацию в виде списка характеристик»
textual
Листинг программы
program pr;
type
prec = ^trec;
trec = record
born: integer;
famst: string[50];
hobby: string[50];
season: string[50];
next: prec;
end;
var
list, p: prec;
b: integer;
s1, s2, s3: string;
procedure addtolist(anum: integer; const s1, s2, s3: string);
var
p: prec;
begin
new(p);
p^.born := anum;
p^.famst := s1;
p^.hobby := s2;
p^.season := s3;
p^.next := list;
list := p;
end;
procedure printlist;
var
p: prec;
begin
p := list;
while p <> nil do
begin
writeln('Дата рождения: ',p^.born, '. Семейное роложение: ', p^.famst, '. Увлечения: ', p^.hobby, '. Любимое время года: ', p^.season);
p := p^.next;
end;
end;
begin
list := nil;
writeln('Введите дату рождения');
readln(b);
writeln('Введите семейное положение');
readln(s1);
writeln('Введите хобби');
readln(s2);
writeln('Введите любимое время года');
readln(s3);
addtolist( b, s1, s2, s3);
writeln;
writeln('Иванов Иван Иванович: ');
printlist;
end.
Объяснение кода листинга программы
- Объявляется тип prec как указатель на trec и trec как запись, содержащую четыре поля:
born(типа integer),famst,hobbyиseason(типа string[50]) и указатель на следующий элемент спискаnext. - Объявляются переменные list и p типа prec (указатель на trec), b типа integer и s1, s2, s3 типа string.
- Объявляется процедура addtolist, которая принимает четыре аргумента: anum (типа integer) и константы s1, s2, s3 (типа string).
- В процедуре addtolist создается новый элемент списка и присваиваются значения его полей (born, famst, hobby, season), а также указатель на следующий элемент.
- Объявляется процедура printlist, которая выводит на экран значения полей born, famst, hobby, season для каждого элемента списка.
- Процедура printlist проходится по списку и выводит информацию о каждом элементе.
- В основной программе инициализируется список list, затем пользователю предлагается ввести информацию о дате рождения, семейном положении, хобби и любимом времени года, после чего эта информация добавляется в список используя процедуру addtolist.
- Наконец, на экран выводится информация о сформированном списке с помощью процедуры printlist.