uses crt;
type
PNode=^Node;
Node=record
data:real;
next:PNode;
end;
var
Head:PNode;
i:real;
procedure AddToSpis(var Head1:PNode;k:integer);
var
tmp:PNode;
begin
if Head1=nil then
begin
New(Head1);
tmp:=Head1;
end
else
begin
tmp:=Head1;
while tmp^.next <> nil do
tmp:=tmp^.next;
New(tmp^.next);
tmp:=tmp^.next;
end;
tmp^.next:=nil;
tmp^.data:=k;
end;
procedure Print(Head1:PNode);
begin
while Head1 <> nil do
begin
write(Head1^.data:4);
Head1:=Head1^.next;
end;
end;
procedure FreeSpis(var Head1:PNode);
var
tmp:PNode;
begin
while Head1 <> nil do
begin
tmp:=Head1;
Head1:=Head1^.next;
Dispose(tmp);
end;
end;
procedure Change(var Head1:PNode);
var
tmp:PNode;
c:integer;
begin
tmp:=Head1;
while tmp^.next <> nil do
tmp:=tmp^.next;
c:=Head1^.data;
Head1^.data:=tmp^.data;
tmp^.data:=c;
end;
begin
Head:=nil;
writeln('Заполнение списка,признак окончания 99');
read(i);
repeat
AddToSpis(Head,i);
read(i);
until i=99;
ClrScr;
writeln('Сформированный список ');
Print(Head);
writeln;
Change(Head);
writeln('Изменённый список ');
Print(Head);
FreeSpis(Head);
end.