You are on page 1of 3

Jednorozmerné pole

Na minulej hodine sme sa naučili čítať údaje z textového súboru. Predstavte si, že si
chcete vytvoriť aplikáciu, ktorá Vám spracuje namerané údaje z laboratórneho cvičenia
z fyziky. Meranie ste opakovali 10-krát. Potrebujeme pre uloženie jednej veličiny meranej 10-
krát 10 rôznych premenných? Samozrejme, že nie. Pre takéto situácie je tu zložený údajový
typ jednorozmerné pole.

Troška teórie:

Jednorozmerné pole patrí medzi zložené typy údajov. Zložené typy údajov sú také,
ktorých hodnoty môžu byť zložené z viacerých jednoduchých hodnôt (položiek).

Zložené typy pole – pevný počet zložiek rovnakého typu údajov


záznam – pevný počet zložiek rôznych typov

Definícia poľa:
premenná : array[1..n] of typ;
Premenná sa skladá z n zložiek(okienok):

1 2 3 4 . . . . . . n
Hodnota n predstavuje maximálny počet položiek poľa.
Poradovým číslam okienok hovoríme indexy a pomocou nich sa odvolávame
na konkrétne okienko, napr. ak máme pole ceny[1..5], tak na cenu v 3. chate sa odvoláme
ceny[3]. Index i je celé číslo, definujeme ho takto: i:Integer; Na cenu v i-tej chate sa
odvoláme ceny[i].

Otváranie súborov cez dialóg:


Na minulej hodine sme dokázali ukladať súbory a čítať obsah iba súborov uložených
na pracovnej ploche. Ako však otvoriť súbor z ľubovoľného miesta počítača? Máme na to
otvárací a ukladací dialóg. Nachádza sa na štvrtej karte zľava nazvanej Dialogs.

Otvárací dialóg Ukladací dialóg


Tieto komponenty podľa potreby treba uložiť na ľubovoľné miesto formulára. Počas
behu aplikácie sa nezobrazujú! Otvárací dialóg spúšťame príkazom OpenDialog1.Execute;
a názov zvoleného súboru použijeme v procedúre pre sprístupnenie AssignFile(premenná,
OpenDialog1.FileName); Zatvárací dialóg spúšťame príkazom SaveDialog1.Execute; a názov
zvoleného súboru použijeme v procedúre AssignFile(premenná, SaveDialog1.FileName);

Zbierame skúsenosti:
 Vytvor v Lazaruse aplikáciu, ktorá vypíše do súboru loto.txt 5 vyžrebovaných čísel hry
Loto 5 z 35. Nezabudni si po kliknutí na obslužné tlačidlo pozrieť obsah súboru.
Vyskúšaj nasledujúci obsah procedúry pre tlačidlo:
procedure TForm1.Button1Click(Sender: TObject);
var f:textfile;
a:array[1..5] of integer;
i:integer;
begin
randomize;
for i:=1 to 5 do a[i]:=random(35)+1;

SaveDialog1.Execute;
AssignFile(f,SaveDialog1.FileName);
rewrite(f);
write(f,'Vyžrebované čísla hry LOTO 5 z 35: ');
for i:=1 to 4 do write(f,a[i],', ');
writeln(f,a[5]);
closefile(f);
end;
 Vytvor v Lazaruse aplikáciu, ktorá prečíta zo súboru labak1.txt 10 hodnôt (v jednom
riadku jedno desatinné číslo) nameranej dĺžky dráhy a vypíše načítané čísla
do komponentu Label. Nezabudni si pred kliknutí na obslužné tlačidlo pripraviť
vstupný súbor. Vyskúšaj nasledujúci obsah procedúry pre tlačidlo:
procedure TForm1.Button1Click(Sender: TObject);
var f:textfile;
a:array[1..10] of real;
i:integer;
begin
OpenDialog1.Execute;
AssignFile(f,OpenDialog1.FileName);
reset(f);
for i:=1 to 10 do readln(f,a[i]);
closefile(f);

Label1.Caption:='Načítal som tieto hodnoty: ';


for i:=1 to 10 do Label1.Caption:=Label1.Caption+FloatToStr(a[i])+' ';
end;

Precvičujeme, čo sme sa naučili:


1. Vytvor v Lazaruse aplikáciu, ktorá najprv vygeneruje a potom vypíše do výstupného
súboru 12 náhodne zvolených hodnôt z množiny {-13, -10,-7, -4, -1, 2, 5, 8, 11, 14, 17,
20, 23, 26, 29}.
2. Vytvor v Lazaruse aplikáciu, ktorá najprv prečíta zo vstupného súboru 10 hodnôt
(v jednom riadku jedno desatinné číslo) nameranej hmotnosti kovového závažia
a potom vypíše do objektu Label všetky načítané hodnoty.
3. Vytvor v Lazaruse aplikáciu, ktorá prečíta zo vstupného súboru 25 znakovú vetu
do poľa typu char po znakoch a vypíše ju do iného výstupného súboru odzadu
dopredu.
4. Vytvor v Lazaruse aplikáciu, ktorá prečíta zo vstupného súboru 10 nameraných hodnôt
z fyzikálneho laboratórneho merania (v jednom riadku je jeden údaj) a vypíše
do výstupného súboru aritmetický priemer nameraných hodnôt a potom namerané
nadpriemerné hodnoty (vyššie ako vypočítaný aritmetický priemer).

Zisti, či to už vieš:
1. Čo je jednorozmerné pole?
2. Aké sú to zložené údajové typy?
3. Aké druhy zložených údajových typov poznáme?
4. Z čoho sa skladá pole?
5. Z čoho sa skladá záznam?
6. Napíš všeobecnú definíciu jednorozmerného poľa.
7. Ako si predstavujeme premennú typu jednorozmerné pole?
8. Čo predstavuje hodnota n v definícii poľa?
9. Ako hovoríme poradovým číslam jednotlivých položiek poľa?
10. Na čo slúžia indexy?
11. Akého typu sú indexy poľa?

You might also like