program data; uses crt; type Tosoba=record jm,pr:string[15]; p:char; pp:byte; pl:word; rn:word; end; Tpole=array[1..50] of Tosoba; var x,delka:byte; p:Tpole; procedure nactidopol(var pole:Tpole; var n:byte;soubor:string); var t:text; begin assign(t,soubor); reset(t); while not eof(t) do begin n:=n+1; readln(t,pole[n].jm,pole[n].pr,pole[n].p,pole[n].pp,pole[n].pl,pole[n].rn) end; close(t); end; procedure vypis(pole:Tpole; n:byte); var i:byte; begin for i:=1 to n do writeln(pole[i].jm,pole[i].pr,pole[i].p,pole[i].pp:3,pole[i].pl:8,pole[i].rn:5) end; procedure vypis_X(pole:Tpole; n:byte); var i:byte; begin write('Koho vypsat? :'); readln(i); writeln(pole[i].jm,pole[i].pr,pole[i].p,pole[i].pp:3,pole[i].pl:8,pole[i].rn:5) end; procedure pridej(var pole:Tpole; var n:byte); begin n:=n+1; write(' jmeno:'); readln(pole[n].jm); write(' Prijmeni:'); readln(pole[n].pr); write(' Pohlavi:'); readln(pole[n].p); write('Pracovni pozice:'); readln(pole[n].pp); write(' Plat:'); readln(pole[n].pl); write(' rok narozeni:'); readln(pole[n].rn); end; procedure odstran(var pole:Tpole; var n:byte); var i,x:byte; begin if n>0 then begin write('Koho smazat? :'); readln(x); for i:=x+1 to n do pole[i-1]:=pole[i]; n:=n-1; end else writeln('pole je prazdne'); end; procedure nameSort(var pole:Tpole;n:byte); var i,j:byte; pom:Tosoba; begin for i:=1 to n do for j:=1 to n-i do if pole[j].pr>pole[j+1].pr then begin pom:=pole[j]; pole[j]:=pole[j+1]; pole[j+1]:=pom; end; end; procedure vekSort(var pole:Tpole;n:byte); var i,j:byte; pom:Tosoba; begin for i:=1 to n do for j:=1 to n-i do if pole[j].rn>pole[j+1].rn then begin pom:=pole[j]; pole[j]:=pole[j+1]; pole[j+1]:=pom; end; end; procedure ulozit(var pole:Tpole; var n:byte;soubor:string); var t:text; i:byte; begin assign(t,soubor); rewrite(t); for i:=1 to n do writeln(t,pole[i].jm,pole[i].pr,pole[i].p,pole[i].pp:3,pole[i].pl:8,pole[i].rn:5); close(t) end; begin repeat if x=1 then nactidopol(p,delka,'data.txt'); if x=2 then begin vypis(p,delka); readln; end; if x=3 then begin vypis_X(p,delka); readln; end; if x=4 then begin pridej(p,delka); end; if x=5 then begin odstran(p,delka); end; if x=6 then begin nameSort(p,delka); end; if x=7 then begin vekSort(p,delka); end; if x=8 then begin ulozit(p,delka,'data.txt'); end; clrscr; writeln('-------------------------------'); writeln('1..................nacti soubor'); writeln('2..................vypis soubor'); writeln('3.............vypis x-ty zaznam'); writeln('4............pridej novy zaznam'); writeln('5..............smaz X-ty zaznam'); writeln('6..........serad podle prijmeni'); writeln('7..............serad podle veku'); writeln('8...............uloz do souboru'); writeln('0................konec programu'); writeln('-------------------------------'); readln(x) until x=0 end.