Я просто не понимаю, что это значит. У нас была только 1 лекция по этой теме, но это нам не обьясняли, а на следующее практическое задание тянуть готовую лабу. Обьясните пожалуйста, что оно такое.
Вот мой исходник.
Program lab9;
Uses Crt;
Type
Data= Record
num:byte;
FIO:string[15];
year: integer;
sex: char;
stat: string[11];
child: byte;
salary: integer;
End;
Ukaz=^Query;
Query=Record
Inf:Data;
Next:Ukaz
End;
Var
NewE,Left,Right,Temp:Ukaz;
Z:Data;
Key:byte;
f:text;
Procedure Org;
var i: integer;
Begin
clrscr;
reset (f);
Writeln('vypolnyaetsya procedura organizacii ocheredi');
write ('zagruzka dannyh iz faila');
for i:= 1 to 7 do
begin
delay (300);
write ('.')
end;
writeln;
writeln ('zagruzka zavershena');
readln;
Writeln('======================================== ');
with z do
Readln(f,num,Fio,year,stat,sex,child,salary);
New(NewE);
NewE^.Inf.num:=Z.num;
NewE^.Inf.Fio:=Z.Fio;
NewE^.Inf.year:=Z.year;
NewE^.Inf.stat:=Z.stat;
NewE^.Inf.sex:=Z.sex;
NewE^.Inf.child:=Z.child;
NewE^.Inf.salary:=Z.salary;
NewE^.Next:=nil;
Right:=NewE;
Left:=NewE;
While not eof(f) Do
Begin
with z do
Readln(f,num,Fio,year,stat,sex,child,salary);
New(NewE);
NewE^.Inf.num:=Z.num;
NewE^.Inf.Fio:=Z.Fio;
NewE^.Inf.year:=Z.year;
NewE^.Inf.stat:=Z.stat;
NewE^.Inf.sex:=Z.sex;
NewE^.Inf.child:=Z.child;
NewE^.Inf.salary:=Z.salary;
NewE^.Next:=Nil;
Right^.Next:=NewE;
Right:=NewE
End
End;
Procedure Dob;
Begin
Writeln('vvedite №');
Readln(Z.num);
Writeln('vvedite familiyu');
Readln(Z.Fio);
If Z.Fio='*' Then Exit;
Writeln('vvedite god rojdeniya');
Readln(Z.year);
Writeln('vvedite pol');
Readln(Z.sex);
writeln ('vvedite status');
readln (z.stat);
Writeln('vvedite kolichestvo detei');
Readln(Z.child);
Writeln('vvedite zarplatu');
Readln(Z.salary);
New(NewE);
NewE^.Inf.num:=Z.num;
NewE^.Inf.Fio:=Z.Fio;
NewE^.Inf.year:=Z.year;
NewE^.Inf.stat:=Z.stat;
NewE^.Inf.sex:=Z.sex;
NewE^.Inf.child:=Z.child;
NewE^.Inf.salary:=Z.salary;
NewE^.Next:=nil;
If Right=Nil Then
Left:=NewE
Else
Right^.Next:=NewE;
Right:=NewE;
End;
Procedure Udal;
Begin
Writeln('isklyuchaetsya golovnoi element ocheredi');
Writeln('press Enter');
Readln;
If Left<>Nil Then
Begin
Temp:=Left;
Left:=Left^.Next;
Dispose(Temp);
If Left=Nil Then
Right:=Nil;
End
End;
Procedure Prosmotr;
Var i:integer;
Begin
if left=nil then
begin
writeln ('spisok pustoi');
readln;
clrscr;
exit
end
else
Writeln('ochered soderjit sleduyuschie elementy');
Temp:=Left;
While Temp<>nil Do
Begin
Writeln(Temp^.Inf.num,' ',Temp^.Inf.Fio,' ',Temp^.Inf.year,' ',Temp^.Inf.sex,' ',
Temp^.Inf.stat,' ',Temp^.Inf.child,' ',Temp^.Inf.salary);
Temp:=Temp^.Next;
End;
Writeln('press Enter');
Readln;
clrscr;
End;
procedure my_var;
Begin
End;
begin
assign (f,'d:\lab9.txt');
{$I-};
reset(f);
{$I+};
if IOResult=0 then
writeln ('file opened successfully')
else
begin
writeln ('no input file');
readln;
exit;
end;
Right:=Nil;
Left:=Nil;
ClrScr;
while true do
begin
Writeln('1-organizaciya spiska');
Writeln('2-dobavlenie elementa');
Writeln('3-udalenie elementa');
Writeln('4-prosmotr spiska');
writeln('5-moe zadanie');
Writeln('6-vyhod');
Writeln('-------------------------------');
readln(key);
Case Key Of
1 : Org;
2 : Dob;
3 : Udal;
4 : Prosmotr;
5 : my_var;
6 : EXIT;
End;
end;
End.
Основные ф-ции работают вроде, а вот чтоб сохранять данные, не получается.