MULTIPLATFORMNÍ PROGRAMOVÁNÍ Přednáška č.10 Programovací jazyk Python, úvod, instalace, základní vlastnosti a příkazy. Programovací jazyk Python

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

Download "MULTIPLATFORMNÍ PROGRAMOVÁNÍ Přednáška č.10 Programovací jazyk Python, úvod, instalace, základní vlastnosti a příkazy. Programovací jazyk Python"

Transkript

1 Programovací jazyk Python

2 Co je Python? Python je moderní, platformně nezávislý, interpretovaný programovací jazyk s automatickou správou paměti a dynamickými datovými typy. Umožňuje rychlejší a efektivnější vývoj aplikací než C/C++, Java nebo.net Podporuje platformy Windows, Unix (Linux), OS/2, Macintosh (OS X) Výborně spolupracuje s jinými programovacími jazyky SDK Pythonu obsahuje API rozhraní pro jazyk C Existuje implementace Python syntaxe nad jazykem Java (lze programovat plnohodnotné Java aplikace v jazyce Python) Python lze používat v interaktivním módu, nebo jako klasický prog. jazyk Existuje celá řada aplikací (komerčních i open source), které používají Python jako rozšiřující/skriptovací technologii Caligari TrueSpace, Blender,

3 Python vs. Jiné programovací jazyky Rychlost výpočtu Rychlost pořízení zdrojového kódu Objektová orientace GUI Vývojové prostředí Vhodnost pro velké projekty Dostupnost knihoven Python 2, * Perl 2,5 1 2,5 2* 2,5 2,5 1.NET 2 1, C * C++ 1 2,5 1 1* 1 1,5 2 Java 2, hodnoceno jako ve škole 1-nejlepší, 4-nevyhovující *) za použití externích knihoven

4 Python a Hello World! Python: print "Hello World!" Java: public class Hello { public static void main(string[] args) { System.out.println("Hello World!"); } } C/C++: #include <stdio.h> void main(void) { printf("hello World!"); }

5 Kde získat Python? Instalace pythonu: Windows: Linux: Python je šířen ve formě jednoduchého instalátoru (obsahuje interpreter, knihovní soubory, základní moduly a jednoduché IDE) Python je součástí každé distribuce Linuxu, a/nebo je distribuován ve formě balíčků Vybraná vývojová prostředí: Windows/Linux: Libovolná distribuce Eclipse + rozšíření PyDev SPE Windows: Linux: (balíčky) (balíčky) PyScripter Erik (balíčky)

6 Interaktivní konzola Spuštění Pythonu: Windows: Linux: Soubor python.exe (pythonw.exe). Je užitečné doplnit cestu k exe souborům do systémové proměnné PATH. V terminálu napíšeme příkaz python

7 Eclipse IDE + PyDev (doporučeno)

8 PyScripter IDE

9 Shrnutí Automatická správa paměti Jednoduchá syntaxe a sémantika Použitelný pro všechny hlavní platformy Vysoce modulární Vhodný pro psaní skriptů i rozsáhlých projektů Dostatečně rychlý a snadno rozšířitelný o moduly napsané v C/C++ Snádná tvorby GUI pomocí knihoven třetích stran (wxpython, PyGTK, PyQt, ) Zabudované funkce pro trvalé ukládání objektů, vyspělá asociativní pole Výkonné knihovny pro numerické výpočty, manipulace s obrázky, Podpora webových technologií (tvorba webových skriptů, webových služeb (server i klient), ) Podpora široké a aktivní komunity uživatelů Lze ho integrovat s řadou jiných programovacích jazyků Jython, Moduly v C/C++

10 Přehled jazyka Python

11 Základy jazyka (1/2) Odsazování textu a bloková struktura kódu Python používá pro určení struktury kódu odsazování Program, který není správně odsazený je syntakticky vadný! Komentáře jsou uvozeny znakem # Víceřádkové dokumentační komentář jsou uvezeny a = 5 b = 6 if a < b: print "A je mensi nez b" else: print "B je mensi nez a"

12 Základy jazyka (2/2) Přiřazování proměnných Proměnné v Pythonu nemají deklarovaný datový typ Datový typ je vázán na objekt, ne na proměnnou, která s objektem pracuje Jedné proměnné lze v jednom programu přiřadit data různých typů Existují globální a lokální proměnné. Každá proměnná je implicitně považována za lokální. Globální proměnné jsou uvozeny klíčovým slovem global >>> a = "Ahoj" >>> print a 'Ahoj' >>> a = 5 >>> print a 5

13 Interní datové typy Python obsahuje tyto interní datový typy: Čísla Celá čísla Dlouhá celá čísla Desetinná čísla Komplexní čísla Seznamy N-tice Slovníky Řetězce Souborové objekty

14 Interní datové typy - Čísla Celá čísla 1, -3, 42, 255 Dlouhá celá čísla 42L, L Čísla s desetinnou čárkou: , 31e12, -6e-4 Komplexní čísla: 3+2j, -4-6j Se všemi číselnými typy lze provádět tyto základní aritmetické operace: Sčítání (+) Odčítání (-) Násobení (*) Dělení (/) Mocnina (**) Modulo (%)

15 Příklady operací s číselnými typy Celá čísla: >>> >>> # Toto je komentář >>> 2+2 # a toto je komentář na řádků s kódem 4 >>> (50-5*6)/4 5 >>> # Dělení celých čísel vrací celý výsledek... 7/3 2 >>> 7/-3-3

16 Příklady operací s číselnými typy Desetinná čísla: >>> 3 * 3.75 / >>> 7.0 / Komplexní čísla: >>> 1j * 1J (-1+0j) >>> 1j * complex(0,1) (-1+0j) >>> 3+1j*3 (3+3j) >>> (3+1j)*3 (9+3j)

17 Matematické funkce Vestavěné funkce: abs, divmod, cmp, coerce, float, hex, int, long, max, min, oct, paw, round Další funkce: Další matematické funkce jsou uloženy v modulu math from math import * acos, asin, atan, atan2, ceil, cos, cosh, e, exp, fabs, floor, fmod, frexp, hypot, ldexp, log, log10, mod, pi, pow, sin, sinh, sqrt, tan, tanh Speciální moduly: NumPy Maticové výpočty, rychlá Fourierova transformace (FFT),

18 Interní datové typy - Seznamy Seznamy jsou obdobou (dynamických) polí v C/C++ nebo Javě Prvky v seznamu jsou indexovány celočíselnými hodnotami (od 0) Indexy mohou být kladné (postupuje se od začátku seznamu), nebo záporné (postupuje se od konce seznamu) Jeden seznam může obsahovat položky libovolných typů, nebo další seznamy Se seznamy lze operovat pomocí vestavěných funkcí, nebo matematických operátorů Seznamy lze převádět na n-tice pomocí funkce tuple() Prvky seznamu i indexy se píší do hranatých závorek. Prvky jsou oddělovány čárkou

19 Příklady vytvoření seznamů Ručně vytvořený seznam: >>> a = ['spam', 'eggs', 100, 1234] >>> a ['spam', 'eggs', 100, 1234] Vypočtený seznam: >>> a = 3 * ['ahoj'] + [1, 2, 3] >>> a ['ahoj', 'ahoj', 'ahoj', 1, 2, 3] >>> a = [i for i in range(0, 10) if i%3 == 0] >>> a [0, 3, 6, 9]

20 Indexování seznamů >>> a = ['ahoj', 'nazdar', 100, 1234] >>> a ['ahoj', 'nazdar', 100, 1234] >>> a[0] 'ahoj' >>> a[3] 1234 >>> a[-2] 100 >>> a[1:-1] ['nazdar', 100] >>> a[:2] + ['cau', 2*2] ['ahoj', 'nazdar', 'cau', 4]

21 Řezy seznamů >>> # Nahrazení položek:... a[0:2] = [1, 12] >>> a [1, 12, 123, 1234] >>> # Odstranění položek:... a[0:2] = [] >>> a [123, 1234] >>> # Vložení položek:... a[1:1] = ['hi', 'bye'] >>> a [123, 'hi', 'bye', 1234] >>> # Vožení kopie sebe sama na počátek >>> a[:0] = a >>> a [123, 'hi', 'bye', 1234, 123, 'hi', 'bye', 1234] >>> # Ostranění všech prvků seznamu >>> a[:] = [] >>> a []

22 Zabudované funkce a/pro seznamy Kromě operací s indexy lze seznamy modifikovat pomocí zabudovaných funkcí, atributů a operátorů Funkce přebírají seznam jako parametr len(), del(), min(), max() Atributy jsou volány jako členské funkce seznamu append(), insert(), remove(), reverse(), sort(), index(), count(), pop() Operátory aplikovatelné na seznamy in, not in

23 Příklady využití funkcí seznamů Funkce: >>> a = ['ahoj', 1, 2] >>> a ['ahoj',1,2] >>> len(a) 3 >>> del a[0] >>> a [1, 2] Atributy: >>> a.append('nazdar') >>> a [1, 2, 'nazdar'] >>> a.insert(1, 1.5) >>> a [1, 1.5, 2, 'nazdar'] >>> a.remove(1.5) >>> a [1, 2, 'nazdar']

24 Vnořování seznamů, kopie seznamů Seznamy lze vnořovat do sebe (vícerozměrné matice) Prvkem seznamu může být i jiný seznam Při kopírování vnořených seznamů rozlišujeme mělké a hluboké kopie U mělké kopie se nová instance seznamu odkazuje na vnořené seznamy originálu Hluboká kopie vytvoří kompletně nový seznam a také nové instance vnořených seznamů

25 Příklady vnoření seznamů Vnoření: >>> vnoreny = [0] >>> original = [vnoreny, 1] >>> original [[0], 1] >>> vnoreny[0] = 'nula' >>> original [['nula'], 1] >>> original[0][0] = 0 >>> original [[0], 1] >>> vnoreny = 2 >>> original [[0], 1]

26 Příklady kopií seznamů Mělká a hluboká kopie: >>> melka = original[:] >>> melka [[0], 1] >>> import copy >>> hluboka = copy.deepcopy(original)

27 Interní datové typy N-tice Datová struktura podobná seznamu Lze je vytvářet, ale vytvořené n-tice již nelze modifikovat Používají se např. pro předávání složitějších parametrů (jako argumenty funkce nebo návratové hodnoty) Další vlastnosti: Prvky v n-tici jsou indexovány celočíselnými hodnotami (od 0) Jedna n-tice může obsahovat položky libovolných typů S n-ticemi lze operovat pomocí vestavěných funkcí, nebo matematických operátorů N-tice lze převádět na seznamy pomocí funkce list() Prvky n-tic se píší do kulatých závorek (jsou oddělovány čárkou), indexy se píší do hranatých závorek.

28 Příklady práce s n-ticemi >>> x = ('a', 'b', 'c') >>> x ('a', 'b', 'c') >>> x[2] 'c' >>> x[1:] ('b', 'c') >>> len(x) 3 >>> max(x) 'c' >>> 2 * x ('a', 'b', 'c', 'a', 'b', 'c') >>> 5 in x 0 >>> x[2] = 'd' Traceback (innermost least): File "<stdin>" line 1, in? TypeError: object doesn't support item assignment

29 Jednoprvkové N-tice Jednoprvkové n-tice musí být vždy zakončeny čárkou U N-tic tvořených aritmetickým výrazem by nebylo možné rozeznat, zadá má být výsledkem n-tice, nebo hodnota >>> x = 3 >>> y = 4 >>> (x + y) # sečte hodnoty proměnných x a y 7 >>> (x + y,) # čárka značí, že se jedná o n-tici (7,)

30 Skládání a rozklad N-tic N-tice lze využít k vícenásobné inicializaci proměnných Inicializace proměnných: >>> (jedna, dve) = (1, 2) >>> jedna 1 >>> dve 2 >>> x = (jedna, dve) = (1, 2) >>> x (1, 2) >>> jedna 1 >>> x[1] 2 >>> jedna, dve = 1, 2 >>> dve 2

31 Skládání a rozklad N-tic N-tice lze skládat z jiných n-tic (platí i pro seznamy) Skládání n-tic: >>> [a, b] = [1, 2] >>> [c, d] = 3, 4 >>> (e, f, g) = 5, 6, 7 >>> a 1 >>> [b, c, d] [2, 3, 4] >>> (e, f, g) (5, 6, 7) >>> a, b, c (1, 2, 3)

32 Interní datové typy Slovníky Datová struktura odpovídající svou funkcionalitou asociativním polím, nebo hashovaným tabulkám Používají se např. pro vyhledávání položek označených složitými klíči Další vlastnosti: Prvky ve slovníku jsou indexovány celočíselnými hodnotami, řetězci, nebo jinými objekty Pythonu Jeden slovník může obsahovat prvky libovolných typů Jednu položku slovníku tvoří klíč a hodnota Se slovníky lze operovat pomocí vestavěných funkcí, atributů, nebo matematických operátorů Položky slovníků se píší do složených závorek (jsou oddělovány čárkou), klíč je od prvku oddělen dvojtečkou.

33 Příklady práce se slovníky 1/2 >>> cz2eng = {} # nový prázdný slovník >>> cz2eng['červená'] = 'red' # postupné naplnění položek >>> cz2eng['modrá'] = 'blue' >>> cz2eng['zelená'] = 'green' >>> cz2eng['červená'] 'red' >>> a = {'key1' : 1, 'key2' : 2 } # nový naplněný slovník >>> a['key1'] 1 >>> len(a) 2 >>> a.keys() ['key1', 'key2'] >>> a.values() [1, 2] >>> a.items() [('key1', 1), ('key2', 2)]

34 Příklady práce se slovníky 2/2 >>> a = {'key1' : 1, 'key2' : 2 } # nový naplněný slovník >>> a.has_key('key1') True >>> del a['key1'] >>> a.has_key('key1') False >>> a.get('key1', 'Klíč neexistuje') 'Klíč neexistuje' >>> a.get('key2', 'Klíč neexistuje') 2

35 Interní datové typy - Řetězce Python obsahuje silnou podporu pro práci s řetězci Řetězce lze vymezit pomocí: Uvozovek: Hello World. Součástí textu mohou být i jednoduché uvozovky (apostrofy) Jednoduchých uvozovek (apostrofů): Hello World. Součástí textu mohou být i klasické uvozovky. Trojitých uvozovek: Hello World. Součástí textu mohou být i nové řádky. Zároveň se používá jako dokumentační řetězec na začátku modulu, nebo funkce. S řetězci lze operovat pomocí vestavěných funkcí, nebo matematických operátorů in, +, *, len(), max(), min() S řetězci lez pracovat stejně jako se seznamy (lze indexovat znaky, provádět řezy, ) Řetězce jsou stejně jako n-tice neměnné. Řetězce lze převádět na seznamy (list())nebo n-tice (tuple()). Pro práci s řetězci existují speciální moduly string a re

36 Funkce pro práci s řetězci S řetězci lze pracovat pomocí velkého množství zabudovaných funkcí (atributů) Např. center(), ljust(), rjust(), count(), strip(), split(), join(), replace(), atof(), atoi(), Stejně jako u jiných jazyků i v Pythonu existují speciální řídící znaky Escape sekvence Představuje znak \' jednoduché uvozovky \" dvojité uvozovky \\ zpětné lomítko \a znak "zvonek" \b o jeden znak zpět (backspace) \f posuv papíru (nová stránka) \n nový řádek \r návrat vozíku \t tabulátor \v svislý tabulátor

37 Příklady práce s řetězci Interní funkce řetězce: >>> s = 'Hello World!' >>> s.split() ['Hello', 'World'] >>> list(s) ['H', 'e', 'l', 'l', 'o', '', 'W', 'o', 'r', 'l', 'd'] >>> s.rjust(20) # existují i obdobné funkce ljust() a center() ' Hello World' >>> s.count('l') 3 Funkce modulu string: >>> import string >>> s = 'Hello World' >>> string.split(s) ['Hello', 'World'] >>> z = string.join(["ahoj", "Svete"], "::") >>> z 'Ahoj::Svete' >>> string.replace(z, "::", " ") 'Ahoj Svete' >>> string.find(s, 'l') # existují i varianty lfind() a rfind() 2 >>> string.find(s, 'a') -1

38 Převod objektů na řetězce Na řetězec lze převést cokoliv Formální řetězcová reprezentace: repr(), `` Technicky zaměřený popis objektu Neformální řetězcová reprezentace: str() Textová informace určená pro uživatele >>> x = (1, 2) >>> repr(x) '(1, 2)' >>> `x` '(1, 2)' >>> str(x) '(1, 2)' >>> repr(len) '<built-in funcion len>'

39 Formátování řetězců Řetězce lze formátovat podobně jako v jazyce C/C++ Pro náhradu formátovacích sekvencí za příslušné hodnoty slouží operátor % >>> "%s. den v týdnu je %s" % (1, 'pondělí') '1. den v týdnu je pondělí' >>> "Pi je <%6.2f>" % 'Pi je < 3.14>' >>> "Pi je <%-6.2f>" % 'Pi je <3.14 >' >>> dict = {'e' : 2.718, 'pi': } >>> "%(pi).2f -> %(pi).4f -> %(e).2f" % dict '3.14 -> > 2.718'

40 Řízení toku programu

41 Cyklus while Základní programový cyklus pythonu sestávající s podmínky, těla a nepovinného pokračování kódu. V těle cyklu lze volat příkazy break a continue break ukončí vykonávání cyklu continue započne vykonávání další iterace while podmínka: # tělo kódu else: # nepovinné pokračování kódu >>> i = 0 >>> while i < 10:... print i,... i = i else:... print 'konec' konec

42 Konstrukce if-elif-else Rozhodovací konstrukce může obsahovat: Jeden výskyt klíčového slova if Následně libovolný počet klíčových slov elif Dle potřeby může být zakončena klíčovým slovem else if podmínka 1: # tělo kódu 1 elif podmínka 2: # tělo kódu 2 elif podmínka 3: # tělo kódu 3 else: # tělo kódu 4 >>> if (i > 0) and (i < 10):... print 'ahoj'... elif (i >= 10) and (i < 20):... print 'nazdar'... else:... print 'cau'

43 Cyklus for Na rozdíl od jazyka C/C++ příkaz for netestuje podmínku, ale pracuje s danou posloupností (seznam, řetězec, ) Příkaz for se velmi často používá s funkcí range(from, to, step) nebo xrange(from, to, step) Funkce range(from, to, step) vytváří seznam celočíselných hodnot v rozsahu od from do to (poslední hodnota není v seznamu zahrnuta) s celočíselným krokem step (hodnota step může být kladná pro vzestupné seznamy a záporná pro sestupné seznamy) Funkce xtange(from, to, step) se chová stejně jako range(), ale pythonovský seznam nevytváří; pouze funkci for dodává jeho pomyslné položky (šetří tím paměť) for proměnná in posloupnost: # tělo programu else: # nepovinné pokračování kódu

44 Příklady práce s cyklem for >>> x = [1, 3, 5, 7, 9] >>> for i in x:... print i, >>> for i in range(1, 10, 2):... print i, >>> for i in range(10, 1, -2):... print i, >>> for i in 'Ahoj':... print i,... A h o j

45 Logické operátory U podmínkových výrazu lze složitější podmínky vytvářet pomocí následujících logických operátorů: < - menší > - větší <= - menší nebo roven >= - větší nebo roven == - roven!= - nerovnost <> - nerovnost and or not in - logický součin - logický součet - negace - je obsažen not in - není obsažen

46 Konzolový vstup a výstup

47 Výstup na konzolu Pro výstup na konzolu (terminál) slouží příkaz print Příkaz automaticky odřádkuje vytištěný obsah Chceme-li pokračovat ve výpisu na novém řádku, vložíme za příkaz print znak,(čárku) >>> s = "Ahoj světe" >>> s 'Ahoj sv\xd8te' >>> print s 'Ahoj světe' >>> for i in range(1,4):... print i >>> for i in range(1,4):... print i, # povšimněte si vložené čárky na konci řádku

48 Vstup z konzole Pro vstup z konzole (terminálu) slouží příkazy raw_input() a input() Příkaz raw_input(message) čte libovolná data z aktuálního vstupu a vrací je ve formě textového řetězce Požadujeme-li vstup v jiném datovém formátu, můžeme výstup z funkce převést pomocí interního přetypování (např. int(raw_input())) Pokud nelze přetypování provést, bude vyvolána vyjímka Příkaz input(message) čte data z aktuálního vstupu a převádí je na konkrétní datový typ. Funkce je ekvivalentem výrazu eval(raw_input()) Funkce eval(src) vyhodnotí zdrojový výraz a vrátí příslušnou hodnotu Vkládání dat je ukončeno po stisku klávesy ENTER

49 Příklady zpracování vstupu z konzole Funkce raw_input(): >>> jmeno = raw_input('zadej jmeno: ') Zadej jmeno: Michal >>> jmeno 'Michal' >>> rok = int(raw_input('zadej rok: ')) Rok: 2007 >>> rok 2007 >>> poradi = int(raw_input('zadej poradi: ')) Zadej poradi: ahoj Traceback (most recent call last): File "<stdin> ", line 1, in <module> ValueError: Invalid literal for int() with base 10: 'ahoj' Funkce input(): >>> jmeno = input('zadej jmeno: ') Zadej jmeno: Michal >>> jmeno 'Michal' >>> rok = input('zadej rok: ') Zadej rok: 2007 >>> rok 2007

50 Funkce a procedury

51 Uživatelem definované funkce Základní syntaxe pro definici funkce nebo procedury je def jmeno(param1, param2, ): Funkce mohou vracet návratovou hodnotu pomocí příkazu return Není-li příkaz return v těle funkce použit, je návratová hodnota rovna None Funkce lze přiřazovat proměnným (vytvářet aliasy), nebo je vkládat např. do slovníků Parametry funkcí lze definovat explicitně, pomocí polí, nebo slovníků Lze definovat implicitní hodnoty parametrů Python umožňuje definovat tzv. Lambda funkce lambda param1, param2 : příkaz Velmi krátké a jednoduché funkce použitelné např. společně s filtry, nebo mapami. Funkce by měly jako první řádek/řádky obsahovat dokumentační řetězce. Tento text je pak dostupný prostřednictvím systémové proměnné doc jmeno. doc

52 Základní práce s funkcemi >>> def faktorial(n):... """ faktorial(n) -> Funkce pro vypocet faktorialu z... hodnoty n """... vysl = 1... for i in xrange(1, n+1):... vysl = vysl * i... return vysl... >>> faktorial(10) >>> faktorial. doc ' faktorial(n) -> Funkce pro vypocet faktorialu z hodnoty n ' >>> f = faktorial >>> f(10) >>> Funkce = {"FCT" : faktorial) >>> Funkce['FCT'](10) >>> Funkce['FCT']. doc ' faktorial(n) -> Funkce pro vypocet faktorialu z hodnoty n '

53 Předávání parametrů Parametry lze funkcím předávat: U pevného počtu argumentů funkce: Hodnotami Jmény proměnných U proměnlivého počtu argumentů funkce: Pomocí seznamu Pomocí slovníku Parametry se předávají odkazem, takže u měnitelných datových typů se chovají jako reference na objekt v C++

54 Předávání parametrů Pevný počet argumentů funkce (s implicitními hodnotami): >>> def soucet(a = 0, b = 0):... """ soucet(n) -> Secte hodnoty a + b """... return a + b... >>> soucet(2, 3) 5 >>> soucet() 0 Proměnný počet argumentů funkce: >>> def soucet(*cisla):... souc = 0... for n in cisla:... souc = souc + n... return souc... >>> soucet(1, 2) 3 >>> soucet(1, 2, 3, 4, 5) 15 >>> def funkce(**args):... for key in args.keys():... print 'parametr %s ma hodnotu %s' % (key, args[key])... >>> funkce(a=1, b=2) parametr a ma hodnotu 1 parametr b ma hodnotu 2

55 Lokální a globální proměnné Každá proměnná je ve své oblasti viditelnosti implicitně definována jako lokální Globální proměnné musí být explicitně zpřístupněny pomocí klíčového slova global >>> a = 1 >>> b = 2 >>> def funkce():... global a... a = 3... b = 4... >>> a 1 >>> b 2 >>> funkce() >>> a 3 >>> b 2

56 Zajímavé zabudované funkce

57 Zajímavé zabudované funkce a symboly Symboly: name Řetězec představující jméno modulu (pro hlavní/spuštěný modul bude mít hodnotu main ) doc Dokumentační řetězec modulu/funkce/objektu/atributu Funkce: del() dir() Odstranění objektu/prvku Seznam jmen funkcí/proměnných/objektů a atributů definovaných v daném objektu nebo aktuální session eval() Vyhodnocení daného řetězce nebo objektu programového kódu jako výrazu Pythonu compile() Kompilace daného zdrojového textu jako programu jazyka Python (výstup lze použít jako argument funkce Eval()

58 Příklady použití funkcí eval, compile, a symbolu doc Vlastní interpreter jazyka Python: while True: cmd = raw_input("zadej vyraz/prikaz: ") if cmd == 'QUIT': # zadáním příkazu "QUIT" se skript ukončí break else: eval(compile(cmd, '', 'single')) # vyhodnoť a proveď příkaz print 'Koncim, nashle...' Prohlížeč nápovědy funkcí a modulů: while True: # zadej jméno objektu/modulu, pro který se vypíše nápověda module = raw_input('zadej jmeno dostupneho modulu/objektu: ') # vyhledej jména všech dostupných symbolů v daném modulu/objektu for f in dir(eval(module)): # získej objekt z jeho jména a vypiš jeho nápovědu print eval(module + '.' + f). doc

59 Aplikace v Pythonu Nějaké dotazy?

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

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

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

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

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

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

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

Ú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

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

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

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

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury, standardní metody Problematika načítání pomocí Scanner Některé poznámky k příkazům Psaní kódu programu Metody třídy Math Obalové třídy primitivních datových

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

Stručný návod k programu Octave

Stručný návod k programu Octave Stručný návod k programu Octave Octave je interaktivní program vhodný pro technické výpočty. Je nápadně podobný programu MATLAB, na rozdíl od něho je zcela zadarmo. Jeho domovská vebová stránka je http://www.octave.org/,

Více

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 WSH Windows Script Hosting OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 Co je skript? Skriptování nástroj pro správu systému a automatizaci úloh Umožňuje psát skripty jednoduché interpretované programové

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

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

Ú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

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd 7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená

Více

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

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

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

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

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. Přednáška 7 Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu

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

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 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 formátovanému výstupu,

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

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty. Proměnná Pojmenované místo v paměti sloužící pro uložení hodnoty. K pojmenování můžeme použít kombinace alfanumerických znaků, včetně diakritiky a podtržítka Rozlišují se velká malá písmena Název proměnné

Více

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární

Více

MAXScript výukový kurz

MAXScript výukový kurz MAXScript výukový kurz Díl čtvrtý jazyk MAXScript, část I. Jan Melichar, březen 2008 Jan Melichar (aka JME) strana 1 OBSAH ÚVOD... 4 ZÁKLADNÍ PŘÍKAZY... 5 OPERÁTORY... 6 PROMĚNNÉ... 6 POLE... 7 ZÁVĚREM...

Více

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

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

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

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

Ú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

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

Ú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

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

Č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

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální

Více

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. PHP - úvod Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. Klíčové pojmy: PHP, webový prohlížeč, HTTP, FTP Základní pojmy služba WWW = 1990 první prototyp serveru, od roku 1994

Více

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

ZPRO v C Ing. Vít Hanousek. verze 0.3 verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Operátory a příkazy BI-JSC Evropský sociální fond

Více

Da D to t v o é v ty t py IB111: Datové typy

Da D to t v o é v ty t py IB111: Datové typy Datové typy IB111: Datové typy Data a algoritmizace jaká data potřebuji pro vyřešení problému? jak budu data reprezentovat? jaké operaci s nimi potřebuji provádět? Navržení práce s daty je velice důležité

Více

3 KTE / ZPE Informační technologie

3 KTE / ZPE Informační technologie 3 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ň Komentáře

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

- jak udělat konstantu long int: L long velka = 78L;

- jak udělat konstantu long int: L long velka = 78L; Konstanty (konstatní hodnoty) Např.: - desítkové: 25, 45, 567, 45.678 - osmičkové: 045, 023, 03 vždy začínají 0 - šestnáctkové: 0x12, 0xF2, 0Xcd, 0xff, 0xFF - jak udělat konstantu long int: 245566553L

Více

PSK3-9. Základy skriptování. Hlavička

PSK3-9. Základy skriptování. Hlavička PSK3-9 Název školy: Autor: Anotace: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Základy skriptování v unixovém shellu Vzdělávací oblast: Informační a komunikační technologie

Více

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

5 Přehled operátorů, příkazy, přetypování 5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování

Více

Úvod do programování. Lekce 1

Úvod do programování. Lekce 1 Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -

Více

Řídicí struktury. alg3 1

Řídicí struktury. alg3 1 Řídicí struktury Řídicí struktura je programová konstrukce, která se skládá z dílčích příkazů a předepisuje pro ně způsob provedení Tři druhy řídicích struktur: posloupnost, předepisující postupné provedení

Více

Konečný automat. Jan Kybic.

Konečný automat. Jan Kybic. Konečný automat Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 33 Konečný automat finite state machine Konečný automat = výpočetní model, primitivní počítač Řídící jednotka s

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

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

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina 5a. Makra Visual Basic pro Microsoft Escel Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty Zde bude stránka o cyklických odkazech a iteracích.

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

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace Programování: základní konstrukce, příklady, aplikace IB111 Programování a algoritmizace 2011 Připomenutí z minule, ze cvičení proměnné, výrazy, operace řízení výpočtu: if, for, while funkce příklady:

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

Objektově orientované programování

Objektově orientované programování 10. října 2011 Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh

Více

Vstupní požadavky, doporučení a metodické pokyny

Vstupní požadavky, doporučení a metodické pokyny Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem

Více

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

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

První kapitola úvod do problematiky

První kapitola úvod do problematiky První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru

Více

Formátové specifikace formátovací řetězce

Formátové specifikace formátovací řetězce 27.2.2007 Formátové specifikace formátovací řetězce - je to posloupnost podle které překladač pozná jaký formát má výstup mít - posloupnosti začínají znakem % a určující formát vstupu/výstupu - pokud chcete

Více

X36UNX 16. Numerické výpočty v sh příkazy expr, bc, dc. Zdeněk Sojka

X36UNX 16. Numerické výpočty v sh příkazy expr, bc, dc. Zdeněk Sojka X36UNX 16 Numerické výpočty v sh příkazy expr, bc, dc Zdeněk Sojka sojkaz1@fel.cvut.cz dc desk calculator - zadávání příkazů postfixově - data se ukládají do stacku - příkazy obyčejně pracují s jedním

Více

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

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Podmínky a cykly Dokončení stručného přehledu řídících struktur jazyka C. Složený příkaz, blok Pascalské

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

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody 4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty

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

KTE / ZPE Informační technologie

KTE / ZPE Informační technologie 7 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ň - ternární

Více

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni! Java práce s řetězci Trochu povídání.. Řetězce jsou v Javě reprezentovány instancemi tříd StringBuffer a String. Tyto třídy jsou součástí balíčku java.lang, tudíž je možno s nimi pracovat ihned bez nutného

Více

Lekce 2. Řetězce a práce s nimi. Vstup a výstup. C2184 Úvod do programování v Pythonu podzim 2016

Lekce 2. Řetězce a práce s nimi. Vstup a výstup. C2184 Úvod do programování v Pythonu podzim 2016 . Vstup/výstup Lekce 2. Vstup/výstup. a práce s nimi. Vstup a výstup. C2184 Úvod do programování v Pythonu podzim 2016 Formátování Národní centrum pro výzkum biomolekul Masarykova univerzita 2.1 Char (znak)

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

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

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

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

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

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

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

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

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

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru

Více

PROGRAMOVÁNÍ V SHELLU

PROGRAMOVÁNÍ V SHELLU PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který

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

9. přednáška - třídy, objekty

9. přednáška - třídy, objekty třída String a její použití kolekce, typované kolekce 9. přednáška - třídy, objekty Algoritmizace (Y36ALG), Šumperk - 9. přednáška 1 Třída String Objekty knihovní třídy String jsou řetězy znaků Od ostatních

Více

NPRG031 Programování II --- 2/2 Z, Zk

NPRG031 Programování II --- 2/2 Z, Zk NPRG031 Programování II --- 2/2 Z, Zk paralelka Y St 14:00-15:30 v S3 Pavel Töpfer Kabinet software a výuky informatiky MFF UK MFF Malostranské nám., 4. patro, pracovna 404 pavel.topfer@mff.cuni.cz http://ksvi.mff.cuni.cz/~topfer

Více

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo Operátory, výrazy Tomáš Pitner, upravil Marek Šabo Operátor "Znaménko operace", pokyn pro vykonání operace při vyhodnocení výrazu. V Javě mají operátory napevno daný význam, nelze je přetěžovat jako v

Více

Opakování programování

Opakování programování Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování

Více

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu Vytěžování dat, cvičení 1: Úvod do Matlabu Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Fakulta elektrotechnická, ČVUT 1 / 24 Úvod do Matlabu Proč proboha Matlab? Matlab je SW pro

Více

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

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19 Algoritmy I Cvičení č. 2, 3 1 ALG I, informace Cvičící RNDr. Eliška Ochodková, Ph.D., kancelář EA439 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející doc. Mgr. Jiří Dvorský, Ph.D., kancelář

Více

ADT/ADS = abstraktní datové typy / struktury

ADT/ADS = abstraktní datové typy / struktury DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní

Více

Skriptovací jazyky. Obsah

Skriptovací jazyky. Obsah Skriptovací jazyky 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 Obsah Co je to skriptovací jazyk? Výhody a nevýhody

Více

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

Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově orientované programování. Delphi lekce 6 Minimum z Object Pascalu Vrátíme se ještě k základům Object Pascalu. Struktura programu Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově

Více

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na obrazovku zpomaluje tím, že zobrazíme okno (proužek) o stavu

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Páté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 5. týden

Více

ZÁPOČTOVÁ PRÁCE z UIR

ZÁPOČTOVÁ PRÁCE z UIR ZÁPOČTOVÁ PRÁCE z UIR Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: pondělí, 4 5 Obor: INIB INF E-mail: jtichava@students.zcu.cz Datum odevzdání: 1.5.2006 Zadání Označení zadání: 2004KT01

Více

Operační systémy. Cvičení 4: Programování v C pod Unixem

Operační systémy. Cvičení 4: Programování v C pod Unixem Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné

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

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

PŘETĚŽOVÁNÍ OPERÁTORŮ PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako

Více

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk A7B38UOS Úvod do operačních systémů 6. Cvičení Příkazy sed a awk sed sed [přepínače] 'příkaz' [soubory] sed [přepínače] -f skript [soubory] Stream editor - edituje neinteraktivně jeden nebo více souborů.

Více

IUJCE 07/08 Přednáška č. 1

IUJCE 07/08 Přednáška č. 1 Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming

Více

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++ C++ Akademie SH 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory Za áte níci C++ 20. b ezna 2011 Obsah 1 Prom nné - primitivní typy Celá ísla ƒísla s pohyblivou desetinnou árkou, typ bool 2 Podmínka

Více