Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
28.06.2014
Размер:
4.9 Кб
Скачать
program laba8;
uses crt;
{‘ЇЁб®Є 䨫쬮ў. ‘ва ­  ЇаЁ®§ў®¤ЁвҐ«м, ѓ®¤, ०Ёбса, Їа®¤®«¦ЁвҐ«м­®бвм.
‚ д ©«Ґ Ё­д®а¬ жЁп ЇЁиҐвбп Ї®¤ап¤ зҐаҐ§ Їа®ЎҐ«, ­  Є®­жҐ бв ўЁвбп ;}

type tJahre = 1950..2050;
type tLength = 0..1000;

type Tfilm = record {‘вагЄвга  а Ў®в­ЁЄ }
Name, Land, Rej: string; {€¬п Ё Ї®«}
Jahre: tJahre;
length: tLength;
end;


var
fout: file of Tfilm; {’ЁЇЁ§Ёа®ў ­­л© д ©«}
j: byte; {‘зсвзЁЄ}
fin: text; {’ҐЄбв®ўл© д ©« б ¤ ­­л¬Ё}
str, Landin: string; {‚६Ґ­­ п ЇҐаҐ¬Ґ­­ п}
jahrein: tJahre;
lengthin: tLength;
flag: boolean; {”« Ј ¤«п ўл室 }
obj : Tfilm; {‚६Ґ­­л© ®ЎкҐЄв}

{”г­ЄжЁп з⥭Ёп б«®ў  Ё§ д ©« . ‘«®ў® ®Є ­зЁў Ґвбп «ЁЎ® Є®­ж®¬ ў ©« , «ЁЎ® Їа®ЎҐ«®¬. «ЁЎ® ;
‚е. ¤ ­­лҐ - ” ©« б ⥪б⮬.
‚ле ¤ ­­лҐ - бва®Є  б ⥪б⮬.
‚®§ўа §­ зҐ­ЁҐ - 1 Ґб«Ё Їа®ЎҐ«.
2 Ґб«Ё ;
3 - Ґб«Ё Є®­Ґж д ©« .}
function readFile(var fin: text; var str: string): boolean;
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:=true;
else readFile:=false;
end;
end;

function Chartoint(var j: char): integer ;
begin
case j of
'1': Chartoint:=1;
'2': Chartoint:=2;
'3': Chartoint:=3;
'4': Chartoint:=4;
'5': Chartoint:=5;
'6': Chartoint:=6;
'7': Chartoint:=7;
'8': Chartoint:=8;
'9': Chartoint:=9;
else Chartoint:=0;
end;
end;

function readLength(var fin: text; var int: tLength): boolean ;
var j: char;
int1: integer;
begin
int1:=0;
repeat
read(fin, j);
if j in ['0'..'9'] then
int1:=10*int1+chartoint(j);
until not (j in ['0'..'9']) or eoln(fin);
int:=int1;
case j of
';': readLength:=true;
else readLength:=false;
end;
end;



function readJahre(var fin: text; var int: tJahre): boolean ;
var j: char;
int1: integer;
begin
int1:=0;
repeat
read(fin, j);
if j in ['0'..'9'] then
int1:=10*int1+chartoint(j);
until not ( j in ['0'..'9']) or eoln(fin);
int:=int1;
case j of
' ': readJahre:=true;
else readJahre:=false;
end;
end;
{”г­ЄжЁп з⥭Ёп з бвЁ бвагЄвгал.
Џа®бв® Ї®б«Ґ¤®ў вҐ«м­® зЁв Ґ¬ ¤ ­­лҐ бвагЄвгал. € б«Ґ¤Ё¬ §  Є®­ж®¬ д ©« (Ё«Ё бва®ЄЁ)}
function readobj(var fin: text; var obj: Tfilm): boolean;
begin
if (not eoln(fin)) and readfile(fin, obj.name) then
if (not eoln(fin)) and readfile(fin, obj.Land) then
if (not eoln(fin)) and readJahre(fin, obj.Jahre) then
if (not eoln(fin)) and (readfile(fin, obj.Rej)) then
if (not eoln(fin)) and (readlength(fin, obj.length)) then
readobj:=true
else
readobj:=false
else
readobj:=false
else
readobj:=false
else
readobj:=false
else
readobj:=false;
end;

{”г­ЄжЁп з⥭Ёп з бвЁ бвагЄвгал. ђ Ў®зЁ©.
Џа®бв® Ї®б«Ґ¤®ў вҐ«м­® зЁв Ґ¬ ¤ ­­лҐ бвагЄвгал. € б«Ґ¤Ё¬ §  Є®­ж®¬ д ©« (Ё«Ё бва®ЄЁ)}
begin
Writeln('Џ®ЁбЄ дЁ«м¬ , ¤® § ¤ ­­®Ј® Ј®¤ ; ¤«Ё­Ґ, Ў®«миҐ § ¤ ­­®© Ё § ¤ ­­®© бва ­Ґ.');
repeat
Writeln('0 - ᮧ¤ вм вЁЇЁ§Ёа®ў ­­л© д ©«. 1 - ­ ©вЁ');
readln(str);
until (str='1') or (str='0');
if str = '0' then {‘®§¤ с¬ вЁЇЁ§Ёа®ў ­­л© д ©«}
begin
assign(fin, 'f:\Tpascal\2semestr\laba7\fin.txt');
reset(fin);
flag:=false; {”« Ј Ї®ЁбЄ  ®иЁЎЄЁ}
assign(fout, 'f:\Tpascal\2semestr\laba7\Type.typ');
rewrite(fout);
j:=0; {‘зсвзЁЄ Є®«-ў  § ЇЁбҐ©}
if not eof(fin) then;
repeat
j:=j+1;
with obj do
begin
flag:= not readobj(fin, obj); {‡ Ї®«­пҐ¬ бвагЄвгаг ¤«п ­ҐЈ®}
if not flag then
writeln('‡ ЇЁбм ', j,' ¤®Ў ў«Ґ­ ')
else
writeln('ЋиЁЎЄ  ў ', j,' § ЇЁбЁ');
end;
if not flag then {…б«Ё ­Ґв ®иЁЎЄЁ}
write(fout, obj); {ЏЁиҐ¬ ў вЁЇ. д ©«}
readln(fin);
until eof(fin) or flag;
if not flag then
writeln('‘®§¤ ­ д ©« б ', j, ' § ЇЁбп¬Ё. ‚ᥠ§ ЇЁбЁ ¤®Ў ў«Ґ­л' );
close(fout);
close(fin);
end
else {Џ®ЁбЄ ў вЁЇ. д ©«Ґ}
begin
Writeln('Џ®ЁбЄ');
Writeln('‚ўҐ¤ЁвҐ ‘ва ­г');
readln(Landin);
Writeln('‚ўҐ¤ЁвҐ Ј®¤');
readln(jahrein);
Writeln('‚ўҐ¤ЁвҐ ¤«Ё­г');
readln(lengthin);
assign(fout, 'f:\Tpascal\2semestr\laba7\Type.typ');
reset(fout);
flag:=false;
j:=0;
if not eof(fout) then
begin
repeat {Џа®е®¤п Ї® д ©«г}
read(fout, obj); {—Ёв Ґ¬ ®ЎкҐЄв}
if (obj.land=landin) and (obj.jahre < Jahrein) and (obj.Length > Lengthin) then {‘а ў­Ёў Ґ¬ б и Ў«®­®¬}
begin
j:=j+1;
writeln(j, ') Ќ §ў ­ЁҐ ', obj.Name, ' ѓ®¤ ', obj.jahre, ' ', obj.rej, ' ', obj.length); {‚лў®¤Ё¬ Ё­д®а¬ жЁо}
end;
until eof(fout);
if j=0 then {Ђ­®¬ «Ёп}
writeln('ЌҐ ­ ©¤Ґ­');
end;
end;
readln;
end.
Соседние файлы в папке laba7