Type
Pole = Array[min..max]of typ;
Platí, že min a max jsou celá čísla (nebo písmena v apostrofech: 'A'..'Z'). Typ je libovolný typ (Integer, Real...).
Pole1 : Array[0..100] of Integer; {Sto integerů}
Pole2 : Array['A'..'z'] of Char; {Jednoduchý kód}
Pole3 : Array[1..10,1..10]of Byte; {Pole 10×10 bajtů}
S polem se pracuje pomocí indexu:
Pole1[10]:= 11;
Pole3[4,7]:= 26;
For Znak:='A' to 'z' do Pole[Znak]:= Znak;
Pokud potřebujeme vytvořit „náhodné" číslo, použijeme funkci Random( max );
Tato funkce vrátí nějaké celé číslo mezi nulou a číslem max.
WriteLn( Random( 1000 ));vypíše některé číslo od nuly do 999 včetně. Nebude to 1000. Protože však Pascal čísla „tahá z klobouku” podle nějakého klíče, je radno čísla trochu promíchat příkazem Randomize. Teprve potom jsou „náhodná” čísla skutečně nepředvídatelná. Kdo nevěří ať zkusí následující:
Program Náhoda;
Var
i: Integer;
Begin
For i:=1 to 5 do WriteLn( i, ': ', Random( 10 ));
End.
Tenhle program stačí spustit dvakrát–třikrát a je jasné, že čísla jsou pokaždé stejná. Ale pokud ho upravíme:
Begin
Randomize;
....
je hned všechno jinak.
Příklad:Program Losuj_a_seřaď; { Vylosuje čísla a seřadí je dle velikosti. } Uses Crt; Const MAX = 99; Var Pole: Array[0..MAX]of Integer; Procedure Losuj; { Vylosuje čísla } Var i: Integer; Begin For i:=0 to MAX do Pole[i]:= Random( 100 ); End; Procedure Vypis; { Vypíše pole na obrazovku } Var i: Integer; Begin For i:=0 to MAX do Begin GotoXY( 1+(i mod 10)*4, (i div 10)+1 ); WriteLn( Pole[i]:2 ); end; End; Procedure Serad; { Bubble Sort } Var { (to je třídění, } i, j: Integer; { žvýkačka je Bubble Gum!) } Pom : Integer; Begin For i:=0 to MAX do For j:= i+1 to MAX do If Pole[i]>Pole[j] then Begin Pom:= Pole[i]; Pole[i]:= Pole[j]; Pole[j]:= Pom; end; End; Begin ClrScr; Losuj; Vypis; WriteLn('Stiskni [Enter]'); ReadLn; Serad; Vypis; WriteLn('Stiskni [Enter]'); Readln; End.
|
|