Toto zadání je podepsané děkanem a vedoucím katedry, po obhajobě).

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

Download "Toto zadání je podepsané děkanem a vedoucím katedry, po obhajobě)."

Transkript

1 Na tomto místě bude oficiální zadání vaší práce Toto zadání je podepsané děkanem a vedoucím katedry, musíte si ho vyzvednout na studiijním oddělení Katedry počítačů na Karlově náměstí, v jedné odevzdané práci bude originál tohoto zadání (originál zůstává po obhajobě na katedře), ve druhé bude na stejném místě neověřená kopie tohoto dokumentu (tato se vám vrátí po obhajobě). i

2 ii

3 České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů Bakalářská práce Generátor rozsáhlých matic zadaných parametrů Jan Hlaváček Vedoucí práce: Ing. Ivan Šimeček, Ph.D. Studijní program: Elektrotechnika a informatika, strukturovaný, Bakalářský Obor: Výpočetní technika 24. května 2010

4 iv

5 v Poděkování Zde můžete napsat své poděkování, pokud chcete a máte komu děkovat.

6 vi

7 vii Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne

8 viii

9 Abstract Translation of Czech abstract into English. Abstrakt Abstrakt práce by měl velmi stručně vystihovat její podstatu. Tedy čím se práce zabývá a co je jejím výsledkem/přínosem. Očekávají se cca 1 2 odstavce, maximálně půl stránky. ix

10 x

11 Obsah 1 Úvod Rozbor Definice matice Druhy matic Horní trojúhelníková matice Dolní trojúhelníková matice Symetrická matice Pásová matice Řídká matice Reprezentace matic v paměti Metody vhodné k vytváření a modifikacím Metody vhodné k maticovým operacím CRS - compressed row storage CCS - compressed column storage CDS - compressed diagonal storage BCRS - block compressed row storage Yale sparse matrix format New Yale sprase matrix format Popis problému, specifikace cíle 11 3 Analýza a návrh ˇreˇsení Analýza prostředí Analýza implementace Analýza generovaných matic Rozdělení na komponenty Komponenta GUI Komponenta Controller Komponenta Saver Komponenta Generator Realizace Implementace CRS formátu Třída Tcrs Třída Crs xi

12 xii OBSAH 4.2 Implementace komponenty GUI Implementace komponenty Saver Implementace komponenty Controller Implementace komponenty Generator Třída Normal Třída Band Testování 25 6 Závˇer 27 Literatura 29

13 Seznam obrázků 1.1 Zápis matice Zápis matice Horní trojúhelníková matice Compressed row storage Compressed column storage Compressed diagonal storage Yale sparse matrix format Yale sparse matrix format Diagram aktivit Diagram komponent xiii

14 xiv SEZNAM OBRÁZKŮ

15 Seznam tabulek xv

16 xvi SEZNAM TABULEK

17 Kapitola 1 Úvod 1.1 Rozbor Řídké matice se velmi hojně objevují v různých vědeckých či strojírenských oborech při řešení parciálních diferenciálních rovnic. Tento specifický typ matice se také vyskytuje v grafických algoritmech a aplikacích. Z toho plyne, že hlavními zájemci o takový generátor řídkých matic jsou vývojaři aplikací řešící problémy právě z těchto oblastí, které řídké matice využívají či aplikací provádějících různé maticové operace nad řídkými maticemi.. Existuje několik generátorů řídkých matic, avšak většina z nich dovoluje generovat matice pouze zcela náhodné, nejsou multiplatformní nebo nemají jednoduché intuitivní ovládání (např. MatLab). Cílem práce tudíž je vytvořit aplikaci generující řídké matice a to nejen zcela náhodné, ale hlavně podle daných specifikací a různých typů. Samozřejmě s jednoduchým ovládáním, platformně nezávislá a nejlépe rozšiřitelná o další součásti, protože kritérií pro tvorbu matic a samotných typů matice může být velmi mnoho. 1

18 2 KAPITOLA 1. ÚVOD 1.2 Definice matice Pojem matice v matematice označuje schéma či tabulku obsahující matematické objekty. Obecně je obdélníkového tvaru (má m řádků, n sloupců) a většinou obsahuje čísla. Takovou matici nazýváme typem m x n. K označení prvků matice se používá indexů určující jejich řádek a sloupec. Prvek matice A na i-tém řádku v j-tém sloupci označujeme A ij. Matice se velmi často používají například při řešení lineárních rovnic nebo při operacích s vektory (rotace, transformace mezi bázemi) a také pro vyjádření operátorů v kvantové mechanice. Informace čerpány z [4] A = a 11 a a 1n a a (m 1)n a m1... a m(n 1) a mn Obrázek 1.1: Zápis matice A = Obrázek 1.2: Zápis matice

19 1.3. DRUHY MATIC Druhy matic Druhů matice je nepřeberné množství. Popíši zde pouze ty druhy, které jsou relevatní k této práci Horní trojúhelníková matice Matice, jejíž nenulové prvky se nacházejí pouze nad hlavní diagonálou. A = a 11 a a 1n a2n a(m 1)n a mn Obrázek 1.3: Horní trojúhelníková matice Dolní trojúhelníková matice Matice, jejíž nenulové prvky se nacházejí pouze pod hlavní diagonálou Symetrická matice Matice je symestrická pokud, když jí transponujeme vzniklá matice je shodná s původní. Transponováním se rozumí přepis řádků do sloupců Pásová matice Je matice, která rozšiřuje diagonální matici a to tím způsobem, že podél hlavní diagonály jsou vedeny další diagonály, které jsou složené pouze z nenulových prvků Řídká matice Mezi speciální druhy matic patří tzv. řídké matice. Za řídkou považujeme matici pokud počet nenulových prvků je vzhledem k počtu všech prvků velmi malý. Obecně se udává hodnota 5-10%, ale za řídkou mohou být označeny matice i s větším počtem nenulových prvků díky jejich uspořádání. Tento typ matic je specifický tím, že je často velmi efektivní použít speciální metody pro jejich reprezentaci v paměti.

20 4 KAPITOLA 1. ÚVOD 1.4 Reprezentace matic v paměti Dále bych rád rozebral problematiku ukládání a reprezentaci matic v paměti. V praxi se obecně používají velmi rozsáhlé řídké matice a z důvodu specifických vlastností těchto matic se pro jejich reprezentaci nepoužívá standartních metod. Při běžném způsobu je potřeba pro matici m x n uložit m*n hodnot, většinou za použítí běžného dvourozměrného pole. Pro řídké matice je výhodné použít jiné datové struktury, které mohou vést k velkým pamětovým úsporám. Formáty pro řídké matice lze rozdělit do dvou skupin. První skupina umožňuje snažší tvorbu a modifikace matice, kdežto druhá skupina je více vhodná pro operace s maticemi Metody vhodné k vytváření a modifikacím DOK - dictonary of keys Používá systém slovníkového mapování dvojic (řádek,sloupec) k hodnotám. LIL - list of lists Ukládá každý řádek jako seznam obsahující čísla sloupců a odpovídající hodnoty prvků. COO - coordinate list Ukládá celou matici jako seznam prvků trojic (řádek, sloupec, hodnota) Metody vhodné k maticovým operacím CRS - compressed row storage CCS - compressed column storage CDS - compressed diagonal storage Více o těchto metodách dále. Metody první skupiny se typicky používají při vytváření matic a poté se převedou do jednoho z formátů druhé skupiny.

21 1.4. REPREZENTACE MATIC V PAMĚTI CRS - compressed row storage Společně s formátem CCS nejobecnější a nejjednodušší princip ukládání řídkých matic. Formát neukládá žádné nadbytečné nulové prvky matic, předem nedělá žádný rozbor struktury matice (např. rozložení nenulových prvků). Nevýhodou je však neefektivní, protože potřebují nepřímý adresní krok pro každou skalární operaci matice-vektor. Princip formátu spočívá v uložení do souvislého pamětového prostoru po sobě jdoucí nenulové prvky z jednoho řádku. Matice je reprezentována třemi poli - r, s, hod. Pole s obsahuje index sloupce, pole r obsahuje ukazatele na prvky z pole hod, které jsou v daném řádku prvními nenulovými a pole hod samotné hodnoty prvků uložené řádek po řádku (tzv. row-wise). Pole s obsahuje indexy sloupců prvků, které jsou obsahem pole hod. Z toho tudíž plyne, že pole s a hod mají stený počet položek. Pole r naopak definujeme s délkou m + 1, jelikož podle konvence jako poslední prvek ukládáme nn + 1, kde nn je počet nenulových prvků a m je počet řádků matice. Platí-li hod(k) = a ( i, j), pak s(k) = j, kde i je číslo řádku, j je číslo sloupce matice a index k slouží jako index do pole s. Pole r v sobě uchovává indexy na prvky v poli hod, které jsou prvními nenulovými prvky matice v řádku i. Matematicky toto lze vyjádřit následovně : Za předpokladu hod(k) = a ( i, j), pak r(i) k r(i+1). Velikost pole r je rovna m+1, kde m je počet řádků matice. Protože nejnižší index řádku a sloupce je 1, obsahuje r(0) výchozí hodnotu 1. To umožňuje snadné zjištění počtu prvků na prvním řádku matice pouhým odečtením hodnot r(1) r(0). Úspora místa, při použití formátu CRS pro uložení matice, je značná. Místo uložení n2 prvků je potřeba pouze s 2nn + m + 1 jednotek pro uložení, kde nn je počet nenulových prvků.

22 6 KAPITOLA 1. ÚVOD Obrázek 1.4: Compressed row storage

23 1.4. REPREZENTACE MATIC V PAMĚTI CCS - compressed column storage Tento formát je téměř totožný s formátem CRS. Je také znám pod názvem Harwell-Boeingův. Jediný rozdíl oproti CRS je, že hodnoty nenulových prvků jsou do pole hod ukládány po sloupcích, nikoli po řádcích. Matice A je tedy opět uložena pomocí tří polí r, s, hod. Tentokrát ale r obsahuje indexy řádků, do kterých patří prvky z pole hod. Analogicky k CRS je pole r stejně dlouhé jako pol hod a pole s udává indexy na prvky z pole hod, které jsou první nenulové prvky matice v jednotlivých sloupcích. Obrázek 1.5: Compressed column storage

24 8 KAPITOLA 1. ÚVOD CDS - compressed diagonal storage V případě že matice A je tvořena pásy nenulových prvků podél hlavní diagonály a i samotná diagonála obsahuje nenulové prvky je výhodné použít formát CDS. Principem je ukládání všech vedlejších diagonál obsahujících nenulové prvky spolu s hlavní diagonálou do souvislého datového prostoru. Tímto způsobem se ušetří místo na určení polohy jednotlivých prvků nebo menších bloků. Pouze stačí určit o jakou diagonálů se jedná poté uložit její prvky souvisle za sebou. Matice, které lze takto uložit obsahuje nezáporné konstanty p, q, nazývané jako levá a pravá polovina pásma, a současne a (i,j) 0 pro i p j i + p. Pro takovou matici stačí na její uložení alokovat pole o rozměrech (1 : n, p : q). Obrázek 1.6: Compressed diagonal storage

25 1.4. REPREZENTACE MATIC V PAMĚTI BCRS - block compressed row storage Pokud řídká matice A obsahuje čtvercové bloky nenulových prvků v určitém vzoru, lze upravit formáty CRS nebo CCS, tak aby toho lépe využily. Za předpokladu že nb je rozměr každého bloku, npb je počet všech nenulových bloků v A, potom celkové potřebné místo k uložení takové matice je rovno npb nb 2. Rozměr bloku A je poté definován jako nd = n/nb. Stejně jako formáty CRS (CCS) používá k uložení matice tři pole. Třírozměrné pole hod(1 : npb, 1 : nb, 1 : nb), do kterého se po řádcích (row-wise) ukladájí bloky nenulových prvků, dále pole s(1 : npb) obsahující indexy sloupců prvků z matice A a pole ukazatelů r, které určují začátky řadků každého bloku z pole hod. Úspora místa a nepřímého adresování může být značná pro matice s velkým nb. Informace o všech výše zmíněných formátech čerpány či převzaty z [1] Yale sparse matrix format Formát totožný s CRS, pouze s přejmenovanými poli na uložení matice. Pole A je totožné s polem hod. Pole JA zase s polem indexů sloupců s a nakonec pole IA je shodné s r a ukládá tudíž indexy z pole hodnot A na první nenulové prvky z původní matice. Obrázek 1.7: Yale sparse matrix format

26 10 KAPITOLA 1. ÚVOD New Yale sprase matrix format Tento formát vychází z formátu Yale sparse matrix, pouze využívá toho, že obecně prvky na hlavní diagonále jsou nenulové a bývá k nim přistupování častěji než k ostatním prvkům. Kvůli tomu se prvky z hlavní diagonály uloží do odděleného pole s velikostí m a nemusí se ukládat pozice sloupců těchto prvků. Prostor po těchto prvcích v poli JA se naplní obsahem pole IA a takto vzniklé pole se označuje IJA. Toto pole má potom velikost nn + 1, kde nn je počet nenulových prvků matice. Obrázek 1.8: Yale sparse matrix format Texty čerpány a obrázek převzat z elektronického zdroje [5]

27 Kapitola 2 Popis problému, specifikace cíle Cílem práce tedy je vytvořit aplikaci generující specifické rozsáhlé matice dle zadaných kriterií. Mezi klíčové problémy v tomto případě tedy patří náhodnost rozmístění prvků a samozřejmě, protože jde o velikostně velmi rozsáhlé matice, také čas za který aplikace matici vygeneruje a velikost paměti, kterou přitom bude potřebovat, resp. časová a pamětová složitost použitých algoritmů. 11

28 12 KAPITOLA 2. POPIS PROBLÉMU, SPECIFIKACE CÍLE

29 Kapitola 3 Analýza a návrh řešení 3.1 Analýza prostředí Nejdříve je třeba vybrat vývojové prostředí, potažmo programovací jazyk, ve kterým bude aplikace implementována. Hlavní kandidáti na výběr jsou jazyky C++ a Java, každý s různými výhodami i nevýhodami, které by mohli ovlivnit způsob implementace i její výsledek. Ačkoli C++ by např. zřejmě poskytovalo větší možnosti co se týče kontroly nad pamětí, dospěl jsem k rozhodnutí použít programovací jazyk Java. A to hned z několika důvodů. Podle zadání by aplikace měla být nezávislá na platformě, což je jasná dominanta právě jazyku Java, dále rozšiřitelnost o další moduly je podle mého názoru o něco snažší v Javě díky jejímu čistě objektovému zaměření a v neposlední řadě důvodem k výběru tohoto jazyka byly také mé o něco větší znalosti než z jazyka C++. Aplikace tedy bude soubor typu.jar a bude spustitelná v prostředí JRE (Java Runtime Enviroment). Nebude využívat žádné další systémové či externí knihovny. Více o.jar souborech a JRE zde [2], resp. [3] 13

30 14 KAPITOLA 3. ANALÝZA A NÁVRH ŘEŠENÍ 3.2 Analýza implementace Jako první před samotnou implementací je potřeba rozhodnout o použitém formátu pro práci a ukládání matic. Z výběru uvedeného v úvodní kapitole jsem vybral jako dostačující a zároveň i relativně jednoduchý formát CRS. To s sebou přínáší požadavek na datovou strukturu potřebnou k uložení vygenerované matice. Ve formátu CRS je pro reprezentaci matice použito 3 jednorozměrných polí. Pro jednoduchost a přehlednost bude vytvořena třída obsahující právě tyto 3 pole, přesněji tedy 3 objekty typu kolekce. V této kapitole nastíním průběh činnosti programu, rozeberu výběr prostředí, také blíže analyzuji přesně druhy matic, které bude aplikace generovat a s tím spojené pojmy i dopady, dále se budu věnovat rozdělení aplikace do komponent a popíšu jejich obsah. Hlavní činností programu tedy bude vygenerování matice a její zápis do souboru. K tomu budou zajisté potřeba nějaká vstupní data pro určení parametrů matice. Podle zadání by toto mělo být umožněno zadáním jak pomocí parametrů na příkázové řádce, tak pomocí GUI. Tyto vstupní data se po kontrole jejich správnosti předají metodě či metodám na samotné vygenerování matice. Nakonec se bude výsledek generování předávat metodě obstarávající uložení do souboru. Toto je relativně jednoduchý průběh a díky tomu bude stačit i jednoduché uživatelské rozhraní. Průběh činnosti aplikace je znázorněn diagramem aktivit na obrázku 3.1

31 3.2. ANALÝZA IMPLEMENTACE 15 Obrázek 3.1: Diagram aktivit

32 16 KAPITOLA 3. ANALÝZA A NÁVRH ŘEŠENÍ 3.3 Analýza generovaných matic Bylo určeno, že aplikace bude generovat dva hlavní druhy matic. Obecné a pásové, které se dále můžou lišit několika podtypy. U obou typů to budou matice horní a dolní trojúhelníkové, symetrické a obecné bez dalších specifikací. Dva hlavní typy se budou mírně lišit potřebnými vstupními daty. Pro oba se samozřejmě bude zadávat rozměr matice. U obecných to dále bude celkový počet nenulových prvků, jaký podtyp se má generovat a tzv. šířka elementu. Tato hodnota bude určovat kolik prvků bude tvořit 1 element, což je několik nenulových hodnot vedle sebe. Takže ve výsledku se na řádích matice budou vyskytovat pouze skupiny nenulových prvků jejichž počet bude určen právě zadanou šířkou elementu. U pásových matic se nebude zadávat počet prvků ani šířka elementu, ale pouze šířka pásu pod a nad hlavní diagonálou, čímž se tedy také určí zda případně půjde o horní či dolní trojúhelníkovou matici. Také bude možnost generování symetrické pásové matice, samozřejmě za předpokladu, že šířka pásu pod i nad hlavní diagonálou bude shodná, což vyplývá z definice symetrické matice. U obou druhů bude taktéž možné nastavit vygenerování regulární matice. Avšak narozdíl od přesně matematicky definované regulární matice bude rozdíl pouze v tom, že vygenerovaná regulární matice nebude obsahovat prázdné řádky. To hlavně protože dosažení pravé regulárnosti velice rozsáhlých matic by bylo výpočetně náročné.

33 3.4. ROZDĚLENÍ NA KOMPONENTY Rozdělení na komponenty Z požadavků na aplikaci lze logicky celkem dobře usoudit, že aplikaci bude vhodné rozdělit na komponenty obstarávající tyto jednotlivé činnosti. Jedna komponenta pro uživatelské rozhraní, druhá pro samotné generování matice, třetí na ukládání vygenerované matice. Toto rozvržení přímo vybízí k použití softwarové architektury MVC (Model - View - Controller), která rozděluje datový model, uživatelské rozhraní a řídící logiku do tří komponent. Díky tomuto rozdělení bude aplikace relativně přehledná a pomocí dobrého rozvržení komponent by mělo být i snadné případné rozšíření o další moduly v budoucnu. Po spojení všech těchto zjištění tedy vychází rozdělení do čtyř komponent. Komponenta GUI pro uživatelské rozhraní, komponenta Generator na generování matice, komponenta Saver obstarávající uložení do souboru a komponenta Controller, která bude zajištovat komunikaci a řízení ostatních komponent. Obrázek 3.2: Diagram komponent

34 18 KAPITOLA 3. ANALÝZA A NÁVRH ŘEŠENÍ 3.5 Komponenta GUI Hlavním úkolem této komponenty bude umožnění komunikace s uživatelem a příjmání vstupních dat pro specifikaci generovaných matic. K vlastnímu vytvoření bude použito standartních knihoven AWT a SWING. Samotné uživatelské rozhraní nebude nikterak složité. Postačí několik vstupních polí pro zadávání vstupních hodnot jak byly nastíněny v analýze generovaných matic. Přesněji tedy číselných hodnot na určení rozměrů matice, počtu nenulových prvků, velikosti elementu prvků a šířky pásu u pásových matic, nakonec bude třeba několik přepínačů na nastavení druhu matice, možnost výběru souboru pro uložení a samozřejmě nějaké tlačítko, které spustí samotné generování matice. Komponenta by taktéž měla umožňovat přehledné zobrazování případných chybových hlášek a průběhu generování. V souladu se zadáním bude uživatelské rozhraní také umožňovat zobrazení části matice. Toto zobrazení bude pouze informativní a pro jednoduchost bude zobrazovat výsek 10x10 z vygenerované matice, kterým půjde posouvat. 3.6 Komponenta Controller Tato komponenta bude obstarávat celkovou komunikaci mezi všemi ostatními komponentami. Nejdříve načte zadané vstupy z komponenty GUI, které zkontroluje a případně jí pošle zpět příslušné chybové hlášky, která je zobrazí. V případě, že vstupy budou v pořádku, zavolá metody komponenty Generator s příslušnými parametry na vygenerování matice a poté Saver, které předá vygenerovanou matici pomocí objektu třídy CRS. 3.7 Komponenta Saver Komponenta s jednoduchým účelem, a to zapsáním vygenerované matice do vybraného souboru. Bude obsahovat třídu, která jako parametr dostane objekt reprezentující matici v CRS formátu a zapíše data do souboru, který se vybere pomocí GUI. Jako výstupní formát byl podle rady vybrán Matrix Market Coordinate Format, který reprezentuje matici jednoduchou trojicí hodnot řádek sloupec hodnota. Tudíž bude nejspíše obsahovat metody na jednoduchý převod z CRS formátu. Případné rozšíření o další formáty lze opět jednodušše provést přidáním tříd do komponenty.

35 3.8. KOMPONENTA GENERATOR Komponenta Generator Nejdůležitější část zajištující hlavní náplň aplikace, generování matic. Jelikož pro různé druhy matic bude vhodné, či dokonce nezbytné, používat odlišné postupy při generování, bude komponenta obsahovat různé třídy a metody specifické právě druhem matic, které budou generovat. Případné rozšiřování o možnosti generování dalších typů matic bude tedy probíhat přidáním dalších tříd do této komponenty. Pro přehlednost bude definován abstraktní interface určující nutné rozhraní pro komunikaci s ostatními komponentami. Což vlastně bude pouze metoda vracející objekt zmíněné třídy reprezentující formát CRS, která bude obsahovat vygenerovanou matici. V rámci zadání bude práce obsahovat dvě třídy. První určená ke generování pásových matic a druhá obstarávající generování obecných matic. Při prvotní analýze byl plán na vytvoření dílčích metod pro generování specifických matic v rámci tříd. Přesněji vlastní metodu pro trojúhelníkové matice, další na symetrické a nakonec pro matice obecného typu. Hned v prvních fázích implementace se ale ukázal tento návrh jako téměř zbytečný, protože rozdílů při generování rozdílných typů matic bylo daleko méně než společného a vedlo by to na přílišné opakovaní nadbytečného kódu. Tudíž všechny druhy matic bude obstarávát pouze jedna metoda. Respektivě tedy jedna hlavní metoda používající malé množství dalších metod zpracovávající menší dílčí činnosti spojené s generováním matice. Protože z povahy problému generování rozsáhlých matic vyplývá relativně vyšší náročnnost na výpočetní výkon, bylo také od první chvíle počítáno s vícevláknovým zpracováním. Toto však bylo do předběžné analýzy zahrnuto pouze faktem, že bude vhodné implementovat metody generující matici tak, aby bylo možné generovat různé části matice nezávisle na sobě. Více o tom a celkových změnách ke kterým došlo po prvních fází implementace popíši právě v kapitole věnované realizaci.

36 20 KAPITOLA 3. ANALÝZA A NÁVRH ŘEŠENÍ

37 Kapitola 4 Realizace 4.1 Implementace CRS formátu Podle teoretického úvodu je pro tento formát potřeba 3 polí uchovávající číselné hodnoty potřebné pro reprezentaci matice. Pro přehlednost byl vytvořen java package formats obsahující potřebné třídy Třída Tcrs Třída reprezentující datový typ jednoho prvku matice. Obsahuje dvě celočíselné hodnoty col a val představující sloupec a hodnotu prvku Třída Crs Obsahuje 2 dynamické kolekce typu ArrayList. První s názvem ValCol obsahuje prvky výše zmíněného typu Tcrs, čímž došlo ke spojení polí Col a Val do jednoho a druhá kolekce RowP obsahuje celočíselné hodnoty. Dále třída obsahuje podpůrné metody pro získání a nastavení těchto kolekcí (tzv. setry a getry) a také metody na získání počtu řádků či získání prvku Tcrs z udaného řádku a sloupce. 21

38 22 KAPITOLA 4. REALIZACE 4.2 Implementace komponenty GUI Tato komponenta je tvořena jedinou třídou View. Rozvržení uživatelského rozhraní je realizováno pomocí záložek a třidy JTabbedPane, kde každá záložka (objekt typu JPanel) je určena pro ovládání generování odlišných druhů matice. Navíc také jeden panel pro zobrazení výseku matice. Panely určené k obsluze generování matic jsou velmi podobné a obsahují jednotlivé vstupní pole pro parametry, jejich popisky, přepínače pro výběr typu matice a rozhraní pro výběr souboru na uložení. Panel pro zobrazení části matice obsahuje vstupní pole pro určení počátečních řádků a sloupců od kterých se bude zobrazovat, dále je možné pohyb výseku z matice ovládat jednoduchými tlačítky určenými pro pohyb do stran. Velikost zobrazovaného výseku byla zvolena 10x10. To je realizováno pomocí 100 jednotlivých polí uspořádaných do matice, které jsou pro jednoduchost uložený v ArrayListu showarea. Samotné zobrazení prvků je realizováno metodou show(arraylist<string>x), která jednodušše přiřadí text z jednotlivých prvků vstupního ArrayListů řetězců odpovídajícím zobrazovacím prvkům z ArrayListu showarea. Každý z panelů používá GridBagLayout pro rozvržení prvků a je vytvářen a inicializován samostatnou metodou. Vytvoření hlavního okna, přidání panelů má na starosti metoda init- Layout(), která je volána v konstruktoru při vytváření objektu GUI. Komponenta samozřejmě také obsahuje další podpůrné metody a logiku uživatelského rozhraní pro komunikaci s ostatními komponentami. Tyto metody slouží hlavně k získávání/nastavení hodnot z/do vyplněných polí, ale také například k zobrazení chybového hlášení. Ostatní metody jsou pro řízení logiky rozhraní (Listenery tlačítek, kontrola ovládacích prvků v zobrazovacím panelu.) 4.3 Implementace komponenty Saver Komponenta určená k ukládání matic do souboru jejíž třída SaveCrs obsahuje metodu save(file file, Crs crs), která obstarává ukládání z formátu Crs. Vstupními parametry metody je objekt typu File a Crs. Metoda nejdříve zapíše do souboru jednoduchou hlavičku podle formátu Matrix Market a poté jednoduchým převodním algoritmem zapíše jednotlivé prvky matice podle Matrix Market formátu, tj. každý prvek reprezentován jedním řádkem obsahujícím hodnoty řádek sloupec hodnota.

39 4.4. IMPLEMENTACE KOMPONENTY CONTROLLER Implementace komponenty Controller Obsahuje jedinou třídu, která řídí komunikaci mezi ostatními komponentami. Podle MVC standardu obsahuje metody realizující napojení na stisk tlačítek v komponentě GUI, tzv. ActionListenery. Nejdůležitější z nich jsou metody NormalListener() a BandListener() napojené na tlačítka spuštění generování pro normální resp. pásové matice. Obě metody nejdřívě zkontrolují vstupní hodnoty získané z komponenty GUI. Pokud jsou v pořádku volají odpovídající metody pro generování z komponenty Generator s příslušnými parametry. V případě chyby ve vstupních datech předají chybové hlášení metodě showerror(string x) odpovědné za jejich zobrazení v GUI. Další metodou v komponentě je getshowing(int rowstart, int colstart). Ta slouží k vytvoření obsahu části matice, která se zobrazí. Přesněji tedy metoda vrací ArrayList obsahující 100 řetězců s odpovídajícím obsahem matice. Vstupní parametry metody slouží k určení počátečních souřadnic od kterých se bude výsek 10x10 zobrazovat. Obsah matice je čten z Crs objektu v paměti, nikoliv z uloženého souboru a to převážně z důvodů efektivity, aby nebylo nutné neustále načítat různé řádky ze souboru. Jelikož panel pro zobrazení části matice je ovládán dvěma způsoby obsahuje komponenta více ActionListenerů napojených na tlačítka v tomto panelu. Při ovládání pomocí přímého zadání vstupních hodnot a tlačítka Zobrazit je použit ShowListener(). V této metodě se nejdříve zkontrolují zda počáteční souřadnice nepřekračují velikost matice, v případě že ano jsou příslušná chybová hlášení poslány metodě na zobrazení. Jinak je zavolána výše zmíněná metoda getshowing(int rowstart, int colstart) s parametry získanými z GUI a její výsledek je předán metodě show(arraylist<string>) z GUI komponenty, která ho zobrazí. Další možností je ovládání pomocí 4 tlačítek fungujících jako směrové šipky. Tento způsob je jednodušše realizován pomocí 4 ActionListener metod. Každá je napojena na jiné tlačítko a pouze podle něj zvyšuje či snižuje indexy počátečních souřadnic zobrazovaného výseku a volání metody getshowing s těmito novými parametry. Aby při tomto způsobu ovládání nebylo možné se dostat úplně mimo matici jsou tlačítka šipek různě vypínána a zapínána podle aktuálního umístění zobrazované části a velikosti matice. Toto obstarává metoda checharrows().

40 24 KAPITOLA 4. REALIZACE 4.5 Implementace komponenty Generator Jak již bylo uvedeno aplikace bude vytvářet 2 druhy matic - pásové a normální. Každý z druhů je v komponentě reprezentován vlastní třídou Třída Normal Toto byla první třída, která byla implementována a zřejmě i proto v ní docházelo k největším změnám. Hlavním problémem bylo vytvoření algoritmu, který by správně, rovnoměrně a hlavně co nejvíce náhodně rozmístil nenulové prvky do matice. Nakonec je celý proces generování rozdělen do dvou metod a jedné vnitřní třídy rozšiřující Java třídu Thread pro potřeby vícevláknového zpracování. metoda pregenerate(arraylist Integer out, int rows,int count, int esize, int type) metoda generate(int rows,int cols, int count, int esize, int type) třída Segment(ArrayList<Integer<count, int esize, int type, int start, int fhalf, int cols) Metoda generate je ta, která je volána komponentou Controller Třída Band

41 Kapitola 5 Testování Způsob, průběh a výsledky testování. Srovnání s existujícími řešeními, pokud jsou známy. 25

42 26 KAPITOLA 5. TESTOVÁNÍ

43 Kapitola 6 Závěr Zhodnocení splnění cílů DP/BP a vlastního přínosu práce (při formulaci je třeba vzít v potaz zadání práce). Diskuse dalšího možného pokračování práce. 27

44 28 KAPITOLA 6. ZÁVĚR

45 Literatura [1] J.Dongarra. Sparse matrix storage formats. dongarra/etemplates/node372.html, stav z [2] Wikipedie jar file. stav z [3] Wikipedie jre. stav z [4] Wikipedie matice. stav z [5] Douglas wilhelm the yale sparse-matrix data structure. ece250/lectures/slides/11.02.sparse.ppt, stav z

Tady bude oficiální zadání práce.

Tady bude oficiální zadání práce. Tady bude oficiální zadání práce. 2 České vysoké učení technické v Praze Fakulta elektrotechnická Bakalářská práce Generátor řídkých matic Tomáš Bílek Vedoucí práce: Ing. Ivan Šimeček, Ph.D. Studijní program:

Více

Ovládání RC modelu pomocí Wi-fi. Pavel Valenta

Ovládání RC modelu pomocí Wi-fi. Pavel Valenta České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů Bakalářská práce Ovládání RC modelu pomocí Wi-fi Pavel Valenta Vedoucí práce: Ing. Martin Komárek Studijní program: Softwarové

Více

Editor pro vizualizaci interiérů bytů

Editor pro vizualizaci interiérů bytů České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačové grafiky a interakce Bakalářská práce Editor pro vizualizaci interiérů bytů Dominik Vondráček Vedoucí práce: Ing. David Sedláček

Více

3. Matice a determinanty

3. Matice a determinanty . Matice a determinanty Teorie matic a determinantů představuje úvod do lineární algebry. Nejrozsáhlejší aplikace mají matice a determinanty při řešení systémů lineárních rovnic. Pojem determinantu zavedl

Více

A0M15EZS Elektrické zdroje a soustavy ZS 2011/2012 cvičení 1. Jednotková matice na hlavní diagonále jsou jedničky, všude jinde nuly

A0M15EZS Elektrické zdroje a soustavy ZS 2011/2012 cvičení 1. Jednotková matice na hlavní diagonále jsou jedničky, všude jinde nuly Matice Matice typu (m, n) je uspořádaná m-tice prvků z řádky matice.. Jednotlivé složky této m-tice nazýváme Matice se zapisují Speciální typy matic Nulová matice všechny prvky matice jsou nulové Jednotková

Více

Základy programování (IZP)

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

Více

Principy operačních systémů. Lekce 7: Souborový systém

Principy operačních systémů. Lekce 7: Souborový systém Principy operačních systémů Lekce 7: Souborový systém Souborový systém Souborový systém (anglicky file system) je označení pro způsob organizace dat ve formě souborů (a většinou i adresářů) tak, aby k

Více

RELAČNÍ DATABÁZOVÉ SYSTÉMY

RELAČNÍ DATABÁZOVÉ SYSTÉMY RELAČNÍ DATABÁZOVÉ SYSTÉMY VÝPIS KONTROLNÍCH OTÁZEK S ODPOVĚDMI: Základní pojmy databázové technologie: 1. Uveďte základní aspekty pro vymezení jednotlivých přístupů ke zpracování hromadných dat: Pro vymezení

Více

Šifrování/Dešifrování s použitím hesla

Šifrování/Dešifrování s použitím hesla Fakulta elektrotechnická Katedra teoretické elektrotechniky Dokumentace k semestrální práci Šifrování/Dešifrování s použitím hesla 2012/13 Petr Zemek Vyučující: Ing. Petr Kropík, Ph.D Předmět: Základy

Více

VYUŽITÍ KNIHOVNY SWING PROGRAMOVACÍHO JAZYKU JAVA PŘI TVORBĚ UŽIVATELSKÉHO ROZHRANÍ SYSTÉMU "HOST PC - TARGET PC" PRO ŘÍZENÍ POLOVODIČOVÝCH MĚNIČŮ

VYUŽITÍ KNIHOVNY SWING PROGRAMOVACÍHO JAZYKU JAVA PŘI TVORBĚ UŽIVATELSKÉHO ROZHRANÍ SYSTÉMU HOST PC - TARGET PC PRO ŘÍZENÍ POLOVODIČOVÝCH MĚNIČŮ VYUŽITÍ KNIHOVNY SWING PROGRAMOVACÍHO JAZYKU JAVA PŘI TVORBĚ UŽIVATELSKÉHO ROZHRANÍ SYSTÉMU "HOST PC - TARGET PC" PRO ŘÍZENÍ POLOVODIČOVÝCH MĚNIČŮ Stanislav Flígl Katedra elektrických pohonů a trakce (K13114),

Více

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

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

Více

Gymnázium, Praha 6, Arabská 14. Loydova patnáctka. Dokumentace ročníkového projektu. Předmět: Programování Vyučující: Ing. Tomáš Obdržálek Třída: 1.

Gymnázium, Praha 6, Arabská 14. Loydova patnáctka. Dokumentace ročníkového projektu. Předmět: Programování Vyučující: Ing. Tomáš Obdržálek Třída: 1. Gymnázium, Praha 6, Arabská 14 Loydova patnáctka Dokumentace ročníkového projektu Předmět: Programování Vyučující: Ing. Tomáš Obdržálek Třída: 1.E Jan Zaoral květen 2014 1. Úvod 1.1. Anotace Česky Cílem

Více

Filtrace snímků ve frekvenční oblasti. Rychlá fourierova transformace

Filtrace snímků ve frekvenční oblasti. Rychlá fourierova transformace Filtrace snímků ve frekvenční oblasti Rychlá fourierova transformace semestrální práce z předmětu KIV/ZVI zpracoval: Jan Bařtipán A03043 bartipan@students.zcu.cz Obsah Úvod....3 Diskrétní Fourierova transformace

Více

Matematika pro studenty ekonomie

Matematika pro studenty ekonomie w w w g r a d a c z vydání upravené a doplněné vydání Armstrong Grada Publishing as U Průhonu 7 Praha 7 tel: + fax: + e-mail: obchod@gradacz wwwgradacz Matematika pro studenty ekonomie MATEMATIKA PRO STUDENTY

Více

Datové struktury. Zuzana Majdišová

Datové struktury. Zuzana Majdišová Datové struktury Zuzana Majdišová 19.5.2015 Datové struktury Numerické datové struktury Efektivní reprezentace velkých řídkých matic Lze využít při výpočtu na GPU Dělení prostoru a binární masky Voxelová

Více

VYTVÁŘENÍ OBSAHU KURZŮ

VYTVÁŘENÍ OBSAHU KURZŮ VYTVÁŘENÍ OBSAHU KURZŮ Mgr. Hana Rohrová Mgr. Linda Huzlíková Ing. Martina Husáková Fakulta informatiky a managementu Univerzity Hradec Králové Projekt je spolufinancován Evropským sociálním fondem a státním

Více

Implementace numerických metod v jazyce C a Python

Implementace numerických metod v jazyce C a Python Fakulta elektrotechnická Katedra matematiky Dokumentace k semestrální práci Implementace numerických metod v jazyce C a Python 2013/14 Michal Horáček a Petr Zemek Vyučující: Mgr. Zbyněk Vastl Předmět:

Více

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

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

Více

Architektura aplikace

Architektura aplikace Architektura aplikace MARBES-JIRA plugin Tým: GRSS Členové: František Schneider Jaroslav Ráb Lukáš Gemela Jaromír Staněk Upravil Verze dokumentu Datum F. Schneider 1.0 25.3.2012 F. Schneider 2.0 25.4.2012

Více

Návod k obsluze Bakalářská práce Autor Vedoucí práce Škola Obor Webový systém pro konfiguraci disperzního modelu

Návod k obsluze Bakalářská práce Autor Vedoucí práce Škola Obor Webový systém pro konfiguraci disperzního modelu Návod k obsluze Tento manuál se týká webové aplikace, jejíž vypracování bylo předmětem bakalářské práce. Cílem této práce bylo vytvoření databázového informačního systému pro zpracování dat vztahujících

Více

Teoretické minimum z PJV

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

Více

Návrh programu v Black Box Component Builderu s využitím architektury Model View Controller

Návrh programu v Black Box Component Builderu s využitím architektury Model View Controller Návrh programu v Black Box Component Builderu s využitím architektury Model View Controller Gustav Hrudka Katedra měřicí a řídicí techniky, VŠB Technická univerzita v Ostravě, tř. 17. listopadu, 708 33

Více

8. Posloupnosti, vektory a matice

8. Posloupnosti, vektory a matice . jsou užitečné matematické nástroje. V Mathcadu je často používáme například k rychlému zápisu velkého počtu vztahů s proměnnými parametry, ke zpracování naměřených hodnot, k výpočtům lineárních soustav

Více

Lineární algebra s Matlabem. Přednáška 4

Lineární algebra s Matlabem. Přednáška 4 Lineární algebra s Matlabem Přednáška 4 Import/export dat Matlab podporuje velké množství formátů Matlab data (.mat) Text (.txt,.csv, ) Tabulky (.xls,.xlsx,.ods,...) XML Obrázky (.bmp,.gif,.jpg,.png, )

Více

Vizuální programovací jazyk

Vizuální programovací jazyk Vizuální programovací jazyk Adam Zmrzlý Seminář LaSArIS, 24. 04. 2013 Obsah Motivace Vizuální programování Jazyk Shades Jazyk Tints Interpret a běhové prostředí Shader Vývojové prostředí CodePainter Ukázky

Více

KIV/PIA Semestrální práce

KIV/PIA Semestrální práce KIV/PIA Semestrální práce Diskuzní fórum Tomáš Časta(A10N0057P) casta@students.zcu.cz 1. Architektura aplikace 1.1 MVC Model-view-controller (MVC) je softwarová architektura, která rozděluje datový model

Více

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B PŘIJÍMACÍ TEST Z INFORMATIKY A MATEMATIKY NAVAZUJÍCÍ MAGISTERSKÉ STUDIUM V OBORU APLIKOVANÁ INFORMATIKA FAKULTA INFORMATIKY A MANAGEMENTU UNIVERZITY HRADEC KRÁLOVÉ ČÁST A Oborové číslo Hodnocení - část

Více

Soustavy lineárních rovnic

Soustavy lineárních rovnic 7 Matice. Determinant Soustavy lineárních rovnic 7.1 Matice Definice 1. Matice typu (m, n) jesoustavam n reálných čísel uspořádaných do m řádků a n sloupců a 11, a 12, a 13,..., a 1n a 21, a 22, a 23,...,

Více

Obrázek 6.14: Prohlížec nápovedy

Obrázek 6.14: Prohlížec nápovedy JavaHelp Základní popis systému JavaHelp Soucástí vetšiny interaktivních aplikací je nápoveda (help) aplikace v Jave nejsou výjimkou. Systém JavaHelp je napsaný v Jave a je urcený pro aplikace vytvárené

Více

Analýza dat na PC I.

Analýza dat na PC I. Lékařská a Přírodovědecká fakulta, Masarykova univerzita Analýza dat na PC I. Základy programu STATISTICA IBA výuka 2008/2009 StatSoft, Inc., http://www.statsoft.com/, http://www.statsoft.cz Verze pro

Více

ZÁVAZNÉ POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ, DIPLOMOVÉ A DISERTAČNÍ PRÁCE

ZÁVAZNÉ POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ, DIPLOMOVÉ A DISERTAČNÍ PRÁCE ZÁVAZNÉ POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ, DIPLOMOVÉ A DISERTAČNÍ PRÁCE Bakalářskou/diplomovou prací se ověřují vědomosti a dovednosti, které student získal během studia a jeho schopnosti využívat je při

Více

Kapitola 10: Diskové a souborové struktury. Klasifikace fyzických médií. Fyzická média

Kapitola 10: Diskové a souborové struktury. Klasifikace fyzických médií. Fyzická média - 10.1 - Kapitola 10: Diskové a souborové struktury Přehled fyzických ukládacích médií Magnetické disky RAID (Redundant Array of Inexpensive Disks) Terciární úložiště Přístup k médiu Souborové organizace

Více

Slovo ALGEBRA pochází z arabského al-jabr, což znamená nahrazení. Toto slovo se objevilo v názvu knihy

Slovo ALGEBRA pochází z arabského al-jabr, což znamená nahrazení. Toto slovo se objevilo v názvu knihy 1 Lineární algebra Slovo ALGEBRA pochází z arabského al-jabr, což znamená nahrazení. Toto slovo se objevilo v názvu knihy islámského matematika Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném

Více

Malý systém počítačové podpory pro rozvrh obhajob a zkoušek

Malý systém počítačové podpory pro rozvrh obhajob a zkoušek MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Malý systém počítačové podpory pro rozvrh obhajob a zkoušek BAKALÁŘSKÁ PRÁCE Radek Petr Brno, 2007 Prohlášení Prohlašuji, že tato práce je mým původním autorským

Více

Matice se v některých publikacích uvádějí v hranatých závorkách, v jiných v kulatých závorkách. My se budeme držet zápisu s kulatými závorkami.

Matice se v některých publikacích uvádějí v hranatých závorkách, v jiných v kulatých závorkách. My se budeme držet zápisu s kulatými závorkami. Maticové operace Definice Skalár Představme si nějakou množinu, jejíž prvky lze sčítat a násobit. Pěkným vzorem jsou čísla, která už známe od mala. Prvky takové množiny nazýváme skaláry. Matice Matice

Více

SPIRIT 2012. Nové funkce. SOFTconsult spol. s r. o., Praha

SPIRIT 2012. Nové funkce. SOFTconsult spol. s r. o., Praha SPIRIT 2012 Nové funkce SOFTconsult spol. s r. o., Praha Informace v tomto dokumentu mohou podléhat změnám bez předchozího upozornění. 01/2012 (SPIRIT 2012 CZ) Revize 1 copyright SOFTconsult spol. s r.

Více

IB112 Základy matematiky

IB112 Základy matematiky IB112 Základy matematiky Řešení soustavy lineárních rovnic, matice, vektory Jan Strejček IB112 Základy matematiky: Řešení soustavy lineárních rovnic, matice, vektory 2/53 Obsah Soustava lineárních rovnic

Více

Elektronická spisová služba

Elektronická spisová služba Univerzitní informační systém Univerzita Konštantína Filozofa v Nitre Elektronická spisová služba Svazek 19 Verze: 0.49 Datum: 11. března 2016 Autor: Jitka Šedá, Martin Tyllich Obsah Seznam obrázků 5

Více

Parametrizace, harmonogram

Parametrizace, harmonogram Parametrizace, harmonogram Modul slouží pro parametrizování informačního systému a pro vytváření časového plánu akademického roku na fakultě. Fakulty si v něm zadávají a specifikují potřebné "časové značky"

Více

Obsah. 1.1 Úvod do práce s autorským nástrojem ProAuthor 4

Obsah. 1.1 Úvod do práce s autorským nástrojem ProAuthor 4 Obsah 1 Úvod do práce s autorským nástrojem ProAuthor 4 1.1 Úvod do práce s autorským nástrojem ProAuthor 4 2 Založení kurzu 7 2.1 Jak začít 8 2.2 Vyplnění vstupních informací o kurzu 10 2.3 Založení vlastního

Více

GRAFY A GRAFOVÉ ALGORITMY

GRAFY A GRAFOVÉ ALGORITMY KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO GRAFY A GRAFOVÉ ALGORITMY ARNOŠT VEČERKA VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ

Více

Získávání znalostí z dat

Získávání znalostí z dat Získávání znalostí z dat Informační a komunikační technologie ve zdravotnictví Získávání znalostí z dat Definice: proces netriviálního získávání implicitní, dříve neznámé a potencionálně užitečné informace

Více

Databázové systémy trocha teorie

Databázové systémy trocha teorie Databázové systémy trocha teorie Základní pojmy Historie vývoje zpracování dat: 50. Léta vše v programu nevýhody poměrně jasné Aplikace1 alg.1 Aplikace2 alg.2 typy1 data1 typy2 data2 vytvoření systémů

Více

KONTROLA PŘESNOSTI VÝROBY S VYUŽITÍM MATLABU

KONTROLA PŘESNOSTI VÝROBY S VYUŽITÍM MATLABU KONTROLA PŘESNOSTI VÝROBY S VYUŽITÍM MATLABU Ing. Vladislav Matějka, Ing. Jiří Tichý, Ing. Radovan Hájovský Katedra měřicí a řídicí techniky, VŠB-TU Ostrava Abstrakt: Příspěvek se zabývá možností využít

Více

Program Montážky manuál uživatele

Program Montážky manuál uživatele Program Montážky manuál uživatele -1- v 1.0 Obsah 1. Úvod... 3 2. Technické informace... 3 2.1. Systémové požadavky... 3 2.2. Instalace programu... 3 2.3. Zkušební verze programu... 3 2.4. Přechod na plnou

Více

Modelování webových služeb v UML

Modelování webových služeb v UML Modelování webových služeb v UML Jaromír Šveřepa LBMS, s.r.o. Abstrakt: Tento příspěvek se zaměřuje na praktický postup pro identifikaci potřeby webové služby, modelování způsobu jejího použití, popřípadě

Více

Novinky verze SPIRIT 2015

Novinky verze SPIRIT 2015 Novinky verze SPIRIT 2015 Ostění pro okna a dveře (ZAK) Ve SPIRITu můžete použít každý ZAK komponent přímo z Prohlížeče komponentů způsobem drag and drop, kromě ostění oken a dveří. Ve SPIRITu 2015 máte

Více

1 Projekce a projektory

1 Projekce a projektory Cvičení 3 - zadání a řešení úloh Základy numerické matematiky - NMNM20 Verze z 5. října 208 Projekce a projektory Opakování ortogonální projekce Definice (Ortogonální projekce). Uvažujme V vektorový prostor

Více

Součin matice A a čísla α definujeme jako matici αa = (d ij ) typu m n, kde d ij = αa ij pro libovolné indexy i, j.

Součin matice A a čísla α definujeme jako matici αa = (d ij ) typu m n, kde d ij = αa ij pro libovolné indexy i, j. Kapitola 3 Počítání s maticemi Matice stejného typu můžeme sčítat a násobit reálným číslem podobně jako vektory téže dimenze. Definice 3.1 Jsou-li A (a ij ) a B (b ij ) dvě matice stejného typu m n, pak

Více

DPH v Exact Globe Next 2013

DPH v Exact Globe Next 2013 DPH v Exact Globe Next 2013 Tento dokument obsahuje komplexní informace týkající se nastavení číselníků v software Exact Globe Next, potřebných pro správné fungování DPH a souhrnného hlášení, včetně změn,

Více

ÚPRAVA BAKALÁŘSKÉ A DIPLOMOVÉ PRÁCE

ÚPRAVA BAKALÁŘSKÉ A DIPLOMOVÉ PRÁCE ÚPRAVA BAKALÁŘSKÉ A DIPLOMOVÉ PRÁCE PhDr. Pavel Pavlík, Ph.D. (verze 2013) Desky - lepená vazba do tuhých desek s textilním potahem (barva tmavě modrá, černá) - není povolena kroužková vazba! - přední

Více

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová Struktura třídy, operátory, jednoduché algoritmy, junit 2. cvičení Alena Buchalcevová Cíle cvičení seznámit se s rozhraním (interface) v Javě seznámit se s testováním při vývoji (makety, JUnit) naučit

Více

Knihomol. Manuál pro verzi 1.2

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

Více

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz

Více

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

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

Více

Elektronická dokumentace - LATEX. Maticové operace

Elektronická dokumentace - LATEX. Maticové operace Elektronická dokumentace - LATEX Maticové operace 29.listopadu 2009 Luděk Bordovský (bor0022) Fakulta elektrotechniky a informatiky VŠB-TU Ostrava Uživatelská příručka 1 Obsah 1 Úvod 3 2 Ovládání 3 3 Operace

Více

Uživatelem řízená navigace v univerzitním informačním systému

Uživatelem řízená navigace v univerzitním informačním systému Hana Netrefová 1 Uživatelem řízená navigace v univerzitním informačním systému Hana Netrefová Abstrakt S vývojem počítačově orientovaných informačních systémů je stále větší důraz kladen na jejich uživatelskou

Více

KTE / PPEL Počítačová podpora v elektrotechnice

KTE / PPEL Počítačová podpora v elektrotechnice 24. 9. 2014 KTE / PPEL Počítačová podpora v elektrotechnice Ing. Lenka Šroubová, Ph.D. email: lsroubov@kte.zcu.cz ICQ: 361057825 http://home.zcu.cz/~lsroubov tel.: +420 377 634 623 Místnost: EK602 Katedra

Více

Modul EPNO. Téma: Elektronické odesílání evidenčních listů přepravy nebezpečných odpadů

Modul EPNO. Téma: Elektronické odesílání evidenčních listů přepravy nebezpečných odpadů Modul EPNO Téma: Elektronické odesílání evidenčních listů přepravy nebezpečných odpadů Program: EVI 8 Vypracoval: Mgr. Tomáš Čejchan (oddělení Podpora) Revize: 07.03.2014 Tento dokument popisuje funkcionalitu

Více

Skalární součin je nástroj, jak měřit velikost vektorů a úhly mezi vektory v reálných a komplexních vektorových prostorech.

Skalární součin je nástroj, jak měřit velikost vektorů a úhly mezi vektory v reálných a komplexních vektorových prostorech. Kapitola 9 Skalární součin Skalární součin je nástroj, jak měřit velikost vektorů a úhly mezi vektory v reálných a komplexních vektorových prostorech. Definice 9.1 Je-li x = (x 1,..., x n ) T R n 1 reálný

Více

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B PŘIJÍMACÍ TEST Z INFORMATIKY A MATEMATIKY NAVAZUJÍCÍ MAGISTERSKÉ STUDIUM V OBORU APLIKOVANÁ INFORMATIKA FAKULTA INFORMATIKY A MANAGEMENTU UNIVERZITY HRADEC KRÁLOVÉ ČÁST A Oborové číslo Hodnocení - část

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo didaktického materiálu EU-OPVK-VT-III/2-ŠR-303 Druh didaktického materiálu DUM Autor RNDr. Václava Šrůtková Jazyk čeština

Více

Práce s velkými sestavami

Práce s velkými sestavami Práce s velkými sestavami Číslo publikace spse01650 Práce s velkými sestavami Číslo publikace spse01650 Poznámky a omezení vlastnických práv Tento software a související dokumentace je majetkem společnosti

Více

Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném rušení ) Muhammada ibn Músá al-chvárizmího (790? - 850?, Chiva, Bagdád),

Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném rušení ) Muhammada ibn Músá al-chvárizmího (790? - 850?, Chiva, Bagdád), 1 LINEÁRNÍ ALGEBRA 1 Lineární algebra Slovo ALGEBRA pochází z arabského al-jabr, což znamená nahrazení. Toto slovo se objevilo v názvu knihy islámského matematika Hisab al-džebr val-muqabala ( Věda o redukci

Více

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: 3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...

Více

Registrační číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

Registrační číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B PŘIJÍMACÍ TEST Z INFORMATIKY A MATEMATIKY NAVAZUJÍCÍ MAGISTERSKÉ STUDIUM V OBORU APLIKOVANÁ INFORMATIKA FAKULTA INFORMATIKY A MANAGEMENTU UNIVERZITY HRADEC KRÁLOVÉ ČÁST A Registrační číslo Hodnocení -

Více

NÁVRH LQG ŘÍZENÍ PRO FYZIKÁLNÍ MODEL KULIČKY NA TYČI

NÁVRH LQG ŘÍZENÍ PRO FYZIKÁLNÍ MODEL KULIČKY NA TYČI NÁVRH LQG ŘÍZENÍ PRO FYZIKÁLNÍ MODEL KULIČKY NA TYČI Petr Vojčinák, Martin Pieš, Radovan Hájovský Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra měřicí a

Více

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH 0. Obsah Strana 1 z 12 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION

Více

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6 UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6 Lubomír Vašek Zlín 2013 Obsah... 3 1. Základní pojmy... 3 2. Princip rastrové reprezentace... 3 2.1 Užívané

Více

Tabulkové processory MS Excel (OpenOffice Calc)

Tabulkové processory MS Excel (OpenOffice Calc) Maturitní téma: Tabulkové processory MS Excel (OpenOffice Calc) Charakteristika tabulkového editoru Tabulkový editor (sprematuritníadsheet) se používá všude tam, kde je třeba zpracovávat data uspořádaná

Více

Pokyny pro autory. (Times, 14, tučně, kapitálky) (Times, 10, tučně, kurzívou) (Times, 10, normálně)

Pokyny pro autory. (Times, 14, tučně, kapitálky) (Times, 10, tučně, kurzívou) (Times, 10, normálně) Pokyny pro autory Doporučujeme všem autorům, aby pro psaní článku použili předem definovaný vzor šablony pro autory, která je již upravena dle požadavků. Šablona pro psaní článků je pevně definovaná, zvolené

Více

II. Úlohy na vložené cykly a podprogramy

II. Úlohy na vložené cykly a podprogramy II. Úlohy na vložené cykly a podprogramy Společné zadání pro příklady 1. - 10. začíná jednou ze dvou možností popisu vstupních dat. Je dána posloupnost (neboli řada) N reálných (resp. celočíselných) hodnot.

Více

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

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

Více

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE FAKULTA INFORMATIKY A STATISTIKY Hlavní specializace: Ekonometrie a operační výzkum Název diplomové práce Optimalizace trasy při revizích elektrospotřebičů Diplomant: Vedoucí

Více

Implementace A* algoritmu na konkrétní problém orientace v prostoru budov

Implementace A* algoritmu na konkrétní problém orientace v prostoru budov Implementace A* algoritmu na konkrétní problém orientace v prostoru budov Popis problému Orientaci ve známém prostředí lze převést na problém nalezení cesty z místa A do místa B. Obecně platí, že robot

Více

Západočeská univerzita v Plzni. Fakulta aplikovaných věd Katedra matematiky. Geometrie pro FST 1. Pomocný učební text

Západočeská univerzita v Plzni. Fakulta aplikovaných věd Katedra matematiky. Geometrie pro FST 1. Pomocný učební text Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra matematiky Geometrie pro FST 1 Pomocný učební text František Ježek, Marta Míková, Světlana Tomiczková Plzeň 29. srpna 2005 verze 1.0 Předmluva

Více

Převod prostorových dat katastru nemovitostí do formátu shapefile

Převod prostorových dat katastru nemovitostí do formátu shapefile GIS Ostrava 2009 25. - 28. 1. 2009, Ostrava Převod prostorových dat katastru nemovitostí do formátu shapefile Karel Janečka1, Petr Souček2 1Katedra matematiky, Fakulta aplikovaných věd, ZČU v Plzni, Univerzitní

Více

Algoritmus sledování objektů pro funkční vzor sledovacího systému

Algoritmus sledování objektů pro funkční vzor sledovacího systému Algoritmus sledování objektů pro funkční vzor sledovacího systému Technická zpráva - FIT - VG20102015006 2014-04 Ing. Filip Orság, Ph.D. Fakulta informačních technologií, Vysoké učení technické v Brně

Více

Třetí skupina zadání projektů do předmětu Algoritmy II, letní semestr 2017/2018

Třetí skupina zadání projektů do předmětu Algoritmy II, letní semestr 2017/2018 Třetí skupina zadání projektů do předmětu Algoritmy II, letní semestr 2017/2018 doc. Mgr. Jiří Dvorský, Ph.D. 24. dubna 2018 Verze zadání 24. dubna 2018 První verze 1 1 Hašovací tabulka V tomto zadání

Více

Programátorská příručka

Programátorská příručka KAPITOLA 1. PROGRAMÁTORSKÁ PŘÍRUČKA Kapitola 1 Programátorská příručka 1.1 Úvod 1.1.1 Technologie Program je psaný v jazyce Java 1.7. GUI je vytvářeno pomocí knihovny SWT. (http://eclipse.org/swt/) Pro

Více

Sem vložte zadání Vaší práce.

Sem vložte zadání Vaší práce. Sem vložte zadání Vaší práce. České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství Bakalářská práce Tvorba formulářů z popisu v XML s použitím knihovny

Více

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění

Více

VYTVÁŘENÍ A MANAGEMENT TESTŮ A PROJEKTŮ

VYTVÁŘENÍ A MANAGEMENT TESTŮ A PROJEKTŮ VYTVÁŘENÍ A MANAGEMENT TESTŮ A PROJEKTŮ RNDr. Petra Poulová, Ph.D. Ing. Hana Šrámková Fakulta informatiky a managementu Univerzity Hradec Králové Projekt je spolufinancován Evropským sociálním fondem a

Více

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky

Více

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky

Více

Zadání projektů z BPC2 pro letní semestr 2007/2008

Zadání projektů z BPC2 pro letní semestr 2007/2008 Zadání projektů z BPC2 pro letní semestr 2007/2008 Několik poznámek na úvod Projekt může být i konzolová aplikace. Záleží však na typu zadání, ne každé v konzolové aplikace vyřešit lze. Mezi studenty jsou

Více

Doňar B., Zaplatílek K.: MATLAB - tvorba uživatelských aplikací, BEN - technická literatura, Praha, (ISBN:

Doňar B., Zaplatílek K.: MATLAB - tvorba uživatelských aplikací, BEN - technická literatura, Praha, (ISBN: http://portal.zcu.cz > Portál ZČU > Courseware (sem lze i přímo: http://courseware.zcu.cz) > Předměty po fakultách > Fakulta elektrotechnická > Katedra teoretické elektrotechniky > PPEL Doňar B., Zaplatílek

Více

Studentská tvůrčí a odborná činnost STOČ 2015

Studentská tvůrčí a odborná činnost STOČ 2015 Studentská tvůrčí a odborná činnost STOČ 2015 NÁVRH A REALIZACE ALGORITMU PRO SYSTÉM LIMITNÍHO OZAŘOVÁNÍ David OCZKA Vysoká škola báňská - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky

Více

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr Seminář z IVT Algoritmizace Slovanské gymnázium Olomouc Tomáš Kühr Algoritmizace - o čem to je? Zatím jsme se zabývali především tím, jak určitý postup zapsat v konkrétním programovacím jazyce (např. C#)

Více

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Vzorový příklad pro práci v prostředí MPLAB Zadání: Vytvořte program, který v intervalu 200ms točí doleva obsah registru reg, a který při stisku tlačítka RB0 nastaví bit 0 v registru reg na hodnotu 1.

Více

10. blok Logický návrh databáze

10. blok Logický návrh databáze 10. blok Logický návrh databáze Studijní cíl Tento blok je věnován převodu konceptuálního návrhu databáze na návrh logický. Blok se věnuje tvorbě tabulek na základě entit z konceptuálního modelu a dále

Více

Modelování řízené případy užití

Modelování řízené případy užití Modelování řízené případy užití kompletní proces od UC po implementaci, robustnost 2005 Radek Ošlejšek, Jiří Sochor FI MU Brno oslejsek@fi.muni.cz http://www.fi.muni.cz/~oslejsek/pa103 30. 3. 2005 PA103:

Více

10. Editor databází dotazy a relace

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

Více

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci

Více

Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016

Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016 Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016 Obsah 1 Zadání 1 2 Analýza úlohy 2 2.1 Uložení dat ze vstupního souboru................ 2 2.2 Graf

Více

Vytváření a použití knihoven tříd

Vytváření a použití knihoven tříd Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce

Více

Paměti a jejich organizace

Paměti a jejich organizace Kapitola 5 Paměti a jejich organizace 5.1 Vnitřní a vnější paměti, vlastnosti jednotlivých typů Vnější paměti Jsou umístěny mimo základní jednotku. Lze je zařadit mezi periferní zařízení. Zápis a čtení

Více

Zdroj: http://www.fit.vutbr.cz

Zdroj: http://www.fit.vutbr.cz Zdroj: http://www.fit.vutbr.cz Motivace Cílem této úlohy je zopakovat si nebo se naučit vytváření obecných řešení, která na rozdíl od ad hoc řešení umožňují zvládat složitější úlohy bez nadměrného úsilí,

Více

Věc: Výzva pro předložení nabídek

Věc: Výzva pro předložení nabídek Věc: Výzva pro předložení nabídek I. Označení zadavatele sídlo: Bratčice 49, 286 01 Čáslav IČO: 00640212 zastoupený: Ing. Jiřím Uhlířem, starostou obce tel.: +420 327 371 104 II. Specifikace druhu zakázky

Více