Zaznam1 Back Text prikladu  
- Záznam - vkladanie záznamu do poľa, výpis záznamov, usporiadanie podľa zvolenej položky.  
{| 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.
 
D I S P L A Y  
******** Výpis menu ********
---------------------------------------------
1    - Vlož informácie o novej osobe
2    - Výpis informácií
3    - Usporiadanie záznamov podľa položky

0 - Koniec programu
-------------------------------------------*-
-------- Zvol číslo činnosti:

******** Po vybraní ponuky 1. (...záznamy sú číslované, treba vložiť údaje) ********
**** Vlož 3. záznam:
Meno  : Slovák
Vek   : 44
Príjem: 8500

******** Po vybraní ponuky 2. (...záznamy sú vypísané v aktuálnom poradí) ********
                Meno:    Vek:     Príjem:
               Polák      25       25000
               Horák      32       17200
              Slovák      44        8500
Stlač [Enter]

******** Po vybraní ponuky 3. (pomocná ponuka pre voľbu usporadúvacieho kľúča) ********
......................
1 - Podľa mena
2 - Podľa veku
3 - Podľa príjmu
......................
-------- Zvol číslo činnosti:

******** Po vybraní ponuky 2. (...po usporiadaní podľa príjmu) ********
                Meno:    Vek:     Príjem:
              Slovák      44        8500
               Horák      32       17200
               Polák      25       25000
Stlač [Enter]