{| Práca s jednoduchým záznamom |
| 1. vkladanie záznamu do poľa |
| 2. výpis poľa záznamov |
| 3. usporiadanie podľa zvolenej položky |}
program Zaznam1;
uses Crt;
const
max_poc = 20; { maximálny počet záznamov }
type
t_zaznam = record {** info o osobe }
meno : string[20];
vek : byte;
prijem : integer;
end;
t_pole = array[1..max_poc] of t_zaznam; { pole záznamov o osobách }
var
cinnost, cinnost2, { číslo vybranej činnosti }
i, j, { pomocné premenné }
pocet : integer; { počet vložených osôb }
osoba : t_pole; { pole záznamov }
temp : t_zaznam; { dočasná premenná pri výmene }
begin
{--- Inicializácia ---}
ClrScr; { čistenie obrazovky }
pocet:= 0; { na začiatku nie sú záznamy }
{**************************************************** Vlastný algoritmus **}
repeat
{******************************************************** Výpis menu **}
ClrScr;
WriteLn('---------------------------------------------');
WriteLn('1 - Vlož informácie o novej osobe');
WriteLn('2 - Výpis informacií');
WriteLn('3 - Usporiadanie záznamov podľa položky');
WriteLn;
WriteLn('0 - Koniec programu');
WriteLn('-------------------------------------------*-');
Write ('-------- Zvol číslo činnosti: '); ReadLn(cinnost);
ClrScr;
case cinnost of
1: if pocet<max_poc then begin {******************* vloženie osoby **}
ClrScr;
Inc(pocet); { zvýšenie počtu osôb }
WriteLn('**** Vlož ', pocet, '. záznam: ');
with osoba[pocet] do begin
Write('Meno : '); ReadLn(meno);
Write('Vek : '); ReadLn(vek);
Write('Príjem: '); ReadLn(prijem);
end
end
else WriteLn('**** Pozor, zoznam je už plný! ****');
2: begin {*********************** Výpis informácií **}
if pocet>0 then begin
WriteLn(' Meno: Vek: Príjem:');
for i:=1 to pocet do
with osoba[i] do
WriteLn(meno:20, vek:8, prijem:12)
end
else WriteLn('**** Pozor, prázdny zoznam ! ****');
Write('Stlač [Enter]'); ReadLn
end;
3: if pocet>1 then begin {************************** Usporiadanie **}
ClrScr;
WriteLn('......................');
WriteLn('1 - Podľa mena');
WriteLn('2 - Podľa veku');
WriteLn('3 - Podľa príjmu');
WriteLn('......................');
Write ('-------- Zvol číslo činnosti: '); ReadLn(cinnost2);
ClrScr;
case cinnost2 of
1: begin
for i:=1 to pocet-1 do for j:=i+1 to pocet do
if osoba[i].meno>osoba[j].meno then begin
temp:= osoba[i]; osoba[i]:= osoba[j]; osoba[j]:=temp
end
end;
2: begin
for i:=1 to pocet-1 do for j:=i+1 to pocet do
if osoba[i].vek>osoba[j].vek then begin
temp:= osoba[i]; osoba[i]:= osoba[j]; osoba[j]:=temp
end
end;
3: begin
for i:=1 to pocet-1 do for j:=i+1 to pocet do
if osoba[i].prijem>osoba[j].prijem then begin
temp:= osoba[i]; osoba[i]:= osoba[j]; osoba[j]:=temp
end
end;
end; {-case cinnost2 }
end
else WriteLn('**** Netreba usporiadať! ****');
end; {-case}
until cinnost=0;
{**************************************************************************}
end. |
|