Výjimky. Práce se soubory.
|
|
- Sabina Němečková
- před 5 lety
- Počet zobrazení:
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 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íceProgramová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íceMichal 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íce3. Ří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íceIB111 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íceIB111 Ú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íceZ. 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íce10. 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íceDatové 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íceSPJA, 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ícePython 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íceOš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íceInovace 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ícePř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íceSemestrá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íceMichal 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) 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íceAlgoritmizace 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íceSemin 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íceVý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íce1. 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íceMaturitní 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íceMotivace. 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íceDynamické 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ícePrá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íceProgramovací 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ícePř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íceDynamické 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íceVISUAL 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íce2) 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íceMichal 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íceFunkce - 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íceKTE / 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íce1. 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íceObsah. Ú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íceProgramová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íceSoubor 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íceProgramovací 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ícePOČÍ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íceAlgoritmus. 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 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íce8. 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íceDynamické 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íceShapefile. 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íceObsah. 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íceAlgoritmizace, 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íceObsah 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íceVý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íce7. 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íceFunkcioná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íceFunkce, 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íceAlgoritmy 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) 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) 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íceUniverzita 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íceDSL 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ícePrá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íceJava 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íce1. 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íceJazyk 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ícePB161 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: 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í
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íceUJO 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ícePsaní 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íceZá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íceTextové 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íceAlgoritmizace 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íceJava - 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ícePrá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íceProgramová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ícePlatforma.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íce1. Ú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íceSOUBORY, 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íce9.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íceDě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íce1 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íceBasic256 - ú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íceZá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íceOGC 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íceText ú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íceProgramová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ícePř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ícePrá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íceVý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íceProgramová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íceBooleovská 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íceJazyk 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íceKá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íceJava 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ícePREPROCESOR 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íceProgramovací 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ícePROGRAMOVÁ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íceAplikovaná 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íce8. 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íceObsah. 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íce6. 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íceObsah. Čá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ícePří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íceKá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