- charakterizujte štruktúrované dátové typy pole, záznam, množina, súbor
- definujte dátový typ pole, základné vlastnosti, deklarácia poľa
- definujte dátový typ záznam, základné vlastnosti, deklarácia záznamu
- definujte dátový typ množina, základné vlastnosti, deklarácia množiny
- definujte typ dátový typ súbor, základné vlastnosti, deklarácia súboru
- napíšte program podľa zadania
Znakové reťazce
Znakový reťazec je údajový typ, ktorý obsahuje nejakú postupnosť znakov (Char). Znaky v znakovom reťazci (t.j. v postupnosti znakov) sú očíslované od 1 až po momentálnu dĺžku reťazca. Túto dĺžku zistíme pomocou štandardnej funkcie Length.
Premennú typu znakový reťazec deklarujeme takto:
var Retazec: string;
Pole
var
názov_poľa: array[začiatok..koniec]
of typ_premenných;
Pole číslic
Celé číslo môžeme rozložiť po cifrách do prvkov poľa. Takto môžeme reprezentovať aj oveľa väčšie čísla ako povoľuje Integer (hoci aj 1000-ciferné). Keď zvládneme naprogramovať niektoré aritmetické operácie nad takýmito veľkými číslami, môžeme veľmi presne uskutočniť niektoré výpočty, s ktorými sú inak problémy, napr. faktoriál, Fibonacciho čísla a pod.
Pole znakových reťazcov
Údajová štruktúra pole môže mať prvky ľubovoľného typu, teda aj znakový reťazec. S takýmito premennými, ktoré sú prvkami poľa, sa pracuje rovnako ako s jednoduchými premennými typu reťazec.
Záznam
Záznamy v Pascale sa dajú označiť za predchodcov objektov. Sú to premenné, obsahujúce podradené premenné rôzneho typu.
Máme dve možnosti - buď deklarujeme priamo premennú:
var
Zaznam: record
Vlastnost: integer;
InaVlastnost: string;
end;
alebo najprv definujeme nový typ a potom vytvoríme premennú tohto typu. Využijeme druhú možnosť.
program ludia;
type
TClovek = record
Meno, Priezvisko: string; {2 retazce}
RokNarodenia: word; {cele cislo}
end;
var
Ujo: TClovek;
Množiny
Typ množina je taký údajový typ, ktorý v pascale umožňuje pracovať s niektorými typmi množín podobným spôsobom ako je to obvyklé v matematike. V pascale je povolené vytvárať množiny zložené len z prvkov rovnakého a to niektorého ordinálneho typu - hovoríme mu bázový (základný) typ. Napr. môžeme vytvoriť množinu znakov, množinu malých celých čísel, množinu dní v týždni a pod. Nemôžeme ale vytvoriť množinu, ktorá bude obsahovať napr. čísla aj znaky. Množina môže obsahovať celé čísla alebo iné ordinálne premenné, všetky však musia byť rovnakého typu. Počet prvkov je obmedzený na 256. Ordinálne hodnoty sa môžu pohybovať od 0 do 255.
Definícia množiny sa vždy skladá aj z definície jej bázového typu, napr. zápis
type
TMnozina = set of 1..100;
var
A, B: TMnozina;
Definícia množiny sa vždy skladá aj z definície jej bázového typu, napr. zápis
type
TMnozina = set of 1..100;
var
A, B: TMnozina;
Súbor - File
Ako pracujeme s textovým súborom používame funkcie read a write.Zoznam funkcií pre prácu so súbormi
- najskôr musím súbor definovať napr. var t:TextFile;
- potom musíme premennej súbor priradiť napr. AssignFile(t,'text.txt');
- nasleduje otvorenie súboru:
- na čítanie Reset(t);
- na zápis (ak existuje tak sa najskôr vyčistí) Rewrite(t);
práca so súborom:
Read(t,........);
Readln(t,........);
Write(t,........);
Writeln(t,........);
ukončenie práce so súborom CloseFile(t);
- - znamená End of Line (Koniec riadku) a - End of File (koniec súboru)
- riadok textového súboru = postupnosť znakov (aj prázdna) ukončená
Takže ak vidíme:
xyz
zy
x
Tak v skutočnosti to je:
|x|y|z|| |z|y||x|
Čítanie zo súboru
Príkaz Read(t,premenná); načíta zo súboru 1 znak zapíše ho do premennej a posunie sa o 1 znak ďalej (doprava). Príkazom readln(t) preskočíme všetky znaky v súbore až za najbližšiu značku (na konci súboru nerobí nič). Príkaz readln(t,z) je skrátený tvar pre read(t,z); readln(t);.Teraz konkrétny príklad (zistíme počet medzier v súbore text.txt):
var
t:TextFile;
z:char;
pocet:integer;
begin
AssignFile(t,'text.txt'); Reset(t);
pocet:=0;
while not Eof(t) do begin
read(t,z);
if z=' ' then inc(pocet);
end;
CloseFile(t);
Memo1.Lines.Add('Počet medzier v súbore '+IntToStr(pocet));
end;
Žiadne komentáre:
Zverejnenie komentára