:
program laba;
type
Link = ^Rec;
Rec = Record
Inf: Integer;
Next: Link
End;
Tsp = Object
Start, Tail: Link; <---------------------------------------Ошибка вот тут......что не так?
procedure Init;
procedure In_Spisok(x: integer);
procedure Print_Spisok;
procedure Done;
procedure Che;
Procedure Od;
procedure del;
End;
procedure Tsp.Init;
begin
Start := nil;
Tail := nil;
end;
procedure Tsp.che;
var p :link;
i:integer;
begin
p:=start;
for i:=1 to 5 do
begin
if p^.inf mod 10 = 5 then write(p^.inf,' ');
p:=p^.next;
end;
writeln;
end;
procedure Tsp.In_Spisok(x: integer);
var
p: Link;
begin
New(p);
P^.inf := x;
p^.next := nil;
if Start = nil then Start := p
else Tail^.next := p;
Tail := p;
end;
Procedure Tsp.Done;
Var p : Link;
d : integer;
Begin
While Start<> Nil do
Begin
P:=Start;
Start:=Start^.next;
Dispose(p);
End;
End;
procedure Tsp.Print_Spisok;
var
p: Link;
begin
P := Start;
while p <> nil do
begin
Write(P^.inf:3);
P := P^.next;
end; end;
procedure tsp.od;
var
p: Link;
x,h:integer;
begin
P := Start;
while p <> nil do
begin
x:=p^.inf;
if x > 0 then begin
New(p);
P^.inf := 1;
p^.next := nil;
if Start = nil then Start := p
else Tail^.next := p;
Tail := p;
end;
P := P^.next;
end; end;
procedure tsp.del;
var p, T : link;
begin
p := Start;
while p^.next <> nil do
begin
if p^.next^.inf = 5 then
begin
T := p^.next;
p^.next := T^.next;
Dispose(T);
end
else p := p^.next;
end;
// Теперь проверяем первый элемент списка, если он равен 5 - удаляем...
if Start^.inf = 5 then
begin
T := Start;
Start := Start^.next;
Dispose(T);
end;
end;
var Spisok: Tsp;
A, i,t: integer;
begin
Spisok.Init;
writeln('(1) vvedi 1');
readln(t);
for i := 1 to 5 do
begin
Readln(A);
Spisok.In_Spisok(A);
if t=1then spisok.od;
end;
spisok.del;
writeln;
spisok.che;
Spisok.Print_Spisok;
Spisok.Done;
readln;
end.