Сформировать файл записей "COMPETITION.DAT" из фамилий участников соревнований, даты (день, месяц и год) и места ее проведения

Используя сформированный файл, вывести фамилии тех, кто был на соревнованиях в заданном городе в заданном году.

code: #pascal
Program PascalGuru;
uses crt;
 
procedure MENU; forward;
 
procedure zapisi;
var f:text;
    n,i:integer;
    deni,god:integer;
    fam,mesiac,mesto:string;
begin
assign(f,'COMPETITION.DAT'); rewrite(f);
clrscr;
write('Skoliko uchastnikov xotite zapisati? ');
readln(n);
for i:=1 to n do
    begin
    clrscr;
    writeln('Zapisyvaem ',i,' uchastnika:');
    write('Familia: ');      readln(fam);
    writeln;writeln('Data:');
    writeln('Deni: ');       readln(deni);
    writeln('Mesiac: ');     readln(mesiac);
    writeln('God: ');        readln(god);
    writeln('Mesto provedenia:'); readln(mesto);
    writeln(f,fam,' ',deni,'.',mesiac,'.',god,' ',mesto);
    end;
writeln('Fail uspeshno zapisan...');
readln; close(f); MENU;
end;
{-----------------------}
procedure readALL;
var f:text;
    s:string;
begin
assign(f,'COMPETITION.DAT'); reset(f);
clrscr;
writeln('Vse uchastniki:'); writeln;
while (not eof(f)) do
      begin
      readln(f,s);
      writeln(s);
      end;
readln; close(f); MENU;
end;
{-----------------------}
procedure readGOD;
var f:text;
    s,fam,mesto,mestoR:string;
    p,god,godR,code:integer;
    b:boolean;
begin
assign(f,'COMPETITION.DAT'); reset(f);
clrscr;
writeln('Vyvod Famili uchastnikov po mestu i godu:');
writeln;
write('Vvedite Gorod provedeniya: '); readln(mestoR);
write('Vvedite GOD provedeniya: '); readln(godR);
clrscr;
writeln('uchastniki ',godR,' goda, s goroda "',mestoR,'":' ); writeln;
b:=false;
while (not eof(f)) do
      begin
      readln(f,s);
      p:=pos(' ',s); fam:=copy(s,1,p-1); delete(s,1,p);
      p:=pos('.',s); delete(s,1,p);
      p:=pos('.',s); delete(s,1,p);
      p:=pos(' ',s);
      val(copy(s,1,p-1),god,code);
      mesto:=copy(s,p+1,length(s)-p);
      if (mesto=mestoR) and (god=godR) then begin writeln(fam); b:=true;  end;
      end;
if not b then writeln('Takix uchastnikov net...');
readln; close(f);  MENU;
end;
{-----------------------}
procedure MENU;
type op=0..3;
var option:op;
begin
clrscr; writeln;
writeln('MENU:');  writeln;
 
writeln('1) Zapisi v fail');
writeln('2) Procitati vesi fail');
writeln('3) Procitati opredelennyx uchastnikov');
writeln;
writeln('0) Exit');
readln(option);
 
if option=1 then zapisi;
if option=2 then readALL;
if option=3 then readGOD;
end;
 
 
{-----------------------}
begin
MENU;
end.      
Поделиться:

Похожие статьи: