program ttts;
uses crt;
Type Symbol = record
Surname: String;
Name: String;
{ Fullname: String;
Bhirtday: String;
Pol: String;
Identity: String;
DateCreate: String;
DateEnd: String;
Adres: String;}
end;
type Item = ^Pointer;
Pointer = record
key: integer;
str: Symbol;
Next: Item;
end;
var f: file of Symbol;
s: Symbol;
t,tmp,list:Item;
i:integer;
Key:char;
procedure AddRecord;
var tmp: Item;
begin
ClrScr;
writeln(i);
writeln('Vvedite name');
Readln(s.Name);
writeln('vvedite fam');
Readln(s.Surname);
if (list = nil) then
begin
GetMem(List, sizeof(Item));
tmp:= List;
end
else
begin
tmp:=List;
while (tmp^.next <> nil) do tmp:=tmp^.next;
GetMem(tmp^.Next, sizeof(Item));
tmp:=tmp^.next;
end;
tmp^.next:= Nil;
inc(i);
tmp^.key:=i;
tmp^.str := s;
writeln('OK');
end;
procedure ViewRecords ;
begin
ClrScr;
writeln('SPISOK');
t:=List;
while(t <> nil) do
begin
writeln(t^.key, ' ',t^.str.Name,' ',t^.str.Surname);
t:=t^.next;
end;
end;
procedure home;
begin
ClrScr;
writeln('F1 - „®Ў*ў«Ґ*ЁҐ §*ЇЁбЁ');
writeln('VNIZ - ‚лў®¤ §*ЇЁбҐ©');
writeln('VVERx - „®¬*и*пп бва**Ёж*');
end;
begin
i:=0;
ClrScr;
home;
List:=nil;
repeat
Key:=Readkey;
case Key of
#59: AddRecord;
#72: ViewRecords;
#80: home;
end;
until Key = #79;
end.
Такой вопрос. Впервый раз добавление записи в список проходит нормально, а когда начинаешь добавлять запись в список 2 раз, то список портиться. |