Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
28.06.2014
Размер:
4.76 Кб
Скачать
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.
Соседние файлы в папке laba8