Quantcast
Channel: Форум программистов и сисадминов Киберфорум
Viewing all articles
Browse latest Browse all 514813

Ошибка в программе - PascalABC.NET

$
0
0
:

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.


Viewing all articles
Browse latest Browse all 514813

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>