O datových typech a jejich kontrole

Podobné dokumenty
Dynamické datové typy a struktury

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Programy v prostředí operačního systému

Programování 2 (NMIN102) Soubory. RNDr. Michal Žemlička, Ph.D.

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové soubory

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Programovací jazyk Pascal

Sada 1 - Základy programování

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

NPRG030 Programování I, 2010/11

Úvod do programovacích jazyků (Java)

NPRG030 Programování I, 2016/17 1 / :58:13

Anotace. Soubory a práce s nimi, rekurze podruhé, struktury (datový typ record), Martin Pergel,

ALGORITMIZACE A PROGRAMOVÁNÍ

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

NMIN102 Programování /2 Z, Zk

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Binární soubory (datové, typované)

dovolují dělení velkých úloh na menší = dekompozice

Algoritmizace prostorových úloh

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Struktura programu v době běhu

Časová a prostorová složitost algoritmů

Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově orientované programování.

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Datové typy a struktury

Interpret jazyka IFJ2011

Sémantika Tabulka symbolů Intermediální kód Typová kontrola, přetypování Statická a dynamická sémantika. Sémantická analýza.

Úvod do programování

PA152. Implementace databázových systémů

VY_32_INOVACE_08_2_04_PR

Algoritmizace prostorových úloh

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Empty, Null, Nothing, Missing, prázdný řetězec a buňka

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Implementace LL(1) překladů

Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr

VISUAL BASIC. Práce se soubory

Náznak ukázky syntaxe a sémantiky pro projekt. 1 Syntaktické prvky. Poslední aktualizace: 8.

Lexikální analýza Teorie programovacích jazyků

Spojová implementace lineárních datových struktur

Paměť počítače. alg2 1

Uplatnění metod na zvolený jazyk

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

Úvod. Programovací paradigmata

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

Sada 1 - Základy programování

2 Strukturované datové typy Pole Záznam Množina... 4

Algoritmizace a programování

Odvozené a strukturované typy dat

Soubory. Hung Hoang Dieu. Department of Mathematics Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 7

Ukazka knihy z internetoveho knihkupectvi

1. D Y N A M I C K É DAT O V É STRUKTUR Y

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

Knihovna DataBoxLib TXV první vydání prosinec 2010 změny vyhrazeny

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

NPRG030 Programování I, 2017/18 1 / :22:16

NPRG030 Programování I, 2015/16 1 / :25:32

Anotace. Pointery. Martin Pergel,

typová konverze typová inference

Ukazatele, dynamická alokace

Elementární datové typy

Základy programovacího jazyka Turbo Pascal

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Ing. Igor Kopetschke TUL, NTI

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).

Poslední nenulová číslice faktoriálu

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Martin Hejtmánek hejtmmar

Pseudonáhodná čísla = algoritmicky generovaná náhrada za náhodná čísla

Poslední aktualizace: 14. října 2011

Programovací jazyk PASCAL Turbo

5 Přehled operátorů, příkazy, přetypování

Syntaktická analýza. Implementace LL(1) překladů. Šárka Vavrečková. Ústav informatiky, FPF SU Opava

ADT/ADS = abstraktní datové typy / struktury

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Lineární datové struktury

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury Příklad PROG_

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

Analýza dat a modelování. Přednáška 3

Algoritmizace a programování

Sada 1 - Základy programování

Zápis programu v jazyce C#

Sdílení dat mezi podprogramy

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/ PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/ stran 1

Třídy a struktury v C++

PŘETĚŽOVÁNÍ OPERÁTORŮ

Pole stručný úvod do začátku, podrobně později - zatím statická pole (ne dynamicky) - číslují se od 0

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Transkript:

.. O datových typech a jejich kontrole Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz

Typová kontrola Programovací techniky O datových typech a jejich kontrole 2 / 1

Typová kontrola Co to je Programovací techniky O datových typech a jejich kontrole 2 / 1

Typová kontrola Co to je Jaké jsou vlastnosti Programovací techniky O datových typech a jejich kontrole 2 / 1

Typová kontrola Co to je Jaké jsou vlastnosti Kdy ji potřebujeme a kdy ne Programovací techniky O datových typech a jejich kontrole 2 / 1

Typová kontrola Co to je Jaké jsou vlastnosti Kdy ji potřebujeme a kdy ne Jak ji ovlivnit beztypové struktury Programovací techniky O datových typech a jejich kontrole 2 / 1

Co to je Programovací techniky O datových typech a jejich kontrole 3 / 1

Co to je Souvisí s pojmem kompatibilita typů, identita typů Programovací techniky O datových typech a jejich kontrole 3 / 1

Co to je Souvisí s pojmem kompatibilita typů, identita typů Sémantická kontrola zjišťující shodu v rámci kompatibility Programovací techniky O datových typech a jejich kontrole 3 / 1

Co to je Souvisí s pojmem kompatibilita typů, identita typů Sémantická kontrola zjišťující shodu v rámci kompatibility Okamžik přiřazení Programovací techniky O datových typech a jejich kontrole 3 / 1

Co to je Souvisí s pojmem kompatibilita typů, identita typů Sémantická kontrola zjišťující shodu v rámci kompatibility Okamžik přiřazení Okamžik volání podprogramu, parametr odkazem Programovací techniky O datových typech a jejich kontrole 3 / 1

Co to je Souvisí s pojmem kompatibilita typů, identita typů Sémantická kontrola zjišťující shodu v rámci kompatibility Okamžik přiřazení Okamžik volání podprogramu, parametr odkazem Vyčíslování výrazu Programovací techniky O datových typech a jejich kontrole 3 / 1

Jaké jsou vlastnosti Programovací techniky O datových typech a jejich kontrole 4 / 1

Jaké jsou vlastnosti V každém jazyce implementována jinak Programovací techniky O datových typech a jejich kontrole 4 / 1

Jaké jsou vlastnosti V každém jazyce implementována jinak Striktní je implementována všude (téměř) Programovací techniky O datových typech a jejich kontrole 4 / 1

Jaké jsou vlastnosti V každém jazyce implementována jinak Striktní je implementována všude (téměř) Volná (žádná) je implementována částečně Programovací techniky O datových typech a jejich kontrole 4 / 1

Jaké jsou vlastnosti V každém jazyce implementována jinak Striktní je implementována všude (téměř) Volná (žádná) je implementována částečně Primární vlastnost ochrana před chybami Programovací techniky O datových typech a jejich kontrole 4 / 1

Jaké jsou vlastnosti V každém jazyce implementována jinak Striktní je implementována všude (téměř) Volná (žádná) je implementována částečně Primární vlastnost ochrana před chybami Někdy komplikuje zápis textu programu Programovací techniky O datových typech a jejich kontrole 4 / 1

Kdy ji potřebujeme a kdy ne Programovací techniky O datových typech a jejich kontrole 5 / 1

Kdy ji potřebujeme a kdy ne Ano: Čistota jazyka Programovací techniky O datových typech a jejich kontrole 5 / 1

Kdy ji potřebujeme a kdy ne Ano: Čistota jazyka Ano: Jazyk pro výuku Programovací techniky O datových typech a jejich kontrole 5 / 1

Kdy ji potřebujeme a kdy ne Ano: Čistota jazyka Ano: Jazyk pro výuku Ano: Tvorba bezpečných aplikací Programovací techniky O datových typech a jejich kontrole 5 / 1

Kdy ji potřebujeme a kdy ne Ano: Čistota jazyka Ano: Jazyk pro výuku Ano: Tvorba bezpečných aplikací Ne: Zjednodušení zápisu programu Programovací techniky O datových typech a jejich kontrole 5 / 1

Kdy ji potřebujeme a kdy ne Ano: Čistota jazyka Ano: Jazyk pro výuku Ano: Tvorba bezpečných aplikací Ne: Zjednodušení zápisu programu Ne: Umožnění zápisu obecných struktur Programovací techniky O datových typech a jejich kontrole 5 / 1

Kdy ji potřebujeme a kdy ne Ano: Čistota jazyka Ano: Jazyk pro výuku Ano: Tvorba bezpečných aplikací Ne: Zjednodušení zápisu programu Ne: Umožnění zápisu obecných struktur Ne: Tlak praxe Programovací techniky O datových typech a jejich kontrole 5 / 1

Jak ji ovlivnit Programovací techniky O datových typech a jejich kontrole 6 / 1

Jak ji ovlivnit Volná kontrola se nedá zostřit Programovací techniky O datových typech a jejich kontrole 6 / 1

Jak ji ovlivnit Volná kontrola se nedá zostřit Striktní se dá uvolnit obejít Programovací techniky O datových typech a jejich kontrole 6 / 1

Jak ji ovlivnit Volná kontrola se nedá zostřit Striktní se dá uvolnit obejít Přetypování Programovací techniky O datových typech a jejich kontrole 6 / 1

Jak ji ovlivnit Volná kontrola se nedá zostřit Striktní se dá uvolnit obejít Přetypování Použití konverzních podprogramů Programovací techniky O datových typech a jejich kontrole 6 / 1

Jak ji ovlivnit Volná kontrola se nedá zostřit Striktní se dá uvolnit obejít Přetypování Použití konverzních podprogramů Použití beztypových struktur Programovací techniky O datových typech a jejich kontrole 6 / 1

Jak ji ovlivnit Volná kontrola se nedá zostřit Striktní se dá uvolnit obejít Přetypování Použití konverzních podprogramů Použití beztypových struktur Přetěžování operací Programovací techniky O datových typech a jejich kontrole 6 / 1

Konverze Programovací techniky O datových typech a jejich kontrole 7 / 1

Konverze Změna datového typu, přepočet hodnoty v paměti Programovací techniky O datových typech a jejich kontrole 7 / 1

Konverze Změna datového typu, přepočet hodnoty v paměti Příklady explicitní konverze: Str, Val Programovací techniky O datových typech a jejich kontrole 7 / 1

Konverze Změna datového typu, přepočet hodnoty v paměti Příklady explicitní konverze: Str, Val Příklady implicitní konverze: R:=B; konverze celočíselné hodnoty na reálnou read(s); konverze posloupnosti znaků na řetězec write(r) konverze reálné hodnoty na posloupnost znaků Programovací techniky O datových typech a jejich kontrole 7 / 1

Konverze Změna datového typu, přepočet hodnoty v paměti Příklady explicitní konverze: Str, Val Příklady implicitní konverze: R:=B; konverze celočíselné hodnoty na reálnou read(s); konverze posloupnosti znaků na řetězec write(r) konverze reálné hodnoty na posloupnost znaků Uživatelské konverze vždy s tvorbou uživatelských typů Programovací techniky O datových typech a jejich kontrole 7 / 1

Konverze Změna datového typu, přepočet hodnoty v paměti Příklady explicitní konverze: Str, Val Příklady implicitní konverze: R:=B; konverze celočíselné hodnoty na reálnou read(s); konverze posloupnosti znaků na řetězec write(r) konverze reálné hodnoty na posloupnost znaků Uživatelské konverze vždy s tvorbou uživatelských typů Příklad: textová reprezentace hodnot výčtových typů Programovací techniky O datových typech a jejich kontrole 7 / 1

Přetypování Programovací techniky O datových typech a jejich kontrole 8 / 1

Přetypování Změna datového typu BEZ přepočtu hodnoty v paměti Programovací techniky O datových typech a jejich kontrole 8 / 1

Přetypování Změna datového typu BEZ přepočtu hodnoty v paměti Podmínka: oba typy musí zabírat v paměti stejně velký prostor Programovací techniky O datových typech a jejich kontrole 8 / 1

Přetypování Změna datového typu BEZ přepočtu hodnoty v paměti Podmínka: oba typy musí zabírat v paměti stejně velký prostor Identifikátor typu je zároveň v roli přetypovací funkce Programovací techniky O datových typech a jejich kontrole 8 / 1

Přetypování Změna datového typu BEZ přepočtu hodnoty v paměti Podmínka: oba typy musí zabírat v paměti stejně velký prostor Identifikátor typu je zároveň v roli přetypovací funkce Příklad: type mnozina = set of 0..31; var L: longint; i: byte; begin readln(l); end. for i:=0 to 31 do if i in mnozina(l) then write( 1 ) else write( 0 ); Programovací techniky O datových typech a jejich kontrole 8 / 1

Přetypování Změna datového typu BEZ přepočtu hodnoty v paměti Podmínka: oba typy musí zabírat v paměti stejně velký prostor Identifikátor typu je zároveň v roli přetypovací funkce Příklad: type mnozina = set of 0..31; var L: longint; i: byte; begin readln(l); for i:=0 to 31 do if i in mnozina(l) then write( 1 ) else write( 0 ); end. Nekontroluje se, zda hodnota v paměti odpovídá povolené hodnotě cílového typu Programovací techniky O datových typech a jejich kontrole 8 / 1

Beztypové struktury Programovací techniky O datových typech a jejich kontrole 9 / 1

Beztypové struktury Variantní záznam Programovací techniky O datových typech a jejich kontrole 9 / 1

Beztypové struktury Variantní záznam Obecný ukazatel Programovací techniky O datových typech a jejich kontrole 9 / 1

Beztypové struktury Variantní záznam Obecný ukazatel Soubor bez udání typu Programovací techniky O datových typech a jejich kontrole 9 / 1

Variantní záznam Programovací techniky O datových typech a jejich kontrole 10 / 1

Variantní záznam Schéma záznamu je rozšířeno: record A: byte; {pevná složka} case B: Boolean of {rozlišovací složka} false: (L: longint);{variantní složky} true: (M: mnozina) end; Programovací techniky O datových typech a jejich kontrole 10 / 1

Variantní záznam Schéma záznamu je rozšířeno: record A: byte; {pevná složka} case B: Boolean of {rozlišovací složka} false: (L: longint);{variantní složky} true: (M: mnozina) end; Původní účel: úspora paměti Programovací techniky O datových typech a jejich kontrole 10 / 1

Variantní záznam Schéma záznamu je rozšířeno: record end; A: byte; {pevná složka} case B: Boolean of {rozlišovací složka} false: (L: longint);{variantní složky} true: (M: mnozina) Původní účel: úspora paměti Původní implementace: rozlišovací složka určuje viditelnost variantních složek Programovací techniky O datových typech a jejich kontrole 10 / 1

Variantní záznam Schéma záznamu je rozšířeno: record end; A: byte; {pevná složka} case B: Boolean of {rozlišovací složka} false: (L: longint);{variantní složky} true: (M: mnozina) Původní účel: úspora paměti Původní implementace: rozlišovací složka určuje viditelnost variantních složek Novější implementace: Rozlišovací složka nemusí mít identifikátor, kontrola viditelnosti se neprovádí Programovací techniky O datových typech a jejich kontrole 10 / 1

Variantní záznam Programovací techniky O datových typech a jejich kontrole 11 / 1

Variantní záznam Příklad využití variantního záznamu bez rozlišovací složky: type zaznam = record case boolean of end; var Z: zaznam; false: (L: longint); true: (M: mnozina) {definice typu množina je stejná} begin readln(z.l); end. for I:=0 to 31 do if I in Z.M then write( 1 ) else write( 0 ) Programovací techniky O datových typech a jejich kontrole 11 / 1

Obecný ukazatel Programovací techniky O datových typech a jejich kontrole 12 / 1

Obecný ukazatel (podrobněji ukazatele v další přednášce) Programovací techniky O datových typech a jejich kontrole 12 / 1

Obecný ukazatel (podrobněji ukazatele v další přednášce) Deklarace standardním identifikátorem pointer Programovací techniky O datových typech a jejich kontrole 12 / 1

Obecný ukazatel (podrobněji ukazatele v další přednášce) Deklarace standardním identifikátorem pointer Manipulace s obecným ukazatelem: Vždy je potřebné dodat překladači informaci související s datovým typem Programovací techniky O datových typech a jejich kontrole 12 / 1

Obecný ukazatel (podrobněji ukazatele v další přednášce) Deklarace standardním identifikátorem pointer Manipulace s obecným ukazatelem: Vždy je potřebné dodat překladači informaci související s datovým typem Alokace paměti: GetMem(P, N) dodána informace o velikosti dynamické proměnné Programovací techniky O datových typech a jejich kontrole 12 / 1

Obecný ukazatel (podrobněji ukazatele v další přednášce) Deklarace standardním identifikátorem pointer Manipulace s obecným ukazatelem: Vždy je potřebné dodat překladači informaci související s datovým typem Alokace paměti: GetMem(P, N) dodána informace o velikosti dynamické proměnné Dealokace paměti: FreeMem(P, N) jako u alokace, pozor na stejnou velikost uvolňované paměti Programovací techniky O datových typech a jejich kontrole 12 / 1

Obecný ukazatel (podrobněji ukazatele v další přednášce) Deklarace standardním identifikátorem pointer Manipulace s obecným ukazatelem: Vždy je potřebné dodat překladači informaci související s datovým typem Alokace paměti: GetMem(P, N) dodána informace o velikosti dynamické proměnné Dealokace paměti: FreeMem(P, N) jako u alokace, pozor na stejnou velikost uvolňované paměti Práce s dynamickou proměnnou: VŽDY je potřebné přetypování. Programovací techniky O datových typech a jejich kontrole 12 / 1

Obecný ukazatel (podrobněji ukazatele v další přednášce) Deklarace standardním identifikátorem pointer Manipulace s obecným ukazatelem: Vždy je potřebné dodat překladači informaci související s datovým typem Alokace paměti: GetMem(P, N) dodána informace o velikosti dynamické proměnné Dealokace paměti: FreeMem(P, N) jako u alokace, pozor na stejnou velikost uvolňované paměti Práce s dynamickou proměnnou: VŽDY je potřebné přetypování. Příklad: var P: pointer; begin GetMem(P, SizeOf(real)); readln(real(p^));... Programovací techniky O datových typech a jejich kontrole 12 / 1

Soubor bez udání typu Programovací techniky O datových typech a jejich kontrole 13 / 1

Soubor bez udání typu Příklad ukládání řetězce na minimálním paměťovém prostoru: var P: pointer; S: string; begin readln(s); {běžné přečtení} GetMem(P, Length(S)+1); {přesná alokace podle dat} string(p^):=s; {přiřazení do získaného prostoru}... Programovací techniky O datových typech a jejich kontrole 13 / 1

Soubor bez udání typu Programovací techniky O datových typech a jejich kontrole 14 / 1

Soubor bez udání typu Netextový soubor, vyjadřuje obecný pohled na soubor jako na posloupnost nespecifikovaných bytů Programovací techniky O datových typech a jejich kontrole 14 / 1

Soubor bez udání typu Netextový soubor, vyjadřuje obecný pohled na soubor jako na posloupnost nespecifikovaných bytů Soubor s udaným typem nese informaci o velikosti a typu složky, ve všech operacích se tato informace využívá Programovací techniky O datových typech a jejich kontrole 14 / 1

Soubor bez udání typu Netextový soubor, vyjadřuje obecný pohled na soubor jako na posloupnost nespecifikovaných bytů Soubor s udaným typem nese informaci o velikosti a typu složky, ve všech operacích se tato informace využívá Příklad manipulace s běžným netextovým souborem: var F: file of char; B: string; begin assign(f, neco.txt ); reset(f); read(f,b[4]); close(f); reset(f); seek(f,6); write(f,b[5]); rewrite(f); write(...); seek(f,1); read(f,...) Programovací techniky O datových typech a jejich kontrole 14 / 1

Soubor bez udání typu Programovací techniky O datových typech a jejich kontrole 15 / 1

Soubor bez udání typu Soubor bez udaného typu deklarace: var F: file; Programovací techniky O datových typech a jejich kontrole 15 / 1

Soubor bez udání typu Soubor bez udaného typu deklarace: var F: file; Ve všech operacích se dodávají informace související s požadovaným typem: Programovací techniky O datových typech a jejich kontrole 15 / 1

Soubor bez udání typu Soubor bez udaného typu deklarace: var F: file; Ve všech operacích se dodávají informace související s požadovaným typem: Příklady: assign(f, bin.bin ); reset(f,1); dodána informace o velikosti složky blockread(f,v,200,n); dodána informace o počtu složek, není prováděna typová kontrola rewrite(f,n); analogie operace reset blockwrite(f,v,100); analogie operace blockread seek(f,10); odvolání na číslo bloku, číslování v souboru je od nuly Programovací techniky O datových typech a jejich kontrole 15 / 1

Soubor bez udání typu Programovací techniky O datových typech a jejich kontrole 16 / 1

Soubor bez udání typu Příklady manipulací: var G: file; begin assign(g,...); reset(g,1); seek(g,10); reset(g,2); seek(g,10); Programovací techniky O datových typech a jejich kontrole 16 / 1

Soubor bez udání typu Příklady manipulací: var G: file; begin assign(g,...); reset(g,1); seek(g,10); reset(g,2); seek(g,10); Aplikace drtivá většina netextových souborů v praxi Programovací techniky O datových typech a jejich kontrole 16 / 1

Soubor bez udání typu Příklady manipulací: var G: file; begin assign(g,...); reset(g,1); seek(g,10); reset(g,2); seek(g,10); Aplikace drtivá většina netextových souborů v praxi Příklad databázového souboru: var DB: file; nazev: string[8]; delka: byte; pocet: byte; Programovací techniky O datových typech a jejich kontrole 16 / 1

pokračování příkladu begin assign(db, data.db ); rewrite(db,1); pocet:=0; blockwrite(db,pocet,1); while not eof do begin inc(pocet); readln(nazev,delka); blockwrite(db,nazev[1],8); blockwrite(db,delka,1); end; seek(db,1); blockwrite(db,pocet,1);... close(db); end. Programovací techniky O datových typech a jejich kontrole 17 / 1