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

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

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

Transkript

1 1 z :02 Python profesionálně: dynamické parametry, generátory, lambda funkce a with Články - Michal Hořejšek ( - Různé ( V minulém díle jsme se podívali na několik jednoduchých syntaktických tipů, které nám usnadní vývoj v programovacím jazyce Python. Dnes navážeme generátory, lambda funkcemi, with konstrukcemi a dynamickými parametry. Dynamické parametry Na předchozí článek ( navážeme další zajímavostí Pythonu. Jedná se o neznámý počet parametrů. To určitě všichni známe a ti, kteří si četli minimálně nějaký tutoriál, na to i narazili. Jedná se o hvězdičku v parametru funkce/metody. Ale věděli jste, že to jde na obou místech; jak ve volání, tak v definici? def f(first, second, *rest): print first, second, rest f(*range(1, 6)) # 1 2 (3, 4, 5) Jak je vidět, stačí přidat hvězdičku a podle kontextu se seznam rozloží nebo složí. To je užitečné například pro funkce k formátování řetězců, sumarizační funkce a podobně. Ale co kdybych chtěl udělat vyhledávající funkci, která využívá pojmenovávaných parametrů? A samozřejmě bych nechtěl definovat všechny možné parametry ručně I na to Python myslí a řešením je jak jinak než další hvězdička. def search(**kwds): map(check_search_key, kwds.keys()) # Do something... def check_search_key(key): if key not in ('id', 'name', 'mail', 'url'): raise AttributeError('You can't search by key "%s".' % key)

2 2 z :02 params = {'first': 1, 'second': 2} f(**params) Mimochodem u těchto speciálních parametrů, pokud není vhodnější název pro konkrétní situaci, se většinou používají názvy args a kwds. Je to něco jako parametry self a cls u metod. Kvíz: co se stane? dict(params, **{'first': 0, 'third': 3}) Řešení: Built-in type dict se slovníkem v parametru vytváří jeho mělkou kopii. Pomocí této funkce lze vytvořit slovník i přes pojmenované parametry, kde název parametru je klíč a hodnota je (nečekaně) hodnota. (A také lze vytvořit slovník pomocí seznamu obsahující položky opět typu seznam s dvěma položkami první se použije jako klíč a druhá jako hodnota.) Pokud tyto vlastnosti sloučíme, tak nejprve vytvoříme kopii slovníku params a poté tento nově vytvořený slovník updatneme druhým slovníkem, který však musíme předat jako pojmenované parametry. Je to vlastně to samé jako následující. dict(params, first=0, third=3) A proč jsem to napsal předtím se slovníkem? Nu protože se mi zdá čitelnější první varianta, kde vidím dva slovníky a ne slovník a nějaké pojmenované parametry. Navíc klíče mohou nabývat obecných názvů, a to může být matoucí. A navíc pomocí této syntaxe lze mergnout reference dvou slovníků a ani jeden nezměnit. Výsledek bude tedy takovýto: {'second': 2, 'third': 3, 'first': 0} Generátory Když jsem ještě nebyl v Pythonu zběhlý, považoval jsem generování seznamů za špatnost. Protože se mi to nezdálo přehledné. Jenže Python není jako každý jiný jazyk je potřeba si na něj zvyknout a pak zjistíte, že je v některých věcech bezvadný. Dnes už mám generátory rád. Když někomu ukazuji Python, tak se strašně rád ptám, jak by ta dotyčná osoba udělala dvojrozměrné pole s třeba malou násobilkou. A pak ukážu, jak bych to dělal já.

3 3 z :02 s = [] for x in range(11): row = [] for y in range(11): row.append(x*y) s.append(row) # vs. s = [[x*y for y in range(11)] for x in range(11)] Jednou se mi stalo, že se pak dotyčná osoba zeptala, jak bych tam přidal podmínku, kdybych chtěl třeba jenom řádky se sudými čísly. Prý bych teď určitě musel celý kód přepsat na normální cyklus a přidat podmínku. Tak jsem tedy ukázal, jak to musím přepsat s = [[x*y for y in range(11)] for x in range(11) if x % 2 == 0] Dál už se mě nikdo raději na nic nezeptal, ale to neznamená, že toho není víc! Nevýhoda generování seznamů (list comprehension) je v tom, že se musí celé vytvořit v paměti. Představme si problém: potřebujeme zinicializovat hodně moc instancí produktů, každý nějak zpracovat a po zpracování zahodit, protože není dále potřeba (vhodné například pro vygenerování XML souboru). Ale inicializace a zpracování z nějakých důvodů nelze mít na jednom místě (třeba MVC) a je tedy potřeba předat referenci na seznam s těmito instancemi. def get_products(): return [Product(product_id) for product_id in range(1000, 2000, 2)] def do_something_with_products(products): # Do something... do_something_with_products(get_products()) Toto řešení by v paměti vytvořilo zbytečně 500 instancí. Je lepší způsob a stačí jen vyměnit typ závorek. Místo hranatých použijeme kulaté. Tím se nevytvoří seznam s instancemi, ale pravý generátor, který lze použít v iteraci a kód pro každý prvek se vyvolá, až když je opravdu potřeba. Tedy instance produktu se zavolá vždy až když je ten produkt potřeba; nikoliv že se vytvoří nejprve všechny a pak se přes ně jen iteruje. Tím tedy v paměti budu mít pouze jednu instanci (pokud na produkt nevytvořím jinou proměnnou s referencí). l = [x for x in range(10)] # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] g = (x for x in range(10)) # <generator object <genexpr> at 0xb6d5b4dc>

4 4 z :02 Má to ale své úskalí. Kdybych chtěl produkty řadit, tak nemohu, s generátorem to nelze. Generátor iteruje tak, jak byl napsán a pořadí nelze změnit. Takže generátor lze použít jen tehdy, když chci položkami iterovat v nezměněném pořadí nebo když ho chci používat s klíčovým slovem in. l[:4] # [0, 1, 2, 3] g[:4] # TypeError l[::-1] # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] g[::-1] # TypeError l.reverse() # ok g.reverse() # AttributeError for item in l: pass # ok for item in g: pass # ok (item for item in l if item < 5) # ok (item for item in g if item < 5) # ok if 5 in l: pass # ok if 5 in g: pass # ok Python obsahuje spoustu generátorů. Už několikrát jsem v ukázkách použil built-in funkci range, která vrací seznam s čísly, která žádám. Existuje k ní analogická funkce, která vrací něco na způsob generátoru a jmenuje se xrange (ve skutečnosti vrací xrange, který se od generátoru liší tím, že nemá metody next a podobně). range(4) # [0, 1, 2, 3] xrange(4) # xrange(4) Za zmínku stojí, že v Pythonu 3 funkce xrange už není a range se chová jako xrange. Když je v Pythonu 3 opravdu potřeba seznam místo iterátoru, tak se musí zavolat list(range(*args)). Jak by tedy vypadal ve výsledku náš problém (pouze změna v jedné funkci): def get_products(): return (Product(product_id) for product_id in xrange(1000, 2000, 2)) Od Pythonu 3 přibudou dva noví kolegové pro jednoduší generování slovníků a množin.

5 5 z :02 # Generovani slovniku v Pythonu 2. dict((x, x**2) for x in range(10)) # Nove generovani slovniku v Pythonu 3 (predchozi samozrejme funguje taky). {x: x**2 for x in range(10)} # Generovani mnoziny v Pythonu 2. set(x for x in range(10)) # Nove generovani mnoziny v Pythonu 3 (predchozi samozrejme funguje taky). {x for x in range(10)} Na závěr si ještě jednou všechny generátory roztřídíme, ať v tom máme jasno. První ukázaný (generátor seznamů) lze v češtině spatřit také jako generátorová notace seznamů a v angličtině to je list comprehensions, případně dictionary comprehensions a set comprehensions přidané v Pythonu 3. Další ukázaná syntaxe byla generátorová notace, v angličtině generator expressions a slouží pro snadné vytvoření generátoru. Poslední ukázkou byl xrange, který sice nevrací generátor, ale chová se tak. Aby to nebylo tak snadné v Pythonu existuje ještě tzv. iterátor, přičemž generátor implementuje rozhraní iterátoru a navíc ho o něco rozšiřuje. O co konkrétně si můžete přečíst v dokumentaci ( A téměř cokoliv lze převést na iterátor pomocí built-in funkce iter ( Vlastní generátory Generátory jsou hezké, dají se šikovně použít. Ale neřeší situace, kde potřebuji vyřešit velmi specifický problém. Například máme seznam instancí produktů a každý může mít načteny jen základní nebo kompletní informace zákazník si objednal několik produktů a ve svém účtu se dívá na stav své objednávky. My máme v databázi informace o produktech (ID, název, cena, ), ale informace o pohybu produktů si načítáme z externího systému. Naneštěstí načítání z externího systému není nejrychlejší, a tak se tomu chceme co nejvíce vyhnout. Takže zákazníkovi zobrazíme jen základní informace a až když si klikne na detail, načteme informace z externích systémů. Máme tedy seznam instancí a každý produkt může být v jiném stavu. Některé jsou načteny kompletně a některé mají jen základní informace o sobě. A teď je situace, kde potřebuji mít načteny kompletně všechny. Jedna možnost je na začátku každé iterace se zeptat, v jakém stavu produkt je, a případně produkt donačíst. A tento kód kopírovat na místa, kde to je všude potřeba. Zřejmě už cítíte, že to není dobré. DRY!. Proto si na to vytvoříme vlastní generátor, je to jednoduché. Napíšeme normální funkci, jen místo klíčového slova return použijeme yield a nepoužijeme ho až na konci funkce, ale v iteraci.

6 6 z :02 def iterate_and_load_over_products(products): for product in products: if not product.is_fully_loaded(): product.load() yield product for product in iterate_and_load_over_products(products): Výhoda spočívá v tom, že se nemusí čekat, až se všechny produkty načtou, a produkt se může zpracovávat ihned, jakmile je kompletně načten. Jinými slovy nemusím půl hodiny čekat, než se mi vše načte, aby mi program spadl na nějaké chybě v kódu se zpracováním dat. Představme si situaci: přijde produkťák a zeptá se nás, za jak dlouho to bude hotové a my odpovíme, že teď se bude půl hodiny něco načítat a samotné zpracování potom bude otázka pár vteřin. Skript půl hodiny jede a pak najednou spadne na chybě, na kterou se v testovacím prostředí nenarazilo Anonymní lambda funkce Jsou situace, kde je potřeba funkce na jedno použití někde uvnitř jiné funkce. Deklarace funkce ve funkci nevypadá moc hezky (ale nebráním se tomu) a proto existují lambda funkce. square = lambda x: x**2 square(5) # 25 Je to velmi jednoduché. V ukázce jsem vytvořil anonymní funkci, která přijímá jeden parametr a vrací výsledek výrazu za dvojtečkou. Referenci na funkci jsem si uložil do proměnné square a hned na dalším řádku použil. Lambda funkce může přijímat parametrů, kolik je libo (oddělené čárkami) a dokonce nemusí být žádný (kde se dá smysluplně využít takové funkce si ještě povíme). Jednodušeji: platí to, co pro normální funkce. Výsledek funkce je vždycky výsledek výrazu, který smí být jen jeden; ale je jedno, jak moc složitý. Toť vše, už jen přidám nějaké další ukázky. # Opravdu anonymni funkce. (lambda x: x**2)(5) # Moznost vytvorit ve volani jine funkce jako parametr. dates = [datetime.date(year, 1, 1) for year in range(2000, 2020)] dates.sort(cmp=lambda x, y: cmp(x.isoweekday(), y.isoweekday())) # Dalsi podobne pouziti. map(lambda d: d.isoformat(), dates) A ještě na ně narazíme

7 7 z :02 Konstrukce with Největší problém jsou opakující se kusy kódu. Ještě horší je, když jsou velmi důležité. A nejhorší je, když se jedná o kusy kódu, které se provedou jednou za čas, typicky odchytávání chyb a podobně. Dobře to může být vidět při práci se soubory, kde bychom se určitě neměli spoléhat na to, že se stream sám zavře a data fyzicky zapíšou na disk. try: f = open(filename, 'a') f.write('xyz') except IOError, e: f.close() else: f.close() Zkuste si takhle řešit více různých zápisů a čtení ze souboru; zblázníte se z toho. A poměrně s vysokou pravděpodobností se i dopustíte chyby. Python 2.6 přidává novou vlastnost, která s tímto problémem pomůže a jedná se o context managers. try: with open(filename, 'a') as f: f.write('xyz') except IOError, e: else: Sice je to v tomto konkrétním případě více psaní, ale už určitě nezapomeneme na zavření streamu. Důvěřujme, ale prověřujme: f = open('asdf', 'w') with f: f.write('xyz') f.write('abc') # ValueError: I/O operation on closed file Z ukázky si všimněte dvou věcí první: není potřeba použít as a hlavně té druhé: po vyskočení z bloku with se soubor automaticky zavřel. Zavřel by se, ať už by to skončilo v pořádku či nikoliv (= vyhozením výjimky). Celé je to možné díky tomu, že file objekt (který vrací funkce open ) má implementované speciální metody enter a exit. První metoda nastavuje (cokoliv nás napadne) před vstupem do bloku with a vrací to, co se nám zrovna může

8 8 z :02 hodit (a nemusíme to použít, když nepotřebujeme). Druhá metoda se volá po dokončení bloku with a jak už jsme si řekli, zavolá se v jakémkoliv případě ať už vše proběhlo v pořádku a nebo ne. S těmito vědomostmi si můžeme vytvořit jakoukoliv třídu, kterou lze využít s klíčovým slovem with. Například jsem si udělal třídu Transaction pomáhající mi s transakcemi, abych je nemusel neustále vytvářet a commitovat, případně rollbackovat. Ukázka je zjednodušená: class Transaction(object): """Transaction object for use in with statement.""" def init (self, dbconnection): self._dbconnection = dbconnection def enter (self): self._dbconnection.transaction() cur = self._dbconnection.cursor() return cur def exit (self, type_, value, traceback): if type_ is None: self._dbconnection.commit() elif issubclass(type_, DatabaseException): self._dbconnection.rollback() else: self._dbconnection.rollback() with Transaction(singleton.dbconnection.master) as cur: sql = sqlpuzzle.insertinto('city').values({'name': 'Springfield'}) cur.execute(str(sql)) Modul sqlpuzzle z ukázky je k nalezení na GitHubu ( a lze nainstalovat z PyPI příkazem pypi-install sqlpuzzle. Poznámka: with můžete použít už od Pythonu 2.5, ale musíte si tuto vlastnost zpřístupnit přes speciální import. Tento import však musí být jako úplně první kód v souboru. from future import with_statement Závěr

9 9 z :02 jeho built-in funkce, oficiální moduly a další. Dnes opět zakončím odkazy se zajímavým čtením k dalšímu studiu: Více o dynamických parametrech a dalších tipech k funkcím v oficiální dokumentaci ( /controlflow.html#more-on-defining-functions). Generování seznamů ( a slovníku ( z oficiální dokumentace. Vlastní generátory ( yield ) v oficiální dokumentaci ( Spousta ukázek ( použití lambda funkce. with konstrukce (context managers) v oficiální dokumentaci ( /compound_stmts.html#the-with-statement). with konstrukce popsána trochu jinak ( Michal Hořejšek ( Michal dělá team leadera v Seznam.cz a hraje si na BOObook.cz. Jeho nejoblíbenějším jazykem je Python, ale nevadí mu třeba ani JavaScript a rád zkouší nové jazyky i technologie. Ve volném čase cestuje, fotí, píše ( ale taky plave, jezdí na kole či tancuje. ( ( Věděli jste, že nám můžete zasílat zprávičky ( (Jen pro přihlášené.) Zdroj:

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

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

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

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

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

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

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

Více

10. Editor databází dotazy a relace

10. Editor databází dotazy a relace 10. Editor databází dotazy a relace Dotazy Dotazy tvoří velkou samostatnou kapitolu Accessu, která je svým významem téměř stejně důležitá jako oblast návrhu a úpravy tabulek. Svým rozsahem je to ale oblast

Více

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

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

Více

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

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit

Více

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, 2007. Šablonovací systém htmltmpl

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, 2007. Šablonovací systém htmltmpl Šablonovací systém htmltmpl 1 Představení šablonovacích systémů Každý, kdo se zabývá tvorbou webových aplikací dříve nebo později zjistí, že je vhodné oddělovat obsah aplikace od jejího vzhledu. Pokud

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

20. Projekt Domácí mediotéka

20. Projekt Domácí mediotéka Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý

Více

3. Řízení běhu programu

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

Více

Django, 2. cvičení url, views, templates. Úvod

Django, 2. cvičení url, views, templates. Úvod Django, 2. cvičení url, views, templates. Úvod Views v djangu jsou funkce (definovány ve views.py souboru aplikace, na které jsou mapovány URL adresy. Jejich úkolem je vrátit odpověď na HTTP požadavek.

Více

Helios RED a Internetový obchod

Helios RED a Internetový obchod (pracovní verze!) Helios RED a Internetový obchod Obsah dokumetace: 1. Úvod 2. Evidované údaje na skladové kartě 3. Přenos skladových karet z Helios RED do e-shopu 4. Přenos objednávek z e-shopu do Helios

Více

Minebot manuál (v 1.2)

Minebot manuál (v 1.2) Minebot manuál (v 1.2) Pro Váš rychlý start s nástrojem Minebot jsme připravili tohoto stručného průvodce, který by Vám měl být pomocníkem při spuštění a používání služby. Tento stručný průvodce by vám

Více

Vestavěné nástroje Pythonu

Vestavěné nástroje Pythonu Vestavěné nástroje Pythonu Petr Pošík Katedra kybernetiky, FEL ČVUT v Praze OI, B4B33RPH Řešení problémů a hry, 2016 Credits David Beazley (http://www.dabeaz.com/): Builtin Superheros! PyData Chicago,

Více

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

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

Více

Jazyk C# (seminář 5)

Jazyk C# (seminář 5) Jazyk C# (seminář 5) Pavel Procházka KMI 23. října 2014 Přetěžování metod motivace Představme si, že máme metodu, která uvnitř dělá prakticky to samé, ale liší se pouze parametry V C# můžeme více metod

Více

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

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

Více

PREPROCESOR POKRAČOVÁNÍ

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

Více

Programování v 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

Projekty pro výuku programování v jazyce Java

Projekty pro výuku programování v jazyce Java JIHOČESKÁ UNIVERZITA V ČESKÝCH BUDĚJOVICÍCH Pedagogická fakulta Katedra informatiky Akademický rok: 2006/2007 TEZE BAKALÁŘSKÉ PRÁCE Projekty pro výuku programování v jazyce Java Jméno: František Přinosil

Více

Naučit se, jak co nejsnadněji přejít od verze TopoLu pro Windows k verzi TopoL xt. Cílem není vysvětlení všech možností programu.

Naučit se, jak co nejsnadněji přejít od verze TopoLu pro Windows k verzi TopoL xt. Cílem není vysvětlení všech možností programu. Školení programu TopoL xt Přechod na TopoL xt z programu TopoL pro Windows Cíl: Obsah: Naučit se, jak co nejsnadněji přejít od verze TopoLu pro Windows k verzi TopoL xt. Cílem není vysvětlení všech možností

Více

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE 2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE Studijní cíl Tento blok je věnován základní syntaxi příkazu SELECT, pojmům projekce a restrikce. Stručně zde budou představeny příkazy

Více

Miroslav Adamec, ARAS: JUDr. Jiří Srstka, DILIA:

Miroslav Adamec, ARAS: JUDr. Jiří Srstka, DILIA: Miroslav Adamec, ARAS: A poprosím pana doktora Srstku, aby nám vysvětlil, jak je nebezpečný nechráněný styk námětu s Českou televizí. (Smích.) Jsme malinko v časovém skluzu. Pane doktore, dobrý den. Než

Více

Manuál k užívání aplikace Monitoringrejstriku.cz

Manuál k užívání aplikace Monitoringrejstriku.cz Manuál k užívání aplikace Monitoringrejstriku.cz Verze aplikace 2.0, říjen 2015 Copyright 2014, Insolvence 2008, a.s. Omezující podmínky pro zveřejnění, poskytnutí údajů: Tento dokument obsahuje informace

Více

Úvod do PHP s přihlédnutím k MySQL

Úvod do PHP s přihlédnutím k MySQL Root.cz - Úvod do PHP s přihlédnutím k MySQL Stránka č. 1 z 5 Úvod do PHP s přihlédnutím k MySQL 07.04.2000 Vhodná kombinace PHP a MySQL na dostatečně výkonném serveru poskytuje hodně možností. Hitem poslední

Více

Čtvrtá část odpovědi aneb jak je to vlastně s interakcí <<include>>

Čtvrtá část odpovědi aneb jak je to vlastně s interakcí <<include>> Čtvrtá část odpovědi aneb jak je to vlastně s interakcí autor RNDr. Ilja Kraval leden 2008 www.objects.cz Úvod Tento článek navazuje jako pokračování na články předešlé. Minule jsme si zde

Více

Jazyk C# (seminář 3)

Jazyk C# (seminář 3) Jazyk C# (seminář 3) Pavel Procházka KMI 15. října 2014 Motivace Představme si problém, jak napsat seznam v C# class IntList{... int value; public void IntList( int val, List next ){... V čem je to nevýhodné?

Více

Formuláře. Internetové publikování

Formuláře. Internetové publikování Formuláře Internetové publikování Formuláře - příklad Formuláře - použití Odeslání dat od uživatele Možnosti zpracování dat Webová aplikace na serveru (ASP, PHP) Odeslání e-mailem Lokální script Formuláře

Více

Dědění, polymorfismus

Dědění, polymorfismus Programování v jazyce C/C++ Ladislav Vagner úprava Pavel Strnad Dědění. Polymorfismus. Dnešní přednáška Statická a dynamická vazba. Vnitřní reprezentace. VMT tabulka virtuálních metod. Časté chyby. Minulá

Více

Interpret jazyka IFJ2011

Interpret jazyka IFJ2011 Dokumentace projektu Interpret jazyka IFJ2011 Tým číslo 093, varianta b/3/i: 20 % bodů: Cupák Michal (xcupak04) vedoucí týmu 20 % bodů: Číž Miloslav (xcizmi00) 20 % bodů: Černá Tereza (xcerna01) 20 % bodů:

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

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

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

Více

Textové popisky. Typ dat

Textové popisky. Typ dat Textové popisky Newsletter Statistica ACADEMY Téma: Možnosti softwaru, datová reprezentace Typ článku: Tipy a triky Máte ve svých datech kategorie ve formě textu? Víme, že někdy není úplně jasné, jak Statistica

Více

Java a Caché IV: Manipulace s objekty

Java a Caché IV: Manipulace s objekty 1 z 6 11.1.2007 11:13 přihlašovací jméno heslo Registrace Přihlásit články odkazy aktuality CZJUG konference o portálu přidejte se o nás Vyhledávání Text: najdi Oborový filtr J2ME J2SE J2EE Enterprise

Více

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

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

Více

Programování v Javě I. Leden 2008

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

Více

Programování: 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

Deník mých kachních let. Září. 10. září

Deník mých kachních let. Září. 10. září Deník mých kachních let Září 10. září Kdybych začínala psát o deset dní dříve, bylo by zrovna 1. září. Den, na který jsem se těšila po několik let pravidelně, protože začínala škola. V novém a voňavém

Více

Více o konstruktorech a destruktorech

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

Více

Stravenky Exit. 1. Spuštění modulu Stravenky Exit

Stravenky Exit. 1. Spuštění modulu Stravenky Exit Stravenky Exit 1. Spuštění modulu Stravenky Exit 2. Popis prostředí a ovládacích prvků modulu Stravenky Exit 2.1. Rozbalovací seznamy 2.2. Hlavní záložky 2.2.1 Záložka "Seznam" 2.2.1.1 Záložka "Exit" 2.2.1.2

Více

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče. KAPITOLA 3 Architektura aplikací na frameworku Rails V této kapitole: modely, pohledy, řadiče. 58 Část I: Začínáme Jedna ze zajímavých vlastností frameworku Rails spočívá v tom, že klade docela závažná

Více

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

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

Více

CADKON/TZB verze 2007.1

CADKON/TZB verze 2007.1 Stránka č. 1 z 12 Pospis propojení programů CADKON/TZB a PROTECH (TZ, DIMOSW) CADKON/TZB verze 2007.1 Výpočet tepelných ztrát Rozmístění otopných těles Vkládání těles z databáze PROTECHu Vykreslení půdorysných

Více

Rozptylovací tabulky

Rozptylovací tabulky Rozptylovací tabulky Hash tables Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 1 / 31 Rozptylovací tabulka Hash table Rozptylovací tabulka = implementace množiny / asociativního pole

Více

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti. Intervalové stromy Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme průběžně provádět tyto dvě operace: 1. Změna jednoho čísla v posloupnosti. 2. Zjištění součtu čísel

Více

Knihomol. Manuál pro verzi 1.2

Knihomol. Manuál pro verzi 1.2 Knihomol Manuál pro verzi 1.2 Strana - 2 - I. Základy práce s programem Úvod do práce s programem Knihomol: Program knihomol slouží pro vedení evidence spojené s provozem malé knihovny. Je určen především

Více

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL o proceduralitu od společnosti ORACLE je jazyk

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

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce. Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby

Více

Spojový seznam. Jan Kybic.

Spojový seznam. Jan Kybic. Spojový seznam Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 25 Složitost operací u lineárních datových struktur v Pythonu operace zásob. fronta pole pole řetězce přidej na začátek

Více

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

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

Více

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

Uživatelská příručka pro dodavatele

Uživatelská příručka pro dodavatele Uživatelská příručka pro dodavatele Release 1.x.x B2B CENTRUM a.s. 3.2009 Obsah Úvod... 3 Obecná pravidla formátování... 3 Pravidla pro formátování písma... 3 Poznámky, Důležité, Varování... 4 Začínáme...

Více

SEZNÁMENÍ S PROGRAMEM

SEZNÁMENÍ S PROGRAMEM SEZNÁMENÍ S PROGRAMEM Základní informace pro každého Následující popis je určen pro stručné a rychlé seznámení s programem a jeho ovládáním. Detailnější vysvětlení funkcí programu naleznete v českém i

Více

Generování žádostí o kvalifikovaný certifikát a instalace certifikátu Uživatelská příručka pro prohlížeč Internet Explorer

Generování žádostí o kvalifikovaný certifikát a instalace certifikátu Uživatelská příručka pro prohlížeč Internet Explorer Generování žádostí o kvalifikovaný certifikát a instalace certifikátu Uživatelská příručka pro prohlížeč Internet Explorer 1 První certifikační autorita, a.s. 8.9.2011 Obsah 1. Úvod... 3 2. Požadavky na

Více

IB111 Úvod do programování skrze Python

IB111 Úvod do programování skrze Python Vyhledávání, řazení, složitost IB111 Úvod do programování skrze Python 2012 Otrávené studny 8 studen, jedna z nich je otrávená laboratorní rozbor dokáže rozpoznat přítomnost jedu ve vodě je drahý (je časově

Více

MŮJ STRACH. Nejstrašnější bída je samota a pocit, že mě nikdo nepotřebuje. - Matka Tereza

MŮJ STRACH. Nejstrašnější bída je samota a pocit, že mě nikdo nepotřebuje. - Matka Tereza MŮJ STRACH Nejstrašnější bída je samota a pocit, že mě nikdo nepotřebuje. - Matka Tereza Byla jsem hrozně vyděšená, hlavně z toho, že lidé, které jsem zázrakem potkala, mě jednoduše opustí. Proč by někdo

Více

Můj strach. Nejstrašnější bída je samota a pocit, že mě nikdo nepotřebuje.

Můj strach. Nejstrašnější bída je samota a pocit, že mě nikdo nepotřebuje. Můj strach Nejstrašnější bída je samota a pocit, že mě nikdo nepotřebuje. - Matka Tereza Byla jsem hrozně vyděšená, hlavně z toho, že lidé, které jsem zázrakem potkala, mě jednoduše opustí. Proč by někdo

Více

Obsah. Začínáme pracovat v InventorCAMu - frézování. 1995-2009 SolidCAM WWW.INVENTORCAM.CZ. All Rights Reserved.

Obsah. Začínáme pracovat v InventorCAMu - frézování. 1995-2009 SolidCAM WWW.INVENTORCAM.CZ. All Rights Reserved. Obsah Začínáme pracovat v InventorCAMu - frézování WWW.INVENTORCAM.CZ 1995-2009 SolidCAM All Rights Reserved. 1 2 2 Obsah Obsah 1. Přehled modulů InvnetorCAMu... 11 1.1 2.5D Frézování... 12 1.2 Obrábění

Více

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1 Manuál správce VNI 5.1 verze 0.2 Manuál správce VNI 5.1 VARIANT plus, spol. s.r.o., U Obůrky 5, 674 01 TŘEBÍČ, tel.: 565 659 600 technická linka 565 659 655 (pracovní doba 7:30 15:00) www.variant.cz isb@variant.cz

Více

PB161 Programování v jazyce C++ Přednáška 4

PB161 Programování v jazyce C++ Přednáška 4 PB161 Programování v jazyce C++ Přednáška 4 Přetěžování funkcí Konstruktory a destruktory Nikola Beneš 9. října 2017 PB161 přednáška 4: přetěžování funkcí, konstruktory, destruktory 9. října 2017 1 / 20

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

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

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

Více

Metodická příručka pro učitele. InspIS SET modul školní testování

Metodická příručka pro učitele. InspIS SET modul školní testování Metodická příručka pro učitele InspIS SET modul školní testování Tato Metodická příručka pro učitele byla zpracována v rámci projektu Národní systém inspekčního hodnocení vzdělávací soustavy v České republice

Více

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

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

Více

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 16. 4. 2019 Webové aplikace ES6, Vue strana 2 ES6, ES7... ES NEXT Nová/rozšířená syntaxe Mnoho vylepšení Není podporováno ve všech prohlížečích https://caniuse.com/

Více

Koordinační středisko pro resortní zdravotnické informační systémy

Koordinační středisko pro resortní zdravotnické informační systémy Aplikace pro Národní onkologický registr na KSRZIS Koordinační středisko pro resortní zdravotnické informační systémy Národní onkologický registr elektronický formulář s použitím Uživatelská příručka Stav

Více

1) Sémantika: operační sémantika, denotační sémantika, pevný bod funkce, vázání jmen, stav a data programu.

1) Sémantika: operační sémantika, denotační sémantika, pevný bod funkce, vázání jmen, stav a data programu. 1) Sémantika: operační sémantika, denotační sémantika, pevný bod funkce, vázání jmen, stav a data programu. Operační sémantika sémantika malého kroku a velkého kroku. [TPJ přednáška 1] Sémantika malého

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

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr)

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr) Cykly Základy programování 1 Martin Kauer (Tomáš Kühr) Z minula Chary můžete používat jako znaky ale i jako čísla 0-255. Jakou formu vybrat záleží na konkrétní aplikaci. Když pracujete se znaky, používejte

Více

Scénář ukázkového testu Přetištěno z knihy Nenuťte uživatele přemýšlet! 2010 Steve Krug

Scénář ukázkového testu Přetištěno z knihy Nenuťte uživatele přemýšlet! 2010 Steve Krug Scénář ukázkového testu Přetištěno z knihy Nenuťte uživatele přemýšlet! 2010 Steve Krug Ve webovém prohlížeči by měla být načtení nějaká neutrální stránka, například Google. Dobrý den. Jmenuji se a budu

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

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Třídy v C++ Třídy jsou uživatelsky definované typy podobné strukturám v C, kromě datových položek (proměnných) však mohou obsahovat i funkce

Více

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write(\nPrumerna teplota je {0}, tprumer); Pole (array) Motivace Častá úloha práce s větším množstvím dat stejného typu o Př.: průměrná teplota za týden a odchylka od průměru v jednotlivých dnech Console.Write("Zadej T pro.den: "); double t = Double.Parse(Console.ReadLine());

Více

Postup pro podání návrhu projektu studentské grantové soutěže

Postup pro podání návrhu projektu studentské grantové soutěže Postup pro podání návrhu projektu studentské grantové soutěže Návrhy projektů studentské grantové soutěže (dále jen návrhy projektů ) jsou podávány výhradně prostřednictvím IS OBD 3.1 (dále jen OBD ).

Více

Scrapping stránek prakticky: Dívka dne na TN.cz

Scrapping stránek prakticky: Dívka dne na TN.cz Scrapping stránek prakticky: Dívka dne na TN.cz Obsah Scrapping stránek prakticky: Dívka dne na TN.cz...1 Praktický příklad scrapping-u v Python-u...1 Analýza galerie Dívky dne...2 Krok 1: zjištění URL

Více

a autentizovaná proxy

a autentizovaná proxy Mendelova univerzita v Brně Virtuální privátní síť a autentizovaná proxy Verze: 1.2 Datum: 5. dubna 2011 Autor: Martin Tyllich, Aleš Vincenc, Stratos Zerdaloglu 2 Obsah 1 Připojení pomocí proxy serveru

Více

Rozdílová dokumentace k ovládání IS KARAT.net

Rozdílová dokumentace k ovládání IS KARAT.net Dokumentace k IS KARAT.net Rozdílová dokumentace k ovládání IS KARAT.net programový modul: Rozdílová dokumentace k ovládání IS KARAT.net OBSAH: 1 ÚVOD... 3 2 PŘIHLAŠOVACÍ DIALOG... 4 3 NAVIGACE... 5 3.1

Více

Teoretické minimum z PJV

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

Více

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 8: Dynamické datové struktury, ladění programů Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 8: Dynamické datové struktury, ladění programů Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Programování v jazyce C Tématický blok č. 8: Dynamické datové struktury, ladění programů Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Dynamické datové struktury 1.1 Příklad:

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Skripty a dávky. Nastavení aktuální databáze. USE DatabaseName

Informační systémy 2008/2009. Radim Farana. Obsah. Skripty a dávky. Nastavení aktuální databáze. USE DatabaseName 8 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah MS SQL Server 2005, Jazyk Transact-SQL, syntaxe, proměnné, struktury,

Více

Programování II. Polymorfismus

Programování II. Polymorfismus Programování II Polymorfismus Osnova přednášky Vztah přetížení, překrytí a protected přístupu. Co je polymorfismus? Příklad. Přetížení, překrytí, protected Přetížení x překrytí Přetížením řešíme doplnění

Více

PHP tutoriál (základy PHP snadno a rychle)

PHP tutoriál (základy PHP snadno a rychle) PHP tutoriál (základy PHP snadno a rychle) Druhá, vylepšená offline verze. Připravil Štěpán Mátl, http://khamos.wz.cz Chceš se naučit základy PHP? V tom případě si prostuduj tento rychlý průvodce. Nejdříve

Více

Zvýšení zabezpečení počítače

Zvýšení zabezpečení počítače KAPITOLA 5 Zvýšení zabezpečení počítače V této kapitole: Použití šablon zabezpečení................................................ 223 Použití Průvodce konfigurací zabezpečení................................

Více

PHP a Large Objecty v PostgreSQL

PHP a Large Objecty v PostgreSQL PHP a Large Objecty v PostgreSQL Pavel Janík ml. http://www.janik.cz PHP a Large Objecty v PostgreSQL 1 Jazyk PHP je velmi mocným jazykem pro vývoj webových aplikací. Má podporu snad všech velkých i menších

Více

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

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

Více

Technologie počítačových sítí 1. cvičení

Technologie počítačových sítí 1. cvičení Technologie počítačových sítí 1. cvičení Obsah prvního cvičení Microsoft Windows 2003 server Operační systém Windows 2003 server - Vytvoření nového virtuálního stroje pro instalaci Windows 98 - Příprava

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

Návod k ovládání administrační části nového turistického portálu Olomouckého kraje

Návod k ovládání administrační části nového turistického portálu Olomouckého kraje Evropská unie a Evropský fond pro regionální rozvoj jsou partnery pro váš rozvoj. Návod k ovládání administrační části nového turistického portálu Olomouckého kraje Příručka pro Informační centra Olomouckého

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

Návod k administraci e-learningové platformy

Návod k administraci e-learningové platformy LIFELONG LEARNING PROGRAMME Leonardo da Vinci Přenos inovací Návod k administraci e-learningové platformy Pracovní balíček č. 3, aktiva č. 3.3.2 Odpovědný partner: NVF Datum: 30/05/2015 Verze: Konečná

Více

JavaScript 101. "Trocha života do statických stránek"

JavaScript 101. Trocha života do statických stránek JavaScript 101 "Trocha života do statických stránek" Nacionále: JavaScript 101 Vznik: Netscape, 1995 Původně Mocha, později LiveScript, nakonec z marketingových důvodů přejmenován na JavaScript JavaScript

Více

Třídy a struktury v C++

Třídy a struktury v C++ katedra informatiky FEI VŠB-TU Ostrava 7. prosince 2015 Odvozené a strukturované typy dat v C základní datové typy součást normy jazyka, preprocesor použití netypových maker, raději voĺıme konstanty d

Více

Použití databází. Mnoho postupů, které si ukážeme pro prací s formulářů využijeme i při návrhu tiskových sestav.

Použití databází. Mnoho postupů, které si ukážeme pro prací s formulářů využijeme i při návrhu tiskových sestav. Formuláře Formuláře se v aplikaci Access používají zejména na úpravu dat. Upravovat data přímo v tabulce není příliš komfortní a proto si ukážeme jak vytvořit zadávací formulář, pomocí kterého budeme zadávat,

Více

JAVA. Další jazyky kompilovatelné do Java byte-code

JAVA. Další jazyky kompilovatelné do Java byte-code JAVA Další jazyky kompilovatelné do Java byte-code Přehled Scala objektový a funkcionální jazyk Closure funkcionální jazyk dialekt Lispu Groovy skritpovací jazyk Kotlin nová Java Jython Java implementace

Více

Uživatelský manuál Radekce-Online.cz

Uživatelský manuál Radekce-Online.cz Uživatelský manuál Radekce-Online.cz (revize 06/2011) V prvním kroku třeba vstoupit do administrace na adrese www.redakce-online.cz kterou naleznete na záložce Administrace / Vstup do Administrace, pro

Více