Výjimky. Práce se soubory.

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

Download "Výjimky. Práce se soubory."

Transkript

1 Výjimky. Práce se soubory. Výjimky. Hiearchie výjimek. Práce se soubory. Textový režim. Binární režim. Serializace. Tomáš Bayer Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. 1 / 37

2 Obsah přednášky 1 Výjimky 2 Práce se soubory 3 Textové soubory 4 Binární soubory 5 Serializace 2 / 37

3 Výjimky 1. Výjimky Ošetření chyb, ke kterým dochází za běhu programu (runtime). Neřeší syntaktické chyby. Příklady: chyby vstupu, výstupu, chyby aritmetických operací. Pokud neošetříme, dojde k pádu aplikace ztráta dat Varianty reakce na chybu : 1 Ukončení běhu programu Nepředvídatelnost vzhledem ke vstupu, ztráta dat. 2 Ošetření všech singularit Snaha ošetřit všechny možné chybové stavy. Prakticky nemožné, nepřehledný kód. 3 Použití vyjímek Odchycení a ošetření skupin chyb jednotně. Často se kombinují metody 2), 3). Mechanismus práce s výjimkami podobný pro většinu jazyků. 3 / 37

4 2. Syntaktická vs. run-time chyba Syntaktická chyba: >>> primt("hello world") Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'primt' is not defined Run-time (běhová) chyba: Odmocnina ze záporného čísla >>> sqrt(-1) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: math domain error Dělení nulou >>> 1/0 Traceback (most recent call last): File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero Chyba konverze >>> a = int(input("input value:")) Input value:r Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: 'r'

5 Výjimky 3. Výjimka (Exception) Stav programu v okamžiku, kdy dojde při jeho vykonávání k chybě. Vytvořen objekt, který nese informaci o typu chyby. Upozornění na výjimku chybovým hlášením. Všechny výjimky potomkem třídy BaseExceptions. Specifické výjimky pro různé typy chyb. Nejčastější použití: aritmetické chyby, překročení indexu, práce se soubory, konverze. 5 / 37

6 Výjimky 4. Ošetření výjimek Výjimky lze ošetřit 3 způsoby: 1 Propagace výjimky: Výjimka není ošetřena v metodě, ve které vznikla. Je předána do nadřazené úrovně. 2 Chráněné bloky: Výjimka je ošetřena v metodě, ve které vznikla. Na vyšších úrovních neřešeno. 3 Kombinace 1) a 2): Výjimka (částečně) ošetřena v místě, kde vznikla. Dále předána do nadřazené úrovně. Používáno nejčastěji. Umožňuje komplexní obsloužení výjimky. 6 / 37

7 Výjimky 5. Propagace výjimky Výjimka není ošetřena v místě, kde vznikla. Její zpracování předáváme do nadřízené úrovně. Hierarchie předávání metoda->main->python Použito např. v cyklu, nechceme opakovaně chybu řešit v těle. Při prvním výskytu výjimky ji předáme výše dořešení. Není -li dořešena v main(), ukončení programu. Příkaz raise raise exception(args) raise exception raise Nepoužívat generický typ, ale co nejkonkrétnější. 7 / 37

8 Výjimky 6. Ukázka propagace výjimky Výpočet poloměru kružnice při známém obvodu. Propagace do main() Volání: def getr(p): if p > 0: return p / (2 * pi) else raise ValueError(Perimeter < 0:, p) >>> print(getr(1)) Pokud v main() neošetřeno, pád programu: >>> print(getr(-1)) #Neosetrena vyjimka File "...exceptions.py", line 20, in <module> main() File "...exceptions.py", line 15, in main print(getr(-1)) 8 / 37

9 Výjimky 7. Ošetření metodou chráněných bloků Ošetření výjimky v místě, kde vznikla. Konstrukce try-catch, v Pythonu try-except. Chráněný blok try() obsahuje nebezpečný kód. try: blok prikazu except vyjimka_1: blok prikazu... except vyjimka_n: blok prikazu else: blok prikazu finally: blok prikazu Blok except(), ošetření konkrétního typu výjimky. Blok else(), volitelný, provede se, pokud try() úspěšný. Blok finally(), volitelný, provede se vždy. 9 / 37

10 Výjimky 8. Ukázka try-except 10 / 37

11 Výjimky 9. Ukázka chráněného bloku def f (x): try: return sqrt(x[0]/x[1]) except ZeroDivisionError: return -1 #Chybovy kod, deleni nulou except ValueError: return -2 #Chybovy kod, numericka chyba except IndexError: return -3 #Chybovy kod, spatny index except Exception: return -4 #Nespecifikovana chyba else: Volání funkce: x = [1, 2, 7] r = f(x) print("ok results") 11 / 37

12 Výjimky 10. Zásady práce s výjimkami Nepoužívat prázdné bloky except() řádná reakce na chybu. Odchycení obecné chyby: společný předchůdce, třída Exception. Odchycení více vyjímek: řazení dle dědické hierarchie: except Predek:... except Nejaky_rodic:... except Nejaky_rodic_rodice:... Čím obecnější, tím níže v except() bloku. Odchycení informací o výjimce do proměnné except ValueError as e: Vytištění informace o výjimce: při odlad ování programu except ValueError as e: print(e) 12 / 37

13 Výjimky 11. Kombinace chráněných bloků a propagace Kombinace předchozích postupů. Umožňuje výjimku ošetřit v místě, kde vznikla a ji předat výše. Na výjimku lze reagovat opakovaně na různých úrovních programu. V praxi nejpoužívanější metoda, zvláště u komplikovaných SW. def f (x): try: return sqrt(x[0]/x[1]) except ZeroDivisionError as e: raise e except ValueError as e: raise e except IndexError as e: raise e except Exception as e: raise e 13 / 37

14 Výjimky 12. Kombinace chráněných bloků a propagace Spojení aritmetických vyjímek do nadřazené. Použití ArtihmeticError: společný předek. Společná reakce na špatná vstupní data. def main(): x = [1,2] try: r = f(x) except ArithmeticError: #Vsechny aritmeticke chyby print(bad data) exceptindexerror: #Index pole print(list contains less than 2 elements) 14 / 37

15 Výjimky 13. Vlastní výjimky Lze vytvářet vlastní třídy výjimek odvozených od Exception. Možnost ošetření stavů, které nelze odchytit běžnými výjimkami. Volání: class FactorialError(Exception): def init (self, value, message): self.value = value self.message = message def f(n): if abs(n) > 100: raise FactorialError(n, Factorial, n>100) if n > 1: return n * f(n-1) else: return 1 15 / 37

16 14. Práce se soubory Práce se soubory Soubory - načítání/ukládání dat vytvořených SW. Python 3 podporuje široké spektrum operací se soubory. Typy souborů: textové, binární, HTML, XML, JSON. Podpora ZIP komprese/dekomprese. Velké množství externích knihoven: práce s rastry, shape fily... Základní operace: Otevření, čtení, zápis, uzavření, komprese, dekomprese. serializace. Soubor reprezentován streamem (proudem). Manipulace se soubory v try-except bloku: IOError. 16 / 37

17 15. Textový soubor Práce se soubory Představován posloupností řádek. Každá řádka tvořena posloupností znaků. Konec řádky, zkratka EOL (různý pro různé OS), vyjádřen \n CR + LF LF CR WinX GNU/Linux MacOS Unicode: LF (0x0A), CR(0x0d) Čitelný, lze snadno editovat. Ukázka: / 37

18 Práce se soubory 16. Binární soubor Tvořen posloupností bytů zapsaných v hexadecimální soustavě. Ne vše lze uložit jako text. Souvislý blok dat, není dělen na řádky, slova. Není přímo čitelný bez znalosti formátu. Záhlaví představováno headerem (hlavičkou) s popisem formátu (nepovinné). Následuje vlastní datová oblast. Používán např. pro spustitelné soubory (exe, bin). Ukládání rastrových dat, hudby, videa, dokumentů. Ukázka: ' AÁ~ S 64'ÁôýÔX/0Áj ôóš&á F ó}ö!'ázd;»v /Álç{!'Ááz v/á F ó}ö!'áház v/á " Ä!'Ááz v/álç {!'Á%Uv/Á# >!'ÁZd;»v/ÁF ó}ö!'áház rh`!' Áo ÿv/ávm!'á±ä 0Çv/Á rh`!'á333ó v/á-!'á±ä 0Çv/ ÁVm!'ÁÖŠp Öv/Á Ä`!'Áo ÿv/á rh`!'á333ó Zd!'Á óýt\w/áé&1!'ávbw/á Zd!'Á` ÐâJw/ÁT!'ÁVBw/ Áé&1!'Áé&1ƒSw/ÁDlg!'Á óýt\w /ÁZd!'Á` Ä 18 / 37

19 17. Otevření souboru Práce se soubory Soubor lze otevřít v několika módech file_object = open(file_name, mode) V cestě nepoužita zpětná lomítka: E:/Data/my_file.txt Přehled módů: Označení Mód Popis r Read Otevření souboru pro čtení (read only). w Write Otevření souboru pro zápis, původní obsah přepsán. a Append Otevření souboru pro zápis, přidání nových dat na konec r+ Read/Write Kombinace čtení i zápisu. t Text Otevření v textovém režimu (default) b Binary Otevření v binárním režimu. 19 / 37

20 Práce se soubory 18. Ukázka otevření souboru Otevření v try-except bloku: import os def tiletest(file): try: open(file, "r") result 1 except IOError: print ("Error: File does not exist.") result 0 finally: close(file) return result Volání funkce: result = FileCheck("test.txt") print (result) 20 / 37

21 19. Vlastnosti proudu Práce se soubory Existuje mnoho nástrojů, které lze zjistiti stav streamu: file = open(test.txt, "r") Název souboru/proudu: file.name Dotaz, zda je proud otevřený/zavřený: file.close Dotaz na mód: file.mode Lze z něj číst? file.mode Lze do něj zapisovat? file.writable Tomáš Uzavření Bayer bayertom@natur.cuni.cz proudu: velmi (Katedra důležitá aplikované Výjimky. geoinformatiky funkce. Práce se soubory. a kartografie, Přírodovědecká fakulta UK.) 21 / 37

22 Práce se soubory 20. Příkaz with Jednodušší syntaxe než s využití try-except-finally. Lze použít pro čtení i zápis. Provádí automatické uzavření souboru i v případě výjimky. Ve většině případů doporučováno jako výchozí metoda. with open(file_name) as file_object: do_something Ukázka otevření souboru: with open(file_name) as file_object: data = file.read() Následně není nutné řešit close(). 22 / 37

23 Textové soubory 20. Čtení z textového souboru 3 základní varianty: 1 Načtení celého souboru Načtení celého souboru najednou do proměnné typu String. file_content = file.read() 2 Čtení po řádcích Načte s každým zavoláním další řádku souboru, String file_line = file.readline() 3 Načtení souboru po řádcích Subor načten jednorázově, po řádcích. Výsledek seznam Stringů. file_line = file.readlines() 4 Čtení předem specifikovaného počtu znaků Načtení předem daného množství n znaků do Stringu. file_part = file.read(n) 23 / 37

24 21. Ukázka načtení souboru po řádkách Varianta 1: Varianta 2: Varianta 3: Varianta 4: Varianta 5: with open(test.txt, r) as f: for l in f.readlines(): print(l) for l in f: print(l) l = f.readline() while l: print(l) l = f.readline() print(f.read().split("\n")) print(f.readlines())

25 Textové soubory 22. Problém s EOL Na konci řádky EOL: Monday \n Tuesday \n Wednesday \n... Odstranění white spaces: for l in f: print(l.strip()) Alternativně: f.read().splitlines() 25 / 37

26 23. Pohyb v oteřeném streamu Zjištění pozice ve streamu v bytech: tell() #Nabyva hodnot <0, n-1> Posun na aktuální pozici v souboru v bytech: Módy: seek(position, mode) Mód Vyjádření Popis 0 os.seek_set Posun na začátek souboru. 1 os.seek_cur Posun na aktuální pozice. 2 os.seek_end Posun na konec souboru. Ukázka použití: skok na konkrétní řádku. Pamatujeme si délky řádek, ukládáme do seznamu. Pak: begins = [] begin = 0 for l in f: begins.append(begin) begin = begin + len(l) f.seek(begins[k]) #Skok na k-tou radku

27 24. Zápis do souboru Textové soubory Do oteřeného proudu lze zapisovat. V režimu w původní obsah souboru nahrazen. V režimu a připisujeme na konec souboru. Po skončení zápisu soubor nutno uzavřít. Zapisování po řádcích: využití \n write(string) Ukázka line = Friday\n file = open(test.txt,a) file.write(line) file.close #Pridani dat na konec souboru 27 / 37

28 Binární soubory 25. Čtení z binárního souboru Binární soubory mohou obsahovat různá data (obrazová, dokumenty,...). Soubory načítáme po bytech (1B!= 1 znak). Nutno nastavit mód b (binary). f = open(picture.jpg, rb) file_content = f.read() #Nacteni celeho souboru file_content = f.read(n) #Nacteni n bytu f.seek(2) #Skok na konec souboru length = f.tell() #Zjisteni delky souboru f.seek(0) #Skok na pocatek souboru\ Bez externích knihoven bude rastr interpretován jako proud bajtů. Pro další práci nutné knihovny. 28 / 37

29 Binární soubory 26. Zápis do binárního souboru Zápis dat do souboru po bytech. Vyjádřeny jako hexadecimální řetězce: znaky 0-9, A-F. Prefix každého bajtu \x. f.write(b\xa0\xa1\xa2\xa3) #Zapis 4 bytu V Pythonu 3 datový typ bytearray Pak: b = [160, 161, 162, 163] ba = bytearray(b) f2.write(ba) f2.close() >>> print(ba) bytearray(b'\xa0\xa1\xa2\xa3') 29 / 37

30 Serializace 27. Serializace Uložení/načtení obsahu datových struktur do/z souboru. Soubory (textové, binární) odevírat v módech rb/r a wb/w. Data mohou být použita při dalším spuštnění. Využití pro ladění programů. Nevýhoda: obtížná editace obsahu (binární soubory). Podpora serializace pro: Základní datové typy. Dynamické datové struktury. Funkce. Třídy. Modul pickle: 4 verze protokolů, vzájemná nekompatabilita. 30 / 37

31 Serializace 27. Serializace a deserializace pickle, ukázka Uložení do souboru: metoda dump(data_object, file) import pickle d = {'name' : 'John', 'surname': 'Smith', 'job': 'cartographer', 'age' : '25'} with open('test.pickle', 'wb') as f: pickle.dump(d, f) Ukázka souboru test.pickle: }q (X nameqx JohnqX ageqx 25qX jobqx cartographerqx surnameqx Smithqu. Načtení ze souboru: metoda load(data_object, file) with open('test.pickle', 'rb') as f: d2 = pickle.load(f) 31 / 37

32 Serializace 28. Serializace s využitím JSON Uložení/načtení do formátu JSON. JSON: Java Script Object Notation. Univerzální formát pro serializaci objektů. Výhodou textová struktura, snadno lze editovat. Existuje i jeho prostorová varianta: GeoJSON. Jedna z možností vstupu prostorových dat do Pythonu. Podpora serializace/deserializace pro stejné typy jako u Pickle. Uložení a načtení, metody dump() a load(). Soubory otevřeny v režimech r, w. 32 / 37

33 Serializace 29. Serializace a deserializace JSON, ukázka Uložení do souboru: metoda dump(data_object, file) import json d = {'name' : 'John', 'surname': 'Smith', 'job': 'cartographer', 'age' : '25'} with open('test.json', 'w') as f: json.dump(d, f) Ukázka souboru test.json: {"age": "25", "surname": "Smith", "job": "cartographer", "name": "John"} Načtení ze souboru: metoda load(data_object, file) with open('test.json', 'rb') as f: d2 = json.load(f) 33 / 37

34 Serializace 30. GeoJSON Formát pro výměnu prostorových dat založený na JavaScriptu (2008). Textová formát, snadná čitelnost, univerzalita. Používán často pro webové mapování. Nevýhodou neefektivita popisu, vhodný pro menší data. Ukládá pouze geometrická data, atributová nikoliv. Založen na sytému WGS-84, jednotky: stupně. Podpora entit dle OGIS (7): Point, LineString, Polygon + multi varianty. Detailní specifikace formátu: 34 / 37

35 31. Podpora GeoJSON v Pythonu 3 Python 3 podporuje práci s formátem GeoJSON. Instalace: pip install geojson Ukázka struktury GeoJSON: kompozice Feature Objects { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": {}, "geometry": { "type": "LineString", "coordinates": [ [ , ], [ , ] ] } } ] }

36 Serializace 32. Serializace a deserializace GeoJSON, ukázka Načtení ze souboru: metoda load(data_object, file) import geojson with open('test.geojson') as f: d = geojson.load(f) Výpis entit: Uloženy ve slovníku, klíč features. Každá feature tvořena slovníkem, klíč geometry. for f in d['features']: print f['geometry']['type'] print f['geometry']['coordinates'] Uložení do souboru: metoda dump(data_object, file) with open('test2.geojson', 'w') as f: geojson.dump(d, f) 36 / 37

37 33. Znázornění GeoJSON

Chyby a výjimky. Chyba. Odkud se chyby berou? Kdo chyby opravuje? Co můžete dělat jako programátor? Dvě hlavní metody práce s chybami.

Chyby a výjimky. Chyba. Odkud se chyby berou? Kdo chyby opravuje? Co můžete dělat jako programátor? Dvě hlavní metody práce s chybami. Chyby a výjimky Petr Pošík Katedra kybernetiky, FEL ČVUT v Praze OI, B4B33RPH Řešení problémů a hry, 2016 Chyba Stav programu (podmínky), který mu brání v dosažení požadovaného výsledku. Odkud se chyby

Více

Programování v Pythonu

Programování v Pythonu ƒeské vysoké u ení technické v Praze FIT Programování v Pythonu Ji í Znamená ek P íprava studijního programu Informatika je podporována projektem nancovaným z Evropského sociálního fondu a rozpo tu hlavního

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

3. Řízení běhu programu

3. Řízení běhu programu Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 3 1 Základy algoritmizace 3. Řízení běhu programu doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze

Více

IB111 Základy programování Radek Pelánek

IB111 Základy programování Radek Pelánek Proměnné, paměť, soubory IB111 Základy programování Radek Pelánek 2017 1 / 54 Rozcvička I a = [3, 1, 7] print(sorted(a)) print(a) b = [4, 3, 1] print(b.sort()) print(b) 2 / 54 Rozcvička II a = ["magic"]

Více

IB111 Úvod do programování skrze Python Přednáška 7

IB111 Úvod do programování skrze Python Přednáška 7 IB111 Úvod do programování skrze Python Přednáška 7 Správa paměti (proměnné podrobněji) Práce se soubory Nikola Beneš 2. listopad 2016 IB111 přednáška 7: správa paměti, práce se soubory 2. listopad 2016

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

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

Datové typy a jejich reprezentace v počítači.

Datové typy a jejich reprezentace v počítači. Datové typy a jejich reprezentace v počítači. Celá čísla. Reálná čísla. Semilogaritmický tvar. Komplexní čísla. Řetězce. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie,

Více

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ů

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ů 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ů cykly: for, while kolekce: seznam, n-tice, slovník funkce, list

Více

Python profesionálně: dynamické parametry, generátory, lambda funkce... with. Dynamické parametry

Python profesionálně: dynamické parametry, generátory, lambda funkce... with. Dynamické parametry 1 z 9 09.11.2015 10:02 Python profesionálně: dynamické parametry, generátory, lambda funkce a with Články - Michal Hořejšek (https://www.zdrojak.cz/autori/michal-horejsek/) - Různé (https://www.zdrojak.cz/ruzne/)

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

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

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové soubory Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové

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

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

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz Semestrální práce z předmětu KIV/UPA Jan Bařtipán / A03043 bartipan@studentes.zcu.cz Zadání Program přečte ze vstupu dvě čísla v hexadecimálním tvaru a vypíše jejich součet (opět v hexadecimální tvaru).

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

Ú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

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

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

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

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

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

Motivace. Vstup a výstup. Minimální komunikace. Motivace. ÚDPJ - Vstup a výstup. Ing. Lumír Návrat katedra informatiky, A

Motivace. Vstup a výstup. Minimální komunikace. Motivace. ÚDPJ - Vstup a výstup. Ing. Lumír Návrat katedra informatiky, A Motivace Vstup a výstup Ing. Lumír Návrat katedra informatiky, A-1018 59 732 3252 Načtení čísla val :: Int val = 42 function :: Int -> Int function = val + n inputint :: Int inputdiff = inputint - inputint

Více

Dynamické datové struktury IV.

Dynamické datové struktury IV. Dynamické datové struktury IV. Prioritní fronta. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra

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

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

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

Dynamické datové struktury III.

Dynamické datové struktury III. Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované

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

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

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

Funkce - opakování. Funkce může přijímat parametry na vstupu a může vracet parametry na výstupu.

Funkce - opakování. Funkce může přijímat parametry na vstupu a může vracet parametry na výstupu. ZAL 3. cvičení 2016 Funkce - opakování Funkce může přijímat parametry na vstupu a může vracet parametry na výstupu. Délka funkce by měla být rozumná. Tipněte si co je rozumná délka funkce. V Pythonu se

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

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

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

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

Programování v Pythonu

Programování v Pythonu ƒeské vysoké u ení technické v Praze FIT Programování v Pythonu Ji í Znamená ek P íprava studijního programu Informatika je podporována projektem nancovaným z Evropského sociálního fondu a rozpo tu hlavního

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

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí) Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog

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

Algoritmus. Algoritmus je posloupnost kroků, které jsou potřeba k vyřešení problému.

Algoritmus. Algoritmus je posloupnost kroků, které jsou potřeba k vyřešení problému. ZAL 2. cvičení 2016 Algoritmus Algoritmus je posloupnost kroků, které jsou potřeba k vyřešení problému. Algoritmus na vstupu přijímá instanci problému a na výstupu dává řešení zadané instance. U algoritmu

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

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

Dynamické datové struktury I.

Dynamické datové struktury I. Dynamické datové struktury I. Seznam. Fronta. Zásobník. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz

Více

Shapefile. Dalibor Tvrdý GIS 2010/11

Shapefile. Dalibor Tvrdý GIS 2010/11 Shapefile Dalibor Tvrdý GIS 2010/11 Co je to shapefile? Shapefile je jednoduchý datový formát pro ukládání prostorových dat Vyvinut společností ESRI (Economic and Social Research Institute) začátkem 90.

Více

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9 Začínáme programovat v Ruby on Rails 9 O autorovi 9 Poděkování 9 Úvod 11 Komu je kniha určena 11 Jak je kniha uspořádána 11 Co ke knize potřebujete 12 Konvence 12 Zdrojový kód 13 Poznámka redakce české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

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

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 Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup

Více

Výjimky. Tomáš Pitner, upravil Marek Šabo

Výjimky. Tomáš Pitner, upravil Marek Šabo Výjimky Tomáš Pitner, upravil Marek Šabo K čemu jsou výjimky Výjimky jsou mechanizmem umožňujícím reagovat na nestandardní (tj. chybové) běhové chování programu, které může mít různé příčiny: chyba okolí:

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

Funkcionální programování. Kristýna Kaslová

Funkcionální programování. Kristýna Kaslová Funkcionální programování Kristýna Kaslová Historie Alonzo Church (30. léta) Netypovaný lambda kalkul Základ prvních funkcionálních jazyků Jeho konstrukce i v mnoha současných programovacích jazycích (Python)

Více

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Funkce, podmíněný příkaz if-else, příkaz cyklu for Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto

Více

Algoritmy a datové struktury

Algoritmy a datové struktury Algoritmy a datové struktury 1 / 34 Obsah přednášky Základní řídící struktury posloupnost příkazů podmínka cyklus s podmínkou na začátku cyklus s podmínkou na konci cyklus s pevným počtem opakování Jednoduchá

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

Ú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

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 19.2.

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 19.2. Základy programování 4 - C# 2. cvičení Radek Janoštík Univerzita Palackého v Olomouci 19.2.2019 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 19.2.2019 1 / 19 Reakce na úkoly

Více

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

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

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

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

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

PB161 programování v C++ Výjimky Bezpečné programování

PB161 programování v C++ Výjimky Bezpečné programování PB161 programování v C++ Výjimky Bezpečné programování Chyby... Snaha psát programy bez chyb myslet : ) Snaha psát programy se schopností fault tolerance. snaha se z chybového stavu dostat lze řešit testováním

Více

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

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

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

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

Více

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/ UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok

Více

Psaní jednoduchých programů (2. přednáška) F F U K. Jonathan L. Verner. Department of Logic

Psaní jednoduchých programů (2. přednáška) F F U K. Jonathan L. Verner. Department of Logic Psaní jednoduchých programů (2. přednáška) Jonathan L. Verner Vývoj software Vývoj není jednoduchý. Počítači je nutné říci všechno do nejmenších detailů. Počítač je tupý. Proto je třeba systematického

Více

Základy XML struktura dokumentu (včetně testových otázek)

Základy XML struktura dokumentu (včetně testových otázek) Základy XML struktura dokumentu (včetně testových otázek) Otakar Čerba Oddělení geomatiky Katedra matematiky Fakulta aplikovaných věd Západočeská univerzita v Plzni Přednáška z předmětu Počítačová kartografie

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

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

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

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

Programování v Pythonu

Programování v Pythonu ƒeské vysoké u ení technické v Praze FIT Programování v Pythonu Ji í Znamená ek P íprava studijního programu Informatika je podporována projektem nancovaným z Evropského sociálního fondu a rozpo tu hlavního

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

1. Úvodní informace. BI-EP1 Efektivní programování Martin Kačer

1. Úvodní informace. BI-EP1 Efektivní programování Martin Kačer 1. Úvodní informace BI-EP1 Efektivní programování 1 ZS 2011/2012 Ing. Martin Kačer, Ph.D. 2010-11 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické

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

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h> 9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte

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

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

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

Basic256 - úvod do programování Příklady. ing. petr polách Basic256 - úvod do programování Příklady ing. petr polách 1 Basic 256 input, print Př.: Vytvořte program pro součet dvou čísel: input "Zadej a: ", a input "Zadej b: ", b print a+b input "Zadej a: ", a

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

OGC GeoPackage nový formát pro výměnu prostorových dat. Jáchym Čepický OpenGeoLabs s.r.o. GIVS 2018

OGC GeoPackage nový formát pro výměnu prostorových dat. Jáchym Čepický OpenGeoLabs s.r.o. GIVS 2018 OGC GeoPackage nový formát pro výměnu prostorových dat Jáchym Čepický OpenGeoLabs s.r.o. GIVS 2018 Shapefile: prokletí současné geoinformatiky Jáchym Čepický OpenGeoLabs s.r.o. GIVS 2018 (ESRI) Shapefile

Více

Text úlohy. Systémový katalog (DICTIONARY):

Text úlohy. Systémový katalog (DICTIONARY): Úloha 1 Částečně správně Bodů 050 / 100 Systémový katalog (DICTIONARY): a Se skládá z tablek a pohledů uložených v tabulkovém SYSTEM b Všechny tabulky vlastní uživatel SYS c Se skládá z tablek a pohledů

Více

Programování v Pythonu

Programování v Pythonu ƒeské vysoké u ení technické v Praze FIT Programování v Pythonu Ji í Znamená ek P íprava studijního programu Informatika je podporována projektem nancovaným z Evropského sociálního fondu a rozpo tu hlavního

Více

Přechod webových aplikací na Python 3 Tomáš Pazderka 6. listopadu 2018

Přechod webových aplikací na Python 3 Tomáš Pazderka 6. listopadu 2018 Přechod webových aplikací na Python 3 Tomáš Pazderka tomas.pazderka@nic.cz 6. listopadu 2018 Python 3 První verze vyšla 2008 První production ready verze vyšla 2009 Řešení některých chyb v návrhu jazyka

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

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -

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

Booleovská algebra. Pravdivostní tabulka. Karnaughova mapa. Booleovské n-krychle. Základní zákony. Unární a binární funkce. Podmínky.

Booleovská algebra. Pravdivostní tabulka. Karnaughova mapa. Booleovské n-krychle. Základní zákony. Unární a binární funkce. Podmínky. Booleovská algebra. Pravdivostní tabulka. Karnaughova mapa. Booleovské n-krychle. Základní zákony. Unární a binární funkce. Podmínky. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky

Více

Jazyk C# a platforma.net

Jazyk C# a platforma.net Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 1. část BI-DNP Evropský sociální fond

Více

Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické

Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické Kámen-nůžky-papír Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické Studijní program: Otevřená informatika 2018-10-09 08/10/18 než začneme

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

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

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí) Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog

Více

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

PROGRAMOVÁNÍ V C++ CVIČENÍ PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné

Více

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu 1 Podklady předmětu pro akademický rok 2006/2007 Radim Farana Obsah 2 Obsah předmětu, Požadavky kreditového systému, Datové typy jednoduché, složené, Programové struktury, Předávání dat. Obsah předmětu

Více

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

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

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

Obsah. Část I Začínáme s jazykem AppleScript

Obsah. Část I Začínáme s jazykem AppleScript Obsah Úvod... 13 Je tato kniha pro vás?...13 Jaká témata kniha pokrývá?...13 Proč je text vytištěný tolika různými druhy písma a k čemu jsou všechny ty podivné značky?...15 Zpětná vazba od čtenářů...16

Více

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 -

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 - 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 - Preprocesor je možné ovládat pomocí příkazů - řádky začínající

Více

Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické

Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické Kámen-nůžky-papír Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické Studijní program: Otevřená informatika 2017-10-10 18/10/17 než začneme

Více