Ввести пять элементов записи и вывести их - 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);

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

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

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


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

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

9   голосов , оценка 3.889 из 5
Похожие ответы