Soubory. Jan Faigl. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 12 A0B36PR1 Programování 1

Rozměr: px
Začít zobrazení ze stránky:

Download "Soubory. Jan Faigl. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 12 A0B36PR1 Programování 1"

Transkript

1 Soubory Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 12 A0B36PR1 Programování 1 Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 1 / 39

2 Část 1 Soubory Soubory Práce se soubory Čtení a zápis souboru v Javě Binární soubory Textové soubory Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 2 / 39

3 Část I Soubory Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 3 / 39

4 Obsah Soubory Práce se soubory Čtení a zápis souboru v Javě Binární soubory Textové soubory Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 4 / 39

5 Soubory a organizace dat v souborovém systému Soubor je množina údajů uložená ve vnější paměti počítače Obvykle na pevném disku Typické operace pro soubor jsou: 1. Otevření souboru 2. Čtení dat 3. Zápis dat 4. Zavření souboru Přístup k datům (údajům) v souboru může být Sekvenční (postupný) Postupné čtení nebo zápis dat do souboru Náhodný (adresovatelný) Umožňuje adresovat libovolné místo v souboru podobně jako při přístupu do pole Způsob přístup k údajům v souboru není zakódován v souboru, ale je dán programem Podobně také případ, zdali soubor chápeme jako textový nebo binární. Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 5 / 39

6 Adresa (cesta) k souboru Soubory jsou uloženy v souborovém systému Soubory organizujeme do složek (adresářů), které tvoří hierarchii adresářů a souborů tvořící stromovou strukturu Lze sice vytvořit i cykly, zpravidla je to však speciální případ. Souborový systém představuje adresovatelný prostor, kde ke každému souboru existuje adresa identifikující v jakém adresáři (složce) se soubor nachází Adresa je složena ze jmen jednotlivých adresářů oddělených znakem / např. /usr/local/bin/netbeans-8.0 představuje cestu k netbeans-8.0 soubor pro spuštění programu Netbeans bin adresář v adresáři local local adresáři v adresáři usr / kořenový adresář Umístění souboru tak můžeme jednoznačně určit Podobně jako URL Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 6 / 39

7 Umístění souboru absolutní a relativní cesta Adresa absolutního umístění souboru v systému souborů začíná kořenovým adresářem / Cesta k souboru může být také relativní vzhledem k nějakému pracovnímu (např. projektovému) adresáři Speciální význam mají adresáře.. odkazuje do adresáře o úroveň výše. je aktuální adresář Příklady /usr/local/bin/netbeans Relativní cesta vzhledem k /usr/local/tmp je../bin/netbeans Relativní cesta vzhledem k /usr/local/bin je netbeans./netbeans Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 7 / 39

8 Typy souborů Podle způsobu kódování informace v souboru rozlišujeme: Textové soubory Přímo čitelné a jednoduše editovatelné Binární soubory Běžným textovým editorem Zpravidla potřebujeme specializovaný program pro čtení, zápis a modifikaci souboru Přístup k souboru tak spíše realizujeme prostřednictvím programového rozhraní V obou případech je pro výměnu souboru a jejich použitelnost v jiných programech klíčový konkrétní způsob organizace údajů a informací uložených v souborech Používání standardních formátů a to jak textových (např. XML, HTML, JSON, CSV), tak binárních (např. HDF). Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 8 / 39

9 Textové soubory Textový soubor je posloupnost znaků členěná na řádky Zpravidla členěná na řádky. Není to nutné, ale zvyšuje čitelnost a usnadňuje zpracování souboru (po řádcích). EOL (End of Line) znak konce řádku EOL je platformově závislý CR Carriage Return Macintosh "\r" 0x0d LF Line Feed Unix "\n" 0x0a CR/LF MS-DOS, Windows "\r\n" 0x0d 0x0a Každý znak je reprezentován jedním bajtem, případně 2 nebo více bajty Viz znakové sady a kódování Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 9 / 39

10 Binární soubory Binární soubor je posloupnost bajtů Informace v binárním souboru je kódována vnitřním kódem počítače Do binárního souboru mohou být zapsány bajt (byte) jednoduché proměnné pole data celých objektů V Javě lze využít tzv. serializace Informace o typu souboru ani o způsobu kódování informací v něm uložených není v souboru obsažena. Správnou interpretaci přečteného souboru musí zajistit uživatelský program. Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 10 / 39

11 Binární soubory Binární soubor je posloupnost bajtů Informace v binárním souboru je kódována vnitřním kódem počítače Do binárního souboru mohou být zapsány bajt (byte) jednoduché proměnné pole data celých objektů V Javě lze využít tzv. serializace Informace o typu souboru ani o způsobu kódování informací v něm uložených není v souboru obsažena. Správnou interpretaci přečteného souboru musí zajistit uživatelský program. Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 10 / 39

12 Obsah Soubory Práce se soubory Čtení a zápis souboru v Javě Binární soubory Textové soubory Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 11 / 39

13 Přístup k souborům Přenos informace (dat) z/do souboru lze rozdělit do několika vrstev Vrstva může poskytovat různý pohled na obsah souboru V základním pohledu je každý soubor posloupnost bytů Čtení ze souboru Posloupnost bytů Posloupnost datových typů Program Zápis do souboru Posloupnost bytů Posloupnost datových typů Program Výhoda vrstveného přístupu je v možnosti jednoduše přidávat nové způsoby zpracování dat. K datům v souboru můžeme přistupovat dvěma základními způsoby: sekvenčně a přímým (náhodným) přístupem Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 12 / 39

14 Sekvenční přístup Při sekvenčním přístupu jsou jednotlivé byty načítány postupně Během načítání bytů mohou být data postupně interpretovaná Např. po přečtení 4 bytů je možné interpretovat takovou posloupnost jako celé číslo typu int. Na aktuální pozici v souboru ukazuje tzv. kurzor Každé další čtení ze souboru vrací příslušný počet přečtených bytů a o stejný počet bytů je kurzor posunut Při načítání se lze vracet pouze na začátek, nelze se vrátit např. o několik bytů zpět Při zápisu jsou postupně ukládány další byty na konec souboru Při otevření souboru rozlišujeme kromě otevření pro čtení také otevření pro zápis nebo přidávání (append). Sekvenční přístup načítání / zápisu je možné použít i pro jiné vstupy/výstupy než soubory uložené na disku Např. Zpracování dat po sériovém portu, Ethernet nebo obecně data z Internetu Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 13 / 39

15 Přímý přístup Při práci se soubory v přímém přístupu je možné zapisovat / číst na libovolné místo v souboru Práce se souborem se tak podobá přístupu k položkám v poli Kurzor lze libovolně nastavovat v rozsahu velikosti souboru (v bytech) Soubor musí být k dispozici Vhodné pro soubory, které jsou přístupné na disku, a které lze celé kdykoliv načíst do paměti. Vhodné pokud známe vnitřní strukturu souboru a můžeme se přímo odkazovat na příslušné místo pro aktualizaci nebo načtení příslušné datové položky Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 14 / 39

16 Obsah Soubory Práce se soubory Čtení a zápis souboru v Javě Binární soubory Textové soubory Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 15 / 39

17 Soubory a proudy Java rozlišuje soubory ( files ) a proudy ( streams ) Soubor je množina údajů uložená ve vnější paměti počítače Proud je přístup (nástroj) k přenosu informaci z/do souboru, ale také z/do libovolného jiného média, které je schopné generovat nebo pojmout data jako posloupnost bytů sítě, sériová linka, paměť, jiný program, atd. Informace může mít tvar znaků, bytů, skupin bytů, objektů,... Přenos informace se děje ve více vrstvách v proudech (streams) 1. Otevření přenosového proudu pro byty nebo znaky 2. Otevření přenosového proudu pro datové typy Javy 3. Filtrace dat podle dalších požadavků, např. bufferovaní, řádkování, atd. Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 16 / 39

18 Proudy v Javě (Standardní třídy) Bytové FileInputStream / FileOutputStream DataOutputStream přenos primitivních datových typů ObjectOutputStream přenos objektů BufferedOutputStream bufferovaní Znakové FileReader / FileWriter BufferedReader bufferovaní StreamTokenizer tokenizace RandomAccessFile práce se soubory s náhodným přístupem File zprácování souborů/adresářů: test existence, oddělovač adresářů/souborů, vytvoření, mazání, atd. Využívá služeb operačního systému V Javě jsou příslušné třídy definovány v balíku java.io případně java.nio Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 17 / 39

19 Příklad Soubor jako posloupnost bytů Vytvoření kopie vstupního souboru Vstupní soubor postupně načítáme byte po bytu a ukládáme do výstupního souboru public void demostreamcopy(string inputfile, String outputfile) throws IOException { FileInputStream in = new FileInputStream(inputFile); FileOutputStream out = new FileOutputStream( outputfile); int b = in.read(); // read byte of data while (b!= -1) { out.write(b); b = in.read(); out.close(); in.close(); lec12/demofilestream.java Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 18 / 39

20 Příklad DemoBufferedCopyException 1/2 V předchozím příkladě byl soubor kopírován byte po bytu Každá operace je provedena a celkově je kopírování velmi pomalé Použitím buffered vrstvy kopírování výrazně zrychlíme třídy BufferedInputStream a BufferedOutputStream public void demostreamcopy(string inputfile, String outputfile) throws IOException { BufferedInputStream in = new BufferedInputStream(new FileInputStream(inputFile)); BufferedOutputStream out = new FileOutputStream(outputFile)); int b = in.read(); // read byte of data while (b!= -1) { out.write(b); b = in.read(); new BufferedOutputStream( Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 19 / 39

21 Příklad DemoBufferedCopyException 2/2 Další vrstva pracuje s původním proudem, který předáváme v konstruktoru Základní velikost vyrovnávací paměti ( buffer ) je 8192 bytů Přístup k souboru probíhá hromadně Při zápisu je však nutné vynutit zápis voláním flush() DEFAULT_BUFFE_SIZE Zápis je fyzicky proveden až po naplnění vyrovnávací paměti int b = in.read(); // read byte of data while (b!= -1) { out.write(b); b = in.read(); out.flush(); // Important! Flush the output! lec12/demobufferedfilestream.java Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 20 / 39

22 Výjimky (Exceptions) Představují mechanismus ošetření chybových (výjimečných) stavů Program navrhujeme a implementujeme tak, aby v rámci daných operačních vlastností fungoval správně. Mechanismus výjimek umožňuje se soustředit na funkčnost programu a odložit řešení detekované chyby provedení příkazu (metody) mimo hlavní tělo funkce (metody) Chyba nemusí znamenat ukončení programu chybu je možné ošetřit, zotavit běh programu a pokračovat ve vykonávání dalšího kódu Posloupnost příkazů, ve které může vzniknou výjimka, uzavíráme do bloku klíčovým slovem try Příslušnou výjimku pak zachytáváme prostřednictvím catch Metodu můžeme deklarovat jako metodu, která může vyvolat výjimku klíčovým slovem throws Java ošetření výjimek vynucuje Výjimka nikoliv vyjímka výjimka označuje název děje nebo výsledku děje, je to podstatné jméno odvozené od slovesa. Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 21 / 39

23 Výjimky Příklady Příklad deklarace funkce, ve které může nastat výjimka public void copy(string in, String out) throws IOException {... V těle funkce nemusíme ošetřovat zotavení z chyby Řízení programu je předáno do nadřazené funkce, kde můžeme implementovat ošetření chyby, např. try { copy("in.txt", "out.txt"); catch (IOException e) { System.err.println("Error in copy"); Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 22 / 39

24 Výjimky a výpočetní tok Metoda může skončit standardně nebo může být přerušena vyvoláním výjimky Při vyvolání výjimky se řízení předá nejbližší konstrukci ošetřující výjimku daného typu Výjimky jsou objekty instance tříd, které mají svou hierarchii (viz dědičnost a polymorfismus) Pokud taková konstrukce v těle funkce (metody) není, dojde k nestandardnímu ukončení funkce a výjimka se šíří do nadřazené úrovně Není-li výjimka ošetřena ani ve funkci main, program vypíše výjimku na standardní chybový výstup ( stderr ) a skončí Výjimka typu RuntimeException je výjimečná výjimka, kterou není nutné explicitně ošetřovat nebo deklarovat v hlavičce metody uvedením throws Typicky se jedná o situace, které lze standardně ošetřit např. větvením programu (použitím if), více viz PR2. Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 23 / 39

25 Příklad ošetření chybových stavů try { demo.demostreamcopy(args[0], args[1]); catch (FileNotFoundException e) { System.err.println("File not found"); catch (IOException e) { System.err.println("Error occured during copying"); e.printstacktrace(); Příklad spuštění programu java DemoCopyException in2.txt out.txt File not found java DemoCopyException in.txt out2.txt Error occured during copying java.io.ioexception: Stream Closed at java.io.fileoutputstream.write(native Method) at java.io.fileoutputstream.write(fileoutputstream.java:295) at DemoCopyException.demoStreamCopy(DemoCopyException.java:16) at DemoCopyException.main(DemoCopyException.java:24) Proč jsou chyby různé? Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 24 / 39

26 Příklad DemoCopyException public void demostreamcopy(string inputfile, String outputfile) throws IOException { FileInputStream in = new FileInputStream(inputFile); FileOutputStream out = new FileOutputStream(outputFile); if (outputfile.equalsignorecase("out2.txt")) { out.close(); int b = in.read(); // read byte of data while (b!= -1) { out.write(b); b = in.read(); lec12/democopyexception.java Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 25 / 39

27 Obsah Soubory Práce se soubory Čtení a zápis souboru v Javě Binární soubory Textové soubory Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 26 / 39

28 Soubor jako posloupnost primitivních typů Zápis Pro zápis hodnoty základního datového typu jako posloupnost bytů přidáme další vrstvu DataOutputStream String fname = args.length > 0? args[0] : "out.bin"; DataOutputStream out = new DataOutputStream( new FileOutputStream(fname)); for (int i = 0; i < 10; ++i) { double d = (Math.random() % 100) / 10.0; out.writeint(i); out.writedouble(d); System.out.println("Write " + i + " " + d); lec12/demofileprimitivetypeswrite.java Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 27 / 39

29 Soubor jako posloupnost primitivních typů Čtení String fname = args.length > 0? args[0] : "out.bin"; DataInputStream in = new DataInputStream( new FileInputStream(fname)); for (int i = 0; i < 10; ++i) { int v = in.readint(); double d = in.readdouble(); System.out.println("Read " + v + " " + d); lec12/demofileprimitivetypesread.java Co se stane když zaměníme pořadí načítání readint a readdouble? Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 28 / 39

30 Soubor primitivních typů a objektů Uvedenými metodami lze zapisovat a číst pouze tzv. serializovatelné objekty, mezi které patří Primitivní datové typy Řetězce a pole primitivních typů Složitější objekty, pokud implementují rozhraní Serializable Rozhraní Serializable nepředepisuje žádnou metodu, je značkou, že objekt chceme serializovat Pro vytvoření příslušné implementace pro převod hodnot do/z posloupnosti bytů. Pro serializaci musí být každá datová položka serializovatelná nebo označena, že nebude serializována klíčovým slovem transient serialtoc.html Informativní Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 29 / 39

31 import java.io.serializable; Příklad serializace 1/3 public class Customer implements Serializable { private String name; private String surname; private int age; public Customer(String name, String surname, int age) { this.name = name; this.surname = surname; this.age = age; lec12/customer.java Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 30 / 39

32 Příklad serializace 2/3 void write(customer customer, String fname) throws IOException { try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(fname))) { out.writeobject(customer); Customer read(string fname) throws IOException, ClassNotFoundException { ObjectInputStream in = new ObjectInputStream(new FileInputStream(fname)); return (Customer) in.readobject(); lec12/demoobjectserialization.java Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 31 / 39

33 Příklad serializace 3/3 Customer customer = new Customer("AAA", "BBB", 47); System.out.println("Customer: " + customer); write(customer, fname); customer = new Customer("ZZZ", "WWW", 17); System.out.println("Customer: " + customer); customer = read(fname); System.out.println("Customer: " + customer); Příklad výstupu Customer: AAA BBB age: 47 Customer: ZZZ WWW age: 17 Customer: AAA BBB age: 47 Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 32 / 39

34 Soubory s náhodným přístupem 1/2 Třída RandomAccessFile pro zápis/čtení do/z libovolného místa v souboru public void write(string fname, int n) throws IOException { RandomAccessFile out = new RandomAccessFile(fname, "rw"); for (int i = 0; i < n; ++i) { out.writeint(i); System.out.println("write: " + i); out.close(); Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 33 / 39

35 Soubory s náhodným přístupem 2/2 Pro přístup na konkrétní položku je nutné určit adresu položky v souboru jako pozici v počtu bytů od začátku souboru final int SIZE = Integer.SIZE / 8; RandomAccessFile in = new RandomAccessFile(fname, "r"); for (int i = 0; i < 5; ++i) { in.seek(i * 2 * SIZE); int v = in.readint(); System.out.println("read: " + v); lec12/demorandomaccess.java Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 34 / 39

36 Obsah Soubory Práce se soubory Čtení a zápis souboru v Javě Binární soubory Textové soubory Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 35 / 39

37 Textově orientované soubory Při čtení a zápisu je nutné zajistit konverzi znaků Příklad zápisu s využitím třídy PrintWriter Kódování public void write(string fname) throws IOException { String months[] = {"jan", "feb", "mar", "apr", "may ", "jun", "jul", "aug", "sep", "oct", "nov", "dec" ; PrintWriter out = new PrintWriter(fname, "UTF-8"); for (int i = 0; i < months.length; ++i) { out.println(months[i]); out.close(); Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 36 / 39

38 Příklad čtení textového souboru Pro čtení můžeme využít třídy Scanner podobně jako při čtení ze standardního vstupu public void start() throws IOException { String fname = "text_file.txt"; write(fname); FileInputStream in = new FileInputStream(fname); Scanner scan = new Scanner(in); while (scan.hasnext()) { String str = scan.next(); System.out.println("Read: " + str); in.close(); lec12/demotextfile.java Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 37 / 39

39 Diskutovaná témata Shrnutí přednášky Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 38 / 39

40 Diskutovaná témata Diskutovaná témata Soubory a přístup k souborům Typy souborů (textový a binární) Práce se soubory v Javě Binární soubory Textové soubory Ošetření chyb mechanismem výjimek Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 39 / 39

Soubory. Jan Faigl. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 12 A0B36PR1 Programování 1

Soubory. Jan Faigl. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 12 A0B36PR1 Programování 1 Soubory Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 12 A0B36PR1 Programování 1 Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 1 / 39 Část 1 Soubory

Více

Část I Výjimky. Část 1 Výjimky. Výjimky a soubory. Část 2 Soubory. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze

Část I Výjimky. Část 1 Výjimky. Výjimky a soubory. Část 2 Soubory. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Část 1 a soubory Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek, 2017 B0B36PJV Přednáška

Více

Výjimky a soubory. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze

Výjimky a soubory. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Výjimky a soubory Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek, 2017 B0B36PJV Přednáška

Více

Výjimky a soubory. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze

Výjimky a soubory. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze a soubory Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek, 2017 B0B36PJV Přednáška 4: Výjimky

Více

8. přednáška: Soubory a proudy

8. přednáška: Soubory a proudy 8. přednáška: Soubory a proudy Soubor jako posloupnost bytů Ukládání/čtení primitivních typů Ukládání/čtení primitivních typů a objektů (řetězců) Ukládání/čtení objektů do souboru - serializace Obsah Algoritmizace

Více

Soubory. Katedra po íta. Ji í Vok ínek. P edná²ka 4 B6B36PJV Programování v JAVA. Fakulta elektrotechnická ƒeské vysoké u ení technické v Praze

Soubory. Katedra po íta. Ji í Vok ínek. P edná²ka 4 B6B36PJV Programování v JAVA. Fakulta elektrotechnická ƒeské vysoké u ení technické v Praze Soubory Ji í Vok ínek Katedra po íta Fakulta elektrotechnická ƒeské vysoké u ení technické v Praze P edná²ka 4 B6B36PJV Programování v JAVA Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 4: Soubory

Více

Soubor jako posloupnost bytů

Soubor jako posloupnost bytů Soubory Soubor je množina údajů uložená ve vnější paměti počítače, obvykle na disku Pro soubor jsou typické tyto operace. otevření souboru čtení údaje zápis údaje uzavření souboru Přístup k údajům (čtení

Více

Soubory Práce se soubory Čtení a zápis souboru v Javě Binární soubory Textové soubory

Soubory Práce se soubory Čtení a zápis souboru v Javě Binární soubory Textové soubory Část 1 Soubory Soubory Soubory Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 12 A0B36PR1 Programování 1 Práce se soubory Čtení a zápis souboru v Javě

Více

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Textové soubory. alg9 1

Textové soubory. alg9 1 Textové soubory Textový soubor je posloupnost znaků členěná na řádky každý znak je reprezentován jedním bytem, jehož obsah je dán nějakým kódováním znaků členění na řádky je závislé na platformě a obvykle

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Práce se soubory v Javě

Práce se soubory v Javě Práce se soubory v Javě Cílem kapitoly je naučit pracovat se soubory a adresáři v Javě. Na jednoduchých příkladech ukázat procházení adresáře, čtení z textového souboru a zápis do textového souboru. Klíčové

Více

Z. Kotala, P. Toman: Java ( Obsah )

Z. Kotala, P. Toman: Java ( Obsah ) Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například

Více

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

InputStream. FilterInputStream

InputStream. FilterInputStream 6. Vstupy a výstupy Pro práci se vstupy a výstupy nám Java poskytuje celou řadu tříd a jejich metod. Jsou uloženy v balíku java.io. Tato knihovna je založena na mechanizmu tzv. vstupních a výstupních proudů

Více

Ošetřování chyb v programech

Ošetřování chyb v programech Ošetřování chyb v programech Úvod chyba v programu = normální záležitost typy chyb: 1) programátorská chyba při návrhu každých 10 000 řádek 1 chyba lze jen omezeně ošetřit (před pádem aplikace nabídnout

Více

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25 Seminář Java Výjimky Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Výjimky 1/ 25 Výjimky Co a k čemu jsou výjimky výjimka je mechanizmus umožňující psát robustní, spolehlivé

Více

Výjimky. v C# a Javě

Výjimky. v C# a Javě Výjimky v C# a Javě Výjimky v C# Výjimky poskytují v C# způsob, jak reagovat na nečekané události. Uživatel např. zadá místo čísla text nebo soubor, který chceme otevřít, je využíván jiným procesem. To

Více

6. PRÁCE S DATOVÝMI PROUDY

6. PRÁCE S DATOVÝMI PROUDY 6. PRÁCE S DATOVÝMI PROUDY Balík java.io obsahuje třídy, které slouží pro zpracování datových výstupů a vstupů. Pro obvyklou práci se soubory zde můžeme najít třídy File a RandomAccessFile. Většina tříd

Více

1. Téma 12 - Textové soubory a výjimky

1. Téma 12 - Textové soubory a výjimky 1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

POČÍTAČE A PROGRAMOVÁNÍ

POČÍTAČE A PROGRAMOVÁNÍ POČÍTAČE A PROGRAMOVÁNÍ Práce se soubory, čtení dat ze souboru a zapis dat do souboru Miroslav Vavroušek PPI 10 V1.1 Opakovaní z minulé přednášky Moderní metody vývoje softwaru Složení softwaroveho vývojového

Více

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01 Anotace sady: Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01 Autor: Blanka Sadovská Klíčová slova: Algoritmus, proměnná, diagram Stupeň a typ vzdělávání: gymnaziální vzdělávání, 3. ročník

Více

KTE / ZPE Informační technologie

KTE / ZPE Informační technologie 4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší

Více

7. Datové typy v Javě

7. Datové typy v Javě 7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16 Jazyk C práce se soubory 1 Soubory Použití souborů pro vstup většího množství dat do programu (uživatel nezadává z klávesnice ručně tisíce údajů...) pro uložení většího množství výsledků, např. k pozdějšímu

Více

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ Vstupy a výstupy pokračování Kódování textů Texty (řetězce nebo znaky) v jazyce C# jsou v paměti uloženy v kódování označovaném běžně Unicode (kódová stránka 1200).

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém

Více

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

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20 Obsah 5 Obsah Předmluva k aktuálnímu vydání 15 1 Úvod k prvnímu vydání z roku 2000 16 Typografické a syntaktické konvence................ 20 2 Základní pojmy 21 2.1 Trocha historie nikoho nezabije................

Více

VISUAL BASIC. Práce se soubory

VISUAL BASIC. Práce se soubory VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

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

Práce se soubory. Úvod do programování 2 Tomáš Kühr Práce se soubory Úvod do programování 2 Tomáš Kühr Soubory z pohledu C u Soubor chápeme jako posloupnost bytů uložených na disku u Datový proud (anglicky stream) u Ještě obecnější přístup u Sjednocuje

Více

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací

Více

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

Programování v Javě I. Leden 2008

Programování v Javě I. Leden 2008 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

Programování v Javě I. Únor 2009

Programování v Javě I. Únor 2009 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

29. Výjimky, jejich vznik, vyhození, odchyt a zpracování. (A7B36PVJ)

29. Výjimky, jejich vznik, vyhození, odchyt a zpracování. (A7B36PVJ) 29. Výjimky, jejich vznik, vyhození, odchyt a zpracování. (A7B36PVJ) Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka

Více

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2 Přednáška 2 Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. 1 Systém souborů (FS) I 2 Systém souborů II Logický systém souborů pro běžného uživatele se jeví jako jediná homogenní struktura

Více

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Jan Faigl, 2015 A0B36PR2

Více

RMI Remote Method Invocation

RMI Remote Method Invocation 2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

typová konverze typová inference

typová konverze typová inference Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie

Více

Více o konstruktorech a destruktorech

Více o konstruktorech a destruktorech Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení

Více

Systém souborů (file system, FS)

Systém souborů (file system, FS) UNIX systém souborů (file system) 1 Systém souborů (file system, FS)! slouží k uchování dat na vnějším paměťovém médiu a zajišťuje přístup ke struktuře dat! pro uživatele možnost ukládat data a opět je

Více

Java - výjimky. private void vstup() throws IOException {... }

Java - výjimky. private void vstup() throws IOException {... } Java - výjimky Tato kapitola ukazuje na několika příkladech práci s výjimkami v Javě. Klíčové pojmy: Výjimka, hierarchie výjimek, zachytávání výjimek, blok try-catch, tvorba vlastních výjimek, propagace

Více

Regulární výrazy. Vzory

Regulární výrazy. Vzory Regulární výrazy Regulární výrazy jsou určeny pro práci s textovými řetězci, jsou součástí J2SDK až od verze 1.4, v předchozích verzích je potřeba použít některou z externích knihoven, např. knihovnu ORO

Více

Práce se soubory. Základy programování 2 Tomáš Kühr

Práce se soubory. Základy programování 2 Tomáš Kühr Práce se soubory Základy programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup

Více

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.

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. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Bridge. Známý jako. Účel. Použitelnost. Handle/Body Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době

Více

Úvod do programování - Java. Cvičení č.4

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

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

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

10. března 2015, Brno Připravil: David Procházka. Programovací jazyk C++

10. března 2015, Brno Připravil: David Procházka. Programovací jazyk C++ 10. března 2015, Brno Připravil: David Procházka Práce s výjimkami Programovací jazyk C++ K čemu slouží výjimky Strana 2 / 25 Obsah přednášky 1 K čemu slouží výjimky 2 Vytváření výjimek 3 Speciální případy

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,

Více

Dědičnost (inheritance)

Dědičnost (inheritance) Dědičnost (inheritance) Úvod Umožňuje objektům převzít (zdědit) členy jiných objektů a pouze je rozšířit o Auto: lze odvodit Vztah je osobní auto, cisterna jsou auta Základní pojmy Bázová třída (rodič)

Více

NIO. Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

NIO. Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha NIO Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Více

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)

Více

Generické programování

Generické programování Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =

Více

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Dynamicky vázané metody. Pozdní vazba, virtuální metody Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:

Více

6. Příkazy a řídící struktury v Javě

6. Příkazy a řídící struktury v Javě 6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return

Více

PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory

PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory Výhody objektového řešení Nástroje pro IO operace jsou v C++ součástí knihoven Hierarchie objektových

Více

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová Programové konvence, dokumentace a ladění 2. přednáška Alena Buchalcevová Proč dodržovat programové konvence? velkou část životního cyklu softwaru tvoří údržba údržbu provádí většinou někdo jiný než autor

Více

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

Práce s binárními soubory. Základy programování 2 Tomáš Kühr Práce s binárními soubory Základy programování 2 Tomáš Kühr Binární soubory Mohou mít libovolnou strukturu Data jsou uložena ve stejné podobě jako v paměti za běhu programu Výhody: Pro uložení je potřeba

Více

17. Projekt Trojúhelníky

17. Projekt Trojúhelníky Projekt Trojúhelníky strana 165 17. Projekt Trojúhelníky 17.1. Základní popis, zadání úkolu Pracujeme na projektu Trojúhelníky, který je ke stažení na java.vse.cz. Aplikace je napsána s textovým uživatelským

Více

Seminář Java II p.1/43

Seminář Java II p.1/43 Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii

Více

Programování v C++ 2, 4. cvičení

Programování v C++ 2, 4. cvičení Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

Programování v C++ 1, 5. cvičení

Programování v C++ 1, 5. cvičení Programování v C++ 1, 5. cvičení konstruktory, nevirtuální dědění 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené

Více

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

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

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

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro

Více

Datové struktury. alg12 1

Datové struktury. alg12 1 Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou

Více

Java a XML. 10/26/09 1/7 Java a XML

Java a XML. 10/26/09 1/7 Java a XML Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis

Více

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

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

Práce se soubory. Úvod do programování 2 Tomáš Kühr Práce se soubory Úvod do programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup

Více

Připravil: David Procházka. Programovací jazyk C++

Připravil: David Procházka. Programovací jazyk C++ 17. října 2011, Brno Připravil: David Procházka Práce s výjimkami Programovací jazyk C++ Obecně Strana 2 / 21 Jak se může program zachovat při chybě Dříve byl obvyklý způsob zavolat metodu abort. Metoda

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu Seminář Java Zavádění tříd Radek Kočí Fakulta informačních technologií VUT Duben 2008 Radek Kočí Seminář Java Zavádění tříd 1/ 16 JVM zavádí třídy dynamicky Class loader objekt schopný zavádět třídy abstraktní

Více

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

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Datové typy a struktury

Datové typy a struktury atové typy a struktury Jednoduché datové typy oolean = logická hodnota (true / false) K uložení stačí 1 bit často celé slovo (1 byte) haracter = znak Pro 8-bitový SII kód stačí 1 byte (256 možností) Pro

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++

Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++ Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++ Prostory jmen U programů mohou někdy nastat kolize mezi jmény (tříd, funkcí, globálních proměnných atd.) pokud v různých

Více

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13 Obsah Úvod 11 Platforma.NET 11.NET Framework 11 Visual Basic.NET 12 1 Základní principy a syntaxe 13 Typový systém 13 Hodnotové typy 13 Struktury 15 Výčtové typy 15 Referenční typy 15 Konstanty 16 Deklarace

Více

Java Výjimky Java, zimní semestr

Java Výjimky Java, zimní semestr Java Výjimky 1 Výjimky (exceptions) hlášení a ošetření chyb výjimka signalizuje nějaký chybový stav výjimka = instance třídy java.lang.throwable dvě podtřídy java.lang.error a java.lang.exception konkrétní

Více

Práce s textem. Třída Character. Třída Character. Třída Character. reprezentuje objekty zapouzdřující hodnotu typu char (boxing / unboxing)

Práce s textem. Třída Character. Třída Character. Třída Character. reprezentuje objekty zapouzdřující hodnotu typu char (boxing / unboxing) Třída Character Práce s textem doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz reprezentuje objekty zapouzdřující hodnotu

Více

Základy objektové orientace I. Únor 2010

Základy objektové orientace I. Únor 2010 Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných

Více

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9 Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií

Více

Algoritmizace a programování. Terminálový vstup a výstup

Algoritmizace a programování. Terminálový vstup a výstup Algoritmizace a programování Terminálový vstup a výstup Verze pro akademický rok 2012/2013 1 Výpis hodnot Terminálový vstup a výstup budeme používat jako základní způsob interakce programu s uživatelem

Více

Maturitní témata Školní rok: 2015/2016

Maturitní témata Školní rok: 2015/2016 Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní

Více

Reprezentace základních typů, pole, funkce a procedury

Reprezentace základních typů, pole, funkce a procedury Reprezentace základních typů, pole, funkce a procedury Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 A0B36PR1 Programování 1 Jan Faigl, 2015 A0B36PR1

Více

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

IB111 Programování a algoritmizace. Objektově orientované programování (OOP) IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,

Více

SEMESTRÁLNÍ PROJEKT Y38PRO

SEMESTRÁLNÍ PROJEKT Y38PRO SEMESTRÁLNÍ PROJEKT Y38PRO Závěrečná zpráva Jiří Pomije Cíl projektu Propojení regulátoru s PC a vytvoření knihovny funkcí pro práci s regulátorem TLK43. Regulátor TLK43 je mikroprocesorový regulátor s

Více

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více