Ввести пять элементов записи и вывести их - Pascal

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Коснулся указателей, во взаимодействии с записями, что-то понял, что-то нет. Гляньте описание проги, все ли там правильно я понял. Программа вводит 5 элементов и просто их выводит. Спасибо.
Листинг программы
  1. type
  2. Adr = ^Zveno; //создаем переменную ссылочного типа на запись
  3. Zveno = Record //создаем запись с двумя элементами
  4. Element: integer; //элемент целочисленного типа
  5. Adrs: Adr //элемент (переменная) ссылочного типа на переменную ссылочного типа???????????????????????
  6. End; //какой адрес я туда пишу???????????
  7. var
  8. Adr1,p,: Adr; //переменные ссылочного типа на тип аdr
  9. i:integer;
  10. //-----------------процедура ввода данных-----------------------
  11. procedure adduk(var t:adr;i:integer); //партаметры переменные t-принимает вначале nil
  12. var y:adr; //создаем переменную ссылочного типа
  13. begin
  14. new(y); //динамическая
  15. y^.Element:=i; //добавляем элемент
  16. y^.Adrs:=t; // присваиваем переменной adrs адрес nil- вначале, затем адрес y
  17. t:=y; // возвращаем adr1 адрес в y и так 5 раз
  18. end;
  19. //------------------процедура вывода данных----------------------
  20. procedure vivod(var t:adr); //принимаем адрес
  21. begin
  22. while (t<>nil) do //пока адрес не равен нил
  23. begin
  24. writeln('адрес адр1 ',t,' элемент ',t^.Element,' адрес^.адр1 ',t^.Adrs);
  25. t:=t^.Adrs; //переходим к следующему адресу - вот тут вообще не догоняю каким образом он это делает
  26. end; //если можно графически изобразить????????????
  27. end;
  28. //--------------------основная программа------------------------
  29. begin //ну тут все понятно
  30. for i:=1 to 5 do
  31. begin
  32. adduk(adr1, i);
  33. writeln('адрес адр1 ',adr1,' элемент ',adr1^.Element,' адрес^.адр1 ',adr1^.Adrs );
  34. end;
  35. vivod(adr1);
  36. dispose(adr1);
  37. end.

Решение задачи: «Ввести пять элементов записи и вывести их»

textual
Листинг программы
  1. procedure vivod(t: adr);

Объяснение кода листинга программы

  1. Объявляется процедура vivod с параметром t, который является переменной типа adr. Так как объявленным только заголовок процедуры и отсутствует остальной код, то без дополнительной информации о типе adr и действиях внутри процедуры, сложно точно определить, что делает этот код.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы