Strict Standards: Declaration of action_plugin_importoldchangelog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/lib/plugins/importoldchangelog/action.php on line 8 Strict Standards: Declaration of action_plugin_importoldindex::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/lib/plugins/importoldindex/action.php on line 0 Deprecated: Function split() is deprecated in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/inc/auth.php on line 154 Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/inc/auth.php on line 456 Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/inc/auth.php on line 456 Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/inc/auth.php on line 453 Strict Standards: Only variables should be passed by reference in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/doku.php on line 71 ==== Zadání ==== Definujte datový typ ''Matice'' jako dvojrozměrné pole o pevné velikosti reprezentující čtvercovou matici. Napište tyto procedury: * ''generuj(var m: Matice)'' – matici ''m'' naplní náhodně vygenerovanými prvky (využijte funkci ''Random(n) : Longint;'', která generuje náhodné přirozené číslo). * ''transponuj(var m: Matice)'' – transponuje matici ''m'' * ''nasob(var m1, m2, m: Matice'') – vynásobí matice ''m1'' a ''m2'' a výsledek uloží do ''m'' * ''secti(var m1, m2, m: Matice'') – sečte matice ''m1'' a ''m2'' a výsledek uloží do ''m'' ==== Řešení ==== const MAX = 10; {nejvyssi mozne cislo v matici} VEL = 5; {pocet radku a sloupcu ve ctvercove matici} type Matice = array [1..VEL, 1..VEL] of longint; var i, j, k : integer; {citace v cyklu for} procedure generuj(var m: Matice); begin for i := 1 to VEL do begin for j := 1 to VEL do begin m[i, j] := random(MAX); end; end; end; procedure vypis(var m: Matice); begin for i := 1 to VEL do begin for j := 1 to VEL do write(m[i, j], ' '); writeln; end; end; procedure transponuj(var m: Matice); var tmp: longint; begin for i := 1 to VEL do begin for j := i + 1 to VEL do begin tmp := m[i,j]; m[i, j] := m[j, i]; m[j, i] := tmp; end; end; end; procedure nasob(var m1, m2, m: Matice); begin for i := 1 to VEL do begin for j := 1 to VEL do begin {hodnotu na -item radku a j-tem sloupci spocitame podle definice nasobeni matic} for k := 1 to VEL do m[i, j] := m1[i, k] * m2[k, j]; end; end; end; procedure secti(var m1, m2, m: Matice); begin for i := 1 to VEL do begin for j := 1 to VEL do m[i,j] := m1[i,j] + m2[i,j]; end; end; {hlavni program} var a1, a2, a3 : Matice; begin {otestujeme generovani} writeln('Dve nahodne vygenerovane matice A1, A2: '); writeln; generuj(a1); vypis(a1); writeln; generuj(a2); vypis(a2); writeln; {otestujeme transpozici} writeln('Transponovana matice k A1: '); writeln; transponuj(a1); vypis(a1); writeln; {otestujeme scitani} writeln('Matice A3 vznikne souctem matic A1 a A2: '); writeln; secti(a1, a2, a3); vypis(a3); writeln; {otestujeme nasobeni} writeln('Matice A4 vznikne soucinem matic A1 a A2: '); writeln; nasob(a1,a2,a3); vypis(a3); readln; end.