3. Strukturované typy dat, vlastní datové typy

3. Strukturované typy dat
Pole

Pole je datová struktura skládající se ze složek stejného typu, které se vzájemně rozlišují pomocí indexů. S každou proměnnou typu pole můžeme v programu pracovat buď jako s celkem nebo s jejími jednotlivými složkami.

Záznam (record)

Záznam je datová struktura skládající se z určitého počtu pojmenovaných položek, které mohou být různého typu a které nazýváme položkami záznamu

Položky patřící do jednoto typu záznamu musí být pojmenovány vzájemně různými identifikátory, tyto identifikátory se však mohou shodovat s identifikátory vně popisu záznamu.

Var a:integer;

Z:record a:char;

b:integer;

end;

Touto deklarací je zavedena proměnná A typu integer a proměnná Z typu záznam. Proměnná Z se skládá z položky A typu char a položky B typu integer.

Soubor

V jazyku Pascal se každý soubor chápe jako posloupnost složek stejného typu pro něž jsou definovány určité operace. Tyto operace umožňují vytvoření souboru, čtení nebo zápis do souboru a zpracování souboru. V každém okamžiku zpracování souboru je přístupná jediná jeho složka.

Vlastnosti souboru jsou určeny jeho typem. Typem složky může být jakýkoli datový typ s výjimkou typu soubor (nelze mít soubor souborů).

Přístup ke složkám

Ukazatel ukazuje v každém okamžiku na jednu aktuální složku souboru, při každém zápisu nebo čtení se ukazatel posune na složku následující. Lze vypočítat polohu každé složky, což umožňuje i přímý přístup k libovolné složce

Operace se soubory

Assign(f,s) – externí (vnější) jméno souboru S typu string bude přiřazeno interní (vnitřní) proměnné F typu soubor. Tato operace musí být při práci se souborem použita vždy jako první

Rewrite(f) – vytvoří se nový soubor F a otevře se pro zápis. Ukazatel souboru ukazuje na začátek, tj. na složku číslo 0. Soubor F je po provedení rewrite prázdný

Write(f,sez) – do souboru F je zapsána proměnná SEZ, která je stejného typu jako složka souboru F. Ukazatel se po zápisu přesune na následující složku

Reset(f) – otevře již existující soubor pro zpracování, ukazatel nastaví na začátek, tj. na složku č. 0. Pokud soubor neexistuje, dojde k chybě vstupu

Read(f,sez) – ze souboru F je načtena jedna složka do proměnné SEZ, která je stejného typu jako složka souboru F. Ukazatel se po načtení posune na následující složku

Seek(f,n) – ukazatel se přesune na n-tou složku souboru F

Erase(f) – vymaže se soubor přiřazený proměnné F

Rename(f,s) – přejmenuje se soubor F jménem S

Close(f) – uzavře soubor F po zpracování

Eof(f) – vrací logickou hodnotu true, je-li ukazatel na konci souboru

Filepos(f) – vrací aktuální polohu ukazatele souboru F

Filesize(f) – vrací počet složek souboru F

Příkaz with

Práce s proměnnými typu záznam často vede k dosti dlouhému a složitému zápisu při identifikaci jednotlivých položek proměnné. Příkaz with dovolí pracovat s položkami záznamu tak, jakoby se pracovalo s jednoduchými proměnnými.