Maticové operace projekt č. 3



Podobné dokumenty
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.

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. Přednáška MATEMATIKA č. 2. Jiří Neubauer. Katedra ekonometrie FEM UO Brno kancelář 69a, tel

Zdroj:

Elektronická dokumentace - LATEX. Maticové operace

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

P1 Formule ve sněhu. P2 Double Cola

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

20 b. 45 b. 25 b. 20 b. Kolo J Klasické S. 9. Klasické R. 8. Klasické Č. 7. Klasické M. 5 b. 10 b. 5 b. 5 b. 3. Klasické

Booklet soutěže družstev

1) Vypočítej = A) B) 2015 C) 5010 D)

MINISTERSTVO ŠKOLSTVÍ, MLÁDEŽE A TĚLOVÝCHOVY. Učební osnova předmětu MATEMATIKA. pro studijní obory SOŠ a SOU (13 15 hodin týdně celkem)

předmětu MATEMATIKA B 1

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

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

Příloha č. 4. Obchodních podmínek Operátora trhu s elektřinou, a.s. Revize 10 leden Příloha č. 4 červenec 2009

Soutěž družstev Booklet

Univerzitní licence MATLABu. Pište mail na: se žádostí o nejnovější licenci MATLABu.

Semestrální projekt. Předmět: Programování v jazyce C. Zadání: Operace s maticemi. Uživatelský manuál. ver. 1.0

JčU - Cvičení z matematiky pro zemědělské obory (doc. RNDr. Nýdl, CSc & spol.) Minitest MT1

Vánoční turnaj GP Praha 2012

Matice. Je dána matice A R m,n, pak máme zobrazení A : R n R m.

Architektura počítače

13. Třídící algoritmy a násobení matic

Globální matice konstrukce

Euklidovský prostor Stručnější verze

Imagine Logo pokračování 1 Seznamy

3. Matice a determinanty

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.

5 Rekurze a zásobník. Rekurzivní volání metody

Téma: Arkanoid. X36SOJ Strojově orientované jazyky Semestrální práce. Vypracoval: Marek Handl Datum: červen 2006

Návod pro zadávání zápisů o utkání do BLMFis

Maticová klávesnice. Projekt do předmětu Subsystémy PC. Brno, Tomáš Kreuzwieser, Ondřej Kožín

Příklad elektrický obvod se stejnosměrným zdrojem napětí

Základní škola Moravský Beroun, okres Olomouc

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

Microsoft Office. Excel vyhledávací funkce

Matematika - Prima. množiny zavedení pojmů množina, prvek, sjednocení, průnik, podmnožina

Determinant. Definice determinantu. Permutace. Permutace, vlastnosti. Definice: Necht A = (a i,j ) R n,n je čtvercová matice.

Necht L je lineární prostor nad R. Operaci : L L R nazýváme

Vzdělávací oblast: Matematika a její aplikace Vyučovací předmět: Matematika Ročník: 5.

Hodnocení termodegradace PVC folií

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ , 5.1 a 5.2 8/14

Lineární algebra Operace s vektory a maticemi

Regulární matice. Věnujeme dále pozornost zejména čtvercovým maticím.

Kolo 1. Mistrovství akademiků v řešení sudoku HALAS. Hráčská asociace logických her a sudoku

ŘEŠENÍ KVADRATICKÝCH A ZLOMKOVÝCH NEROVNIC V ŠESTI BODECH

Tabulka. Datová struktura, která umožňuje vkládat a později vybírat informace podle identifikačního klíče. Mohou být:

Školní kolo soutěže Baltík 2009, kategorie C

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.

CVIČNÝ TEST 17. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15

Afinní transformace Stručnější verze

8. MČR v řešení sudoku, Brno, Přehled úloh

Regionální kolo soutěže Mladý programátor 2013, kategorie A, B

Algoritmus pro hledání nejkratší cesty orientovaným grafem

1 z : otázka. Které číslo musíme odečíst od čísla 250, aby výsledné číslo bylo osminásobkem čísla 25? 2. otázka

Pravidla. schválená výborem sekce vodní turistiky ČSK na schůzi dne 22. ledna 2013.

2.2. SČÍTÁNÍ A NÁSOBENÍ MATIC

Vícekriteriální hodnocení variant metody

Testování mobilního telefonu Apple iphone 4

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

Stravenky Exit. 1. Spuštění modulu Stravenky Exit

Vyučovací předmět: Matematika. Charakteristika vyučovacího předmětu

SEZNÁMENÍ S PROGRAMEM

ETAG 022 ŘÍDICÍ POKYN PRO EVROPSKÁ TECHNICKÁ SCHVÁLENÍ. Sestavy pro vodotěsné povrchové úpravy podlah a/nebo stěn v mokrých prostorech

Matematický ústav Slezské univerzity v Opavě Učební texty k přednášce ALGEBRA II, letní semestr 2000/2001 Michal Marvan

Teoretická rozdělení

Celostátní kolo soutěže Baltík 2010, kategorie A a B

Dodatek č. 3 ke školnímu vzdělávacímu programu. Strojírenství. (platné znění k )

Učební texty k státní bakalářské zkoušce Matematika Matice. študenti MFF 15. augusta 2008

Svolávací systém Uživatelský manuál

Instrukční sada pro používání ControlLogix a CompactLogix výňatek

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí:

Výukový materiál zpracovaný v rámci projektu

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

transformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím [1]

Kapitola 11: Vektory a matice:

Předávání údajů do Informačního systému výzkumu a vývoje ve formátu XML

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

Cykly a pole

Tabulkové processory MS Excel (OpenOffice Calc)

Gymnázium Jiřího Ortena, Kutná Hora. volné rovnoběžné promítání průmětna

Gymnázium, Brno. Matice. Závěrečná maturitní práce. Jakub Juránek 4.A Školní rok 2010/11

Lekce 01 Úvod do algoritmizace

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

Architektura počítačů Logické obvody

MAPOVÉ OKNO GSWEB. Nápověda. Pohyb v mapovém okně Výběr v mapovém okně. Panel Ovládání Panel Vrstvy. Tisk Přehledová mapa Redlining Přihlásit jako

A7B36SI2 Tematický okruh SI08 Revidoval: Martin Kvetko

Čtvercové matice. Čtvercová matice je taková matice, jejíž počet řádků je roven počtu jejích sloupců

StatSoft Odkud tak asi je?

ZADÁVACÍ DOKUMENTACE

DEFINICE Z LINEÁRNÍ ALGEBRY

AUTORSKÉ PROHLÁŠENÍ. Souhlasím s umístěním závěrečné práce na webu ČUDK a s jejím využitím pro studijní účely. Kroměříž, duben 2007.

PRAVIDLA SILOVÉHO ČTYŘBOJE

Kontrolní hlášení. Pokladna

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Přehled učiva matematiky 7. ročník ZŠ

A) IF předmět před Baltíkem

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

Hra obsahuje: Příprava na hru: Desková hra pro odvážné dobrodruhy s chladnou hlavou č e s k ý n á v o d

Transkript:

Dokumentace k projektu pro předměty IZP a IUS Maticové operace projekt č. 3 9.12.2007 Autor: Václav Uhlíř, xuhlir04@stud.fit.vutbr.cz Fakulta Informačních Technologii Vysoké Učení Technické v Brně

Obsah 1. Definice úvodem...1 1.1. Zadání programu...1 1.2. Základní výpočty...1 1.3. Rozšířené funkce...1 1.3.1. Test sudoku...1 1.3.2. Křížová rotace...1 1.3.3. Submatice...1 1.3.4. Orba...1 2. Návrh řešení...2 2.1. Základní výpočty...2 2.1.1. Součet matic...2 2.1.2. Součin matic...2 2.2. Rozšířené funkce...2 2.2.1. Test sudoku...2 2.2.2. Křížová rotace...2 2.2.3. Submatice...2 2.2.4. Orba...3 3. Závěr...3 4. Metriky kódu...4 i

1. Definice úvodem 1.1. Zadání programu Cílem tohoto projektu je vytvoření programu v jazyce C, který bude provádět výpočty a operace s maticemi. Matice budou zadávané jako pole v souboru a na začátku souboru budou definovány rozměry matice. 1.2. Základní výpočty Výpočet součtu matic a výpočet násobení matic jsou definovány v zadání a není potřeba hledat nebo upravovat vzorce. Program zpracuje dvě vstupní matice a vrátí jednu výslednou. Pokud matice nevyhovují zvolené operaci, vypíše program false. 1.3. Rozšířené funkce 1.3.1. Test sudoku Program podle zadání provede test hodnot prvku v každém sloupci, každé řádce a v každé submatici. Pokud proběhnou všechny testy v pořádku, vrátí program true, v opačném případě vrátí false. 1.3.2. Křížová rotace Program provede rotace řádků a sloupců podle zadání a vypíše výslednou matici. 1.3.3. Submatice Program zjistí, jestli druhá zadaná matice je submaticí první. Pokud bude test úspěšný, vrátí program true. 1.3.4. Orba Program přepíše zdrojovou matici do výsledné, kde budou prvky seřazeny podle struktury orání. 1

2. Návrh řešení Program bude načítat matice ze souborů, kde budou jako první informace o rozměrech matice. Pokud budou rozměry nulové nebo záporné, vypíše program false. Program bude načítat počet prvků nezávisle na formátování. Pokud bude počet zadaných prvků menší než počet požadovaných, vypíše program chybu. Pokud bude zadaných prvků víc než je požadováno, program bude přebytečné prvky ignorovat. 2.1. Základní výpočty 2.1.1. Součet matic Pro provedení součtu matic potřebujeme matice o stejných rozměrech. Pokud matice vyhovují, program postupně sečte dané prvky z první matice s prvky matice druhé a uloží výsledné čísla do matice třetí. Pokud se nebude shodovat počet řádků nebo sloupců matice, vypíše program false. 2.1.2. Součin matic Pro součin matic program kontroluje, jestli počet sloupců první matice odpovídá počtu řádků druhé matice. V případě rozdílnosti těchto souřadnic vypíše program false. Pokud budou souřadnice správné, vytvoří program výslednou matici o rozměrech počtů řádků z první matice a počtu sloupců z matice druhé. Matice pak bude naplněna součtem násobků prvků podle systému násobení matic. 2.2. Rozšířené funkce 2.2.1. Test sudoku Aby mohla matice být systémem sudoku, musí mít rozměry N 2 xn 2. Pokud tomu matice neodpovídá, vypíše program false. Program očekává pouze hodnoty od 1 do N. Pokud některé číslo neodpovídá, program zase vrátí false. Program vrací také false, pokud se některá z hodnot v libovolném z řádků, sloupců nebo v libovolné z N submatic opakuje. Pokud matice projde všemi testy, program vypíše jako úspěšné otestování true. 2.2.2. Křížová rotace Program provede nejdříve postupnou rotaci řádků, kde první hodnota udává počet rotací. Pokud je hodnota záporná, program k ní přičte hodnotu počtu sloupců. Dále program provede rotace všech řádků a zopakuje celý potup se sloupci. Po úspěšném splnění rotací program výslednou matici vypíše. 2.2.3. Submatice Nejdříve program zkontroluje, jestli je údajná submatice menší než zadaná matice. Pokud je možnost, že druhá matice je submaticí, začne program porovnávat postupně všechny prvky z první matice s prvním prvkem z matice druhé. Pokud program narazí na shodu, spustí se cyklus pro porovnání každého dalšího prvku s prvky submatice. Pokud některý prvek neodpovídá, musí se program vrátit za první shodný prvek v aktuálním cyklu a pokračovat s testováním na shodnost s prvním prvkem submatice. Tento postup jsem zvolil z důvodu, že v submatici může být libovolné opakování posloupnosti prvků. Kdyby se stejná posloupnost objevila v matici s větším počtem 2

opakování, program by při běžném procházení danou submatici přehlédl. Pokud program nalezne danou submatici vypíše true. V případě, že druhá zadaná matice není submaticí první matice, program vypíše false. 2.2.4. Orba Program se bude pohybovat maticí jako orající člověk a dané hodnoty bude přepisovat do výsledné matice o stejných rozměrech jako matice vstupní. Program se maticí pohybuje šikmo nahoru (přičítáním souřadnic {-1,1}) a v opačném směru (šikmo dolů{1,-1}), za podmínek, že pokud narazí na horní nebo dolní hranu, udělá krok doprava a změní primární směr a pokud narazí na levou nebo pravou hranu, udělá krok dolů a zase změní primární směr. Pokud je program nucen udělat 2 krát po sobě krok (buď dolů a doprava nebo v opačném pořadí stává se v rohu matice), mění primární směr jenom jednou. 3. Závěr Program kompletně zpracovává zadané operace a vypočítává výsledky. Program, ale nekontroluje přetečení vstupních čísel. Kontrolu přetečení u sčítání a násobení matic jsem zapoznámkoval kvůli velké náročnosti výpočtu a předpokladu, že uživatel nebude zadávat přehnaně vysoké hodnoty. 3

4. Metriky kódu Počet souborů: 1 soubor Počet řádků zdrojového kódu: 687 Velikost dat před kompilací: 22 953b Velikost spustitelného souboru: 18 887b (systém Linux) 4