FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 3. CVIČENÍ

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

Download "FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 3. CVIČENÍ"

Transkript

1 FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 3. CVIČENÍ 2011 Jan Janoušek MI-FLP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

2 Page 1 of 6 Cviceni 3 Obsah seznamy, cons-buňka, car, cdr, first, rest, caar,..., cddddr, nth, nthcdr, list, last, append, length, butlast, copy-list, copy-tree, listp, consp, atom, symbolp, numberp, ukazatele, porovnávání (eql, eq, =, equal), function, #', apply, funcall, lambda-výraz, mapovací funkcionály (mapcar, mapcan, mapc, maplist, mapcon, map) Seznamy Seznamy jsou jednou ze základních datových struktur v Lispu. V Common Lispu (CL) je možné použít i specializované datové struktury (hash-tabulky, vektory a vícerozměrná pole, streamy,...). Při psaní programu však většinou v první fázi použijeme seznamy a až později můžeme zvážit, zda je účelné přejít ke specializovaným (efektivnějším) datovým strukturám. Seznam můžeme definovat takto: 1) Seznamem je prázdný seznam ( v Lispu zapsán jako nil nebo () ) 2) Seznam vznikne přidáním libovolného prvku k seznamu (zleva), přitom prvkem může být libovolný atom nebo opět seznam. V Lispu se pro vytváření seznamů pomocí přidávání prvků používá funkce cons. Tato funkce očekává dva parametry. Výsledkem volání je vytvoření dvousložkového objektu nazývaného consbuňka (angl. cons-cell), první složka tohoto objektu je ukazatel na objekt zadaný funkci cons jako první argument, druhá složka je ukazatel předaný funkci cons jako druhý argument. Pro přístup k těmto prvkům se používají funkce car (první složka) cons-buňky a cdr (druhá složka). CL-USER 13 > (setf x (cons 'b nil)) (B) CL-USER 14 > (setf y (cons 'a (cons 'b (cons 'c nil)))) (A B C) (Obrázky reprezentace). Se symbolem X je nyní asociován jednoprvkový seznam (B), se symbolem Y tříprvkový seznam (A B C). Jak je vidět z předchozích příkladů, seznam se v Lispu zapisuje jako skupina prvků oddělených mezerami, která ohraničena kulatými závorkami. CL-USER 16 > (car y) A CL-USER 17 > (cdr y) (B C) První složka prvního cons objektu je ukazatel na A druhý prvek je ukazatel na zbytek seznamu. Mimo funkce car a cdr (pojmenování vzniklo podle registru počítače na kterém běžel jeden z prvních dialektů Lispu - ekvivalentně můžeme použít first a rest) existují jejich různé variace. Např. CL-USER 18 > (cddr y) (C) je ekvivalentní zápisu (cdr (cdr y)). Podobně pracují funkce caar, caaar, cdddr,... CL-USER 19 > (cadr y) B

3 Page 2 of 6 Funkce cadr vrátí (car (cdr...)) Pro přístup na prvek seznamu, jehož pořadí je zadáno indexem, můžeme použít funkce: CL-USER 28 > (nth '1 y) B CL-USER 29 > (nthcdr '1 y) (B C) Indexování začíná v Lispu vždy od nuly. Pro vytvoření seznamu z více prvků v jednom kroku slouží funkce list, funkce last vrátí poslední cons objekt seznamu: CL-USER 31 > (list 'a 'b 'c 1 2 '(2 3) t) (A B C 1 2 (2 3) T) CL-USER 34 > (last (list 'a 'b 'c 1 2 '(2 3) t)) (T) Funkce append spojí více seznamů do jednoho: CL-USER 35 > (append '(1 2) '(a (b c))) (1 2 A (B C)) Další užitečné funkce: length - vrátí délku seznamu butlast - seznam bez posledního prvku Jestliže potřebujeme vytvořit kopii seznamu, použijeme funkci copy-list. Výsledkem je tzv. mělká kopie seznamu, tedy kopírují se pouze cons-buňky z nejvyšší úrovně zadaného seznamu. Nový seznam má tedy tytéž prvky - ukazatele na ně jsou ale umístěny v nových cons buňkách. Pro vytvoření hluboké kopie (včetně vnořených seznamů), slouží funkce copy-tree. Některé predikáty (listp x) - testuje, zda x je seznam (nil nebo cons buňka - vrací tedy t i pro seznam, který není řádně ukončen) (consp x) - testuje, zda x je cons buňka (atom x) - testuje, zda x je atom (symbolp x) - vrací t, jestliže x je symbolický atom (numberp x) - vrací t, jestliže x je číslo Tečková notace Seznamy popsané v předchozí části se někdy označují jako tzv. řádné (proper) seznamy. Takový seznam je buď prázdný seznam (nil nebo ()), nebo cons buňka, jejíž cdr je opět řádný seznam. Funkce testující, zda je seznam řádný, by mohla vypadat třeba takto:

4 Page 3 of 6 (defun prop-sez (lst) (or (null lst) (and (consp lst) (prop-sez (cdr lst))))) Standardní Lispovský predikát na testování seznamů listp, vrací T i pro seznamy, které nejsou řádné. Přepis této funkce v Lisp kódu by mohl vypadat takto: (defun my-listp (lst) (or (null lst) (consp lst))) Všechno co není cons buňka, se v Lispu považuje za atom. Predikát atom můžeme tedy přepsat jako: (defun my-atom (a) (not (consp a))) Funkcí cons se však v Lispu nevytváří pouze seznamy. Je ji možno použít, kdykoliv je potřeba vytvořit dvouprvkovou strukturu. Ta je pak zobrazena v tečkové notaci. CL-USER 20 > (cons 'a 'b) (A. B) Tečkovou notaci lze použít i při zápisu seznamů, ale zpravidla to neděláme. Jestliže však pomocí tečkové notace vytvoříme řádný seznam, je zobrazen obvyklým způsobem. CL-USER 21 > '(1. (2. (3. nil))) (1 2 3) Následující struktury nejsou řádným seznamem (poslední cons buňka neobsahuje v cdr složce nil). Zobrazeny jsou v tzv. smíšené notaci. CL-USER 22 > '(1. (2. (3. 4))) ( ) CL-USER 23 > (cons 1 (cons 2 (cons 3 4))) ( ) Ukazatele Lisp nepracuje explicitně s ukazateli. Je to zbytečné. Jestliže navážeme na symbol nějaký objekt (číslo, strukturu, seznam,...), obsahuje symbol pouze ukazatel na tento objekt a ne objekt samotný. Jestliže například zadáme: CL-USER 54 > (setf A '(1 2)) (1 2) CL-USER 55 > (setf B A) (1 2) nekopíroval se do B celý seznam z A, pouze se do B přiřadil ukazatel na stejný seznam, na jaký ukazuje proměnná A. Kvůli efektivnosti občas Lisp nevytváří ukazatele - například malé číslo (integer) zabere stejnou paměť jako pointer, a tak se může uložit (včetně příslušné typové informace!) přímo do dané proměnné nebo do složky v cons-buňce, ale to už jsou implementační detaily. Jednoduše si můžeme představit, že proměnná vždy obsahuje ukazatel na objekt, který je do ní přiřazen. Mimo jiné to znamená, že je možno přiřadit objekt jakéhokoliv typu kamkoliv (jestliže

5 Page 4 of 6 toto implicitní chování nezměníme explicitní deklarací). Porovnávání K porovnávání dvou objektů můžeme v Lispu použít několik funkcí. Funkce eql porovnává, jestli jsou dva objekty identické. Čísla jsou identická, jestliže mají stejnou hodnotu (a typ), ostatní objekty jsou identické, jestliže jsou na stejném místě v paměti (ukazatele se rovnají). CL-USER 78 > (eql 1 1) T CL-USER 79 > (eql ) T CL-USER 80 > (eql (cons 1 nil) (cons 1 nil)) NIL CL-USER 81 > (eql 0 0.0) NIL Funkce eq je přísnější obdoba eql. Vrací T pouze v případě, že oba argumenty jsou na stejném místě v paměti. CL-USER 82 > (eq ) NIL Pro porovnávání čísel můžeme použít funkci =. Dvě čísla jsou stejná, jestliže mají stejnou hodnotu (mohou se lišit typem). CL-USER 89 > (= 0 0.0) T Jestliže chceme otestovat, jestli složitější datové struktury obsahují stejné elementy (např. jestli dva seznamy obsahují stejné prvky), můžeme použít funkci equal. CL-USER 90 > (equal (list 1 (list 2 3)) (list 1 (list 2 3))) T Funkce V Lispu jsou funkce objekty - podobně jako symboly, seznamy nebo řetězce. Speciální operátor function vrací zobrazitelnou reprezentaci funkce. Podobně jako můžeme použít ' (apostrof) místo quote, můžeme operátor function nahradit pomocí zkratky #'. CL-USER 4 > (function +) #<function F9A> CL-USER 6 > #'+ #<function F9A> Porovnat rozdíly při vyhodnocování symbolů můžeme následovně:

6 Page 5 of 6 CL-USER > (setf list ) CL-USER 11 > list Symbol list se vyhodnotil na hodnotu, která je na něj navázaná. CL-USER 12 > 'list LIST Speciální operátor quote vrátil textovou reprezentaci zadaného symbolu. CL-USER 13 > #'list #<function LIST 200DCA7A> Výsledkem dotazu po funkční hodnotě je objekt reprezentující funkci navázanou na symbol list. Jako ostatní objekty v Lispu, můžeme i funkci předat jako parametr. Jednou z mnoha funkcí očekávajících jako parametr jinou funkci, je funkce apply. Jako první argument očekává funkci, zbytek pak tvoří argumenty, na které se má tato funkce aplikovat. Posledním argumentem musí být seznam. CL-USER 16 > (apply #'+ '( )) CL-USER 17 > (apply #'+ 1 2 '(3 4)) Funkce funcall pracuje stejně jako apply, nepotřebuje však argumenty zabalené do seznamu. CL-USER 18 > (funcall #' ) K vytvoření nepojmenované (anonymní) funkce můžeme v Lispu použít tzv. lambda-výraz. CL-USER 21 > (lambda (x y) (+ x y)) #'(LAMBDA (X Y) (+ X Y)) Nepojmenovaná funkce je výhodná při jednorázovém použití jako parametr jiné funkce. CL-USER 22 > (funcall #'(lambda (x y) (- x y)) 2) 8 Mapovací funkcionály Velmi často se v Lispu vyskytuje požadavek na postupné zpracování seznamu pomocí nějaké funkce. Pro tyto případy poskytuje Common Lisp tzv. mapovací funkcionály (někdy označované jako funkce vyšších řádů). Jako první argument očekávají funkci a zbylé argumenty představují seznam nebo několik seznamů. Počet těchto seznamů musí odpovídat počtu parametrů funkce, zadané jako první parametr. Tato funkce je pak postupně aplikována na určitou podmnožinu prvků vybraných ze seznamu: Funkcionál mapcar pracuje na jednotlivých prvcích. Napřed se použije car z každého seznamu, potom cadr a tak dále. Počet opakování je dán počtem prvků nejkratšího seznamu. Výsledkem je seznam vytvořený z výsledných hodnot aplikované funkce.

7 Page 6 of 6 CL-USER 1 > (mapcar #'list '(1 2 3) '( ) '( )) ((1 4 9) (2 5 8) (3 6 1)) Funkcionál mapcan pracuje podobně jako mapcar, výsledky (předpokládá se, že to jsou seznamy) jsou však do seznamu přidávány pomocí (destruktivního) postupného propojení za sebou. CL-USER 2 > (mapcan #'list '(1 2 3) '( ) '( )) ( ) Funkcionál mapc je opět obdoba mapcar, jako výsledek se vrací druhý argument. Používá se kvůli vedlejším efektům, kdy nás nezajímá návratová hodnota. CL-USER 3 > (mapc #'list '(1 2 3) '( ) '( )) (1 2 3) Funkcionál maplist - zadaná funkce je postupně aplikována na celý seznam, cdr seznamu, cddr seznamu... CL-USER 4 > (maplist #'list '(1 2 3) '( ) '( )) (((1 2 3) ( ) ( )) ((2 3) (5 6 7) ( )) ((3) (6 7) ( ))) Funkcionál mapcon funguje jako maplist, s tím rozdílem, že výsledek je vytvořen pomocí (destruktivního) postupného propojení dílčích hodnot (předpokládá se, že to jsou seznamy) za sebou. CL-USER 5 > (mapcon #'list '(1 2 3) '( ) '( )) ((1 2 3) ( ) ( ) (2 3) (5 6 7) ( ) (3) (6 7) ( )) Funkcionál mapl je obdobou mapc pro maplist. CL-USER 6 > (mapl #'list '(1 2 3) '( ) '( )) (1 2 3) Funkcionál map funguje jako mapcar, jako první parametr je však možno zadat typ výsledku. CL-USER 12 > (map 'cons #'list '(1 2 3) '( )) ((1 4) (2 5) (3 6)) CL-USER 14 > (map 'vector #'list '(1 2 3) '( )) #((1 4) (2 5) (3 6))

8 Cvičení 2 - priklady file:///c:/pracovni/vyuka/jui/web/w03test.html Page 1 of 1 Cvičení 3 1) Pomocí car a cdr definujte funkci my-fourth, která vrátí čtvrtý prvek seznamu. 2) Zapište tři různé cons výrazy, které vrátí (a b c). 3) Ukažte, jak jsou následující symbolické výrazy reprezentovány v paměti a kolik cons-buněk je k jejich reprezentaci zapotřebí: a) (A B (C D) E) b) (A (B (C (D. E)))) c) (A (B. C) (D. E)) d) (A B (C. (D E))) 4) Definujte funkci my-length, která spočítá délku seznamu (bez podseznamů). (my-length '(1 2 (3 4))) --> 3 5) Definujte funkci at-cnt, která určí počet atomů ve výrazu. (at-cnt '(1 2 (3 4))) --> 4 (at-cnt 1) --> 1 (at-cnt '(1 2 (3 4. 5) 6. 7)) --> 7 6) Definujte rekurzivně funkci revall, která otočí pořadí prvků v seznamu včetně podseznamů. (revall '(1 2 3 (4 5))) --> ((5 4) 3 2 1) 7) Definujte funkci, která dostane zadanou počáteční celočíselnou hodnotu X a počet opakování N. Výsledkem bude seznam obsahující N čísel, od X do X+N-1. (counter 12 5) --> ( ) 8) Pomocí mapovacích funkcionálů definujte funkci, která vypočte ze seznamu čísel seznam jejich druhých odmocnin. Záporná čísla bude vynechávat (pomocí mapcan). (odm '( )) --> ( ) 9) Pomocí mapovacích funkcionálů definujte funkci, která obdrží dva seznamy. Výsledkem je seznam aritmetických průměrů odpovídajících si prvků. (prum '( ) '(7 8 9 )) --> ( )

FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 5. CVIČENÍ

FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 5. CVIČENÍ FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 5. CVIČENÍ 2011 Jan Janoušek MI-FLP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Page 1 of 5 Lekce 5 Obsah sekvence, sequencep, subseq, reverse,

Více

PARADIGMATA PROGRAMOVÁNÍ 2 PŘÍSLIBY A LÍNÉ VYHODNOCOVÁNÍ

PARADIGMATA PROGRAMOVÁNÍ 2 PŘÍSLIBY A LÍNÉ VYHODNOCOVÁNÍ KATEDRA INFORMATIKY, PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO, OLOMOUC PARADIGMATA PROGRAMOVÁNÍ 2 PŘÍSLIBY A LÍNÉ VYHODNOCOVÁNÍ Slajdy vytvořili Vilém Vychodil a Jan Konečný (KI, UP Olomouc) PP 2, Lekce

Více

1. Od Scheme k Lispu

1. Od Scheme k Lispu KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI www.inf.upol.cz Michal Krupka krupka.inf.upol.cz michal.krupka@upol.cz 7. listopadu, 77 46 Olomouc Paradigmata programování poznámky k přednášce. Od

Více

Funkcionální programování úvod

Funkcionální programování úvod Funkcionální programování úvod Imperativní jazyky založeny na von Neumann architektuře primárním kriteriem je efektivita Modelem je Turingův stroj Základní konstrukcí je příkaz Příkazy mění stavový prostor

Více

Paradigmata programování 1

Paradigmata programování 1 Paradigmata programování 1 Tečkové páry, symbolická data a kvotování Vilém Vychodil Katedra informatiky, PřF, UP Olomouc Přednáška 4 V. Vychodil (KI, UP Olomouc) Tečkové páry, symbolická data a kvotování

Více

LISP Definice funkcí

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:

Více

Paradigmata programování 2

Paradigmata programování 2 Paradigmata programování 2 6. cvičení Radek Janoštík Univerzita Palackého v Olomouci 18.3.2019 Radek Janoštík (Univerzita Palackého v Olomouci) Paradigmata programování 2 18.3.2019 1 / 11 Vedlejší efekt

Více

Paradigmata programování 1

Paradigmata programování 1 Paradigmata programování 1 Explicitní aplikace a vyhodnocování Vilém Vychodil Katedra informatiky, PřF, UP Olomouc Přednáška 6 V. Vychodil (KI, UP Olomouc) Explicitní aplikace a vyhodnocování Přednáška

Více

Paradigmata programování 1

Paradigmata programování 1 Paradigmata programování 1 Kvazikvotování a manipulace se symbolickými výrazy Vilém Vychodil Katedra informatiky, PřF, UP Olomouc Přednáška 11 V. Vychodil (KI, UP Olomouc) Kvazikvotování, manipulace se

Více

Jazyky pro umělou inteligenci

Jazyky pro umělou inteligenci VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ Ústav automatizace a informatiky Jiří Dvořák 2005 Obsah 1. Úvod......... 4 1.1 Funkcionální programování....... 4 1.2 Logické programování......

Více

Paradigmata programování II Přednáška 2: Mutace

Paradigmata programování II Přednáška 2: Mutace Paradigmata programování II Přednáška 2: Mutace Vilém Vychodil Katedra informatiky, Univerzita Palackého v Olomouci 22. února 2007 Vilém Vychodil (UP Olomouc) PP II, Př. 2: Mutace 22. února 2007 1 / 85

Více

Slepé prohledávání do šířky Algoritmus prohledávání do šířky Při tomto způsobu prohledávání máme jistotu, že vždy nalezneme koncový stav, musíme ale p

Slepé prohledávání do šířky Algoritmus prohledávání do šířky Při tomto způsobu prohledávání máme jistotu, že vždy nalezneme koncový stav, musíme ale p Hanojská věž Stavový prostor 1. množina stavů S = {s} 2. množina přechodů mezi stavy (operátorů) Φ = {φ} s k = φ ki (s i ) zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3] který tah

Více

FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 2. CVIČENÍ

FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 2. CVIČENÍ FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 2. CVIČENÍ 2011 Jan Janoušek MI-FLP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Page 1 of 7 MI-FLP cviceni 2 Obsah atomy (čísla, řetězy, symboly),

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

Lisp 7-1. opakování destruktivních změn seznamů

Lisp 7-1. opakování destruktivních změn seznamů Lisp 7-1 opakování destruktivních změn seznamů Seznam bez posledního prvku - destruktivně: ;velmi důležité si uvědomit jak to funguje.. zejména návratová hodnota funkce (defun bez_posledniho(s ((null (cdr

Více

Hanojská věž. T2: prohledávání stavového prostoru. zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3]

Hanojská věž. T2: prohledávání stavového prostoru. zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3] Hanojská věž zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3] který tah je lepší? (co je lepší tah?) P. Berka, 2012 1/21 Stavový prostor 1. množina stavů S = {s} 2. množina přechodů

Více

Pointery II. Jan Hnilica Počítačové modelování 17

Pointery II. Jan Hnilica Počítačové modelování 17 Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky

Více

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM CÍLE KAPITOLY Využívat pokročilé možnosti formátování, jako je podmíněné formátování, používat vlastní formát čísel a umět pracovat s listy. Používat

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

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

Č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

LEKCE 6. Operátory. V této lekci najdete:

LEKCE 6. Operátory. V této lekci najdete: LEKCE 6 Operátory V této lekci najdete: Aritmetické operátory...94 Porovnávací operátory...96 Operátor řetězení...97 Bitové logické operátory...97 Další operátory...101 92 ČÁST I: Programování v jazyce

Více

DUM 06 téma: Tvorba makra pomocí VBA

DUM 06 téma: Tvorba makra pomocí VBA DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informač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

PARADIGMATA PROGRAMOVÁNÍ 2A INTERPRET S VEDLEJŠÍMI EFEKTY A MAKRY

PARADIGMATA PROGRAMOVÁNÍ 2A INTERPRET S VEDLEJŠÍMI EFEKTY A MAKRY KATEDRA INFORMATIKY, PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO, OLOMOUC PARADIGMATA PROGRAMOVÁNÍ 2A INTERPRET S VEDLEJŠÍMI EFEKTY A MAKRY VÝVOJ TOHOTO UČEBNÍHO MATERIÁLU JE SPOLUFINANCOVÁN EVROPSKÝM

Více

PARADIGMATA PROGRAMOVÁNÍ 2A MUTACE

PARADIGMATA PROGRAMOVÁNÍ 2A MUTACE KATEDRA INFORMATIKY, P ÍRODOV DECKÁ FAKULTA UNIVERZITA PALACKÉHO, OLOMOUC PARADIGMATA PROGRAMOVÁNÍ 2A MUTACE Slajdy vytvo ili Vilém Vychodil a Jan Kone ný Jan Kone ný (KI, UP Olomouc) PP 2A, Lekce 2 Mutace

Více

2 Datové typy v jazyce C

2 Datové typy v jazyce C 1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,

Více

MQL4 COURSE. By Coders guru www.forex-tsd.com. -4 Operace & Výrazy

MQL4 COURSE. By Coders guru www.forex-tsd.com. -4 Operace & Výrazy MQL4 COURSE By Coders guru www.forex-tsd.com -4 Operace & Výrazy Vítejte ve čtvrté lekci mého kurzu MQL4. Předchozí lekce Datové Typy prezentovaly mnoho nových konceptů ; Doufám, že jste všemu porozuměli,

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

Programování v C++, 2. cvičení

Programování v C++, 2. cvičení Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule

Více

Logické programování I

Logické programování I Logické programování I PROLOG Program popisuje "svět" Prologu = databáze faktů a pravidel (tzv. klauzulí). fakta: predikát(arg1, arg2,...argn). cíle:?- predikát(arg1, arg2,...argn). pravidla: hlava :-

Více

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný typem proměnné - ukazatel je tedy adresa společně s

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

Paradigmata programování II Přednáška 1: Vedlejší efekt

Paradigmata programování II Přednáška 1: Vedlejší efekt Paradigmata programování II Přednáška 1: Vedlejší efekt Vilém Vychodil Katedra informatiky, Univerzita Palackého v Olomouci 15. února 2007 Vilém Vychodil (UP Olomouc) PP II, Př. 1: Vedlejší efekt 15. února

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

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

6. blok část C Množinové operátory

6. blok část C Množinové operátory 6. blok část C Množinové operátory Studijní cíl Tento blok je věnován problematice množinových operátorů a práce s množinovými operátory v jazyce SQL. Čtenáři se seznámí s operátory, UNION, a INTERSECT.

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

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

Ú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

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

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 04. Datové typy, operace, logické operátory Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

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

(pracovní verze textu určená pro studenty)

(pracovní verze textu určená pro studenty) KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO CVIČENÍ Z PARADIGMAT PROGRAMOVÁNÍ I Lekce 7: Akumulace Učební materiál k přednášce 16. listopadu 2006 (pracovní verze textu určená pro studenty)

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

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

PARADIGMATA PROGRAMOVÁNÍ 2A VEDLEJŠÍ EFEKT

PARADIGMATA PROGRAMOVÁNÍ 2A VEDLEJŠÍ EFEKT KATEDRA INFORMATIKY, P RÍRODOV EDECKÁ FAKULTA UNIVERZITA PALACKÉHO, OLOMOUC PARADIGMATA PROGRAMOVÁNÍ 2A VEDLEJŠÍ EFEKT Slajdy vytvoril Vilém Vychodil Jan Konecný (KI, UP Olomouc) PP 2A, Lekce 1 Vedlejší

Více

ALGORITMIZACE PRAKTICKÉ

ALGORITMIZACE PRAKTICKÉ LOGO IMAGINE Obsah 1. Příkazy 1.1. Základní příkazy 1.2. Vestavěné příkazy Imagine 1.2.1.Příkaz mnohoúhelník 1.2.2.Náhodná procházka 2. Matematické operace 3. Funkce 4. Predikáty 5. Konstruktory 6. Selectory

Více

Lokální definice (1) plocha-kruhu

Lokální definice (1) plocha-kruhu Lokální definice (1) syntaxe: (local (seznam definic) výraz) definice jsou dostupné pouze uvnitř příkazu local příklad: (local ( (define Pi 3.1415926) (define (plocha-kruhu r) (* Pi r r)) ) (plocha-kruhu

Více

KIV/ZIS cvičení 5. Tomáš Potužák

KIV/ZIS cvičení 5. Tomáš Potužák KIV/ZIS cvičení 5 Tomáš Potužák Úvod do SQL (1) SQL (Structured Query Language) je standardizovaný strukturovaný dotazovací jazyk pro práci s databází Veškeré operace v databázi se dají provádět pomocí

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Šesté 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 6. týden

Více

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19 Algoritmy I Číselné soustavy přečíst!!! Číselné soustavy Každé číslo lze zapsat v poziční číselné soustavě ve tvaru: a n *z n +a n-1 *z n-1 +. +a 1 *z 1 +a 0 *z 0 +a -1 *z n-1 +a -2 *z -2 +.. V dekadické

Více

přetížení operátorů (o)

přetížení operátorů (o) přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - deklarace pomocí funkčního

Více

Tabulkový procesor. Základní rysy

Tabulkový procesor. Základní rysy Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Hlavní užitečné funkce Visual LISPu jsou:

Hlavní užitečné funkce Visual LISPu jsou: Základy AutoLISPU AutoLISP je programovací jazyk, který muže automatizací často používaných opakovaných úloh podstatně zvýšit vaší produktivitu. Nabízí náhled do vnitřního fungování AutoCADu a muže sloužit

Více

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

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

Více

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

PARADIGMATA OBJEKTOVÉHO PROGRAMOVÁNÍ I

PARADIGMATA OBJEKTOVÉHO PROGRAMOVÁNÍ I KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO PARADIGMATA OBJEKTOVÉHO PROGRAMOVÁNÍ I MICHAL KRUPKA VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM

Více

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout.   tel: Skripta ke školení Základy VBA vypracoval: Tomáš Herout e-mail: herout@helpmark.cz tel: 739 719 548 2016 Obsah TROCHA TEORIE VBA...2 ZPŮSOB ZÁPISU VE VBA...2 CO JE TO FUNKCE...2 CO JE TO PROCEDURA...2

Více

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09 Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Operátory Autor:

Více

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1 Negativní informace Petr Štěpánek S použitím materiálu M.Gelfonda a V. Lifschitze 2009 Logické programování 15 1 Negace jako neúspěch Motivace: Tvrzení p (atomická formule) neplatí, jestliže nelze odvodit

Více

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné

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

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Jak v Javě primitivní datové typy a jejich reprezentace BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Obsah Celočíselný datový typ Reálný datový typ Logický datový typ, typ Boolean

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

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Reprezentace dat v informačních systémech. Jaroslav Šmarda Reprezentace dat v informačních systémech Jaroslav Šmarda Reprezentace dat v informačních systémech Reprezentace dat v počítači Datové typy Proměnná Uživatelské datové typy Datové struktury: pole, zásobník,

Více

Ukazatele a pole. Chceme-li vyplnit celé pole nulami, použijeme prázdný inicializátor: 207 Čárka na konci seznamu inicializátorů

Ukazatele a pole. Chceme-li vyplnit celé pole nulami, použijeme prázdný inicializátor: 207 Čárka na konci seznamu inicializátorů Ukazatele a pole 204 Deklarace jednorozměrného pole s inicializací Chceme-li pole v deklaraci inicializovat, zapíšeme seznam inicializátorů jednotlivých prvků do složených závorek: #define N 5 int A[N]

Více

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Vývoj aplikací Téma: Pole Vyučující: Ing. Milan Káža Třída: EK3 Hodina: 14 Číslo: V/5 Programování v jazyce

Více

Datové struktury 2: Rozptylovací tabulky

Datové struktury 2: Rozptylovací tabulky Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy

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

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

Databázové systémy Cvičení 5.2

Databázové systémy Cvičení 5.2 Databázové systémy Cvičení 5.2 SQL jako jazyk pro definici dat Detaily zápisu integritních omezení tabulek Integritní omezení tabulek kromě integritních omezení sloupců lze zadat integritní omezení jako

Více

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13. Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy

Více

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.

Více

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Vstup, výstup BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Miroslav Balík Fakulta informačních technologií České

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

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu

Více

Logika a logické programování

Logika a logické programování Logika a logické programování témata ke zkoušce Poslední aktualizace: 16. prosince 2009 Zkouška je písemná, skládá se obvykle ze sedmi otázek (může být více nebo méně, podle náročnosti otázek), z toho

Více

Paradigmata programování 1

Paradigmata programování 1 Paradigmata programování 1 Vytváření abstrakcí pomocí procedur Vilém Vychodil Katedra informatiky, PřF, UP Olomouc Přednáška 2 V. Vychodil (KI, UP Olomouc) Vytváření abstrakcí pomocí procedur Přednáška

Více

DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky

DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky ze sady: 02 tematický okruh sady: Tabulkový editor ze šablony: 07 KANCELÁŘSKÝ SOFTWARE určeno pro: 1-4. ročník

Více

Dotazy tvorba nových polí (vypočítané pole)

Dotazy tvorba nových polí (vypočítané pole) Téma 2.4 Dotazy tvorba nových polí (vypočítané pole) Pomocí dotazu lze také vytvářet nová pole, která mají vazbu na již existující pole v databázi. Vznikne tedy nový sloupec, který se počítá podle vzorce.

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

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

VY_32_INOVACE_In 6.,7.13 Vzorce vložení funkce

VY_32_INOVACE_In 6.,7.13 Vzorce vložení funkce VY_32_INOVACE_In 6.,7.13 Vzorce vložení funkce Anotace: Žák se seznámí se základními druhy funkcí a jejich vložením v programu MS Excel 2010. Pracuje na svém žákovském počítači dle pokynů v prezentaci.

Více

Operátory. Základy programování 1 Tomáš Kühr

Operátory. Základy programování 1 Tomáš Kühr Operátory Základy programování 1 Tomáš Kühr Operátory a jejich vlastnosti Základní konstrukce (skoro) každého jazyka Z daných operandů vytvoří výsledek, který je možné dále využívat Arita udává počet operandů

Více

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných jakési nádoby na hodnoty jsou různých typů při běžné

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

Př. další použití pointerů

Př. další použití pointerů Př. další použití pointerů char *p_ch; int *p_i; p_ch = (char *) p_i; // konverze int * na char * 8 int i = 5; int *p_i; p_i = &i; POZOR!!!! scanf("%d", p_i); printf("%d", *p_i); Obecný pointer na cokoliv:

Více

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou

Více

Odvozené a strukturované typy dat

Odvozené a strukturované typy dat Odvozené a strukturované typy dat Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 14. listopadu 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Odvozené a strukturované typy dat 14. listopadu

Více

Datové typy strana 29

Datové typy strana 29 Datové typy strana 29 3. Datové typy Jak již bylo uvedeno, Java je přísně typový jazyk, proto je vždy nutno uvést datový typ datového atributu, formálního parametru metody, návratové hodnoty metody nebo

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

Konstruktory a destruktory

Konstruktory a destruktory Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,

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

2. cvičení z ZI1 - Excel

2. cvičení z ZI1 - Excel Doc.Ing. Vlastimil Jáneš... janes@fd.cvut.cz 2. cvičení z ZI1 - Excel O Excelu - organizace listů : 1 list : max. 65 536 řádků a 256 sloupců, tj. 16 777 216 buněk. Sloupce : A, B,.Z, AA, AB,. IU, IV (26

Více

typová konverze typová inference

typová konverze typová inference Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie

Více

MQL4 COURSE. By Coders guru -8- Proměnné

MQL4 COURSE. By Coders guru  -8- Proměnné MQL4 COURSE By Coders guru www.forex-tsd.com -8- Proměnné Vítejte v lekci proměnné mého MQL 4 kurzu. Doufám, že se vám předchozí lekce líbily a že jste připraveni na boj s proměnnými: Doporučuji, abyste

Více

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více