Hlavne menu We are sorry, but magazine AMMO is suspended. Here is just read-only access to the articles archive. Some features are removed because they were outdated, pointless in read-only (voting and pools), or it was missused by spammers (comments) etc. Now the webpages aren't maintained so when something will get broken most probably it won't be fixed at all. If you liked our magazine then please make donation with paypal so we can pay for traffic on this server.

TOP Výuka
01 Maľované krížovky 103 bodov
02 OpenGL, lákadlo 38 bodov
03 MySQL (+ použitie Visual C++ a PHP) 28 bodov
04 OpenGL, časť 1 21 bodov
05 Huffmanove kódovanie 19 bodov
06 Pascal, časť 1 18 bodov
07 Ako tlačiť s HP 16 bodov
08 Základy HTML časť 2 16 bodov
09 Základy HTML časť 3 13 bodov
10 Hry pre nenáročných + zdrojáky 10 bodov
11 OpenGL, úvod 8 bodov
12 Faktúrka v4.0 + zdrojáky v MS Visual C++ 6.0 7 bodov
13 OpenGL – Intermezzo 1 7 bodov
14 OpenGL povinná literatúra 6 bodov
15 Základy HTML časť 1 6 bodov
Najnovsie clanky
Kvalitné služby podľa skúseností iných - TopSlužby.sk
LOTR - Dve veže - Parodia - Scénka 2. časť
Neverwinter nights
Children Of Bodom-Hatebreeder
Kult Duny - 6. časť (Bonus)
Kult Duny - 5. časť (Filmy, Hry)
Dobré ráno. (morc certa, hora incerta...)
Kult Duny - 4. časť (Knihy 2/2)
Stretnutie Spoločenstva Tolkiena
GRAVE DIGGER – Knights Of The Cross
Kult Duny - 3. časť (Knihy 1/2)
Kult Duny - 2. časť (Pojmy)
Kult Duny - 1. časť (Úvod)
LOTR - Dve veže - Parodia - Scénka
Jackass
Vsetky clanky
Airsoft - Specnaz [4 clanky]
Básne [6 clankov]
Fantázia [4 clanky]
Filmy a DVD [51 clankov]
Hardware [10 clankov]
Hry [170 clankov]
Hry, návody [6 clankov]
Hudba [8 clankov]
Internet [7 clankov]
Knihy [6 clankov]
O AMME [4 clanky]
Pandemonium [10 clankov]
Poviedky [14 clankov]
Programy [18 clankov]
Rôzne [8 clankov]
Technické [3 clanky]
Úvahy [8 clankov]
Výuka [50 clankov]
Ako tlačiť s HP
Algoritmy v grafoch
Fake2
Faktúrka
Faktúrka v4.0 + zdrojáky v MS Visual C++ 6.0
Fract
HLSaver
Hry pre nenáročných + zdrojáky
Huffmanove kódovanie
IPicture2 & aggresiveoptimize.h
Maľované krížovky
MySQL (+ použitie Visual C++ a PHP)
OpenGL - GLWnd
OpenGL AMMO Saver
OpenGL povinná literatúra
OpenGL – Intermezzo 1
OpenGL, časť 10
OpenGL, časť 11
OpenGL, časť 12
OpenGL, časť 13
OpenGL, časť 14
OpenGL, časť 15
OpenGL, časť 16
OpenGL, časť 17
OpenGL, časť 18
OpenGL, časť 8
OpenGL, časť 9
Opengl – Cloth Simulation
RenameR
SkinMagic
WinSocket Communication via VC++
Údajové štruktúry
viac...
Zábava [5 clankov]
Zdravie [15 clankov]
Celkovy pocet clankov: 407
Pascal, časť 3 
Výuka | Dna 23.8.2001 | Johny | 3 znamky, priemer 2.00 | 4572 videni | 741 WAP videni

Tak, už tu máme ďalšie pokračovanie paskalu. Dnes sa
budem snažiť hovoriť čosi o poliach. Dúfam, že to vysvetlím
správne. Už samotný názov trochu hovorí o tom, čo to je, nie je
to však kus zeme a na nej zasadené obilie alebo niečo iné.
Vysvetlím na príklade: Predstavte si, že chcete urobiť
program, ktorý načíta n žiakov, ak vieme, že ich môže byť najviac
35. Asi by bolo trochu obtiažne robiť to cez 35 premenných,
nemyslíte? No a pole nám to strašne uľahčuje. Používa sa takto:

...
var ziaci:array[1..35] of string [10];
a,pocet:byte;

begin
writeln('Kolko ziakov je v triede ?');
read(pocet);
for a:=1 to pocet do
begin
Write('Zadaj ziaka c.',a,' ');
Readln(ziaci[a]);
end;
end.

Takto jednoducho sa dá pomocou cyklu načítať až 35 žiakov.
Niekedy sa však stane, že nevieme, aké veľké bude to pole a vtedy
je dosť obtiažne tipnúť veľkosť toho poľa. Užívateľ môže dať
počet žiakov v triede 2, no a potom ostane nevyužitých 33 prvkov
poľa, čo je zbytočné blokovanie pamäte.
Teraz rozoberiem tú definíciu poľa v hlavičke :

var - určite poznáte, je to príkaz na deklarovanie
premenných (tým výrazom som si nie istý)
ziaci - toto je názov premennej
array - znamená pole, to znamená, že sa bude jednať
o štruktúrovaný údajový typ
1..35 - označuje veľkosť poľa, v tomto prípade to bude 35
prvkov typu string[10], string[10] znamená, že sa jedná
o reťazec dĺžky 10 znakov, čo znamená, že meno žiaka môže mať
najviac 10 písmen.
of string[10] - to som už povedal

Máme tiež možnosť urobiť 35 premenných, ale myslím si, že je
zbytočné písať to 35 krát a navyše pole poskytuje ľahšiu prácu.
Pole si možno predstaviť ako blok premenných toho istého typu.

ÚÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄ
ła1 ła2 ła3 ła4 ła5 ła6 ła7 ła8 ł...
ŔÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄ

Prvky jednotlivého poľa dostaneme ako normálnu premennú len
pridáme ešte poradové číslo v danom poli. Toto číslo musí byť
v hranatých zátvorkách, na obrázku to tak nie je, lebo som chcel
šetriť miesto.

var ziak1:string;
ziak:array[1..4] of string;

begin
Write(ziak1);
Write(ziak[1]);
end.

V týchto dvoch zápisoch je jasný rozdiel, žiak1 je jednoduchý
typ a premenná žiak je už pole - štruktúrovaný typ.
Zápis Write(ziak); nemá zmysel, lebo počítač nevie, čo od neho
chceme.
Ak už sa rozhodneme používať v programe typ pole, musíme si
uvedomiť, že pre všetky prvky poľa budú platiť rovnaké podmienky.

No a teraz nejaké zaujímavé príkazy :

mod - tento príkaz sa používa vtedy, keď chceme zistiť zvyšok
po celočíselnom delení. Napr. Write(10 mod 5); Výsledkom bude
0, pretože zvyšok po delení 10 5-timi je 0. Takto sa dá veľmi
ľahko zistiť, či je nejaké číslo deliteľné nejakým iným číslom.

div - je príkaz podobný mod, len s tým rozdielom, že nevypíše
zvyšok, ale celočíselný podiel.

a:=Length(s); - do premennej a, ktorá by mala byť typu byte, sa
nám uloží dĺžka reťazca s, čo je string

Write(chr(65)); - vypíše znak v ASCII tabuľke, ktorý je na 65
mieste, a to je znak A

ord - má opačnú funkciu, vracia číslo k uvedenému znaku

No a na záver poviem čosi o procedúrach. Ja viem, že o tom sa
už hovorilo dosť, ale dnes si ukážeme procedúry volané parametrom
a odkazom. Finta je asi v tomto :

procedure ahoj(a:byte);
begin
end;

Nuž, tak takáto procedúra je taká, že bude v programe zakaždým,
keď ju budete volať, chcieť nejaký ten parameter za seba.

...
begin
ahoj(2);
end.

Procedúra sa ani nepohne, kým tam nebude mať ten parameter.
Možno si hovoríte, načo je to dobré, ale má to svoj význam. Aby
ste nemuseli zakaždým meniť nejakú globálnu premennú pre potreby
tej vašej procedúry, tak tam len dáte nejaký ten výsledok a je
to.

Druhý typ procedúry je typ, ktorý vracia nejaké tie hodnoty.

procedure ahoj(a:byte;var b:byte);
begin
end;

Nuž, tak takáto procedúra je taká, že bude v programe, zakaždým
keď ju budete volať, chcieť nejaký ten parameter za seba plus ešte
premennú, do ktorej sa uloží nejaký ten výsledok.

...
begin
ahoj(2,g);
end.

V obidvoch prípadoch procedúr je možné použiť ľubovoľné
množstvo parametrov a môžu byť akéhokoľvek typu. To isté platí aj
o funkciách, aj tie môžu mať x parametrov.

To by hádam na dnes aj stačilo, ale ešte niečo praktické:
Dnešný program môže slúžiť na postrašenie ľudí, ktorí sa vôbec
nevyznajú v počítačoch a majú na ne asi taký vplyv, že "čo
stlačím, hneď sa dačo pokazí".


program doamma1;
uses Crt;
var Origmode,v:integer;
begin
Clrscr;
OrigMode:= LastMode;
TextMode(80 + Font8x8);
randomize;
repeat
Write(' ');
for v:=1 to 8 do
begin
Write(chr(random(2)+48));
Write(chr(random(2)+48));
Write(chr(random(2)+48));
Write(chr(random(2)+48));
Write(chr(random(2)+48));
Write(chr(random(2)+48));
Write(chr(random(2)+48));
Write(chr(random(2)+48),' ');
end;
delay(10);
Writeln;
until keypressed;
TextMode(OrigMode);
end.

Program urobí asi toľko, že začne ako besný vypisovať jednotky
a nuly, a to až do stlačenia klávesy. Príkazy, ktoré ešte
nepoznáte, ako TextMode a podobne, slúžia na zmenu módu, ostatné
by ste už mali poznať.

Dospaskalovania.


Najnovsie clanky od tohto redaktora
Podobne clanky