Toto zadání je podepsané děkanem a vedoucím katedry, po obhajobě).
|
|
- Klára Machová
- před 8 lety
- Počet zobrazení:
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. 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íceOvlá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íceEditor 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íce3. 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íceA0M15EZS 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íceZá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ícePrincipy 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íceRELAČ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
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íceVYUŽ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íceRozdí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íceGymná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íceFiltrace 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íceMatematika 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íceDatové 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íceVYTVÁŘ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íceImplementace 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íceNauč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íceArchitektura 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íceNá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íceTeoretické 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íceNá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íce8. 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íceLineá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íceVizuá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íceKIV/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íceOborové čí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íceSoustavy 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íceObrá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íceAnalý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íceZÁ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íceKapitola 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íceSlovo 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íceMalý 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íceMatice 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íceSPIRIT 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íceIB112 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íceElektronická 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íceParametrizace, 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íceObsah. 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íceGRAFY 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íceZí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íceDatabá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íceKONTROLA 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íceProgram 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íceModelová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íceNovinky 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íce1 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íceSouč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íceDPH 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 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íceStruktura 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íceKnihomol. 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íceGTL 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íce2. 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íceElektronická 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íceUž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íceKTE / 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íceModul 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íceSkalá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íceOborové čí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íceIII/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ícePrá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íceHisab 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íceMaticí 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íceRegistrač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íceNÁ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íceZPRACOVÁ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íceGEOGRAFICKÉ 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íceTabulkové 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ícePokyny 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íceII. Ú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íceKAPITOLA 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íceVYSOKÁ Š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íceImplementace 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íceZá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ícePř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íceAlgoritmus 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íceTř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íceProgramá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íceSem 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íceTabulka 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íceVYTVÁŘ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íceVyhledá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íceVyhledá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íceZadá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íceDoň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íceStudentská 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íceSeminář 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
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íce10. 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íceModelová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íce10. 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íceRelač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íceSemestrá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íceVytvář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ícePamě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íceZdroj: 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íceVě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