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

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

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

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

NPRG030 Programování I, 2010/11

Anotace. Informace o praktiku z programování!!! Direktivy překladače Soubory (textové) Quicksort Metoda rozděl a panuj

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

O datových typech a jejich kontrole

Sada 1 - Základy programování

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

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

POČÍTAČE A PROGRAMOVÁNÍ

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

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

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

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

Programovací jazyk Pascal

Unity a Objekty (NMIN102) RNDr. Michal Žemlička, Ph.D.

Úvod do programování

Struktura programu v době běhu

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

Anotace. Ordinalni typy - typ char, funkce ord, chr, succ, prev, inc, dec,

Algoritmizace a programování

Dynamické datové typy a struktury

ALGORITMIZACE A PROGRAMOVÁNÍ

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Anotace. Dijkstrův algoritmus,

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

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

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

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

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

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

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

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

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

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

Sada 1 - Základy programování

Základy programovacího jazyka Turbo Pascal

Sada 1 - Základy programování

Implementace LL(1) překladů

Sada 1 - Základy programování

VISUAL BASIC. Práce se soubory

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

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

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

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1

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

Klasický podprogram, který nazýváme procedura. Jedná se v podstatě o příkaz. 1

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

Obsah VII. kapitoly PASCAL pod OS AMOS

Datové typy a struktury

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

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

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

Programovací jazyk C++ Hodina 1

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

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

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1

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

Programování. Psaní čistého kódu. Martin Urza

Programování. Debugging a testování. Martin Urza

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín

PODPORA ELEKTRONICKÝCH FOREM VÝUKY

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

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

WICHTERLOVO GYMNÁZIUM, OSTRAVA-PORUBA. Programování MATURITNÍ OTÁZKY

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

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

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

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

Databázové systémy Cvičení 5.2

Algoritmizace a programování

Práce s binárními soubory. Základy programování 2 Tomáš Kühr

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

VY_32_INOVACE_08_2_04_PR

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

PROGRAMOVÁNÍ V C++ CVIČENÍ

Texty k Programování na VŠFS. Petr Kučera () Texty k Programování na VŠFS 29. května / 117

Sada 1 - Základy programování

Podprogramy; procedury a funkce

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

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

Basic256 - úvod do programování Příklady. ing. petr polách

Práce se soubory. Úvod do programování 2 Tomáš Kühr

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

2 Datové typy v jazyce C

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

Inovace a zkvalitnění výuky prostřednictvím ICT Vytváření aplikací pro systém Windows Víceřádkové vstupy komponenta Memo

Řízení toku programu Programátor musí být schopen nějak ovlivňovat běh programu a k tomu má několik možností:

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

Anotace. Pointery. Martin Pergel,

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

18. února 2015, Brno Připravil: David Procházka. Programovací jazyk C++

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:

NPRG030 Programování I, 2018/19 1 / :25:37

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Vstupní a vstupní proudy v C++

Transkript:

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

Soubor abstrakce vstupního, výstupního či vstupně výstupního zařízení textová, typovaná a netypovaná varianta základní operace: otevření, čtení/zápis, zavření, kontrola konce

Textový soubor obdoba práce se standardním vstupem či výstupem můžeme do něj zapisovat řetězce, čísla,... používáme příkazy write, writeln, jen předřadíme (jako první parametr) odkaz na patřičný soubor, do něhož chceme zapisovat

Textový soubor příklady VAR soubor : Text; i, j, k : Integer; s : String; c : Char;... WriteLn(soubor, Ahoj,s,! ); Write(soubor,i:4, -,j:6); WriteLn(soubor,...,c);

Textový soubor příklady (2) BEGIN Assign(soubor, jmeno_souboru ); {přiřadíme jméno souboru} Reset(soubor); (* otevřeme soubor na čtení *) j:=0; k:=0; WHILE NOT EOF(soubor) DO BEGIN Read(soubor,i); j:=j+i; k:=k+1 END; Close(soubor); WriteLn( Soucet:,j,, pocet:,k); END.

Textový soubor podprogramy assign(f,fn) reset(f) rewrite(f) append(f) close(f) přiřazení jména souboru otevření souboru pro čtení otevření souboru pro zápis otevření souboru pro dopsání zavření souboru

Textový soubor podprogramy (2) read, readln write, writeln eof() eoln() seekeof() seekeoln() čtení ze souboru zápis do souboru už jsme na konci souboru? jsme na konci řádku? až na bílé znaky konec souboru až na bílé znaky konec řádku

Typovaný soubor FILE OF základní typ; kolekce položek daného typu záznamy stejné velikosti můžeme si najít k. záznam, pokud potřebujeme

Typované soubory příklad TYPE zaznam = RECORD jmeno, prijmeni: String; END; soubory = FILE OF zaznam; VAR soubor : soubory;

Typované soubory odlišnosti Read a Write mají právě 2 parametry: soubor a záznam Varianty s odřádkováním pro tento typ souborů nejsou k dispozici (pouze pro Text) Jsou k dispozici nové funkce pracující s pozicí v souboru: FilePos (získá aktuální pozici v souboru) a Seek (nastaví aktuální pozici v souboru)

Typované soubory pozice Pozice v souboru udává, s kolikátým záznamem pracujeme nebo chceme pracovat FUNCTION FilePos(VAR F:TypovanySoubor):pozice; PROCEDURE Seek(VAR F:TypovanySoubor; p:pozice); pozice je celočíselný údaj (longint u BP, int64 u FP)

Netypovaný soubor Někdy potřebujeme pracovat se souborem velmi specificky a přitom efektivně čtení byte po bytu je příliš pomalé, čtení záznam po záznamu příliš restriktivní, a tak je zde i možnost pracovat po blocích. TYPE f : FILE;

Netypovaný soubor odlišnosti čtení a psaní probíhá po blocích nefungují běžné souborové operace (ani Read a Write) k dispozici nové operace BlockRead a BlockWrite Assign, Reset a Rewrite fungují, byt poslední 2 s odlišností může být deklarována (jako další parametr) délka bloku (pokud nezadáme, je to 128)

Netypovaný soubor BlockRead PROCEDURE BlockRead(VAR f: file; VAR Buf; count: pocet; VAR Result: pocet); pocet je zpravidla největší celočíselný typ u FP Int64 a u BP longint Pozor! Musíme zajistit, že Buf je dostatečně veliký, aby se do něj patřičný počet záznamů vešel! Nelze načíst jen část záznamu.

Netypovaný soubor BlockWrite PROCEDURE BlockWrite(VAR f: file; VAR Buf; count: pocet; VAR Result: pocet); pocet je zpravidla největší celočíselný typ u FP Int64 a u BP longint Nelze zapsat jen část záznamu. count říká, kolik záznamů chceme zapsat, result kolik se zapsat povedlo.

Přepínače Chování námi vytvářeného programu můžeme ovlivnit nastavením parametrů při překladu, případně vhodným nastavením přepínačů specifickými direktivami. syntax: {$X+}, {$X-}, kde X je příslušný přepínač

Přepínače (2) Můžeme ovlivňovat: kontrolu mezí $R (range check) hĺıdání mezí intervalů (tedy i indexu poĺı) kontrolu zásobníku $S (stack check) hĺıdá se, zda nepřetekl zásobník (to je při rekurzi či rozsáhlých parametrech či lokálních parametrech podprogramů možné) kontrolu vstupu $I (input) hĺıdání práce se soubory běhovou podporou/programem A spustu dalších nastavení

Podmíněný překlad {$define ladime}... {$ifdef ladime} tohle je pro ladění {$else} tohle je pro produkční verzi {$endif}

Podmíněný překlad (2) {$ifopt R+} tady kontroluje systém {$else} a tady musíme kontrolovat sami {$endif}

Přepínače a direktivy přepínače a direktivy bývají specifické pro daný překladač některé direktivy se liší i dle platformy některé symboly definovány jen na určité platformě (jen při překladu pro ni), jiné zas pro určitou variantu jazyka či verzi prostředí