Добавил:
Tushkan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы / laba8 / 123
.pas program laba8;
uses crt;
{‘®ваг¤ЁЄЁ § ў®¤ .
€¦ҐҐа®-вҐеЁзҐбЄЁҐ а Ў®вЁЄЁ
”Ё®, Ї®«, ЁбвЁвгв, бЇҐжЁ «м®бвм
ђ Ў®зЁҐ
дЁ®, Ї®«, Їа®дҐббЁп, а §ап¤, бв ¦
Џ®ЁбЄ ¬г¦зЁл-бв «Ґў а .
‚ д ©«Ґ Ёд®а¬ жЁп ЇЁиҐвбп Ї®¤ап¤ зҐаҐ§ Їа®ЎҐ«, Є®жҐ бв ўЁвбп ;}
type Arbaiter = record {‘вагЄвга а Ў®вЁЄ }
Name, Sex: string; {€¬п Ё Ї®«}
case ArbaiterType: (Itr, Arb) of {ђ Ў®вЁЄ «ЁЎ® а Ў®зЁ©, «ЁЎ® €’ђ}
Itr:(Hochshule, Fach: string); {…б«Ё €’ђ, в® €бвЁвгв Ё бЇҐжЁ «м®бвм}
Arb:(job, klasse, alt: string); {…б«Ё а Ў®зЁ©, в® Їа®дҐббЁп, ап§ап¤, бв ¦}
end;
var
fout: file of arbaiter; {’ЁЇЁ§Ёа®ў л© д ©«}
j: byte; {‘зсвзЁЄ}
fin: text; {’ҐЄбв®ўл© д ©« б ¤ л¬Ё}
str: string; {‚६Ґ п ЇҐаҐ¬Ґ п}
flag: boolean; {”« Ј ¤«п ўл室 }
obj : arbaiter; {‚६Ґл© ®ЎкҐЄв}
{”гЄжЁп з⥨п б«®ў Ё§ д ©« . ‘«®ў® ®Є зЁў Ґвбп «ЁЎ® Є®ж®¬ ў ©« , «ЁЎ® Їа®ЎҐ«®¬. «ЁЎ® ;
‚е. ¤ лҐ - ” ©« б ⥪б⮬.
‚ле ¤ лҐ - бва®Є б ⥪б⮬.
‚®§ўа § 票Ґ - 1 Ґб«Ё Їа®ЎҐ«.
2 Ґб«Ё ;
3 - Ґб«Ё Є®Ґж д ©« .}
function readFile(var fin: text; var str: string): byte ;
var j: char;
begin
str:='';
repeat
read(fin, j);
if not (j = ' ') and not (j=';') then
str:=str+j;
until (j=' ') or eoln(fin) or (j=';');
case j of
' ': readFile:=1;
';': readFile:=2;
else readFile:=3;
end;
end;
{”гЄжЁп з⥨п з бвЁ бвагЄвгал. €’ђ.
Џа®бв® Ї®б«Ґ¤®ў вҐ«м® зЁв Ґ¬ ¤ лҐ бвагЄвгал. € б«Ґ¤Ё¬ § Є®ж®¬ д ©« (Ё«Ё бва®ЄЁ)}
function readitr(var fin: text; var obj: arbaiter): boolean;
begin
obj.ArbaiterType:=Itr;
if not eoln(fin) and (readfile(fin, obj.Name) = 1) then
if not eoln(fin) and(readfile(fin, obj.Sex) = 1) then
if not eoln(fin) and (readfile(fin, obj.Hochshule) = 1) then
if not eoln(fin) and (readfile(fin, obj.Fach) = 2) then
readitr:=true
else
readitr:=false
else
readitr:=false
else
readitr:=false
else
readitr:=false;
end;
{”гЄжЁп з⥨п з бвЁ бвагЄвгал. ђ Ў®зЁ©.
Џа®бв® Ї®б«Ґ¤®ў вҐ«м® зЁв Ґ¬ ¤ лҐ бвагЄвгал. € б«Ґ¤Ё¬ § Є®ж®¬ д ©« (Ё«Ё бва®ЄЁ)}
function readarb(var fin: text; var obj: arbaiter): boolean;
begin
obj.ArbaiterType:=Arb;
if not eoln(fin) and (readfile(fin, obj.Name) = 1) then
if not eoln(fin) and(readfile(fin, obj.Sex) = 1) then
if not eoln(fin) and (readfile(fin, obj.job) = 1) then
if not eoln(fin) and (readfile(fin, obj.klasse) = 1) then
if not eoln(fin) and (readfile(fin, obj.alt) = 2) then
readarb:=true
else
readarb:=false
else
readarb:=false
else
readarb:=false
else
readarb:=false
else
readarb:=false;
end;
begin
repeat
Writeln('0 - ᮧ¤ вм вЁЇЁ§Ёа®ў л© д ©«. 1 - ©вЁ');
readln(str);
until (str='1') or (str='0');
if str = '0' then {‘®§¤ с¬ вЁЇЁ§Ёа®ў л© д ©«}
begin
assign(fin, 'f:\Tpascal\2semestr\laba8\fin.txt');
reset(fin);
flag:=false; {”« Ј Ї®ЁбЄ ®иЁЎЄЁ}
assign(fout, 'f:\Tpascal\2semestr\laba8\Type.typ');
rewrite(fout);
j:=0; {‘зсвзЁЄ Є®«-ў § ЇЁбҐ©}
if not eof(fin) then;
repeat
readFile(fin, str); {—Ёв Ґ¬ Ё§ д ©« €’ђ Ё«Ё а Ў®зЁ©}
j:=j+1;
if (str = 'Itr') or (str = 'Arb') then
begin
if str = 'Itr' then {…б«Ё €’ђ, в® }
begin
flag:= not readitr(fin, obj); {‡ Ї®«пҐ¬ бвагЄвгаг ¤«п ҐЈ®}
if not flag then
writeln('‡ ЇЁбм ', j,' ¤®Ў ў«Ґ ')
else
writeln('ЋиЁЎЄ ў ', j,' § ЇЁбЁ');
end
else
begin
flag:= not readARB(fin, obj);
if not flag then
writeln('‡ ЇЁбм ', j,' ¤®Ў ў«Ґ ')
else
writeln('ЋиЁЎЄ ў ', j,' § ЇЁбЁ');
end;
if not flag then {…б«Ё Ґв ®иЁЎЄЁ}
write(fout, obj); {ЏЁиҐ¬ ў вЁЇ. д ©«}
readln(fin);
end
else
begin {…б«Ё ®иЁЎЄ , ‡ зЁв ®иЁЎЄ )}
writeln('ЋиЁЎЄ д ©« . ЋиЁЎЄ ¤®Ў ў«ҐЁп ', j, ' § ЇЁбЁ');
flag:=true;
end;
writeln(eof(fin));
until eof(fin);
if not flag then
writeln('‘®§¤ д ©« б ', j, ' § ЇЁбп¬Ё. ‚ᥠ§ ЇЁбЁ ¤®Ў ў«Ґл' );
close(fout);
close(fin);
end
else {Џ®ЁбЄ ў вЁЇ. д ©«Ґ}
begin
Writeln('Џ®ЁбЄ ¬г¦зЁл - бв «Ґў ал');
assign(fout, 'f:\Tpascal\2semestr\laba8\Type.typ');
reset(fout);
if not eof(fout) then
begin
repeat {Џа®е®¤п Ї® д ©«г}
read(fout, obj); {—Ёв Ґ¬ ®ЎкҐЄв}
if (obj.sex='¬г¦') and (obj.arbaiterType = Arb) and (obj.job= 'бв «Ґў а') then {‘а ўЁў Ґ¬ б и Ў«®®¬}
begin
j:=j+1;
writeln(j, ') ', obj.Name, ' ',obj.sex, ' ', obj.job, ' ', obj.Klasse, ' ', obj.alt); {‚лў®¤Ё¬ Ёд®а¬ жЁо}
end;
until(eof(fout));
if j=0 then {Ђ®¬ «Ёп}
writeln('ЌҐ ©¤Ґ');
end;
end;
readln;
end.
uses crt;
{‘®ваг¤ЁЄЁ § ў®¤ .
€¦ҐҐа®-вҐеЁзҐбЄЁҐ а Ў®вЁЄЁ
”Ё®, Ї®«, ЁбвЁвгв, бЇҐжЁ «м®бвм
ђ Ў®зЁҐ
дЁ®, Ї®«, Їа®дҐббЁп, а §ап¤, бв ¦
Џ®ЁбЄ ¬г¦зЁл-бв «Ґў а .
‚ д ©«Ґ Ёд®а¬ жЁп ЇЁиҐвбп Ї®¤ап¤ зҐаҐ§ Їа®ЎҐ«, Є®жҐ бв ўЁвбп ;}
type Arbaiter = record {‘вагЄвга а Ў®вЁЄ }
Name, Sex: string; {€¬п Ё Ї®«}
case ArbaiterType: (Itr, Arb) of {ђ Ў®вЁЄ «ЁЎ® а Ў®зЁ©, «ЁЎ® €’ђ}
Itr:(Hochshule, Fach: string); {…б«Ё €’ђ, в® €бвЁвгв Ё бЇҐжЁ «м®бвм}
Arb:(job, klasse, alt: string); {…б«Ё а Ў®зЁ©, в® Їа®дҐббЁп, ап§ап¤, бв ¦}
end;
var
fout: file of arbaiter; {’ЁЇЁ§Ёа®ў л© д ©«}
j: byte; {‘зсвзЁЄ}
fin: text; {’ҐЄбв®ўл© д ©« б ¤ л¬Ё}
str: string; {‚६Ґ п ЇҐаҐ¬Ґ п}
flag: boolean; {”« Ј ¤«п ўл室 }
obj : arbaiter; {‚६Ґл© ®ЎкҐЄв}
{”гЄжЁп з⥨п б«®ў Ё§ д ©« . ‘«®ў® ®Є зЁў Ґвбп «ЁЎ® Є®ж®¬ ў ©« , «ЁЎ® Їа®ЎҐ«®¬. «ЁЎ® ;
‚е. ¤ лҐ - ” ©« б ⥪б⮬.
‚ле ¤ лҐ - бва®Є б ⥪б⮬.
‚®§ўа § 票Ґ - 1 Ґб«Ё Їа®ЎҐ«.
2 Ґб«Ё ;
3 - Ґб«Ё Є®Ґж д ©« .}
function readFile(var fin: text; var str: string): byte ;
var j: char;
begin
str:='';
repeat
read(fin, j);
if not (j = ' ') and not (j=';') then
str:=str+j;
until (j=' ') or eoln(fin) or (j=';');
case j of
' ': readFile:=1;
';': readFile:=2;
else readFile:=3;
end;
end;
{”гЄжЁп з⥨п з бвЁ бвагЄвгал. €’ђ.
Џа®бв® Ї®б«Ґ¤®ў вҐ«м® зЁв Ґ¬ ¤ лҐ бвагЄвгал. € б«Ґ¤Ё¬ § Є®ж®¬ д ©« (Ё«Ё бва®ЄЁ)}
function readitr(var fin: text; var obj: arbaiter): boolean;
begin
obj.ArbaiterType:=Itr;
if not eoln(fin) and (readfile(fin, obj.Name) = 1) then
if not eoln(fin) and(readfile(fin, obj.Sex) = 1) then
if not eoln(fin) and (readfile(fin, obj.Hochshule) = 1) then
if not eoln(fin) and (readfile(fin, obj.Fach) = 2) then
readitr:=true
else
readitr:=false
else
readitr:=false
else
readitr:=false
else
readitr:=false;
end;
{”гЄжЁп з⥨п з бвЁ бвагЄвгал. ђ Ў®зЁ©.
Џа®бв® Ї®б«Ґ¤®ў вҐ«м® зЁв Ґ¬ ¤ лҐ бвагЄвгал. € б«Ґ¤Ё¬ § Є®ж®¬ д ©« (Ё«Ё бва®ЄЁ)}
function readarb(var fin: text; var obj: arbaiter): boolean;
begin
obj.ArbaiterType:=Arb;
if not eoln(fin) and (readfile(fin, obj.Name) = 1) then
if not eoln(fin) and(readfile(fin, obj.Sex) = 1) then
if not eoln(fin) and (readfile(fin, obj.job) = 1) then
if not eoln(fin) and (readfile(fin, obj.klasse) = 1) then
if not eoln(fin) and (readfile(fin, obj.alt) = 2) then
readarb:=true
else
readarb:=false
else
readarb:=false
else
readarb:=false
else
readarb:=false
else
readarb:=false;
end;
begin
repeat
Writeln('0 - ᮧ¤ вм вЁЇЁ§Ёа®ў л© д ©«. 1 - ©вЁ');
readln(str);
until (str='1') or (str='0');
if str = '0' then {‘®§¤ с¬ вЁЇЁ§Ёа®ў л© д ©«}
begin
assign(fin, 'f:\Tpascal\2semestr\laba8\fin.txt');
reset(fin);
flag:=false; {”« Ј Ї®ЁбЄ ®иЁЎЄЁ}
assign(fout, 'f:\Tpascal\2semestr\laba8\Type.typ');
rewrite(fout);
j:=0; {‘зсвзЁЄ Є®«-ў § ЇЁбҐ©}
if not eof(fin) then;
repeat
readFile(fin, str); {—Ёв Ґ¬ Ё§ д ©« €’ђ Ё«Ё а Ў®зЁ©}
j:=j+1;
if (str = 'Itr') or (str = 'Arb') then
begin
if str = 'Itr' then {…б«Ё €’ђ, в® }
begin
flag:= not readitr(fin, obj); {‡ Ї®«пҐ¬ бвагЄвгаг ¤«п ҐЈ®}
if not flag then
writeln('‡ ЇЁбм ', j,' ¤®Ў ў«Ґ ')
else
writeln('ЋиЁЎЄ ў ', j,' § ЇЁбЁ');
end
else
begin
flag:= not readARB(fin, obj);
if not flag then
writeln('‡ ЇЁбм ', j,' ¤®Ў ў«Ґ ')
else
writeln('ЋиЁЎЄ ў ', j,' § ЇЁбЁ');
end;
if not flag then {…б«Ё Ґв ®иЁЎЄЁ}
write(fout, obj); {ЏЁиҐ¬ ў вЁЇ. д ©«}
readln(fin);
end
else
begin {…б«Ё ®иЁЎЄ , ‡ зЁв ®иЁЎЄ )}
writeln('ЋиЁЎЄ д ©« . ЋиЁЎЄ ¤®Ў ў«ҐЁп ', j, ' § ЇЁбЁ');
flag:=true;
end;
writeln(eof(fin));
until eof(fin);
if not flag then
writeln('‘®§¤ д ©« б ', j, ' § ЇЁбп¬Ё. ‚ᥠ§ ЇЁбЁ ¤®Ў ў«Ґл' );
close(fout);
close(fin);
end
else {Џ®ЁбЄ ў вЁЇ. д ©«Ґ}
begin
Writeln('Џ®ЁбЄ ¬г¦зЁл - бв «Ґў ал');
assign(fout, 'f:\Tpascal\2semestr\laba8\Type.typ');
reset(fout);
if not eof(fout) then
begin
repeat {Џа®е®¤п Ї® д ©«г}
read(fout, obj); {—Ёв Ґ¬ ®ЎкҐЄв}
if (obj.sex='¬г¦') and (obj.arbaiterType = Arb) and (obj.job= 'бв «Ґў а') then {‘а ўЁў Ґ¬ б и Ў«®®¬}
begin
j:=j+1;
writeln(j, ') ', obj.Name, ' ',obj.sex, ' ', obj.job, ' ', obj.Klasse, ' ', obj.alt); {‚лў®¤Ё¬ Ёд®а¬ жЁо}
end;
until(eof(fout));
if j=0 then {Ђ®¬ «Ёп}
writeln('ЌҐ ©¤Ґ');
end;
end;
readln;
end.