Ввести пять элементов записи и вывести их - Pascal
Формулировка задачи:
Здравствуйте. Коснулся указателей, во взаимодействии с записями, что-то понял, что-то нет. Гляньте описание проги, все ли там правильно я понял. Программа вводит 5 элементов и просто их выводит. Спасибо.
Листинг программы
- type
- Adr = ^Zveno; //создаем переменную ссылочного типа на запись
- Zveno = Record //создаем запись с двумя элементами
- Element: integer; //элемент целочисленного типа
- Adrs: Adr //элемент (переменная) ссылочного типа на переменную ссылочного типа???????????????????????
- End; //какой адрес я туда пишу???????????
- var
- Adr1,p,: Adr; //переменные ссылочного типа на тип аdr
- i:integer;
- //-----------------процедура ввода данных-----------------------
- procedure adduk(var t:adr;i:integer); //партаметры переменные t-принимает вначале nil
- var y:adr; //создаем переменную ссылочного типа
- begin
- new(y); //динамическая
- y^.Element:=i; //добавляем элемент
- y^.Adrs:=t; // присваиваем переменной adrs адрес nil- вначале, затем адрес y
- t:=y; // возвращаем adr1 адрес в y и так 5 раз
- end;
- //------------------процедура вывода данных----------------------
- procedure vivod(var t:adr); //принимаем адрес
- begin
- while (t<>nil) do //пока адрес не равен нил
- begin
- writeln('адрес адр1 ',t,' элемент ',t^.Element,' адрес^.адр1 ',t^.Adrs);
- t:=t^.Adrs; //переходим к следующему адресу - вот тут вообще не догоняю каким образом он это делает
- end; //если можно графически изобразить????????????
- end;
- //--------------------основная программа------------------------
- begin //ну тут все понятно
- for i:=1 to 5 do
- begin
- adduk(adr1, i);
- writeln('адрес адр1 ',adr1,' элемент ',adr1^.Element,' адрес^.адр1 ',adr1^.Adrs );
- end;
- vivod(adr1);
- dispose(adr1);
- end.
Решение задачи: «Ввести пять элементов записи и вывести их»
textual
Листинг программы
- procedure vivod(t: adr);
Объяснение кода листинга программы
- Объявляется процедура
vivod
с параметромt
, который является переменной типаadr
. Так как объявленным только заголовок процедуры и отсутствует остальной код, то без дополнительной информации о типеadr
и действиях внутри процедуры, сложно точно определить, что делает этот код.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д