3 Současný pohled na jednotlivé směry SWI

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

Download "3 Současný pohled na jednotlivé směry SWI"

Transkript

1 3 Současný pohled na jednotlivé směry SWI 3.1 Úvod Chaotický a překotný vývoj programů vedl ke stavu, označovaném jako KRIZE PROGRAMOVÁNÍ. Poučení z krize bylo v několika směrech. Jedním z nich byl směr, který chtěl vnést do vývoje programů jistý řád na základě metodik, které obsahují metody, techniky programování, nástroje programování a potom vlastní řízení projekční činnosti. Byly velmi rychle vysloveny požadavky na kvalitu programů v těchto směrech: 1. přehlednost a čitelnost, 2. přijatelná strukturovanost, 3. spolehlivost a verifikovatelnost, 4. snadná modifikovatelnost. Postupně se mezi metody (jako myšlenkové postupy) začalo zařazovat: 1. programování SHORA DOLŮ a obráceně, 2. metoda abstrakce, 3. hierarchické uspořádání programů a 4. postupné zjemňování programů. Techniky programování byly rozšířeny o možnosti výstavby programů na základě nově přicházejících technologií (význam tohoto pojmu je doslovný vše pro výrobu produkci). Tak začala vznikat skupina velmi užitečných metod, které tyto techniky používají: 1. Strukturované programování. 2. Modulární programování. 3. Procedurové programování. 4. Logické programování. 5. Normované programování. Tyto metody jsou spojeny se speciálními technikami a nástroji na úrovni programovacích jazyků K těmto metodám se později připojily v létech další metody programování: 6. Objektové programování. 7. Událostní programování. 8. Komponentové programování. 9. Programování na základě vzorů. Některé z metod a technik byly spojeny s teoretickým výzkumem, který pochopitelně dopředu posunul význam jejich implementace. V dalším textu se postupně zmíníme o některých vybraných metodách a technikách. 3.2 Metody programování- přehled Všechny metody programování vznikaly v době ustupující dominance jednoduchých programů. To bylo dáno objektivně požadavkem společnosti na komputerizaci složitějších - 1 -

2 fyzických systémů. Všechny tyto metody byly jednoduchým návodem myšlenkovým postupem pro vývoj jednoduchých, resp. přechodových programů, které již bylo nutno členit na dílčí celky. Jinými slovy, jednalo se o metody dekompozice vlastního programu nebo zpracovávaných dat. Protože tyto metody představují obecné principy pro strukturalizaci a dekompozicirozklad programů, jejich platnost jaksi ještě nezanikla (vycházely již z poznatků systémového inženýrství). Na základě jednotlivých metod byla podána obecná metodika spočívající v následujícím: Rozložit komplexní program na části tak, abychom získali prvky přijatelné složitosti. Vybrat ten způsob rozkladu, který zaručuje vazby nejjednodušší povahy. METODA POSTUPU SHORA-DOLŮ Je to dekompoziční postup pod vlivem Systémového inženýrství. Rozkládáme jak informační problém, tak i program na postupně jednodušší celky. Zastavíme se na přijatelné úrovni. METODA ABSTRAKCE Metoda abstrakce nás poučuje zajímat se především o věci podstatné a oddělit je od věcí nepodstatných. Metoda abstrakce se může dotýkat jak informačního problému (problém komputerizace fyzického systému), tak i samotného programu. Je jistě spojena s metodou postupného zjemňování, tedy odstraňování abstrakce. Při aplikaci na program se abstrakce nejčastěji dotýká: funkcionality programu, řízení v programu a reprezentace dat. Při abstrakci funkcionality začínáme jejím obecným pojetím "Solve the Job" a postupně ji zjemňujeme. K tomu můžeme použít zcela abstraktní programovací jazyk, např. jazyk formálních specifikací funkcionality. Při abstrakci dat začínáme jejich obecnou představou a zjemňováním končíme na výběru konkrétních datových struktur programu. Vedle toho se abstrahujeme od detailního pojetí operací nad daty. Abstrakce řízení je spojena s rozkladem programu na prvky a předávání řízení mezi nimi. Problémem metody abstrakcí je právě vlastní zavedení "správných " abstrakcí. METODA HIERARCHICKÉHO USPOŘÁDÁNÍ PROGRAMŮ Jde o stromovité uspořádání částí programu a organizací přechodů mezi těmito částmi. Nezvažovalo se, že části budou samostatné a tím nebylo potřebné řešit datovou a komunikační integritu. METODA POSTUPNÉHO ZJEMŇOVÁNÍ PROGRAMŮ Metoda je myšlenkovým postupem, ve kterém napíšeme funkcionalitu programu velmi abstraktně. Postupně zjemňujeme abstraktní příkazy, až se dostaneme na úroveň cílového programovacího jazyka. Funkcionální abstrakce můžeme zřizovat pomocí - 2 -

3 prázdných příkazů a poznámek v nich. Které části zapsat abstraktně a které rovnou programovat v cílovém programovacím jazyku rozhodne programátor sám. 3.3 Strukturované programování Na strukturované programování se můžeme dívat jako na logicky skloubený, místy teoreticky podložený souhrn jistých zásad pro tvorbu programu, jejichž aplikace přivádí programátory k tvorbě přehledně strukturovaných, snadno modifikovatelných a poměrně snadno verifikovatelných programů. Strukturované programování přináší především praktické rady. Samotné je založeno na: metodě abstrakce, programování SHORA-DOLŮ, modulárním programování, hierarchickém uspořádání programů, postupném zjemňování programů. Z uvedeného je zřejmé, že jde skutečně o souhrn aplikovaných metod a některých dalších technik, které je možno zkoumat i samostatně. GO TO LESS PROGRAMMING Nadměrné používání GO TO příkazu, začal odmítat informatik Dijkstra již v roce Vede totiž k nepřehlednosti, nestrukturovanosti a nesnadné modifikovatelnosti programu. Důsledkem je nesoulad mezi statickou a dynamickou strukturou programu ve smyslu vzájemné korespondence (viz definici jednoduchého programu ). To je potřeba odstranit. Přesto ale většina imperativních programovacích jazyků příkaz GO TO obsahuje. ŘÍDÍCÍ STRUKTURY, ZÁKLAD STRUKTUROVANÉHO PROGRAMOVÁNÍ Pro začátek je potřebné upozornit, že základem komputerizce fyzického systému je komputerizace aktivit a zpracování dat. Algoritmus/-my je možno zapsat mnoha způsoby. Všechny vedou na model algoritmu. Je potom jedno, jestli jde o příkazy a program nebo vývojové diagramy. Z hlediska vizualizace postupu komputerizace algoritmu jsou příjemné zejména vývojové diagramy. Pomocí vývojových diagramů byly zakresleny tři základní řídící struktury navržené Dijsktrou v 60. létech: sekvence, větvení a cyklus (často jen α, β, γ)

4 Zápis algoritmu v programovacím jazyku by neměl atributy dobře strukturovaného zápisu narušovat. Proto výzkum programovacích jazyků přinesl i odpovídající notace příkazů (viz např. Pascal)

5 Příklad 1 Následující formální fragment jistého algoritmu je zapsán dobře strukturovaně nejen ve vývojovém diagramu, ale i v programu. Pojetí řídících struktur je spojeno s teoretickou otázkou jejich "síly", tj. množství algoritmů, které se jimi dají přirozeně popsat. Které řídící struktury jsou silnější, které slabší? Tuto teoretickou otázku řešil v roce 1980 japonský informatik Kosaraju viz (Kosaraju, 1980). Kosarajova klasifikace řídících struktur (základy) Kosaraju ukázal, že je možné porovnání tříd řídících struktur převést na porovnání jimi generovaných programů. Jsou-li R 1, R 2, dvě třídy řídících struktur, potom T 1 (R 1 ), T 2 (R 2 ) jsou jim náležící třídy programů, které jsou jednotlivými třídami generovány. Místo porovnání R 1 a R 2 Kosaraju porovnává třídy T 1 a T 2. Porovnání ale založil na jistých transformacích jedné třídy programů na druhou. Jaké to vlastně transformace jsou? Buď P program, a jeho primitivní akce (např. přiř. příkaz, příkaz v/v dat, volání procedury), p jeho predikát a h jeho jedna výpočetní historie (posloupnost akcí a predikátů)

6 Kosaraju zavedl čtyři vlastnosti programů, označené V 1,, V 4, které jsou definovány takto: - 8 -

7 Diskuse Výsledek: - 9 -

8 Poznámka:

9 - 11 -

10 Závěr: Hlavním cílem strukturovaného programování bylo dodržet lineární korespondenci mezi statickou a dynamickou strukturou programu. To mělo podpořit přehlednost, čitelnost, snadnou modifikovatelnost a snadnou verifikovatelnost. Pochopitelně, žádalo se vyřazení použití příkazu Goto z množiny příkazů imperativních programovacích jazyků, což se ale nepodařilo. Ačkoliv v programovacích jazycích je podmnožina řídících struktur, které vedou na dobře strukturovaný program, přesto jsou další struktury jen pro obyčejnou strukturovanost a dokonce zůstávají i příkazy vedoucí na nestrukturovaný zápis. V současné době se chybně této problematice již nevěnuje tak velká pozornost. Je na tvůrcích programu, jestli alespoň pro sebe, se snaží mít program s požadovanými strukturálními kvalitami. 3.4 Modulární programování Modulární programování je technika vybízející programátora k rozložení programu na jednodušší celky tzv. moduly se zachováním jejich celkového vzájemného kontextu (vazby). Členění programu na moduly by mělo sledovat především dekompozici funkcionality programu. Obecně se do modulů dekomponuje nejen funkcionalita, ale i další atributy programů: funkcionalita komplexního programu, která je zapsána pomocí specifikací na požadavky žadatele, data a jejich datové vazby, řízení přechodů mezi moduly, řídící vazby, kompetence na data a operace s nimi. Moduly jsou základní prvky modulárního programování strukturální prvky komplexního programu. Obecně mohou mít následující složení: deklarace lokálních datových struktur výkonná část modulu, procedury modulu S modulárním systémem jsou spojeny některé zvláštnosti: definování konkrétních vazeb mezi moduly, (datové, řídící a kompetenční vazby), vizuální reprezentace všech typů vazeb mezi moduly. lokální data globální data modulu Poznámka: 1. Globální data modulu M jsou přístupná všem procedurám ostatních modulů. 2. V každé proceduře modulu M se mohou používat trojí data: a. Lokální data, přístupná všem procedurám modulu M b. parametry procedur (formální-skutečné parametry), c. nelokální data modulu M (globální data ostatních modulů a globální data modulu M)

11 Vzhledem k tomu musely být v souvislosti s modulárním programováním řešeny i teoretické otázky. Postupně se v odborné literatuře objevily články o sémantickém systému vhodných relací mezi moduly, pomocí kterých byly reprezentovány známé vazby. Výzkum pokročil koncem 80. let tak daleko, že nad modulární strukturou byla zavedena teorie s axiomy, užitečným jazykem, logikou a velmi schopnou algebrou operací. To vše umožnilo komputerizovat vývoj modulárního systému a vytvořit potřebné vývojové prostředí. Základem byly relace použití... přístup... na globální data A A A B...Volání, odkaz a distribuce modulu B z podnětu modulu A. Jde o to, že procedury modulu A se obrací na procedury modulu B. B...Procedury modulu A používají globální data modulu B jako svá nelokální data (čtení/změna globálních dat modulu B). B...Modul A má jen přístup (jen čtení) na globální data modulu B. ochrana... A B...Modul B je chráněn před zásahy z modulu A. Procedury modulu A nemohou používat globální data modulu B jako svá nelokální data. Graf modulárního systému je tvořen uzly-moduly a hrany jsou vazby mezi moduly. Jednotlivé relace mají vlastnosti, které se dají vyšetřovat. Nad modulární strukturou se dá vybudovat teorie s axiomy, jazykem a logikou. Mluvit obecně o řízení v modulárním systému, je stejné jako mluvit o typech řídících struktur, o způsobech návratů v řízení... Pro orientaci v modulární struktuře je potřebné nakreslit alespoň dva grafy: 1. G 1, pro globální modulární strukturu programu, se zaměřením na vazby mezi moduly, na disponibilitu modulů (uzly jsou moduly). 2. G 2, pro strukturu každého z modulů (uzly jsou procedury modulu). Příklad 2 Nechť jsou dány čtyři moduly A,B,C a D. Jejich graf G 1 má následující tvar:

12 Je zřejmé, že modul A musí být k dispozici vždy, když to žádá kterýkoli z modulů C a D. Rovněž modul C musí být k dispozici modulu B a modul B k dispozici modulu A. Modul D je chráněn od zásahů modulu B

13 Definice

14 Koncepce řídících vazeb v modulárním systému Řídící vazby mezi moduly se zobrazují pomocí grafu řízení. Uzly tohoto grafu jsou moduly a nebývají kresleny tak jako běžné uzly grafu (často je to obdélník). Existuje několik struktur řídících vazeb, např.: 1. Přísná struktura s jediným řídícím modulem M 0 (šipka je zde řídící vazba). M 0 M 1 M 2 M 3 Modul M 0 zajišťuje všechna logická rozhodnutí, ale neprovádí žádná zpracování. Vedle toho zprostředkuje přenos dat mezi moduly a vstup/výstup dat do/ze systému modulárních systémů. Zpracovatelské moduly (nižší úroveň) 2. Přísná struktura s jediným řídícím modulem M 0 a zpracovatelskými moduly do hlubší úrovně. Pro danou strukturu řízení můžeme nakreslit graf G

15 3. Stromovitá struktura s řídícími návraty o jednu úroveň výše. Tato struktura odpovídá grafu se speciálními návraty. Některá reálná pojetí Modulárního programování Mezi nejznámější reálně fungující implementace Modulárního programování patří: Modulární programování založené na Windows formulářích v technologii vývoje Microsoft desktopových aplikací. Modulární programování založené na pojetí DHTML stránek a jejich formulářů na platformě WWW služby Internetu. Modulární programování založené na pojetí komponenty na bázi Objektového programování a platformě WWW služby Internetu. Modulární programování založené na pojetí aplikace jako komponenty balíku aplikací IS podniku (tzv. Aplikační architektura ). Téměř ke všem z těchto reálných implementací se v přednáškách dostaneme a při výkladu budeme sledovat především základní atributy obecného modulárního programování: Co je považováno za modul. Jaká je struktura modulu. Jak jsou interpretovány obecné relace

16 Závěr Modulární programování sehrálo první roli metody a techniky zaměřené na přijatelnou strukturalizaci programu. Jeho dobou byly 80. léta. Vzniklo několik vývojových systémů, které pracovaly na bázi modulárního programování. Byla rovněž snaha zabudovat framework modulárního programování do operačních systémů a zorganizovat potřebnou podporu. Nástupem Internetu se změnil i pohled na strukturalizaci software, ale mnohé z užitečných myšlenek modulárního programování byly převzaty do nového kabátu. Rovněž algebra a návrh teorie modulárního programování nezůstal později bez povšimnutí. Důležité je ovšem to, co modulární programování přineslo: zavedení strukturysoftware pomocí základního strukturálního prvku - modulu, interpretaci pojetí modulárního programování v praxi, nutnost klasifikovat vazby mezi základními prvky - moduly, najít formální aparát pro zaznamenání kvality software rozloženého do základních prvků - modulů. Dnešní strukturalizace software se neustále vyvíjí a patří sem jak pohledy završené tzv. vrstvenou strukturou (prezentační, aplikační a datová vrstva), tak i pohledy uznávající distribuované objekty a dokonce ucelené komponenty vedoucí na hlubší vrstevnost software. V každém případě je snaha formálně obsáhnout jak popis strukturálních částí, tak i jejich vzájemné vazby. Sleduje se to, aby části do sebe "zapadly", aby se daly snadno vyměňovat za jiné - lepší a aby byla zabezpečena integrace ve všech možných směrech (datovém, komunikačním, procesním, řízení, ). 3.5 Procedurové programování Procedurové programování je jednou z metod, která nebyla dodnes odmítnuta, ba právě naopak, její role stoupla se skriptováním a objektovým programováním. Procedurové programování se stalo základem výstavby software všech typů. Můžeme vyslovit následující definici. Definice Procedurové programování je metoda nutící programátora rozdělit funkcionalitu software do samostatných celků procedur. Procedury se potom stávají stavebními kameny funkcionality programu. Jejich voláním se realizuje požadovaná funkcionalita celého programu. Stavebním kamenem je tedy procedura. Tento kámen však vystupuje téměř na nejnižší úrovni strukturalizace software. Jinými slovy, vždy se vše nakonec "promítne" do procedur. S použitím této metody souvisí několik požadavků: 1. Programovací jazyk musí umožnit formální konstrukci procedury a koncipovat vzájemné souvislosti mezi formálními a skutečnými parametry. Skutečné a formální parametry jsou datovým komunikačním interface s okolím, ze kterého je procedura vyvolána. 2. Programovací sytém (programovací jazyk a jeho překladač) musí zabezpečit vše co souvisí se záměnou formálních parametrů parametry skutečnými (kontrola datových typů,... )

17 3.6.1 Jak se uvádějí nesprávně základní vlastnosti objektového prostředí Otázka této kapitoly zní jednoduše: Co je vlastně dodržování principů OOP a co je jeho porušením? Který jazyk nebo prostředí více vyhovuje požadavkům objektového principu a který méně? A jaké jsou vlastně požadavky na OOP? Často se uvádějí následující pojmy definující principy OOP: Zapouzdření, Polymorfismus, Dědění. Podle uvedeného (nepřesného) výčtu, jazyky a softwarové technologie, u kterých lze identifikovat tyto tři pojmy, jsou objektovými a naopak u těch jazyků a technologií, u kterých alespoň jedna ze tří uvedených vlastností chybí, do OOP nepatří. Tato tříčlenná charakteristika je sice objektovému přístupu většinou vlastní, ale není prioritní a axiomatická. Je odvozená od jiných, základnějších pojmů OOP. Není to tedy přesné vymezení, protože základní vlastnosti OOP jsou trochu odlišné a nyní si je uvedeme Základní postuláty OOP Prostředí resp. jazyk nebo technologie splňuje objektově orientovaný princip, pokud dovoluje vytvářet struktury nazývající se objekty a tyto mají následující vlastnosti: Objekt je definován jako v programu uzavřená struktura, která: 1. obsahuje vnitřní paměť, tj. má vlastnost si něco pamatovat. Tato vnitřní paměť se někdy nazývá atributy objektu. Důležité je, že vnitřní paměť objektu je zvnějšku objektu nepřístupná. Je jeho soukromou záležitostí, co si objekt pamatuje a jak. 2. obsahuje metody objektu, což jsou procedury nebo funkce, resp. obecněji posloupnost kódu programu - někdy také nazývané skripty objektu, které vykonávají nějakou činnost nad vnitřní pamětí objektu a pouze nad ní. Metody objektu jsou zvnějšku také neviditelné a nepřístupné. Nemůžeme metodu objektu zavolat přímo. Vnitřní paměť a vnitřní metody téhož objektu jsou vůči sobě plně viditelné. Metoda objektu má v dosahu své viditelnosti vnitřní paměť a naopak. Jinými slovy, metoda objektu je to, co je schopno pracovat s vnitřní pamětí objektu a nic jiného. Můžeme si představit, že metoda objektu je jedinou možností jak zpracovat vnitřní paměť objektu. 3. je strukturou, která je nějakým mechanismem schopna přijmout a zpracovat zprávu zvnějšku. V každém jazyce a použité technologii je tato schopnost zpracovat zprávu implementována nějak jinak. Mechanismus zpracování zprávy je takový, že každý objekt v sobě obsahuje tzv. protokol zpráv, což je přiřazení zprávy versus metoda objektu. Můžeme si to představit jako převodník mezi zprávou a metodou. Každá zpráva v protokolu zpráv má přiřazenu právě jednu metodu objektu. Přijmout a zpracovat zprávu pro objekt znamená, že objekt v protokolu zpráv nalezne odpovídající zprávu, k ní nalezne odpovídající přiřazenou metodu a spustí ji se vstupními přijatými parametry a po vykonání metody vrátí zprávě výstupní parametry. Jedinou možností, jak spolupracovat s objektem, je poslat mu zprávu. Jinými slovy při použití objektu jako uživatel zvně se nezajímáme o vnitřní strukturu objektu, o uspořádání metod a atributy (které stejně nevidíme), ale o reakce objektu na zprávy. 4. může obsahovat jiné objekty, kterým je schopen poslat zprávy a tak řídit jejich činnost. Tímto vznikají sekvence zasílání zpráv od objektu k objektům a vzniká tak tok činnosti programu

18 Tyto čtyři základní postuláty jsou základními postuláty OOP. Uvedené čtyři postuláty lze znázornit pomocí následujícího obrázku: Definice objektu objekt Metody Zpráva Protokol zpráv Vnitřní paměť objekt objekt objekt Důležité je, že tento seznam je pro další odvozování vlastností prvků v OOP dostačující, je axiomatický (jsou to principy OOP). Při tomto vysvětlení OOP je třeba uvést tyto důležité termíny, jinak by mohlo dojít k nedorozumění: "volání metody objektu", zapouzdření, polymorfismus, třída, dědění Pojem volání metody objektu je pouze zkratkou pro delší větu Většinou se při spolupráci s objektem hovoří o volání metody objektu. V předešlém výčtu se však hovoří o nějakém zasílání zpráv. Který výraz je tedy ten správný - poslat zprávu nebo volat metodu? Podle principů OOP z předešlé kapitoly takovéto přímé volání metod objektu není přípustné, ale hovoří se o posílání zpráv, tj. podle postulátů OOP se zavádí mechanismus zasílání zpráv objektu, což znamená, že se objektu nejprve pošle zpráva. Teprve na základě

19 této zprávy se v protokolu zpráv nalezne odpovídající metoda a spustí se tato metoda nalezená v protokolu zpráv. Spouštění metod podle zaslaných zpráv je základní princip práce objektu a vystihuje jeho podstatu! Protokol zpráv má tedy význam jakéhosi převodníku mezi zprávou a metodou, přičemž převodník je ve vztahu jedna zpráva ku jedné metodě. A jak je to tedy s voláním metody? Copak všichni, kdo používají slovní spojení volat metodu objektu, se mýlí? Pokud bychom měli být důslední, tak v podstatě ano, protože OOP zná pouze zaslat zprávu objektu a nezná volat metodu objektu! Udělejme tedy kompromis: Pokud použijeme slovního spojení přímé volání metody objektu, máme tím na mysli zkratku pro delší slovní spojení poslání zprávy objektu a vyvolání metody objektu. V určitém momentu dalšího výkladu upozorníme na důležité zachování tohoto principu zasílání zpráv. Je třeba podotknout, že mechanismus zasílání zpráv objektu je závislý na použité technologii a na objektovém jazyce a liší se případ od případu. Jak si takový převodník zpráva-metoda můžeme představit konkrétně? Příkladem může být jednoduchá tabulka v paměti - seznam názvů zpráv a k nim přiřazených počátečních adres metod, kam se má předat řízení kódu. Také komponentní technologie COM má tento mechanismus zasílání zpráv objektu nějakým podobným způsobem zaveden - přes tabulku ukazatelů na metody. Poznámka: Přímo v technologii COM existuje ještě i druhý způsob zasílání zpráv a vyvolání metod v objektu a to v navazující technologii Automation (použití COM přes IDispatch interface). Technologie COM se v tomto případě stává pouze prostředníkem pro jiný způsob vyvolání metody přes tabulku zpráva-metoda (viz například kniha Základy komponentní technologie COM) Zapouzdření je opravdu postulátem OOP, další pojmy jsou důležité, ale odvozené Možnost spolupráce s objektem pouze přes zasílání zpráv je opravdu postulátem OOP. Další dvě uváděné vlastnosti - polymorfismus a dědění, jsou pojmy sice velmi důležité (jejich využití je velmi výhodné), jsou tedy pro OOP charakteristické, avšak jsou to z hlediska teorie OOP pojmy odvozené. Lze je pochopit na základě postulátů. Také my si je takto srozumitelně vysvětlíme Jiný pohled na aplikaci - objekt není skalár, ale je to zajímavá samostatná struktura Jedním z důsledků zavedení objektů do aplikace je i jiný pohled na aplikaci, než byl až do použití objektů. V teorii datových modelů (resp. teorii databází) se zavádí velmi důležitý pojem skalár. Pro lepší pochopení problematiky si tento pojem vysvětlíme: Skalár se chápe jako atomická a dále nedělitelná informaci v systému

20 Příklad: Proměnná typu String, Long, apod. ve VB je skalárem. Proměnná typu record nebo vlastního typu není skalárem. V teorii databází se tento pojem zavádí z prostého důvodu - je požadováno, aby sloupec tabulky byl skalárem. Pokud není sloupec tabulky zaveden jako skalár, potom se vlastně nejedná o to, co si pod sloupcem máme správně představit a vytváří se místo správného sloupce skupina dále dělitelných informací. V tom případě se hovoří o první nenormalizované struktuře, kdy nějaká informace - sloupec - obsahuje jako své části další jiné informace. Nelze například navrhnout jeden záznam tabulky skládající se ze sloupců tak, že jeden z těchto sloupců zavedeme jako další celý záznam tabulky. Tato situace obsažení jedné informace v druhé se namísto vnoření řeší odkazem přes vnucení cizího klíče do jiné tabulky a nikoliv vnořením tabulek do sebe! Teorie databází se zásadně vyhýbá vnořování tabulek do sebe. Oproti tomu objektové struktury jsou zásadně skládající se již z principu. Odkaz na jiný objekt se chápe jako zvláštní případ vnoření - v objektové struktuře má smysl hovořit o vzájemném vnoření objektů do sebe, což u tabulek nemá smysl. V tabulkách řešíme odkaz z jedné tabulky do druhé nikoliv vnořením, ale pomocí nějakého sloupce, který se stává vazebním klíčem mezi tabulkami. Představme si, že opravdu můžeme tabulky skládat jako do sebe nořící se struktury. Můžeme namalovat takovou tabulku, kde jeden sloupec je vlastně řádkem další tabulky. Vznikne tak příklad popisu následující entity (pozor - toto není normalizovaná struktura!): A = [ a1, a2, a3, [ b1, b2] ]= [a1, a2, a3, B ] kde B = [ b1, b2 ] Tuto vnořenou konstrukci samozřejmě teorie databází nedovoluje. Pokud bychom chtěli obdobu této konstrukce napsat v databázové teorii, potom bychom napsali něco v tomto smyslu: A = [ a1, a2, a3] B = [ b1, b2, a1 je cizí klíč ] Nebo A = [ a1, a2, a3, b1, b2 ] apod. (záleží na návrhu datového modelu) Prvky a1, a2, a3, b1, b2 považujeme za dále nedělitelné informace, tedy skaláry. Naopak v objektové teorii je vnoření objektů a tedy neskalárnost při skládání základní vlastností. Zápis ve tvaru: A = [ a1, a2, a3, [ b1, b2] ] = [a1, a2, a3, B ] Můžeme v dalším vývoji měnit podle požadavků analýzy, například: A =[ a1, a2, a3, [ b1, b2] ] = [a1, a2, a3, B ] = [ C, a3, B ] kde C = [a1, a2]. Jednotlivé návrhy entit, tj. který z těchto skládajících zápisů bude vlastně tím pravým, jsou dílem analýzy a tvorby objektového modelu. Optimální je ten návrh, který vede k maximálnímu znovupoužití pojmů a minimalizaci kódu. Tuto optimalizaci zavedeme s pojmem třída

21 Příklad 4 Objekt Osoba má Rodné číslo, Jméno, Příjmení, Ulici, Město a PSČ. Zvolme zkratku pro písmeno m jako atribut a písmeno o jako zkratku pro objekt. Jeden z možných návrhů objektu je: Osoba = [m Rodne cislo, m Jmeno, m Prijmeni, m Ulice, m Mesto, m PSC] Jiný návrh může být: Osoba = [m Rodne cislo, m Jmeno, m Prijmeni, o Adresa] kde Adresa = [m Ulice, m Mesto, m PSC] Vnořili jsme do sebe dva objekty - do Osoby jsem vložili Adresu. Je dobré si uvědomit, že vnoření objektů dovoluje i vazbu 1 : N pomocí objektů realizujících tento vztah (kolekce, dictionary apod.) tj. vnoření N prvků zapsané takto: A = [ a1, a2, a3, N * [ b1, b2] ] = [a1, a2, a3, N * B ] Ke skládání - vnořování - se vrátíme v jedné z kapitol o chybách začátečníků, protože tam se vyskytuje jedna z nejzávažnějších chyb při zvládání OOP. Dopředu podotkněme, že vnořování objektů jako jejich základní vlastnost implicitně určuje to, že se nikdo nemusí v programu starat o vytváření vazeb mezi objekty ve smyslu zavádění klíčů v objektových strukturách, což bývá nejčastější chybou začínajících programátorů! Polymorfismus Na uvedených postulátech (stejně jako na všech postulátech) je výhodné to, že z nich lze odvodit další vlastnosti objektů. Podobně je tomu u polymorfismu. Setkáváme se s mnohými způsoby vysvětlení polymorfismu - některé velmi nepřesné a velmi složité. Přitom vysvětlení polymorfismu je jednoduché. Představme si tu situaci, kdy dva různé objekty mají ve svém protokolu stejnou zprávu, ale každý z nich na ni reaguje jinou metodou. Znamená to, že oba objekty mají ve svém protokolu zpráv tutéž metodu, ale každý z nich má k nim přiřazenu jinou metodu. Pokud oběma objektům pošleme tutéž zprávu, každý z nich vyvolá jinou metodu. Tuto situaci různého chování objektů na stejnou zprávu nazýváme polymorfismus. Uvědomme si, že polymorfismus je v normálním životě natolik běžný, že si jej ani neuvědomujeme. Například představme si N jedinců, kteří rozumí určité zprávě, kterou jim předáme, ale každý na ni reaguje jinou metodou. Takto se přece chová valná většina z nás! Podle základů OOP je dostačující, aby daný objekt rozuměl určité zprávě (měl ji v protokolu zpráv) Například dva objekty Text a Obrázek mohou skládat Stránku a mají tutéž zprávu Vytiskni se. Každý z nich tak činí jinak, jinou metodou, jedna je metodou pro tisk textu, druhá je metodou pro tisk bitové mapy. Celá Stránka, což je objekt kontejner, který obsahuje několik Textů a několik Obrázků. Protože obsluha může poskládat obsah Stránky libovolně, není dopředu jasné, jak bude Stránka složena, tj. z kolika objektů Obrázek a objektů Text

22 Pokud chceme stránku vytisknout, nabízí se nám pomocí polymorfismu elegantní a jednoduché řešení: Každému objektu na Stránce se pošle zpráva Vytiskni se. V teorii OOP je polymorfismus zaveden jako důsledek existence protokolu zpráv a má jednoduché vyjádření: Různé chování různých objektů na tutéž zprávu. V knihách o OOP naleznete ještě několik dalších příkladů na polymorfismus. Princip je však vždy stejný. Připomeňme jenom, že polymorfismus vyplynul sám od sebe od konstrukce objektu: Objekt může přijmout zprávu a na základě ní vyvolat metodu Třída V postulátech obecné teorie OOP se hovoří o vlastnostech objektu jako takového a není v nich žádná zmínka o nějaké třídě. Znamená to, že podle teorie OOP mohou existovat objekty bez zavedení třídy! Důležité je vědět, že v teorii OOP lze hovořit o objektu bez třídy, tj. lze deklarovat a zavést jeden objekt přímou definicí. Stačí definovat jeho vlastnosti, tj. jaké má nový objekt atributy, jaké má metody, jaký má protokol zpráv a z jakých objektů je složen. Tento způsob tvorby objektů deklaruj jeden objekt po druhém je podle teorie OOP možný, má však jednu nevýhodu: Pokud budeme deklarovat úplně stejný objekt lišící se pouze názvem, ale jinak má nový objekt stejné vlastnosti jako již hotový objekt, potom se v definici budeme opakovat. Z toho důvodu, aby se definice nemusela opakovat, se zavádí nový objekt Třída. Je to takový objekt, který napomáhá vzniknout jako kopyto, jako forma novým objektům stejných vlastností. Pokud tedy definujeme nový objekt, stačí v této definici uvést, z jaké je Třídy. Další je již dáno vztahem mezi objekty. Stačí tedy definovat jednou kopyto pro budoucí objekty a můžeme jich poté definovat kolik chceme a nebudeme se v definici opakovat, pouze se odkážeme, že objekt je z této třídy, čímž je dáno, jak je definován. Znamená to, že pojem třída je pouze něčím, co nám napomáhá definovat nové objekty jako jejich forma, jejich kopyto, jejich šablona. Jenom pomocí třídy nic nenaprogramujete, stejně jako jenom pomocí šablony na boty (kopyta) nikoho neobujete. Musíte pomocí šablony objekt nechat zrodit (create, Set New... apod.). Některé jazyky jako Visual Basic, Visual C++, Delphi (Object Pascal) nemají třídu zavedenu jako objekt pomáhající tvorbě nových objektů, ale z historických důvodů mají pojem třída zaveden nějak jinak. Smysl kopyto pro objekty je však stejný! V těchto jazycích je třída zavedena jako obdoba typu proměnné. Znamená to, že základní funkce třídy je tímto zachována: Jedná se také o kopyto, formu pro budoucí objekty dané třídy, tzv. instance třídy. I kdybychom v systému vytvořili pouze jeden objekt z dané třídy, musíme tuto třídu v těchto jazycích vždy zavést. Postup je takový, že nejprve musíme deklarovat třídu (např. class module, form module, apod. v Basicu) a teprve potom můžeme vytvářet instance z těchto tříd. Důležité pro pochopení třídy (kromě toho, že se jedná o kopyto pro budoucí objekty) je to, že pomocná třídy začíná v OOP vznikat nový druh abstrakce. Pokud zavedete třídu pro budoucí instance třídy, tak vlastně definujete vlastnosti pro každou instanci, což je již samo o sobě abstrakce. Pokud například napíšete pro třídu osob Cosoba, že objekt osoba z této třídy bude mít jméno a příjmení, tak jste vlastně řekli obecně osoba má jméno příjmení, což je abstraktní věta

23 3.6.8 Dědění Zavedení pojmu třída napomohlo definici nových objektů proto, aby se nemusel opakovat kód. Podobně dědění napomáhá ušetřit kód tehdy, pokud se nalézají ve třídách společné prvky. V tom případě se tyto prvky stávají zobecněním pro obě třídy a vzniká tak vztah dědění z jedné třídy do druhé. Pokud budeme zavádět dvě třídy pro tvorbu budoucích objektů a zjistíme přitom, že jedna třída deklaruje všechny vlastnosti objektů stejné jako druhá třída a navíc zavádí nové vlastnosti, tzv. vztah generalizace a specializace mezi třídami, je možné použít dědění jako vztah mezi třídami, pokud daný jazyk podporuje tento vztah. Dědění je vztahem mezi třídami a odstraňuje duplicitu při definici tříd, pokud mají třídy něco společného. Některé jazyky dědění přímo nepodporují a nahrazuje se různými postupy. Bližší podrobnosti těchto postupů naleznete v uvedené knize. Důležité je, že dědění je vlastností nikoliv podstatnou pro OOP, že se jedná o vlastnost odvozenou, a že dědění je jedním z řešení, jak odstraňovat duplicity kódu. Závěr Význam objektového programování je značný. Je to specifický pohled na základní strukturální prvky a jejich použití pro výstavbu funkcionality software a na techniky (zpracování objektů) přitom používané. Na základě této metody dochází k rozvoji ještě flexibilnějších a inženýrskému stylu tvorby software bližších metod a technik (objektové modely v systému spolupráce klient-server, komponentové programování, internetové služby). Ačkoliv vznikl v procesu programování software a snah najít vhodné strukturální prvky s možným opětovným použitím (reusing), byly jeho myšlenky povýšeny i na problematiku modelování reality (podnik, škola, ) a v základu použity k tvorbě business software informačních systémů. Objektový přístup k modelování a realizaci informačních systémů používá objektové programování a systémy umožňující ho realizovat, za základ objektové implementace. 3.7 Událostní a skriptové programování Tyto dvě metody - myšlenkové postupy jsou nerozlučně spjaty s webovou platformou pro tvorbu tzv. webových aplikací (tedy Web based Applications). Webová platforma je abstraktní označení pro souhrn vlastností a možností webových ICT (značkovací jazyky, např. HTML/DHTML, technologie komunikace tenký klient-server založená na distribuci informace, webové služby, ). Událostní programování Začátky událostního programování spojujeme s možností přidělením specifické množiny událostí každému objektu podle jeho charakteru (textové políčko, seznam, formulář, ). Myšlenka potom spočívá v možnosti událost vyvolat-spustit a zachytit a reagovat na ni. Realizace těchto požadavků potom umožnila převést statické HTML stránky na tzv. dynamické DHTML stránky. Jestliže je pro daný objekt událost zachycena, systém zachycení umožní předat řízení na reakční proceduru. V proceduře je možno nejen měnit kvalitu daného objektu, ale nastavovat i jiné aktivity v rozsahu dané stránky HTML

24 Definice Událostní programování je metoda umožňující reagovat na události objektů a realizovat od událostí odvozené aktivity se stanoveným rozsahem platnosti. Příklad 5 Následující DHTML stránka ukazuje využití událostního programování k zabezpečení různých dynamických aktivit objektů na stránce. Mnohé DHTML editory (např. FrontPage, ) pro tvorbu webových stránek takové dynamické efekty mohou pro vybrané typy objektů organizovat. Typické je využití událostí click a double click. Pochopitelně, zdrojový kód je automaticky generován

25 Skriptové programování Poněkud odlišná je metoda skriptového programování. Na stránky HTML na straně klienta se mohou umístit kusy programového kódu identifikované dohodnutými značkami. Mohou zde být reakční procedury na události asociované s objekty stránky, ale rovněž kód s událostmi nesouvisící. Potom většina těchto skriptů patří do prezenční vrstvy HTML stránek webové aplikace. Kusy kódu skripty můžeme umístit rovněž do webové stránky na straně serveru. Význam těchto skriptů je ale poněkud jiný než význam skriptů na straně klienta (tenký klient reprezentovaný pouze samotným prohlížečem Browser). Různé pohledy a role na skripty na straně klienta a serveru jsou zabudovány ve filosofii www funkce pro stránky HTML. Velmi často se serverové skripty podílí na realizaci logiky datové vrstvy (logika zpracování dat), na přípravu komunikace s datovou vrstvou a na korespondenci objektů a dat mezi tenkým klientem a serverem (např. pomocí formulářů). Značná část skriptů na straně serveru je věnována komputerizací procesů daného fyzického systému a patří tedy do aplikační vrstvy třívrstvé webové aplikace. Pochopitelně, poloha skriptů jasně člení skripty na klientské a skripty serverové. Neméně je závažná i druhá skutečnost spojená s existencí skriptů: 1. DHTML stránky a webové serverové stránky se v důsledku metody událostního a skriptového programování stávají jednoduchými webovými aplikacemi (Webbased Simple Applications), 2. je přesně stanovena filosofie manipulace se skripty na straně klienta a serveru. Některé technologie odlišují serverové a klientské webové stránky dvěma odlišnými příponami (např.:.htm a.asp nebo.aspx). Hezky tuto situaci ilustruje následující vrstvové strukturální schéma jednoduché webové aplikace. Definice Skriptové programování je metoda-technika umožňující umísťovat skripty kusy kódu na DHTML stránky tenkého klienta a serveru a tak realizovat aktivity náležící zejména do prezenční a aplikační (business) vrstvy webových aplikací. Filosofie Internetu pro práci s klientskými a serverovými stránkami webovými stránkami se sice vyvíjela několik let, ale teď je již více méně ustálená. Diskuse. Filosofie Internetu pro práci s klientskými a serverovými webovými stránkami. Účel použití skriptů na straně klienta a serveru. Následující obrázek ilustruje třívrstvou webovou aplikaci a obsah jednotlivých vrstev v souvislosti s ICT firmy Microsoft

26 Prvky GUI datové asociace 2. vrstva APLIKAČNÍ business kód Logika zprac.dat kód - skripty Prvky pro správu dat datové asociace události kód APLIKAČNÍ procedury asociace na základě událostí kód - skripty Reakční procedury Poskytovatel BD 3. vrstva DATOVÁ 1. vrstva PREZENČNÍ U této třívrstvé webové aplikace (druhé generace 1 ) je známo, že: 1. a 2. vrstva je uložena na provozním serveru, 1. vrstva se projeví vizuálně zejména na straně tenkého klienta, 2. vrstva je již kombinací aplikačních procedur a kódu logiky zpracování dat. Příklad 6 Tento příklad je pouze ukázkou použití skriptů v jednoduché webové aplikaci pro komplexní zpracování průzkum prostřednictvím dotazníku. Konstrukce webových stránek aplikace je provedena v editoru FrontPage. Následující formulář-dotazník Používáte_výpočetní_techniku. htm obsahuje část osobních údajů klientů a část o zájmech klientů v oblasti výpočetní techniky. Vyhodnocení správnosti odeslaných dat provedeme na straně serveru ve stránce Vyhod_Zprac_Potvr.asp a bude se týkat jak osobních údajů, tak i zájmu o výpočetní techniku. Správné údaje potvrdíme a uložíme do báze dat zájmy.mdb O nesprávných datech budeme indikovat chyby. První závažnou chybou uživatele tenkého klienta je neúplnost dat ve formuláři. Musí být uvedeny všechny osobní údaje. Dále je na syntax hlídáno PSČ ( 5 číslic ) a telefon (jen číslice). Pro zpracování formuláře vytvoříme jednoduchou aplikaci PRŮZKUM, která zabezpečí následující funkcionalitu. 1 webové vícevrstvé aplikace a založené na komponentním programování s webovými službami považujeme za webové aplikace 3. generace

27 SYSTÉMOVÉ FUNKCE : A) Sledování průzkumu uživatelů různých typů počítačů ( stolní, notebook, kapesní ) a software ( hry, programovací systémy, kreslící programy). Každý z klientů zapíše při prvním přístupu k dotazníku své osobní údaje a zaškrtne jistá políčka formuláře pro záznam jeho zájmů. Jestliže jde o druhý a další přístup, potom se osobní údaje zadávají znovu (opravený výsledek zájmu). Každý klient je uložen spolu s jeho zájmy do malé báze dat zájmy.mdb o dvou tabulkách Klient a Zájem. Tyto tabulky jsou spojeny vazbou 1: N podle atributu IDklienta. Zájem Klient ID klienta Jméno Ulice Město PSČ Telefon. 1 N Datum testování ID klienta Stolní počítač Notebook Kapesní počítač Microsoft Office Hry Kreslící programy Programovací systémy. Pro BD bude použit systém Access B) Vyhodnocení průzkumu vede na nakreslení dvou grafů. V prvním z nich jsou zachyceny vztahy mezi počty počítačů a v druhém vztahy mezi počty software pro daný vzorek klientů. (neřešeno). C) Administraci pro BD provádí jedině administrátor, který má právo provádět některé operace s BD, jako "Vyčištění BD pro nový průzkum", "Redukce jen na záznam zájmů z posledního přístupu klienta", "Spuštění vyhodnocení průzkumu" ( neřešeno ). ROZHRANÍ Aplikace má pouze dvě rozhraní. Jedno pro klienta, které je tvořeno dotazníkem a druhé pro administrátora BD, které je umístěné na stránce řízení aplikace. Rozhraní klienta dotazník na stránce Pouziváte_vypocetni_techniku.asp je předané prohlížeči a má tvar:

28 STRUKTURA APLIKACE A JEJÍ WEBOVÉ SÍDLO Webové sídlo aplikace PRŮZKUM má následující složení : Default. htm... Domovská stránka, která je rozdělena do tří rámců. V levém z nich bude řízení, které je dáno stránkou Řízení_aplikace. htm Pouzivate_vypocetni_techniku. htm... Stránka pro vlastní dotazník. Vyhod_Zprac_Potvr. asp... Stránka pro komplexní zpracování formuláře. Řízení_aplikace. htm... Jednoduchá stránka pro řízení aplikace (možnost spouštění funkcionalit skupin A, B, C). Je zde tedy možné spustit rozhraní administrátora a přechod na rozhraní klienta ( dotazník ). Statistika_průzkumu. asp...stránka pro vyhodnocení průzkumu a nakreslení dvou výsledných grafů (dotazovaní? počítače, dotazovaní? aplikace). Návrh dotazníku na stránce Pouzivate_vypocetni_techniku. htm ( sestrojeno pomocí FrontPage ):

29 1 tabulky formuláře pro data, nakreslené pomocí FrontPage 2 Aplikace PRŮZKUM má webové sídlo pro domovskou stránku s URL adresou kde K303-mis je osobní server IIS. Vše, co se s daty dotazníku děje, je ve skriptech stránek Vyhod_Zprac_Potvr.asp a Statistika_pruzkumu. asp. První z nich dává, spolu s náčrtem kódu dotazníku, ucelenou představu o vyhodnocení-prověření, převzetí-potvrzení a zpracování dat dotazníku. Domovskou stránku default.htm a stránku Řízení_aplikace.asp čtenář snadno navrhne sám. Náčrt struktury a kódu pro stránku Pouzivate_vypocetni_techniku. htm

30 <html> <body> <form method="post" action="vyhod_zprac_potvr.asp" style="font-family: Arial" name="vt_form">.. 1. tabulka formuláře pro data. <input type="submit" value="odeslat data" name="odeslat_data"> <input type="reset" value="vymazat data" name="vymazat_data"></p>.. 2. tabulka formuláře pro data. </form> </body> </html> Náčrt struktury pro stránku Vyhod_Zprac_Potvr.asp <html> je to serverová stránka <body> <% Dim Jmeno1, Ulice1, Mesto1, PSC1,Telefon1,P Dim Stolni1, Notebook1, Kapesni Dim Office1, Hry1, Kresleni1, Programovani1, ErrPSC Dim ZAV_TEXT, FormularOK, Co_chybi FormularOK=true 'PŘEDPOKLAD.. DATA JSOU ÚPLNÁ A SPRÁVNÁ ErrPSC=" Žádné chyby v PSČ" Co_chybi="" 'NÁSLEDUJE PŘEVZETÍ ÚDAJŮ Jmeno1=Request.Form("Jmeno") Ulice1=Request.Form("Ulice") Mesto1=Request.Form("Mesto") PSC1=Request.Form("PSC") Telefon1=Request.Form("Telefon") Stolni1=Request.Form("Stolni") Notebook1=Request.Form("Notebook") Kapesni1=Request.Form("Kapesni") Office1=Request.Form("Office") Hry1=Request.Form("Hry") Kresleni1=Request.Form("Kresleni") Programovani1=Request.Form("Programovani") 'NÁSLEDUJE TESTOVÁNÍ ÚDAJŮ Test Jmeno1,"Jméno" Test Ulice1,"Ulice" Test Mesto1,"Město" Test PSC1,"PSČ" Test Telefon1,"Telefon" Test1 Stolni1 Test1 Notebook1 Test1 Kapesni1 Test1 Office1 Test1 Hry1 Test1 Kresleni1 Test1 Programovani1 'NÁSLEDUJE TESTOVÁNÍ PSČ If Not IsNumeric(PSC1) Then ErrPSC="PSČ není číslo" FormularOK=false Else If Len(Trim(PSC1))<>5 Then ErrPSC="Špatný počet cifer v PSČ" FormularOK=False End If End If POZNÁMKY: Jsou nadeklarovány proměnné Jmeno1,.,Programovani1 pro převzetí dat dotazníku. ErrPSC zachycuje chybu, která se vyskytne v údaji PSČ dotazníku. Je-li cokoliv v datech špatného ( neúplnost dat nebo chxba v PSČ ), potom se proměnná FormularOK nastaví na False. Od hodnoty proměnné FormularOK záleží, jaké jsou výstupní texty v proměnné ZAV_TEXT a jestli bude zpracování dat dotazníku ( uložení do báze dat ). Převzetí dat z dotazníku je provedeno přes objekt Request technologie ASP. Technologii ASP jsme museli použít, když jsme chtěli převzít data z dotazníku. Ačkoliv zde v příkladě uvedeme její použití, bude to ale průzračné a pochopitelné. Základy samotné technologie uvedeme až v kapitole 7. Testování dat formuláře na absenci a evidence těch dat, která chybí. Testování je-li PSČ číslo a má-li předepsaných 5 číslic

31 'NÁSLEDUJE PROCEDURA Test ( Q, S ) 'PRO TESTOVÁNÍ OSOBNÍCH ÚDAJŮ Sub Test(Q,S) If Len(Q)=0 Then Co_chybi=Co_chybi + S + "---" Q="neuvedeno" FormularOK=False End If End Sub 'NÁSLEDUJE PROCEDURA Test1 ( Q ) ' PRO TESTOVÁNÍ odpovědí Sub Test1(Q) If Len(Q)=0 Then Q="NE" Else Q="ANO" End If End Sub 'ÚDAJŮ O TECHNICE A APLIKACÍCH ' POUŽITÍ celostránkové PROMĚNNÉ FormularOK If FormularOK=False Then ZAV_TEXT="DATA NEJSOU V POŘÁDKU, vyvolejte znovu formulář" Else ZAV_TEXT="DATA JSOU V POŘÁDKU, děkujeme za jejich odeslání" Co_chybi="Všechny položky jsou uvedeny" End If %>. potvrzovací tabulka dat z formuláře Procedura Test dostává při vyvolání v parametru korespondujícím s Q hodnotu údaje a v druhém parametru S název údaje. Jestli je údaj neuveden, potom se jeho jméno přidá do proměnné Co_chybi. Procedura Test1 je jednoparametrová. Parametr Q předává ANO nebo NE podle toho, je-li údaj dotazníku zaškrtnut nebo ne. Proměnná FormularOK rozhoduje o výpisu textů v proměnných ZAV_TEXT a Co_chybi. <% Dim Zaznam_je, ID, strdotaz, MaxID Dim objspojeni, objprikaz, RsZaznamy If FormularOK=True Then 'Když FormularOK=False nic nedělej SET objspojeni=server.createobject("adodb.connection") objspojeni.open ("Dotaznik") Set objprikaz = Server.CreateObject("ADODB.Command") objprikaz.activeconnection = objspojeni objprikaz.commandtext= "Select * From Klient" Set RsZaznamy = objprikaz.execute Deklarace proměnných, jejich názvy ukazují na jejich použití. Tvorba objektu objspojení a jeho otevření pro DSN Dotazník. Tvorba objektu objprikaz a jeho svázání s objektem objspojeni. Nastavení vlastnosti CommandText na SQL příkaz a jeho provedení. Tím se získává Recordset uložený v objektu RsZáznamy. 'Hledání klienta v tabulce Klient, podle Jmena a hledání max IDklienta Zaznam_je="ne" MaxID=0 Do While Not RsZaznamy.EOF If Trim(RsZaznamy("Jmeno"))= Trim(Jmeno1) Then Zaznam_je="ano" ID=RsZaznamy("IDklienta") End If If MaxID < RsZaznamy("IDklienta") Then MaxID = RsZaznamy("IDklienta") End If RsZaznamy.MoveNext Loop Tato část vyšetřuje, zda se v Recordsetu nachází právě přihlášený klient s jménem v proměnné Jmeno1. Projdou se všechny záznamy a současně se najde i maximální hodnota pole Idklienta Zde se reaguje na hodnotu proměnné Zaznam_je (ano, ne). Je-li hodnotou ano, tak se zapisuje vazební záznam jen do tabulky Zajem. Jinak se zapisují záznamy do obou tabulek. MaxID=MaxID+1 Testovani1= Now() 'Zápis nového klienta a jeho zájmů nebo 'klient již je zapsán a proto zápis jen jeho zájmů If Zaznam_je = "ano" Then 'Klient je, zápis bude jen do tabulky Zajem strdotaz="insert INTO Zajem(Stolni_pocitac,Notebook,Kapesni_pocitac,Microsoft_Office," _ & "Hry,Kreslici_programy,Programovaci_systemy,IDklienta, Datum_testovani)" _ & " VALUES('" & Stolni1 & "', '" & Notebook1 & "', '" & Kapesni1 & "', '" & Office1 & "', '" & Hry1 & "', '" _ & Kresleni1 & "', '" & Programovani1 & "', " & ID & ", '" & Testovani1 & "')"

32 objprikaz.commandtext = strdotaz Set RsZaznamy = objprikaz.execute End If Else 'Klient není a tedy zápis do obou tabulek Klient a Zajem strdotaz="insert INTO Klient(IDklienta,Jmeno,Ulice,Mesto," _ & "PSC,Telefon)" _ & " VALUES(" & MaxID & ", '" & Jmeno1 & "', '" & Ulice1 & "', '" & Mesto1 & "', '" & PSC1 & "', '" _ & Telefon1 & "')" objprikaz.commandtext = strdotaz Set RsZaznamy = objprikaz.execute 'Response.write "<BR>" strdotaz="insert INTO Zajem(Stolni_pocitac,Notebook,Kapesni_pocitac, Microsoft_Office," _ & "Hry,Kreslici_programy,Programovaci_systemy,IDklienta, Datum_testovani)" _ & " VALUES('" & Stolni1 & "', '" & Notebook1 & "', '" & Kapesni1 & "', '" & Office1 & "', '" & Hry1 & "', '" _ & Kresleni1 _ & "', '" & Programovani1 & "', " & MaxID & ", '" & Testovani1 & "')" objprikaz.commandtext = strdotaz Set RsZaznamy = objprikaz.execute Set RsZaznamy = Nothing objspojeni.close Set objspojeni = Nothing Set objprikaz = Nothing End If %> </body> </html> Toto je tvar potvrzovací tabulky pro převzatá data z dotazníku, sestrojené pomocí FrontPage. Do jednotlivých prázdných buněk se umístí skripty ( např. do prázdné buňky vedle buňky Jméno se vloží skript <% =Jmeno1 %> ) pro zveřejnění jednotlivých převzatých hodnot. Báze dat má obě tabulky Klient a Zajem svázané vazbou 1 : N. To znamená, že jeden klient může mít více přístupů k dotazníku. Když se bude dotazník vyhodnocovat, tak za výsledné se vezme poslední vyplnění dotazníku. Redukce jen na poslední přístupy se může spustit administrátorskou funkcí již před zpracováním dotazníku. Následující obrázek ukazuje možný obsah obou tabulek. Jedna z vazeb je podtržená

33 Poznámky : 1. Tučné příkazy v prvním skriptu způsobí převzetí dat z formuláře-dotazníku ( tedy ze stránky Pouzivate_vypocetni_techniku. htm ) do ASP stránky Vyhod_Zprac_Potvr.asp. Je to provedeno pomocí objektu Request, jednoho z pěti objektů technologie ASP. 2. Tučné příkazy se žlutým pozadím ve druhém skriptu umožnují využívat technologie ADO pro práci s bází dat. Jsou použity tři objekty z ADO, Connection, Command a Recordset. Objekt RecordSet je ale vytvořen implicitně a zásadní orientace byla na objekt Command a příkazy SQL Select a Insert Into. 3. Druhý skript zveřejníme ještě ve variantě s orientací na objekt RecordSet a metody AddNew a Update. <% Dim Zaznam_je,ID,strDotaz,sBasePath Dim objspojeni,rszaznamy,maxid Sub PridatZajem rszaznamy.addnew rszaznamy("stolni_pocitac")=stolni1 rszaznamy("notebook")=notebook1 rszaznamy("kapesni_pocitac")=kapesni1 rszaznamy("microsoft_office")=office1 rszaznamy("hry")=hry1 rszaznamy("kreslici_programy")=kresleni1 rszaznamy("programovaci_systemy")=programovani1 rszaznamy("idklienta")=id rszaznamy("datum_testovani")= Now() rszaznamy.update End Sub Sub PridatKlienta rszaznamy.addnew rszaznamy("idklienta")=maxid rszaznamy("jmeno")=jmeno1 rszaznamy("ulice")=ulice1 rszaznamy("mesto")=mesto1 rszaznamy("psc")=psc1 rszaznamy("telefon")=telefon1 rszaznamy.update End Sub 'Když FormularOK=False nic nedělej If FormularOK = True Then

34 SET objspojeni=server.createobject("adodb.connection") objspojeni.open "Dotaznik" strdotaz="select * From Klient" Set rszaznamy = objspojeni.execute(strdotaz) 'Hledání klienta v tabulce Klient, podle Jmena Zaznam_je = "ne" MaxID=0 Do While Not RsZaznamy.EOF If Trim(RsZaznamy("Jmeno"))= Trim(Jmeno1) Then Zaznam_je="ano" ID=RsZaznamy("IDklienta") End If If MaxID < RsZaznamy("IDklienta") Then MaxID = RsZaznamy("IDklienta") End If RsZaznamy.MoveNext Loop MaxID=MaxID+1 objspojeni.close 'Zápis nového klienta a záznamu do Zajem NEBO 'klient již je a proto zápis jen do Zajem sbasepath="c:/inetpub/wwwroot/dotaznik/fpdb/zájmy.mdb" If Zaznam_je = "ano" Then 'Klient je, zápis bude jen do tabulky Zajem strdotaz="select * From Zajem" Set objspojeni=server.createobject ("ADODB.Connection") Set rszaznamy = Server.CreateObject("ADODB.Recordset") ' "PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source=" & sbasepath objspojeni.open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data" _ & "Source=C:/Inetpub/wwwroot/DotaznikVT/fpdb/zájmy.mdb" rszaznamy.open strdotaz, objspojeni,,2 PridatZajem Else 'Klient není, tedy zápis do obou tabulek Klient a Zajem strdotaz="select * From Klient" Set objspojeni=server.createobject ("ADODB.Connection") Set rszaznamy = Server.CreateObject("ADODB.Recordset") objspojeni.open "PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source=" & sbasepath rszaznamy.open strdotaz, objspojeni,,2 PridatKlienta rszaznamy.close strdotaz="select * From Zajem" rszaznamy.open strdotaz, objspojeni,,2 PridatZajem End If Set rszaznamy=nothing Set objspojeni=nothing End If %>

35 3.8 Abstraktní datové typy Datové struktury se staly nedílnou součástí každého programu. Jejich zápis v programovacích jazycích bude velmi blízký zápisu, který se používá v disciplině z níž datová struktura pochází. Vidíme to nejen na číslech ale i na proměnných, maticích, tabulkách a dalších datových strukturách. Programovací jazyk dokáže některé datové struktury zpracovávat přirozeně ( je s nimi v programovacím jazyku počítáno ), jiné musí zpracovávat prostřednictvím některých jednodušších. Např. nedovedeme si představit programovací jazyk, který by přirozeně nezpracovával konstanty různých datových typů ( čísla, texty, logické hodnoty, datumy, čas, ), proměnné, vektory, matice, záznamy a soubory. Často právě šíře přirozeně zpracovávaných datových struktur bývá jedním z kritérií kvality programovacího jazyka. Zpracování datové struktury S v algoritmu A je vlastně posloupností operací, provedených nad touto datovou strukturou. Každá taková operace bere v úvahu vztahy mezi jednotlivými položkami datové struktury. Porušení těchto vztahů ( budou přeorganizovány ) provádí jen některé algoritmy. Často se stává, že porušení relací mezi položkami p 1, p 2,, p n-1, p n datové struktury S, může vést ke zcela nové struktuře S'. Abychom mohli popsat vnitřní řád datové struktury a operace nad ní, které vedou k zásadním změnám relací γ 1, γ 2, γ 3 mezi položkami, zavedeme formální definici datové struktury (není pro BD). Na jejím základě vyšetříme vlastnost obecné datové struktury. Definice Formální datová struktura S je uspořádaná trojice S = [ P, Ω, σ 0 ], kde P...je konečná množina položek p 1, p 2,, p n-1, p n Ω...je konečná množina operací ω 1, ω 2,, ω m-1, ω m nad datovou strukturou a σ 0...je počáteční stav, v němž se datová struktura nachází hned po svém zřízení. Provedeme-li nad datovou strukturou námi navržené operace, dojde k tomu, že se velmi často mění právě hodnoty položek datové struktury. Datová struktura se poté nachází v nové situaci - tedy stavu. Novou situaci může ale vyvolat i změna relací mezi položkami datové struktury. Vlivem mnoha operací tak přechází datová struktura ze stavu do stavu. Stav datové struktury bude tedy reprezentován : hodnotami položek, relacemi mezi položkami. Množina relací mezi položkami je konečná množina. Na druhé straně, hodnoty položek datové struktury mohou být z nekonečných množin. Může tedy datová struktura nabýt teoreticky nekonečného množství stavů označovaných symbolem σ. To je velmi nepříjemné a proto se zavádí pojem relevantní stav. Relevantní stav Σ je množina vybraných stavů a takových množin je konečný počet. Existuje tedy definované zobrazení Z ( σ ) { Σ 1, Σ 2,, Σ k }, kde Σ i je relevantní stav které každý běžný stav datové struktury dokáže reprezentovat stavem relevantním. Uveďme jednoduchý příklad. Příklad 5 Uvažujme jako datovou strukturu celočíselnou matici A 3,3 = ( a i,j ). Položkami této struktury jsou prvky a i,j, proto P = { a i,j }. Datová struktura má jedinou polohovou relaci Pos( i,j ) mezi svými položkami. Stavů struktury je nekonečně mnoho. Za relevantní stavy ale můžeme např. navrhnout :

36 stav, kdy jsou všechny prvky matice nulové, tzv. nulová matice, stav, kdy jsou prvky po hlavní diagonále jedničkové a ostatní nulové, tzv. jednotková matice, stav, kdy i,j platí, že a i,j = a j,i, tzv. symetrická matice, ostatní stavy matice reprezentované tzv. běžným stavem. Může tedy existovat mnoho matic, které jsou symetrické. Definice Stavem datové struktury S nazveme uspořádanou trojici [ Q, Γ, h ], kde Q... je množina hodnotově obsazených položek, Q P, Γ... je množina { γ i } relací mezi položkami a h... je zobrazení, které každé položce p i Q přiřazuje jedinou hodnotu z definiční domény hodnot. Každá datová struktura musí být před provedením první operace v počátečním stavu. Jestliže to není respektováno, může dojít k různým anomáliím při jejím zpracovaní. Jako příklad anomálie můžeme uvést případ prvního referenčního použití proměnné x, aniž by tomu předcházelo zadání inicializační hodnoty. Takové situace jsou pochopitelně při provádění programu obvykle zachyceny a programátorovi je zveřejněno patřičné upozornění. Mnoho programovacích jazyků se řídí strategií "Maximálně zabezpeč provedení programu" a proto s ohledem na datový typ nastavují každé proměnné inicializační hodnotou. Pro číselné proměnné je to 0, pro textové proměnné je to prázdný řetězec. Obecně můžeme mezi operacemi nad datovou strukturou rozeznávat ty, které vedou na změnu stavu a ty které změnu nezpůsobí. Pochopitelně, v relevantním stavu může datová struktura setrvávat poměrně dlouho. Operace z množiny Ω můžeme podle toho, jestli mění nebo nemění stav datové struktury, rozdělit do tří podmnožin : konstruktory, selektory a predikáty. Konstruktory, na základě parametrů X i,k, mění stav datové struktury tím, že mění obsah jedné z jeho tří komponent. Nejčastějším případem konstruktorů je změna hodnot všech nebo jen vybraných položek datové struktury. Případy změny relací mezi položkami nejsou tak časté. Posloupnosti změn stavů datové struktury náleží i posloupnost provedených konstruktorů. Na rozdíl od konstruktorů, selektory na základě parametrů X i,s nemění stav datové struktury, ale poskytují přístup k hodnotě jedné nebo hodnotám více položek. Rozdíl predikátů od dvou předchozích typů operací je značný. Predikáty nastavují na pravdu nebo lež výsledek výroku o datové struktuře. Jde o výroky týkající se hodnot nebo relací mezi položkami. Podejme teď formální definice jednotlivých typů operací. konstruktor.ω k Ω k selektor.ω s Ω s je definován vztahem ω k : Σ x X i,k Σ, kde X i,k je množina parametrů konstruktoru, je definován vztahem ω s : Σ x X i,s Q, kde X i,s je množina parametrů selektoru, predikát..ω p Ω p je definován zobrazením ω p : Σ x X ip { True, False }, kde X ip je množina parametrů predikátu

37 Život datové struktury obvykle začíná počátečním stavem a končí koncovým stavem. Za počáteční můžeme považovat stav, který vznikne po operaci zřízení datové struktury. Koncový stav je obvykle stav, kdy datová struktura již ukončila svůj život. To bývá např. s ukončením programu. Jaká je realizace některých operací nad datovou strukturou? Stačí uvést jednoduchý příklad pro matice. Příklad 6 Před zřízením matice A 5,5 = ( a i,j ) celočíselného datového typu s indexy 1 5, 1 5, musí být ve VB nastavena báze počáteční hodnoty deklaračním příkazem Option Base 1 Příkaz Dim A(5,5) As Integer v jazyku Visual Basic potom zmíněnou čtvercovou celočíselnou matici A 5,5 zřizuje. Matice je ve stavu, kdy nejsou definovány počáteční hodnoty, ale je zřízena fyzická struktura uložení. Příkazy For i = 1 To 5 Step 1 For j = 1 To 5 Step 1 A( i, j ) = 0 Next j Next i používají konstruktor A( i, j ) = 0 Tento konstruktor mění hodnoty vybraných položek a tedy mění stav matice. Samotný zápis A( i, j ) je ale selektor, který zpřístupňuje prvek a i,j. Napíšeme-li příkaz If A( 5,5 ) = 0 Then y = 1 End If potom jde o predikát zjišťující, je-li prvek a 5,5 = 0. Uvedený aparát formální prezentace datových struktur není dostatečný pro nejvyšší typ datové struktury báze dat ( BD ). Rozšíření provedl americký informatik E. F. Codd. Softwarové inženýrství používá pro směr "Datové struktury" více teoretických aparátů. Často mezi ně patří relace, formální algebry ( jako algebry čísel, množinové algebry, ) a grafy. Obvykle se základ těchto aparátů podává v běžném kurzu matematiky. Použití algebry ukážeme na příkladu algebry řetězců a použití relací na podání základů současně nejvyšší datové struktury nazývané "báze dat"

38 4 Literatura Richta, Sochor: Softwarové inženýrství I., skripta ČVUT-FEL, Praha 1996, dotisk (Toto je zcela základní skriptum pro tento předmět!!! Každý student by ho měl mít. Dává docela dobrý a relativní široký přehled celé problematiky. POZOR: neobsahuje UML a formální specifikace. Richta, Sochor: Projektování programových systémů., skripta ČVUT-FEL, Praha (Toto je starší varianta výše uvedeného skripta. POZOR: na rozdíl od něho neobsahuje objektově orientované metodiky! Ale pro studium klasických neobjektových metodologií lze bez problému použít.)

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

Problémové domény a jejich charakteristiky

Problémové domény a jejich charakteristiky Milan Mišovič (ČVUT FIT) Pokročilé informační systémy MI-PIS, 2011, Přednáška 02 1/16 Problémové domény a jejich charakteristiky Prof. RNDr. Milan Mišovič, CSc. Katedra softwarového inženýrství Fakulta

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

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta

Více

Profilová část maturitní zkoušky 2017/2018

Profilová část maturitní zkoušky 2017/2018 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka Metody tvorby ontologií a sémantický web Martin Malčík, Rostislav Miarka Obsah Reprezentace znalostí Ontologie a sémantický web Tvorba ontologií Hierarchie znalostí (D.R.Tobin) Data jakékoliv znakové řetězce

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

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá: SII - Informatika Způsob vyhodnocení: Při vyhodnocení budou za nesprávné odpovědi strhnuty body. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá: a) sekundární klíč b)

Více

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku 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 příkazům pro řízení toku programu. Pro všechny tyto základní

Více

8.2 Používání a tvorba databází

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

Maturitní témata Školní rok: 2015/2016

Maturitní témata Školní rok: 2015/2016 Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní

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

Databázové systémy. Ing. Radek Holý

Databázové systémy. Ing. Radek Holý Databázové systémy Ing. Radek Holý holy@cvut.cz Literatura: Skripta: Jeřábek, Kaliková, Krčál, Krčálová, Kalika: Databázové systémy pro dopravní aplikace Vydavatelství ČVUT, 09/2010 Co je relační databáze?

Více

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

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

Vyřešené teoretické otázky do OOP ( )

Vyřešené teoretické otázky do OOP ( ) Vyřešené teoretické otázky do OOP (16. 1. 2013) 1) Vyjmenujte v historickém pořadí hlavní programovací paradigmata a stručně charakterizujte každé paradigma. a) Naivní chaotičnost, špatná syntaxe a sémantika

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

2. Modelovací jazyk UML 2.1 Struktura UML 2.1.1 Diagram tříd 2.1.1.1 Asociace 2.1.2 OCL. 3. Smalltalk 3.1 Jazyk 3.1.1 Pojmenování

2. Modelovací jazyk UML 2.1 Struktura UML 2.1.1 Diagram tříd 2.1.1.1 Asociace 2.1.2 OCL. 3. Smalltalk 3.1 Jazyk 3.1.1 Pojmenování 1. Teoretické základy modelování na počítačích 1.1 Lambda-kalkul 1.1.1 Formální zápis, beta-redukce, alfa-konverze 1.1.2 Lambda-výraz jako data 1.1.3 Příklad alfa-konverze 1.1.4 Eta-redukce 1.2 Základy

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

Profilová část maturitní zkoušky 2013/2014

Profilová část maturitní zkoušky 2013/2014 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

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

Základy objektové orientace I. Únor 2010

Základy objektové orientace I. Únor 2010 Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných

Více

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

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

Více

Poslední nenulová číslice faktoriálu

Poslední nenulová číslice faktoriálu Poslední nenulová číslice faktoriálu Kateřina Bambušková BAM015, I206 Abstrakt V tomto článku je popsán a vyřešen problém s určením poslední nenulové číslice faktoriálu přirozeného čísla N. Celý princip

Více

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly. Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?

Více

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

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

Více

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda 1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Objektové programování

Objektové programování Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k

Více

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Databázové aplikace pro internetové prostředí 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Projekt: Inovace výuky prostřednictvím ICT Registrační číslo: CZ.1.07/1.5.00/34.250

Více

VISUAL BASIC. Přehled témat

VISUAL BASIC. Přehled témat VISUAL BASIC Přehled témat 1 ÚVOD DO PROGRAMOVÁNÍ Co je to program? Kuchařský předpis, scénář k filmu,... Program posloupnost instrukcí Běh programu: postupné plnění instrukcí zpracovávání vstupních dat

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

MULTIMEDIÁLNÍ A HYPERMEDIÁLNÍ SYSTÉMY

MULTIMEDIÁLNÍ A HYPERMEDIÁLNÍ SYSTÉMY MULTIMEDIÁLNÍ A HYPERMEDIÁLNÍ SYSTÉMY 1) Úvod do problematiky Petr Lobaz, 18. 2. 2004 ORGANIZACE PŘ EDMĚ TU POŽADAVKY KE ZKOUŠCE vypracování semestrální práce (max. 70 bodů) napsání testu (max. 30 bodů)

Více

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve 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: vzdělávací

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Ví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

C# - Databáze úvod, ADO.NET. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

C# - Databáze úvod, ADO.NET. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí C# - Databáze úvod, ADO.NET Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Co je to databáze? Databáze je určitá uspořádaná množina informací

Více

TÉMATICKÝ OKRUH Teorie zpracování dat, Databázové a informační systémy a Teorie informačních systémů

TÉMATICKÝ OKRUH Teorie zpracování dat, Databázové a informační systémy a Teorie informačních systémů TÉMATICKÝ OKRUH Teorie zpracování dat, Databázové a informační systémy a Teorie informačních systémů Číslo otázky : 16. Otázka : Funkční a dynamická analýza informačního systému. Obsah : 1. Úvod 2. Funkční

Více

Programování II. Modularita 2017/18

Programování II. Modularita 2017/18 Programování II Modularita 2017/18 Modul? Osnova přednášky Vývoj programování Modularita Příklad Vývoj programování Paradigmata programování Jak a proč se jazyky vyvíjejí? V čem se OOP liší od předchozích

Více

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí) Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog

Více

9. Může dojít k situaci, že ZP je nutno aktualizovat (změna vzhledu, změna příjmení, změna -1- dále ZP).

9. Může dojít k situaci, že ZP je nutno aktualizovat (změna vzhledu, změna příjmení, změna -1- dále ZP). 1 Popis ucelené problémové domény Následující komplexní příklad se týká domény soukromých zbraní v ČR (SSZ v ČR) Ukážeme nejdříve její obecný popis, ale nebudeme se přísně držet současně platného zákona

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

Teorie systémů TES 1. Úvod

Teorie systémů TES 1. Úvod Evropský sociální fond. Praha & EU: Investujeme do vaší budoucnosti. Teorie systémů TES 1. Úvod ZS 2011/2012 prof. Ing. Petr Moos, CSc. Ústav informatiky a telekomunikací Fakulta dopravní ČVUT v Praze

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

Vývoj IS - strukturované paradigma II

Vývoj IS - strukturované paradigma II Milan Mišovič (ČVUT FIT) Pokročilé informační systémy MI-PIS, 2011, Přednáška 05 1/18 Vývoj IS - strukturované paradigma II Prof. RNDr. Milan Mišovič, CSc. Katedra softwarového inženýrství Fakulta informačních

Více

Softwarové komponenty a Internet

Softwarové komponenty a Internet Softwarové komponenty a Internet Doc. Dr. Ing. Miroslav Beneš Katedra informatiky FEI VŠB-TU Ostrava Miroslav.Benes@vsb.cz Obsah přednášky Motivace Vývoj přístupů k tvorbě programů Definice komponenty

Více

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph) Marketingová komunikace Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph) 2. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm Minulé soustředění úvod

Více

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

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

Více

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

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

Více

Č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

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox 02. HODINA Obsah: 1. Typy souborů a objektů 2. Ovládací prvky Label a TextBox 3. Základní příkazy a vlastnosti ovládacích prvků 4. Práce s objekty (ovládací prvky a jejich vlastnosti) 2.1 Typy souborů

Více

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 Informační technologie 1 - Doporučená doba zpracování: 40 minut 1) Termín DCL v relačně databázové technologii

Více

Program a životní cyklus programu

Program a životní cyklus programu Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy

Více

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace. 1. Úvod. Algoritmus 1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Programování II. Třídy a objekty (objektová orientovanost) 2018/19

Programování II. Třídy a objekty (objektová orientovanost) 2018/19 Programování II Třídy a objekty (objektová orientovanost) 2018/19 Osnova přednášky Objektový přístup (proč potřebujeme objekty). Třídy, objekty,... Příklad. Proč potřebujeme objekty? Udržovatelnost softwaru

Více

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura Dílčí architektury Informační systémy - dílčí architektury - EIS MIS TPS strategické řízení taktické řízení operativní řízení a provozu 1 Globální Funkční Procesní Datová SW Technologická HW Aplikační

Více

ANOTACE vytvořených/inovovaných materiálů

ANOTACE vytvořených/inovovaných materiálů ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a

Více

Ontologie. Otakar Trunda

Ontologie. Otakar Trunda Ontologie Otakar Trunda Definice Mnoho různých definic: Formální specifikace sdílené konceptualizace Hierarchicky strukturovaná množina termínů popisujících určitou věcnou oblast Strukturovaná slovní zásoba

Více

3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3

3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3 Obsah Obsah 1 Program přednášek 1 2 Podmínky zápočtu 2 3 Co je algoritmus? 2 3.1 Trocha historie............................ 2 3.2 Definice algoritmu.......................... 3 3.3 Vlastnosti algoritmu.........................

Více

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph) Marketingová komunikace Kombinované studium Skupina N9KMK3PH (vm3aph) 2. a 3. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm Co nás čeká: 2. soustředění 16.1.2009

Více

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 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 / Druh CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT

Více

Programujeme v softwaru Statistica

Programujeme v softwaru Statistica Programujeme v softwaru Statistica díl druhý Newsletter Statistica ACADEMY Téma: Programování, makra, skripty Typ článku: Návody V tomto článku si ukážeme další možnosti při psaní maker v softwaru Statistica.

Více

Objektově orientované technologie Business proces Diagram aktivit. Daniela Szturcová

Objektově orientované technologie Business proces Diagram aktivit. Daniela Szturcová Objektově orientované technologie Business proces Diagram aktivit Daniela Szturcová Osnova Bysnys proces pojmy metody, specifikace pomocí diagramů Modelování pomocí aktivitního diagramu prvky diagramu

Více

Software602 Form Designer

Software602 Form Designer Software602 Form Designer Javascriptový vyhodnocovací mechanismus výrazů Aktualizováno: 17. 3. 2017 Software602 a.s. Hornokrčská 15 140 00 Praha 4 tel: 222 011 602 web: www.602.cz e-mail: info@602.cz ID

Více

10 Algoritmizace Příklad 2 Word 2007/ VBA

10 Algoritmizace Příklad 2 Word 2007/ VBA TÉMA: Zápis algoritmu, cyklus se známým počtem opakování Prostředí aplikace Wordu je možné doplnit v rámci využití maker o automatizaci složitějších posloupností příkazů. Vedle záznamu makra je možno makra

Více

Architektury Informačních systémů. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Architektury Informačních systémů. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Architektury Informačních systémů Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Nutné pojmy Co je to informační systém? Jaké oblasti zahrnuje? Jaká je vazba IS na podnikovou strategii?

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

Vzdělávací obsah vyučovacího předmětu

Vzdělávací obsah vyučovacího předmětu V.9.3. Vzdělávací obsah vyučovacího předmětu Vzdělávací oblast: Inormatika a informační a komunikační technologie Vyučovací předmět: Informatika Ročník: 1. ročník + kvinta chápe a používá základní termíny

Více

2. Systémová analýza SA návrhová část projektu = příručka projektu - systémový přístup k analýze problémů, nejdůležitější etapa projektu - podrobné st

2. Systémová analýza SA návrhová část projektu = příručka projektu - systémový přístup k analýze problémů, nejdůležitější etapa projektu - podrobné st 1. IŘS, definice, třídění, projekt, životní cyklus IŘS systémy na zpracování získaných (naměřených) informací a jejich využití pro řízení IŘS : a) IS informační systémy systémy sběru a zpracování dat (hromadné),

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

Programování v jazyce C a C++

Programování v jazyce C a C++ Programování v jazyce C a C++ Richter 1 Petyovský 2 1. března 2015 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno 2 Ing. Petyovský Petr, UAMT FEKT VUT Brno C++ Stručná charakteristika Nesdíĺı normu

Více

1. D Y N A M I C K É DAT O V É STRUKTUR Y

1. D Y N A M I C K É DAT O V É STRUKTUR Y 1. D Y N A M I C K É DAT O V É STRUKTUR Y Autor: Petr Mik Abychom se mohli pustit do dynamických datových struktur, musíme se nejdřív podívat na datový typ ukazatel. 1. D AT O V Ý TYP U K A Z AT E L Datové

Více

Informační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika

Informační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika 2 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk UML, základní modely, diagramy aktivit, diagramy entit.

Více

Databázové systémy. Přednáška 1

Databázové systémy. Přednáška 1 Databázové systémy Přednáška 1 Vyučující Ing. Martin Šrotýř, Ph.D. K614 Místnost: K311 E-mail: srotyr@fd.cvut.cz Telefon: 2 2435 9532 Konzultační hodiny: Dle domluvy Databázové systémy 14DATS 3. semestr

Více

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u

Více

Základy algoritmizace

Základy algoritmizace Algoritmus Toto je sice na první pohled pravdivá, ale při bližším prozkoumání nepřesná definice. Například některé matematické postupy by této definici vyhovovaly, ale nejsou algoritmy. Přesné znění definice

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

MS Excel makra a VBA

MS Excel makra a VBA Autor: RNDr. Obsah: MS Excel makra a VBA 1 Využití, ukázky, výhody a nevýhody... 2 2 Makra a zabezpečení... 2 2.1 Nastavení zabezpečení Excelu... 2 2.2 Uložení maker do sešitu a osobního sešitu maker...

Více

Systém elektronického rádce v životních situacích portálu www.senorady.cz

Systém elektronického rádce v životních situacích portálu www.senorady.cz Systém elektronického rádce v životních situacích portálu www.senorady.cz Obec Senorady Miroslav Patočka 2006 Obsah: 1. Úvodní informace 1.1 Informace pro uživatele 1.1.1 Přístupnost HTML, PDA, WAP, XML

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím ICT Číslo projektu: CZ.1.07/1.5.00/34.0940

Více

Úvod do teorie grafů

Úvod do teorie grafů Úvod do teorie grafů Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí

Více

Úvod do databázových systémů

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 8 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Entita Entitní typ

Více

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů. Modely datové Existují různé úrovně pohledu na data. Nejvyšší úroveň je úroveň, která zachycuje pouze vztahy a struktury dat samotných. Konceptuální model - E-R model. Další úrovní je logická úroveň Databázové

Více

Modelování procesů s využitím MS Visio.

Modelování procesů s využitím MS Visio. Modelování procesů s využitím MS Visio jan.matula@autocont.cz Co je to modelování procesů? Kreslení unifikovaných či standardizovaných symbolů, tvarů a grafů, které graficky znázorňují hlavní, řídící nebo

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 Algoritmus Daniela Szturcová Tento

Více

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

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

Více

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U P R O G R A M O V É V Y B A V E N Í Studijní obor: 18-20-M/01 Informační technologie Školní

Více

PŘÍLOHA C Požadavky na Dokumentaci

PŘÍLOHA C Požadavky na Dokumentaci PŘÍLOHA C Požadavky na Dokumentaci Příloha C Požadavky na Dokumentaci Stránka 1 z 5 1. Obecné požadavky Dodavatel dokumentaci zpracuje a bude dokumentaci v celém rozsahu průběžně aktualizovat při každé

Více

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan Principy OOP při tvorbě aplikací v JEE Michal Čejchan Témata přednášky Principy OOP - připomenutí Úvod - co nás vede k používání OOP Reálný svět - jak (ne)používáme OOP Nedostatky na úrovni programovacích

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 01. Základní pojmy a principy programování 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

Business Intelligence

Business Intelligence Business Intelligence Josef Mlnařík ISSS Hradec Králové 7.4.2008 Obsah Co je Oracle Business Intelligence? Definice, Od dat k informacím, Nástroj pro operativní řízení, Integrace informací, Jednotná platforma

Více

1. Integrační koncept

1. Integrační koncept Příloha č. 2: Technický popis integrace 1. Integrační koncept Z hlediska koncepčního budování Smart Administration na Magistrátu města Mostu je možno hovořit o potřebě integrace tří úrovní systémové architektury

Více

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Vyšší odborná škola ekonomická a zdravotnická a Střední škola, Boskovice INOVACE PŘEDMĚTŮ ICT MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Zpracoval: Jaroslav Kotlán srpen 2009s Úvod Modul Programování

Více

Databáze v MS ACCESS

Databáze v MS ACCESS 1 z 14 19.1.2014 18:43 Databáze v MS ACCESS Úvod do databází, návrh databáze, formuláře, dotazy, relace 1. Pojem databáze Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele,

Více