Funkcionální programování v praxi. Tomáš Petříček tomas@tomasp.net
|
|
- Pavla Bílková
- před 9 lety
- Počet zobrazení:
Transkript
1 Funkcionální programování v praxi Tomáš Petříček tomas@tomasp.net
2 Funkcionální programování v praxi» Možná více, než si myslíte Lze o tom napsat (a prodávat) knihy» V ne-funkcionálních jazycích Microsoft C# 3.0 a projekt LINQ Parallel Extensions for.net Některé vlasntosti v Pythonu Nový standard C++ 0x» Moderní funckionální jazyky Clojure LISP-style jazyk pro JVM Scala kombinace objektů a funkcionálního programování F# Jazyk pro.net, vychází z ML respektive OCaml
3 Microsoft Visual F#» Programovací jazyk ve Visual Studiu 2010 Autorem je Don Syme z Microsoft Research, Cambridge Funkcionální aspekty Programujeme skládáním výrazu Vypočítáváme výsledek programu (jako matematika) Objektově orientované aspekty Plná podpora pro objektový model.net jazyků Lze používat.net z F# a naopak F# z.netu Podporuje interaktivní programování Interaktivní testování kódu při jeho psaní Začneme jednoduše, postupně upravujeme Umožňuje některé imperativní konstrukce Užitečné pro optimalizace a pro interoperability
4 Rychlý přehled jazyka F# a používání.net knihoven z F#
5 Deklarace hodnot pomocí let» Immutable hodnota se nemění let num = 10 num = 11 Returns false» Type inference typy známé za překladu! let str = "Hello world!" let stock = ("MSFT", 25) let nums = [1; 2; 3; 4] Value: string» Unified funkce jsou také hodnoty Tuple: string * int List: int list let twotimes num = num * 2 Function type: int -> int
6 Funkce, rekurze a abstrakce» Vytváříme nové hodnoty, místo modifikace Cykly lze zapsat pomocí rekurzivních volání» Nechceme opakovat podobné rekurizvní vzory Rekurzivní kód můžeme parametrizovat Higher-order functions berou funkci jako parametr» Mnoho takových funkcí už je k dipozici Například pro práci se základními datovými typy Nejčastěji je píšeme při deklaraci vlastního typu
7 Práce s datovým typem záznam» Deklarace typu určuje (immutable) položky type Rect = { Left : float32 Top : float32 Width : float32 Height : float32 }» Funkce pro práci se záznamem Může například vytvořit nový seznam a vrátit jej let deflate rc wspace hspace = { Top = rc.top + wspace Left = rc.left + hspace Width = rc.width - (2.0f * wspace) Height = rc.height - (2.0f * hspace) }
8 Objektově orientované aspekty» OOP je způsob organizace kódu, nic jiného! Připojení související funkcionality k typu/objektu Pojmenovává this type Rect = { Left : float32 Top : float32 Width : float32 Height : float32 } Obvyklá deklarace typu v F# K typu připojujeme deklarace členů member x.deflate(wspace, hspace) = { Top = x.top + wspace Left = x.left + hspace Width = x.width - (2.0f * wspace) Height = x.height - (2.0f * hspace) } Zkompiluje se jako normální.net metoda Funkcionální chování!
9 Používání.NET typů» Lze používat všechny typy, bez omezení Není třeba žádný explicitní import F# je.net jazyk Operátor <- přiřazuje hodnotu vlastnosti Operátor. přistupuje ke členům objektu Jeden zápis main fce. open System open System.Windows.Forms.NET atributy [<STAThread>] do let form = new Form(Width = 400, Height = 300) form.text <- "Hello World Form Application.Run(form) Import.NET namespaces Zadání hodnoty vlastnosti již při vytváření objektu Modifikace vlastnosti
10 Demo 3D fraktál pomocí WPF
11 Reaktivní programování v F#
12 Práce s událostmi» Událost může se stát, nese nějaký argument MouseMove při pohybu myší, obsahuje X a Y kurzoru» Běžný způsob práce s událostmi v.net Pomocí registrace callback funkce Je zavolána systémem v případě události let w1 = new FileSystemWatcher ("C:\\Temp", EnableRaisingEvents = true) w1.renamed.add(fun fse -> Callback funkce if isnothidden(fse) then printfn "%s renamed to %s" fse.oldfullpath fse.fullpath)
13 Práce s událostmi, lépe» Kdybychom měli seznam objektů, místo události: Vytváříme seznam let infos = renamedinfos > List.filter isnothidden > List.map formatfileevent Pouze viditelné soubory Místo informací o souboru vracíme řetězec» Podobné funkce existují i pro události! Vytváříme novou událost let renamedinfoevent = w.renamed > Observable.filter isnothidden > Observable.map formatfileevent Deklarativně popíšeme jaké události nás zajímají Imperativní callback až na koncovou událost
14 Demo Počítání kliknutí na tlačítka Increment Decrement map (always 1) map (always -1) merge scan (+) 0 listen ( )
15 Computation expressions» Skládání výpočtů uživatelsky-definovaným způsobem <builder> { let! arg = function1() let! res = function2(arg) return res }» Význam je specifikovaný objektem <builder> Například, můžeme automaticky propagovat null hodnoty (neboli Maybe monad v jazyce Haskell) let LoadFirstOrder(customerId) = nullable { let! customer = LoadCustomer(customerId) let! order = customer.orders.firstordefault() return order }
16 Asynchronous workflows» Použití předcházejícího zápisu pro psaní dlouhoběžících operací které neblokují vlákna let http(url:string) = async { let req = HttpWebRequest.Create(url) let! rsp = req.asyncgetresponse() let reader = new StreamReader(rsp.GetResponseStream()) return! reader.asyncreadtoend() } let pages = Async.Parallel [ http(url1); http(url2) ]» Vhodné pro různé způsoby paralellního programování Fork/Join paralelismus s I/O operacemi Aktivní objekty komunikující pomocí zpráv
17 Počítání kliknutí na formulář» Progam zapisujeme pomocí agentů Agent většinu času pouze čeká, pak rychle reaguje Bere parametr int a vytváři objekt Async<unit> Výpočet bude pokračovat po kliknutí let rec loop(count) = async { let! me = Reactive.AwaitEvent(lbl.MouseDown) let add = if me.button = MouseButtons.Left then 1 else 0 lbl.text <- sprintf "Clicks: %d" (count + add) return! loop(count + add) } Rekurzivní volání loop(0) > Async.Start» To vypadá podobně jako Observable.scan Ne vždy máme ale tak jednoduché chování...
18 Počítání kliknutí na formulář» Progam zapisujeme pomocí agentů Agent většinu času pouze čeká, pak rychle reaguje let rec loop(count) = async { let! me = Reactive.AwaitEvent(lbl.MouseDown) let add = if me.button = MouseButtons.Left then 1 else 0 lbl.text <- sprintf "Clicks: %d" (count + add) let! _ = Reactive.Sleep(1000) return! loop(count + add) } loop(0) > Async.Start Výpočet bude pokračovat za 1000ms» Toto již pomocí Observable.scan (snadno) nejde
19 Demo Aplikace na kreslení obdélníků Starting Initial state Waiting MouseMove (button released) MouseDown Drawing MouseMove (with button pushed)
20 Reprezentace dat pomocí F# typů
21 Datové typy v F#» Vytváříme složitější typy z jednoduchých Založené na principu compositionality 1) Několik základních typů pro začátek 2) Několik způsobů pro konstrukci typů» Základní typy: int, string, float,» Typové konstruktory: _ * _ Vytváří n-tici (na příklad string * int) list<_> Vytváří seznam (na příklad list<int>)» Typove konstruktory lze libovolně vnořovat Na příklad list<int * string> nebo string * list<int>
22 Demo Popisování finančních kontraktů pomocí datových typů v F#
23 Díky za pozornost!?» Mail: Blog:
Reaktivní programování v.net
Reaktivní programování v.net Tomáš Petříček http://tomasp.net/blog tomas@tomasp.net Co je reaktivní programování? Psaní aplikací které regaují na události» Klasické.NET eventy Například MouseDown, KeyPress,
1. Programování, typy programovacích jazyků, historie.
1. Programování, typy programovacích jazyků, historie. třída Console metody Write, WriteLina, ReadLine, ResetColor vlastnosti ForegroundColor, Backgroundcolor třída Form objekt Label vlastnost Text význam
Virtuální přístroje. Použití grafického programování v LabVIEW. Ing. Pavel Mlejnek
Virtuální přístroje Použití grafického programování v LabVIEW Ing. Pavel Mlejnek mlejnp1@fel.cvut.cz Grafické programování LabVIEW Základní informace Principy grafického programování Vývojové prostředí
Jazyk C# (seminář 6)
Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí
2.4.11 Nerovnice s absolutní hodnotou
.. Nerovnice s absolutní hodnotou Předpoklady: 06, 09, 0 Pedagogická poznámka: Hlavním záměrem hodiny je, aby si studenti uvědomili, že se neučí nic nového. Pouze používají věci, které dávno znají, na
1 - Úvod do platformy.net. IW5 - Programování v.net a C#
1 - Úvod do platformy.net IW5 - Programování v.net a C# Strana 1 Obsah přednášky Objektově orientované paradigma.net Framework Základní rysy jazyka C# Strana 2 Objektová orientace C# implementuje základní
Python. Zdeněk Philipp - Seznam.cz
Python Něco málo omáčky http://www.python.org objektově orientovaný, interpretovaný, dynamický a silně typovaný multiplatformní (Windows, Linux/Unix, Mac OS X, OS/2, Amiga, Palm Handhelds, Nokia mobile
Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář
Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění
Syntaxí řízený překlad
Překlad Syntaxí řízený překlad Miroslav Beneš Dušan Kolář Definice: Překlad je relace TRAN: L 1 -> L 2 L 1 Σ* Σ - vstupní abeceda L 2 * - výstupní abeceda L 1 jazyk infixových výrazů L 2 jazyk postfixových
PRG036 Technologie XML
PRG036 Technologie XML Přednáší: Irena Mlýnková (mlynkova@ksi.mff.cuni.cz) Martin Nečaský (necasky@ksi.mff.cuni.cz) LS 2010 Stránka přednášky: http://www.ksi.mff.cuni.cz/~mlynkova/prg036/ 1 Osnova předmětu
Název: VY_32_INOVACE_PG3309 Booleovské objekty ve 3DS Max - sčítání a odčítání objektů
Název: VY_32_INOVCE_PG3309 ooleovské objekty ve 3DS Max - sčítání a odčítání objektů utor: Mgr. Tomáš Javorský Datum vytvoření: 05 / 2012 Ročník: 3 Vzdělávací oblast / téma: 3D grafika, počítačová grafika,
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
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu Výuka moderně Registrační číslo projektu: CZ.1.07/1.5.00/34.0205 Šablona: III/2 Informač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,
Operační systém teoreticky
Přednášky o výpočetní technice Operační systém teoreticky Adam Dominec 2010 Rozvržení Operační systém Uživatelské účty Správa RAM Plánování procesů Knihovny Okna Správa zařízení Rozvržení Operační systém
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
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
Plán předmětu Název předmětu: Školní rok: Ročník: Semestr: Typ předmětu: Rozsah předmětu: Počet kreditů: Přednášející: Cvičící: Cíl předmětu
Plán předmětu Název předmětu: Algoritmizace a programování (PAAPP) Školní rok: 2009/2010 Ročník: I Semestr: II. (letní) Typ předmětu: povinný Rozsah předmětu: 3 3 z, zk Počet kreditů: 6 Přednášející: RNDr.
Windows 10 (6. třída)
Windows 10 (6. třída) Okno spuštěné aplikace: takto vypadá okno aplikace Malování - panel nástrojů Rychlý přístup Titulkový pruh se jménem souboru (Bez názvu) tlačka pro minimalizaci, obnovení z maxima
Třídy a objekty -příklady
Třídy a objekty -příklady 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 Příklad 1 Kvadratická rovnice static void
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í
2.8.9 Parametrické rovnice a nerovnice s absolutní hodnotou
.8.9 Parametrické rovnice a nerovnice s absolutní hodnotou Předpoklady: 0,, 806 Pedagogická poznámka: Opět si napíšeme na začátku hodiny na tabuli jednotlivé kroky postupu při řešení rovnic (nerovnic)
Ú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 týmové spolupráci jsou komentáře nezbytností. V komentářích se může např. kolega vyjadřovat k textu, který jsme napsali atd.
Týmová spolupráce Word 2010 Kapitola užitečné nástroje popisuje užitečné dovednosti, bez kterých se v kancelářské práci neobejdeme. Naučíme se poznávat, kdo, kdy a jakou změnu provedl v dokumentu. Změny
Inovace výuky prostřednictvím šablon pro SŠ
Název projektu Číslo projektu Název školy Autor Název šablony Název DUMu Stupeň a typ vzdělávání Vzdělávací oblast Vzdělávací obor Tematický okruh Inovace výuky prostřednictvím šablon pro SŠ CZ.1.07/1.5.00/34.0748
Vrtání závitů bez vyrovnávací hlavičky (G331, G332)
Předpoklady Funkce Technickým předpokladem pro vrtání závitů bez vyrovnávací hlavičky je vřeteno s regulací polohy a systémem pro měření dráhy. Vrtání závitů bez vyrovnávací hlavičky se programuje pomocí
Komponenty v.net. Obsah přednášky
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 přednášky Rozdíl mezi COM a.net Distribuce komponent Programování
16. února 2015, Brno Připravil: David Procházka
16. února 2015, Brno Připravil: David Procházka Skrývání implementace Základy objektového návrhu Připomenutí návrhu použitelných tříd Strana 2 / 17 Obsah přednášky 1 Připomenutí návrhu použitelných tříd
{ } 9.1.9 Kombinace II. Předpoklady: 9108. =. Vypiš všechny dvoučlenné kombinace sestavené z těchto pěti prvků. Urči počet kombinací pomocí vzorce.
9.1.9 Kombinace II Předpoklady: 9108 Př. 1: Je dána pěti prvková množina: M { a; b; c; d; e} =. Vypiš všechny dvoučlenné kombinace sestavené z těchto pěti prvků. Urči počet kombinací pomocí vzorce. Vypisujeme
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
Novinky v Maple T.A. 10
Novinky v Maple T.A. 10 Maple T.A. 10 je nová verze aplikace Maple T.A., jejíž nová funkcionalita je zejména založena na požadavcích uživatelů z řad studentů, instruktorů, administrátorů. Došlo k rozšíření
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
( ) 2.4.4 Kreslení grafů funkcí metodou dělení definičního oboru I. Předpoklady: 2401, 2208
.. Kreslení grafů funkcí metodou dělení definičního oboru I Předpoklady: 01, 08 Opakování: Pokud jsme při řešení nerovnic potřebovali vynásobit nerovnici výrazem, nemohli jsme postupovat pro všechna čísla
BlueJ a základy OOP. Programování II 1. cvičení Alena Buchalcevová
BlueJ a základy OOP Programování II 1. cvičení Alena Buchalcevová Konzultační hodiny v ISu doc. Alena Buchalcevová Po 14:00-15:00 NAR 220 2 Cíle 1. cvičení pochopit pojmy: třída instance konstruktor metoda
Používání IS Carsystem
Používání IS Carsystem Filtrování dat se SW Carsys Jak řadit a filtrovat data v agendách... 1 I. Používání filtrů... 1 II. Uložené filtry... 2 III. Vyvolávání filtrů... 3 Jak zobrazit potřebná data...
Programovací jazyk Haskell
Programovací jazyk Haskell Ing. Lumír Návrat katedra informatiky, D 403 59 732 3252 Historie září 1991 Gofer experimentální jazyk Mark P. Jones únor 1995 Hugs Hugs98 téměř úplná implementace jazyka Haskell
MS WORD 2007 Styly a automatické vytvoření obsahu
MS WORD 2007 Styly a automatické vytvoření obsahu Při formátování méně rozsáhlých textů se můžeme spokojit s formátováním použitím dílčích formátovacích funkcí. Tato činnost není sice nijak složitá, ale
Vektorový grafický editor
Vektorový grafický editor Jak již bylo řečeno, vektorový editor pracuje s křivkami; u vektorových obrázků se při zvětšování kvalita nemění. Jednoduchý vektorový obrázek může nakreslit ve Wordu; pro náročnější
OOPR_05. Případové studie
OOPR_05 Případové studie 1 Přehled probírané látky příklad skládání objektů - čára příklad skládání objektů kompozice a agregace přetížené konstruktory pole jako datový atribut 2 Grafický objekt - čára
Sada 2 - MS Office, Excel
S třední škola stavební Jihlava Sada 2 - MS Office, Excel 03. Úvod do Excelu 2007. Vkládání dat, vzorce Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284
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
Pokročilé schopnosti OOP
Kapitola 7 Pokročilé schopnosti OOP V kapitole 6 jste absolvovali základy objektově orientovaného programování v PHP. V této kapitole budeme na těchto základech stavět. Seznámíte se s několika vyspělejšími
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
Programovací í jazyk Haskell
Historie Programovací í jazyk Haskell doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 září 1991 Gofer experimentální jazyk Mark P. Jones únor 1995 Hugs Hugs98 téměř úplná implementace
Novinky ve Visual Studio 2010. Tomáš Kroupa Tomas.Kroupa@hotmail.com
Novinky ve Visual Studio 2010 Tomáš Kroupa Tomas.Kroupa@hotmail.com O čem si dnes řekneme Visual studio 2010 (beta 2) Jazyk C# 4.0 ASP.NET 4.0.NET 4.0 Visual Studio 2010 Beta 2 Jak získat Testovací verze
Poznámky k verzi. Scania Diagnos & Programmer 3, verze 2.27
cs-cz Poznámky k verzi Scania Diagnos & Programmer 3, verze 2.27 Verze 2.27 nahrazuje verzi 2.26 programu Scania Diagnos & Programmer 3 a podporuje systémy ve vozidlech řady P, G, R a T a řady F, K a N
Kalendář je nástroj, který vám pomůže zorganizovat si pracovní čas. Zaznamenáváme do něj události jako schůzky, termíny odevzdání práce a podobně.
III. je nástroj, který vám pomůže zorganizovat si pracovní čas. Zaznamenáváme do něj události jako schůzky, termíny odevzdání práce a podobně. V levé spodní části okna Outlook si stisknutím tlačítka zobrazíme
Abstraktní datové typy: zásobník
Abstraktní datové typy: zásobník 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 Abstraktní datové typy omezené rozhraní
III/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo didaktického materiálu EU-OPVK-VT-III/2-ŠR-303 Druh didaktického materiálu DUM Autor RNDr. Václava Šrůtková Jazyk čeština
Přehled probírané látky
OOPR_04 1 Přehled probírané látky asociace (relace) mezi třídami popis množiny spojení mezi objekty skládání objektů - upřesněný typ asociace, vazba mezi objekty kompozice objektů (velmi pevná vazba mezi
Příklady a návody. Databázová vrstva
Příklady a návody Databázová vrstva Konceptuální datový model Popis dat.struktur pomocí entit, atributů, vazeb a integritních omezení ER-model nebo OO-diagramy (class diagram) ER model zdůrazňuje vztahy
5 Rekurze a zásobník. Rekurzivní volání metody
5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení
Úvod Informace o prostředí Práce se soubory Regulární výrazy Konec. Programování v C# Soubory a regulární výrazy. Petr Vaněček 1 / 27
Programování v C# Soubory a regulární výrazy Petr Vaněček 1 / 27 Obsah přednášky Informace o prostředí Práce se soubory Regulární výrazy 2 / 27 Zprostředkování informací Třída System.Environment Poskytuje
DUM 13 téma: Příkazy pro výběr
DUM 13 téma: Příkazy pro výběr ze sady: 3 tematický okruh sady: III. Databáze ze šablony: 7 Kancelářský software určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie vzdělávací oblast:
Současné trendy vývoje aplikací pro platformu ios
Současné trendy vývoje aplikací pro platformu ios Petr Zvoníček @zvonicek 27. 11. 2014 PV226 Proč je vývoj pro ios zajímavý? uzavřený ekosystém silná open source komunita roční vývojový cyklus major verzí
Programování II 1. přednáška. Alena Buchalcevová
Programování II 1. přednáška Alena Buchalcevová Cíle kurzu Seznámit se s principy objektově orientovaného programování v jazyce Java Základní seznámení s objekty Třídy a instance Volání metod, datové atributy
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Jana
Jak stáhnout video/hudbu z YouTube. Napsal uživatel Yeah(c) Neděle, 15 Listopad 2009 11:44
Ačkoliv jednotlivých programů zabývajících se touto problematikou přibývá, pravdou je, že najít skutečně funkční a spolehlivý způsob downloadu je dnes poměrně obtížné. Hlavním důvodem jsou změny v kódech
Allegro 1.92 release (1.3.2016 od 2.2.2016)
Allegro 1.92 release (1.3.2016 od 2.2.2016) Symbol označuje nové aplikace Účetnictví Společnosti Přednastavení textů obchodních dokladů bylo optimalizováno pro vyšší rychlost načítání. Byla doplněna možnost
Dynamicky vázané metody. Pozdní vazba, virtuální metody
Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:
Abstrakt. Následující text obsahuje detailní popis algoritmu Minimax, který se používá při realizaci rozhodování
Abstrakt Následující text obsahuje detailní popis algoritmu Minimax, který se používá při realizaci rozhodování počítačového hráče v jednoduchých deskových hrách, a jeho vylepšení Alfa-Beta ořezávání,
Návod k použití vigilančních formulářů
Návod k použití vigilančních formulářů Obecné poznámky a upozornění Obecné poznámky a upozornění Doporučujeme používat nejnovější verze prohlížečů. Provoz aplikace je garantován na prohlížečích Internet
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
1.1.1 Kvadratické rovnice (dosazení do vzorce) I
.. Kvadratické rovnice (dosazení do vzorce) I Předpoklady: základní početní operace Rovnicí se nazývá vztah rovnosti mezi dvěma výrazy obsahujícími jednu nebo více neznámých. V této kapitole se budeme
2.7.2 Mocninné funkce se záporným celým mocnitelem
.7. Mocninné funkce se záporným celým mocnitelem Předpoklady: 70 Mocninné funkce se záporným celým mocnitelem: znamená? 3 y = = = = 3 y y y 3 = ; = ; = ;.... Co to Pedagogická poznámka: Nechávám studenty,
EZB dělí časopisy dle dostupnosti do 4 kategorií označené symboly: - volně dostupné. - předplacené tituly dostupné v rámci knihovny
ELEKTRONICKÁ KNIHOVNA ČASOPISŮ (EZB) Projekt elektronické knihovny akademických a vědeckých časopisů Electronic Journals Library (dále EZB) vznikl v univerzitní knihovně v německém Regensburgu. Do projektu
Pohyb v listu. Řady a posloupnosti
Pohyb v listu. Řady a posloupnosti EU peníze středním školám Didaktický učební materiál Anotace Označení DUMU: VY_32_INOVACE_IT4.05 Předmět: IVT Tematická oblast: Microsoft Office 2007 Autor: Ing. Vladimír
Vladimír Mach. @vladimirmach 2. 1. 2013
Vladimír Mach @vladimirmach 2. 1. 2013 SQL Server Compact Edition Jednoduchá relační databáze Použití i v malých zařízeních s omezenými zdroji Dříve pod názvem SQL Server Mobile Časté využití při programování
Poznámky k verzi Remote Support Platform 3.0
Poznámky k verzi Remote Support Platform for SAP Business One Verze dokumentu: 1.0 2012-10-08 VEŘEJNÉ Poznámky k verzi Remote Support Platform 3.0 Všechny státy Typografické konvence Styl typu Příklad
PostgreSQL. Podpora dědičnosti Rozšiřitelnost vlastní datové typy. Univerzální nasazení ve vědecké sféře
PostgreSQL Vzniká jako akademický projekt Experimentální vlastnosti Podpora dědičnosti Rozšiřitelnost vlastní datové typy Univerzální nasazení ve vědecké sféře Obsahuje podporu polí (časové řady) Geotypy
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
PŘÍLOHA č. 2B PŘÍRUČKA IS KP14+ PRO OPTP - ŽÁDOST O ZMĚNU
PŘÍLOHA č. 2B PRAVIDEL PRO ŽADATELE A PŘÍJEMCE PŘÍRUČKA IS KP14+ PRO OPTP - ŽÁDOST O ZMĚNU OPERAČNÍ PROGRAM TECHNICKÁ POMOC Vydání 1/7, platnost a účinnost od 04. 04. 2016 Obsah 1 Změny v projektu... 3
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ý
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)
ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14
ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 18 0:40 Algoritmus Algoritmem by se dal nazvat
Uplatnění nových informačních technologií ve výuce a na zdravotnickém pracovišti. Marie Marková
Uplatnění nových informačních technologií ve výuce a na zdravotnickém pracovišti Marie Marková Podpora mobilních technologií na pracovišti onkologických sester Supporting innovative learning approaches
Poruchy modul pro rychlé hlášení poruch z provozu.
Poruchy modul pro rychlé hlášení poruch z provozu. Účelem tohoto programu je sbírat data o poruchách a nedostatcích v činnosti strojů a zařízení a jednak je zapisovat přímo do programu evidence údržby,
CERTIFIKOVANÉ TESTOVÁNÍ (CT) Výběrové šetření výsledků žáků 2014
(CT) Výběrové šetření výsledků žáků 2014 Uživatelská příručka pro přípravu školy Verze 1 Obsah 1 ÚVOD... 3 1.1 Kde hledat další informace... 3 1.2 Posloupnost kroků... 3 2 KROK 1 KONTROLA PROVEDENÍ POINSTALAČNÍCH
PROGRAMOVÁNÍ V C++ CVIČENÍ
PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné
Historie počítačů v kostce. Marek Kocián, KOC322 Daniel Kapča, KAP077
Historie počítačů v kostce Marek Kocián, KOC322 Daniel Kapča, KAP077 Evoluce počítačů Pravěk Středověk Velká průmyslová revoluce Novověk Budoucnost Počítačový pravěk - Abakus Vznik už v Antice Základní
této složky Hodnoty c) klepnutím na Smazání Typ hodnot
MS Excel 201 10 Lekce 2 Operační program Vzdělávání pro konkurenceschopnost Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult t MU Registrační číslo: CZ.1.07/ /2.2.00/15.0224, Oblast podpory:
Lokální a globální extrémy funkcí jedné reálné proměnné
Lokální etrémy Globální etrémy Použití Lokální a globální etrémy funkcí jedné reálné proměnné Nezbytnou teorii naleznete Breviáři vyšší matematiky (odstavec 1.). Postup při hledání lokálních etrémů: Lokální
IB015 Neimperativní programování. Seznamy, Typy a Rekurze. Jiří Barnat Libor Škarvada
IB015 Neimperativní programování Seznamy, Typy a Rekurze Jiří Barnat Libor Škarvada Sekce IB015 Neimperativní programování 02 str. 2/36 Uspořádané n-tice a seznamy Programování a data IB015 Neimperativní
Práce se zálohovými fakturami
Práce se zálohovými fakturami Jak pracovat se zálohovými fakturami Pro program DUEL je připraven metodický postup pořizování jednotlivých dokladů v procesu zálohových plateb a vyúčtování, včetně automatického
PARA Filozofové, kuřáci a holič
PARA Filozofové, kuřáci a holič Lenka Carr Motyčková 22. duben 2014 PDS Semafory 1 1. Večeřící filozofové (Dijkstra 1968) Problém: N (typicky 5) flozofů sedí u kulatého stolu, přemýšlí nebo jedí pomocí
Sada 2 CAD2. 16. CADKON 2D 2011 Nosníkový strop
S třední škola stavební Jihlava Sada 2 CAD2 16. CADKON 2D 2011 Nosníkový strop Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 -
JavaScript v praxi: Sokoban (5. přednáška)
JavaScript v praxi: Sokoban (5. přednáška) Sokoban... Cíl Přesunout krabice tak, aby každá krabice byla na žlutém poli. Pravidla 1. Panáček se může pohybovat nahoru, dolů, doprava, doleva 2. Panáček může
DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný
DJ2 rekurze v SQL slajdy k přednášce NDBI001 Jaroslav Pokorný 1 Obsah 1. Úvod 2. Tvorba rekurzívních dotazů 3. Počítaní v rekurzi 4. Rekurzívní vyhledávání 5. Logické hierarchie 6. Zastavení rekurze 7.
LISP Definice funkcí
LISP Definice funkcí (DEFUN jméno-fce (argumenty) tělo-fce ) Přiřadí jménu-fce lambda výraz definovaný tělem-fce, tj. (LAMBDA (argumenty) tělo-fce). Vytvoří funkční vazbu symbolu jméno-fce Struktura symbolu:
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
IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE
Nové formy výuky s podporou ICT ve školách Libereckého kraje IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE Podrobný návod Autor: Mgr. Michal Stehlík IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE 1 Úvodem Tento
Infor Performance management. Eva Janečková Jakub Urbášek
Infor Performance management Eva Janečková Jakub Urbášek Agenda prezentace Stručně o produktu Infor PM 10 Komponenty Infor PM - PM OLAP a PM Office Plus Možnosti propojení na ERP databáze Ukázka Baan a
Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr
Seminář z IVT Algoritmizace Slovanské gymnázium Olomouc Tomáš Kühr Algoritmizace - o čem to je? Zatím jsme se zabývali především tím, jak určitý postup zapsat v konkrétním programovacím jazyce (např. C#)
1.3.1 Kruhový pohyb. Předpoklady: 1105
.. Kruhový pohyb Předpoklady: 05 Předměty kolem nás se pohybují různými způsoby. Nejde pouze o přímočaré nebo křivočaré posuvné pohyby. Velmi často se předměty otáčí (a některé se přitom pohybují zároveň
RMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
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ů
Signály Mgr. Josef Horálek
Signály Mgr. Josef Horálek Signály = Jedná se o nejstarší metody komunikace mezi procesem a jádrem, a mezi samotnými procesy. = Princip: = Prosec vykonává určitou činnost přijde mu signál přeruší původní
STRUKTUROVANÉ UČENÍ. Příklady vzdělávací práce u žáků s poruchami autistického spektra v naší škole
STRUKTUROVANÉ UČENÍ Příklady vzdělávací práce u žáků s poruchami autistického spektra v naší škole STRUKTUROVANÉ UČENÍ V naší škole využíváme při vzdělávání žáků s PAS metodiku práce nazvanou strukturované
Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU MS POWERPOINT 2010
Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU MS POWERPOINT 2010 Novinky v PowerPoint 2010 Správa souborů v novém zobrazení Backstage Automatické ukládání verzí prezentace Uspořádání snímků
Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML
Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k