Studijní materiál PASCAL

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

Download "Studijní materiál PASCAL"

Transkript

1 Obsh Studijní mteriál PASCAL /76

2 Obsh Obsh Algoritmus 5 Vlstnosti lgoritmu 5 Metod návrhu lgoritmu 5 3 Rekurzivní lgoritmy 5 4 Překldč jeho struktur 6 4 Druhy překldčů 6 4 Hlvní části překldče 6 Jzyk Pscl 7 Struktur progrmu 7 Seznámení s prostředím progrmovcího jzyku Pscl 7 3 Procedur write 7 4 Procedur writeln 7 5 Jednotk CRT 8 3 Proměnné, dtové typy konstnty 9 3 Jednoduché dtové typy 9 3 Celočíselné dtové typy (integer) 9 3 Dtový typ logických hodnot (boolen) 9 33 Dtový typ znk (chr) 0 34 Dtový typ výčet 0 35 Dtový typ intervl 0 36 Dtový typ rcionálních čísel (rel) 0 3 Deklrce konstnt 0 4 Operce nd dtovými typy 4 Operce nd ordinálními dtovými typy 4 Operce nd logickým dtovým typem 4 Operce nd celočíselným dtovým typem 3 43 Operce nd dtovým typem rcionálních čísel 3 44 Operce nd dtovým typem výčet 3 45 Operce nd dtovým typem CHAR 3 5 Strukturovné příkzy 5 5 Složený příkz 5 5 Příkz větvení 5 53 Příkz cse 5 6 Cykly 8 6 Cyklus for 8 6 Cyklus while 8 63 Cyklus repet 9 7 Strukturovné dtové typy 7 Dtový typ pole (rry) 7 Pole znků 7 Vícerozměrná pole 7 Dtový typ záznm 73 Dtový typ množin 74 Dtový typ string 3 74 Přehled opercí pro práci s řetězci 3 8 Soubor 5 8 Tetové netetové soubory 5 8 Otevření uzvření souboru 5 83 Deklrce souboru 5 84 Procedury funkce pro práci se soubory 6 84 Kroky při práci se soubory 6 Čtení zápis do tetových souborů 7 /76

3 Obsh Práce se soubory s udným typem 7 9 Podprogrmy 30 9 Procedury funkce 30 9 Procedury 30 9 Funkce 30 9 Prmetry podprogrmů Místní společné deklrce 3 94 Předepsné skutečné prmetry podprogrmů 3 95 Prmetry nhrzené hodnotou odkzem 3 96 Rekurze rekurzivní podprogrmy 33 0 Dynmická proměnná 35 0 Operce nd dtovým typem ukztel 36 0 Lineární seznmy 36 0 Lineární seznm jednosměrný 36 0 Lineární seznm obousměrný Zásobník 4 04 Front 4 03 Stromové struktury 4 Knihovny podprogrmů v jzyce Pscl 4 Stndrdní knihovny v jzyce Pscl 4 Tvorb vlstních knihoven 4 Kruhové odkzy mezi knihovnmi 44 Dtový typ objekt objektově orientovné progrmování 46 Zákldní mnipulce s objektem 47 Zpouzdřenost objektů 47 3 Dědičnost objektů 47 4 Slučitelnost objektů 48 5 Mnohotvrost objektů 49 6 Sttické virtuální metody objektů 49 3 Mtice 55 3 Typy mtic 55 3 Operce s mticemi 55 3 Porovnávání mtic 55 3 Sčítání mtic Násobek mtice Násobení mtic Hodnost mtice Řešení soustv rovnic mticovou metodou Inverzní mtice 56 4 Determinnty 57 4 Výpočet determinntu 57 4 druhého řádu 57 4 třetího řádu 57 4 Vlstnosti determinntů Výpočet determinntu vyšších řádů 58 5 Metody řešení soustv lineárních rovnic 59 5 Gussov eliminční metod 59 5 Crmerovo prvidlo 59 6 Využití tbulkového procesoru pro počítání s mticemi determinnty 60 6 Součet mtic 60 6 Součin mtic k násobek mtice 6 64 Inverzní mtice 6 3/76

4 Obsh 65 Determinnt 6 7 Teorie grfu zákldní pojmy 63 7 Grf související pojmy 63 7 Podgrf související pojmy Typy grfů Izomorfizmus grfů Stupeň vrcholu Incidenční mtice Mtice sousednosti Cesty cykly 65 8 Výrok jeho negce 67 8 Kvntifikovné výroky jejich negce 67 8 Složené výroky (konjunkce,disjunkce,implikce,ekvivlence) 68 8 Konjunkce 68 8 Disjunkce Implikce Ekvivlence Obměněná implikce Negce složených výroků Tutologie kontrdikce 69 9 Binární soustv, uložení dt v počítči 70 9 Převody mezi soustvmi: 70 9 Binární -> desítková: 70 9 Desítková -> binární: Binární -> šestnáctková: Šestnáctková -> binární: 7 95 Aritmetické operce v binární soustvě: 7 9 Uchování dt v počítči: 7 9 Znky tetu 7 9 Čísl Brvy 7 0 Grfik 73 0 Brevné režimy 73 0 Kódování brev Rozlišení, DPI Formáty grfických souborů Rstrová grfik X vektorová grfik 74 Počítčové sítě 75 Topologie sítí 75 Sběrnicová topologie (seril hub) 76 4/76

5 A lgoritmus Jzyk Pscl Algoritmus je předpis pro řešení nějkého problému, tento předpis, který se skládá z kroků zbezpečí, že n zákldě vstupních dt jsou poskytnut poždovná dt výstupní V l s t n o s t i l g o r i t m u Kždý lgoritmus musí mít čtyři následující vlstnosti: Konečnost (rezulttivnost) znmená, že výpočet se ukončí v rozumném čse (Výsledek, který se i n nejrychlejším počítči vypočte z jeden milion let, nám si k ničemu nebude) Hromdnost (msovost) znmená, že lgoritmus není sestrojen pouze n jediný problém, le n celou řdu problémů (Progrm n výpočet průměru z n čísel prcuje nd množinou čísel, ne nd konkrétními čísly) 3 Jednoznčnost (determinovnost) znmená, že přechod do následujícího stvu lgoritmu je jednoznčně určen výsledkem stvu předchozího (Kždý lgoritmus je složen z kroků, které n sebe vzájemně nvzují Kždý krok je chrkterizován jko přechod z jednoho stvu do jiného Správný lgoritmus nezná slepé uličky 4 Opkovtelnost znmená, že vede vždy ke stejným výsledkům, jsou-li zdán stejná dt M e t o d n á v r h u l g o r i t m u Eistuji tři zákldní způsoby vytváření lgoritmu: snžíme se o přímé vytvoření postupu, to v přípdě, když je postup známý závisí n stupni nšich znlostí, nebo když je postup triviální přeformulujeme původní problém n jiný problém, jehož řešení určitým způsobem souvisí s řešením původním 3 rozložíme původní problém n dílčí problémy následně řešíme kždý z těchto podproblémů Algoritmus můžeme vyjádřit: grficky vývojovým digrmem nebo kopenogrmem (strukturogrmem), slovně v přirozeném jzyce, 3 mtemticky vzthem mezi veličinmi, soustvou rovnic, mticemi, 4 progrmovcím jzykem Činnost, při které se snžíme sestvit lgoritmus tk, by splňovl výše uvedené vlstnosti, se nzývá lgoritmizce Jejím vstupem je problém výstupem lgoritmus 3 R e k u r z i v n í l g o r i t m y Příkzová část podprogrmu může obshovt volání jiných podprogrmů, ť již procedur nebo funkcí Zvláštní přípd, kdy podprogrm volá sám sebe, nzýváme rekurzivní volání nebo rekurze, přípdně tké rekurze přímá Pro nepřímou rekurzi potřebujeme lespoň dv podprogrmy, npř R S Podprogrm R volá podprogrm S ten ve své příkzové části opět volá podprogrm R Rekurzi můžeme účinně využít pro řešení úloh, jejichž lgoritmus je sám o sobě rekurzivně definován, npř fktoriál nebo největší společný dělitel function fct(n:integer):integer; if n=0 then fct:= else fct:=n*fct(n-); 5/76

6 Jzyk Pscl 4 P ř e k l d č j e h o s t r u k t u r Překldč je progrm, který k libovolnému progrmu P Z v jzyku J Z vytvoří progrm P C v jzyku J C se stejným význmem Nzýváme: P Z zdrojový (překládný) progrm, P C cílový (přeložený) progrm Překldč tedy zprcovává tet zdrojového jzyk (zdrojový progrm) převádí ho n sémnticky ekvivlentní tet cílového jzyk (cílový progrm) 4 D r u h y p ř e k l d č ů Překldče rozlišujeme podle typu cílového progrmu n dv druhy: kompilátor (generční překldč) je překldč, který má n vstupu progrm ve vyšším progrmovcím jzyce (Fortrn, Pscl, C, C++, Delphi, ) cílovým jzykem je strojový jzyk nebo jzyk symbolických instrukcí (JSI, Assembler), interpret (interpretční překldč, někdy tké interpreter) pouze interpretuje (provádí) zdrojový progrm pro zdná vstupní dt, tedy netvoří generovný progrm, vytváří jen vnitřní reprezentci progrmu pro svou vlstní potřebu (tu lze chápt jko cílový jzyk), npř Bsic dt dt zdrojový progrm kompilátor cílový progrm operční systém zdrojový progrm interpret výsledky výsledky 4 H l v n í č á s t i p ř e k l d č e Překldč rozdělíme n části, z nichž kždá má při překldu jiný úkol: leikální nlyzátor, syntktický nlyzátor, 3 sémntický nlyzátor, 4 generátor intermediálního kódu cílového progrmu V překldči mohou být tyto části (obvykle zvláštní procedury) striktně odděleny nebo jsou nvzájem provázány Činnost jednotlivých částí nzýváme fáze překldu Leikální nlyzátor provádí trnsformci kódu zdrojového progrmu (obvykle znkového tetu) do tvru, jež je vhodný pro zprcování v dlších fázích překldu Jeho úkolem je npř odstrnit ndbytečné znky tetu (některé mezery, konce řádků, komentáře pod) Syntktická nlýz je nejdůležitější částí překldu Úkolem tohoto nlyzátoru je vytvořit derivční strom celého progrmu tím určit jeho strukturu Zjišťuje, jk jednotlivé symboly vygenerovné leikálním nlyzátorem ptří k sobě, zároveň kontroluje syntktickou správnost progrmu Sémntický nlyzátor kždé skupině symbolů získné při syntktické nlýze přiřdí význm Npř při zprcování deklrce proměnné nlyzátor zkontroluje, zd již není deklrován, uloží do příslušného seznmu její identifikátor (název, typ, počáteční hodnotu v kterém bloku je lokální), může tké proměnné přiřdit pměť (ztím ne přímo dresu v pměti), při použití operátoru pro sčítání zkontroluje, zd jeho operndy jsou správného typu přípdně provede přetypování, Progrm, který bez chyby prošel sémntickým nlyzátorem, je dále zprcováván generátorem cílového progrmu Vytváří se kód buď v jzyce symbolických dres, ve vlstním jzyce sestvujícího progrmu (interpretční překldč) nebo přímo v jzyce stroje 6/76

7 7/76 Jzyk Pscl J zyk Pscl Je jzyk spdjící do jzyků 3 generce (60 lét) Pro tyto jzyky jsou příznčné metody strukturovného progrmování Zákldní princip strukturovného progrmování se dá shrnout Cesrovým divide et imper: rozčlenění progrmu do utonomních funkčních celků modulů Jzyk PL/ (Progrmming Lnguge) z poloviny 60 let byl pokusem o co nejuniverzálnější progrmovcí jzyk Zhrnovl širokou sdu příkzů, množství dtových typů, podporu práce s nejrůznějšími perifériemi, bohtě formátovný vstup / výstup pod Později vznikl dlší univerzální jzyk, le poněkud jednodušší, Pscl, jehož utor Niklus Wirth se stl klsikem teorie progrmovcích technik Pro čistotu, s jkou prezentuje uvedené principy, se Pscl užívá k výuce (i k prktickému progrmování) dodnes Progrmovcí jzyk Pscl je strukturovný To s sebou přináší spoustu prvidel Jedno z nich tké určuje pořdí jednotlivých částí progrmů Pro lepší pochopení dlšího výkldu je nezbytné, byste se seznámili se strukturou jednotlivých částí, které mohou progrmy obshovt Jsou to progrm, jednotk, procedur funkce V první lekci si probereme strukturu progrmu S t r u k t u r p r o g r m u Jednotlivé součásti progrmu: jméno progrmu použité jednotky (unit) konstnty definice dtových typů proměnné procedury funkce hlvní progrm Některé jednodušší progrmy nemusí obshovt všechny uvedené části N zkráceném příkldu si jednotlivé části popíšeme progrm Jmeno_progrmu; uses Jednotk,Jednotk; const Jmeno_konstnty = hodnot; type dtovy_typ_ = ; vr Jmeno_promenne,Jmeno_promenne:dtovy_typ; procedure ; function ; {hlvní progrm} end S e z n á m e n í s p r o s t ř e d í m p r o g r m o v c í h o j z y k u P s c l používné příkzy systémové nbídky (File, Edit, Run, Compile, Window), dresářová struktur, ukládání vytvořených progrmů Help (CTRL+F), syntktické chyby 3 P r o c e d u r w r i t e Zobrzuje hodnoty: dtového typu chr, celých čísel integer, dtového typu boolen, rcionálních čísel rel, 4 P r o c e d u r w r i t e l n Tto procedur se chová zcel stejně jko procedur write, pouze po výpisu všech hodnot ještě nvíc přejde n nový řádek

8 Jzyk Pscl 5 J e d n o t k C R T Jednotk CRT obshuje progrmové prostředky pro řízení systému zobrzení, vstupu z klávesnice, obshuje podporu práce s okny definování brevného ldění progrmů Využívání jednotky se definuje v hlvním progrmu z klusulí uses progrm: Vytiskněte n obrzovku vše jméno Progrm Tisk; uses crt; clrscr; write( ***Ptrik Kvecky*** ); end Poznámk: Komentáře se v jzyce Pscl píší do složených závorek {název progrmu} {zktivování jednotky CRT} {zčátek progrmu} {vymzání obrzovky} {vypis} {konec progrmu} Příkldy: Procedurou TetColor obrvěte hvězdičky i vše jméno žlutě Procedurou TetBckGround obrvěte pozdí npsného tetu červeně 3 Procedurou NormVideo uveďte vše do původního zobrzení 4 Procedurou GotoXY umístěte jméno zhrub n střed obrzovkystřed (30,) Poznámk: Celá obrzovk má v zákldním režimu zobrzení 80 sloupců 5 řádků 5 Prmetrem blink rozblikejte tet 6 Celý tento cirkus podbrvěte znějícím tonem 8/76

9 9/76 Proměnné, dtové typy konstnty 3 Proměnné, dtové typy konstnty Kždá proměnná musí mít určeny dvě vlstnosti: množinu přípustných hodnot množinu opercí Popis těchto dvou vlstností souhrnně oznčujeme dtový typ Přehled dtových typů: Jednoduchý ordinální dtový typ Strukturovné dtové typy Dtový typ ukztel Dtový typ podprogrm Dtový typ objekt dtový typ výčet dtový typ intervl dtové typy celých čísel dtový typ znk dtový typ logických hodnot neordinální dtové typy rcionálních čísel dtový typ množin dtový typ pole dtový typ soubor dtový typ záznm dtový typ řetězec 3 J e d n o d u c h é d t o v é t y p y 3 C e l o č í s e l n é d t o v é t y p y ( i n t e g e r ) Tbulk celočíselných dtových typů: typ rozsh byte/bite byte 0 55 /8 word /6 shortint -8 7 /8 integer /6 longint /3 comp /64 Příkldy deklrce celočíselného dtového typu: Příkldy přiřzení hodnot proměnným: vr prom : integer; pocetdnu : byte; prom:=-3767; : shortint; pocetdnu:=54; m : longint; :=-7; end 3 D t o v ý t y p l o g i c k ý c h h o d n o t ( b o o l e n ) Logické hodnoty jsou dvě: true (prvdivý), flse (neprvdivý) Ordinální (pořdové) dtové typy vyznčují se tím, že jejich hodnoty jsou uspořádány podle velikosti od nejmenší po největší Neordinální dtové typy hodnoty tkového typu nelze zobrzit n množinu celých čísel Objsnění výše uvedených pojmů ilustrujme n jednoduchém příkldu: Příkld: Kolik eistuje rcionálních čísel v intervlu ; 3? byte (neznménkový typ) celkový počet hodnot = 8 nejmenší hodnot = 0 největší hodnot = 8 shortint celkový počet hodnot = 8 nejmenší hodnot = - 7 největší hodnot = + 7 Příkld deklrce dtového typu logických hodnot: Příkldy přiřzení hodnot proměnným: vr pom : boolen; pom:=flse; end

10 0/76 Proměnné, dtové typy konstnty 33 D t o v ý t y p z n k ( c h r ) Slouží k popsání tetové informce o velikosti jednoho znku Hodnoty dtového typu znk jsou obsženy v ASCII tbulce znků Znky zpisujeme do odsuvníků nebo můžeme použít ordinální hodnotu znku, která následuje z znkem Příkld deklrce dtového typu znk: Příkldy přiřzení hodnot proměnným: vr znk : chr; volb : chr; znk:=#39; {ö - PC Ltin} volb:= A ; end 34 D t o v ý t y p v ý č e t Je definován uživtelem Určujeme jej seznmem identifikátorů Příkldy deklrce dtového typu výčet: Příkldy přiřzení hodnot proměnným: type krty =(srdce,kry,piky,krize); vikend =(ptek,sobot,nedele); eso:= srdce; den:= sobot; vr eso : krty; end den : vik 35 D t o v ý t y p i n t e r v l Ten tvoří tké uživtel, stejně jko definuje hodnoty (rozsh) Hodnoty typu intervl jsou podmnožinou hodnot jistého bázového typu (integer, chr, ) Příkld deklrce dtového typu intervl: Příkldy přiřzení hodnot proměnným: type znmk = 5; velpis = A Z ; zn:= 4; pismeno:= S ; vr zn : znmk; end pismeno : velpis; 36 D t o v ý t y p r c i o n á l n í c h č í s e l ( r e l ) Používá se pro vyjádření hodnot s pohyblivou desetinnou čárkou Rozshy hodnot jsou uvedeny v následující tbulce: typ rozsh byte/bite rel 9*0-39 ž 7* /48 single 5*0-45 ž 34* /8 double 50*0-34 ž 7* /64 etended 34*0-493 ž * /80 Příkldy deklrce dtového typu Q - čísel: Příkldy přiřzení hodnot proměnným: vr prom : rel; Ludolf : double; prom:= -3767E+05; Ludolf:= ; end 3 D e k l r c e k o n s t n t První úsek deklrční části obshuje deklrce konstnt Tomuto úseku předchází vyhrzené slovo const Příkldy deklrce konstnt: const pocetmesicu =; Ludolf = ; prvd =true; prvnipismeno = A ; Poznámk: Úsek deklrcí dtových typů zprvidl následuje z úsekem deklrcí konstnt

11 Proměnné, dtové typy konstnty Příkldy: Zdeklrujte proměnné: celočíselného dtového typu, dtového typu rcionálních čísel, dtového typu znk, dtového typu logických hodnot Těmto proměnným postupně přiřďte příslušné hodnoty vytiskněte je n obrzovku Npište progrm, který určí ordinální hodnotu proměnné dtového typu znk zdnou uživtelem z klávesnice N zákldě tohoto určete, jký typ kódování je použit ve všem PC 3 Číslo 8 zpište v binárním kódu 4 Určete hodnotu čísl (0000) v dekdické (desítkové) soustvě 5 Seznmte se s procedurou red resp redln dále pk s procedurou redkey 6 Npište progrm, který sečte vynásobí dv operndy, zdné uživtelem z klávesnice 7 Npište progrm, který změní hodnoty dvou různých proměnných dtového typu integer Tyto hodnoty budou zdávány terminálně 8 Zdeklrujte proměnné dtového typu výčet následujícím způsobem: Proměnná sekce bude dtového typu orchestr Orchestr se skládá ze smyccu, dechu, bicich klves Přiřďte proměnné sekce postupně hodnoty smycce, dechy 9 Zdeklrujte proměnné: znmk nbývjících celočíselných hodnot ž 5, ridick nbývjících hodnot A ž E N obrzovku vytisknete, že jste dnes dostli z progrmování že jste mjiteli řidičského oprávnění skupiny C 0 Npište progrm, který vypočítá obvod obsh kruhu Vypočet proveďte s použitím konstnty PI Poloměr zdá uživtel z klávesnice /76

12 4 O p erce nd dtovými typy Operce nd dtovými typy 4 O p e r c e n d o r d i n á l n í m i d t o v ý m i t y p y Pro všechny ordinální dtové typy jsou definovány tyto operce: Operce Identifikátor Definiční obor Obor hodnot Z nglického výrzu předchůdce pred T-t 0 T predecessor následník succ T-t n T succesor ordinální hodnot ord M množin Z čísel ordinl vlue zvýšení ordinální hodnoty inc T T increment (přírůstek) snížení ordinální hodnoty dec T T decrement (úbytek) Poznámk: T oznčuje libovolný dtový typ; t0,,tn jeho hodnoty type vikend =(ptek,sobot,nedele); mesic =; n :=; z := C ; vyrok :=flse; den :=ptek; vr n :integer; month :=4; z :chr; {Určete následující hodnoty} vyrok :boolen; pred(n);succ(z);succ(vyrok); den :vik ord(den);inc(mesic);dec(den); month :mesic; end 4 O p e r c e n d l o g i c k ý m d t o v ý m t y p e m Operce nd logickým dtovým typem: Název operce Operátor Počet operndů logická negce not logický součin nd logický součet or logický výhrdní součet (nonekvivlence) or S logickým dtovým typem jsou spojeny relční operce Smozřejmě, že relční operátory lze plikovt i n jiné dtové typy (celočíselný, dtový typ rcionálních čísel ) Přehled těchto opercí ukzuje následující tbulk: Vzth menší menší nebo rovno rovno nerovno, je různé větší nebo rovno větší Symbol v jzyce Pscl Relční operátory ncházejí velkého upltnění v logických podmínkách, které nbývjí jedné ze dvou prvdivostních hodnot (true, flse) S těmito logickými podmínkmi se nejčstěji setkáváme v příkzech větvení v cyklech /76

13 Operce nd dtovými typy 4 O p e r c e n d c e l o č í s e l n ý m d t o v ý m t y p e m Operce Operátor Definiční obor Obor hodnot sčítání Z Z odčítání - Z Z násobení Z Z celočíselné dělení div Z Z zbytek po dělení mod Z Z bsolutní hodnot bs Z Z druhá mocnin sqr Z Z určení lichosti odd Z boolen 43 O p e r c e n d d t o v ý m t y p e m r c i o n á l n í c h č í s e l Operce Operátor Obor hodnot Poznámk sčítání Q odčítání - Q násobení Q dělení / Q bsolutní hodnot bs Q gon f-ce prcuji s údji druhá mocnin sqr Q v oblouk míře sinus sin Q cosinus cos Q rcus tngens rctn Q přirozený logritmus ln Q eponenciální funkce ep Q druhá odmocnin sqrt Q squre root celá část rcionálního trunc Z truncte (odseknout) čísl zokrouhlení rc round Z čísl 44 O p e r c e n d d t o v ý m t y p e m v ý č e t Nd uživtelským dtovým typem výčet jsou definovány operce zjištění předchůdce, následník, stnovení ordinální hodnoty relční operce 45 O p e r c e n d d t o v ý m t y p e m C H A R Jsou společné pro všechny ordinální typy, jednk relční operce Jedinou speciální opercí je operce opčná ke stnovení ordinální hodnoty: známe li číslo znku, můžeme získt příslušný znk Operce je vyjádřen funkcí chr Příkld: ord( A ) = 65 chr (65) = A ord( Z ) = 90 chr (90) = Z ord( * ) = 4 chr (4) = * e 3/76

14 Operce nd dtovými typy Příkldy: Rozhodněte, do kterého předdefinovného dtového typu v jzyce Pscl mohou ptřit následující hodnoty: 0-0 : 99 flse A Vytvořte dtový typ Trt=(Breclv,Brno,Kriznov,Zdr_nd_Szvou,Hvlickuv_Brod) N obrzovku vytiskněte ordinální hodnotu konstnty Kriznov Brno 3 Npište progrm, ve kterém proměnným, b dtového typu boolen přiřdíte postupně hodnoty true flse N obrzovku vytiskněte logickou negci proměnné, jejich logický součet, logický součin nonekvivlenci těchto proměnných 4 Vyzkoušejte všechny definovné operce nd celočíselným dtovým typem následujícím způsobem: Uživtel zdá operndy terminálně n obrzovku se mu vytisknou výsledky všech opercí i s popisem 5 Předchozí příkld modifikujte pro dtový typ rcionálních čísel 6 Npište progrm, který ze zdné hodnoty průměru (d) vypočítá objem (V) kulového zásobníku n vodu Výslednou hodnotu nechte vypst n obrzovku jk v metrech krychlových, tk v litrech Dále předpokládejme, že tento zásobník je umístěn v pouštní zákldně, kterou obývá n osdníků, kde n je proměná, jejíž hodnotu budeme zdávt Progrm rovněž vypíše, n kolik dní vystčí vod v zásobníku při spotřebě 0 litrů n osobu den, kde spotreb bude konstnt 4/76

15 5 Strukturov n é příkzy 5 S l o ž e n ý p ř í k z Složený příkz je tvořen posloupností příkzů P, slovem zkončen vyhrzeným slovem end Jednotlivé příkzy příkzu provádějí v tom pořdí, jk jsou zpsány Příkld: end red(); y:=sin(); write(y); Strukturovné příkzy, P Pn Posloupnost je uveden vyhrzeným P, P, Pn se uvnitř složeného 5 P ř í k z v ě t v e n í Slouží k rozvětvení progrmu n dvě větve (binární větvení), přičemž progrm pouze jednu z větví druhou přeskočí Příkz if se může vyskytovt ve dvou podobách: neúplný příkz if: if <booleovský výrz> then <příkz> úplný příkz if: if <booleovský výrz> then <příkz> else <příkz> Poznámk: Z vyhrzenými slovy then else je možné uvést jeden příkz, nebo složený příkz (chápe se jko celek jko jeden příkz), tzn, že ozávorkovt klíčovými slovy, end Příkldy: if vstup= * then red(a,b) else red(c); if <0 then soucet:=+soucet; if mesic=unor then dny:=8; 53 P ř í k z c s e Příkz cse slouží k rozvětvení progrmu n dvě více větví, přičemž progrm využije nejvýše jednu z větví Výběrový výrz (selektor) je výrz, jehož hodnot určuje, která větev příkzu cse se provede Podmínkou je, že selektor musí být ordinálního dtového typu Větve jsou oznčeny konstntmi stejného dtového typu, jko je výběrový výrz Kždá větev může být oznčen více konstntmi Příkz cse může obshovt nepovinnou větev else Příkz uvedený v této větvi se provede právě tehdy, neodpovídá li hodnot výběrového výrzu žádné z konstnt popisujících jednotlivé větve Provedení příkzu cse: Vyhodnotí se výběrový výrz Získná hodnot výběrového výrzu se postupně porovnává s konstntmi jednotlivých větví 3 Je li hodnot výběrového výrzu konstnty stejná, provede se příslušný výrz Po té se pokrčuje prvním příkzem následujícím z příkzem cse 4 Nenlezne li se odpovídjící hodnot, neprovede se nic, vyjm přípdu, kdy je uveden větev else Použití příkzu cse Proměnná znk je dtového typu chr cse znk of + :vysledek:=+b; - :vysledek:=-b; * :vysledek:=*b; / :vysledek:=/b; else write( neznm tuto pocetni operci ); 5/76

16 Strukturovné příkzy Jednotlivé větve příkzu cse mohou být uvedeny tké intervlem cse znk of A Z :write(znk, je velke pismeno ); z :write(znk, je mle pismeno ); 0 9 :write(znk, je velke pismeno ); else write(znk, neznm ); Poznámk: Bude li více větví popsáno stejnou konstntou, provede se t větev, která je uveden dříve Osttní větve se přeskočí cse kolik of 000 :write( Rychle dopln zsoby ); :write( Nedelej nic ); :write( Snz se zbvit zsob ); 6/76

17 Příkldy: Strukturovné příkzy Npište progrm, který z terminálu nčte dvě čísl zdné uživtelem Při stisku tto čísl vynásobí při stisku tto čísl sečte Npište progrm, který ze tří terminálně zdných čísel určí mimum 3 ; rgument funkce bude zdá- sin 3 Npište progrm, který vypočítá funkční hodnoty funkce y ván terminálně 4 Npište progrm pro výpočet kořenů lineární rovnice b 0 5 Npište progrm pro výpočet kořenů kvdrtické rovnice b c 0 pouze v oboru reálných čísel 6 Modifikujte předchozí progrm pro obor kompleních čísel 7 Npište progrm, který přečte tři čísl vytiskne je n obrzovku seřzená vzestupně 8 Vytvořte progrm, který přečte souřdnice bodu zjistí, zd tento bod leží n přímce y Uživtel terminálně zdá dv operndy, b Stiskem (+) se operndy sečtou, ( ) odečtou, (*) vynásobí, (/) vydělí V přípdě dělení pmtujte n to, že b musí být různé od 0 Výsledek příslušné operce se vytiskne n obrzovku 0 Npište progrm, který sdělí uživteli, kolik dnů má dný měsíc (npř měsíc má 8 dnu) Uživtel zdává číslo měsíce Zkuste vymyslet progrm, ve kterém využijete příkz cse Výběrový příkz bude dtového typu intervl nvíc se konstnty jednotlivých větví budou překrývt Zjistěte, která z větví se provede, přiřdíte li výběrovému výrzu konstntu z překrytí Npište progrm, který ze zdné ujeté vzdálenosti vypočte pltbu tikáři, jestliže má stnoveny následující szby: 0-9km 5 Kč/km 0-39km 3 Kč/km 40-59km 0 Kč/km 60km více 7 Kč/km Zdná vzdálenost může být desetinné číslo, le ošetřete zdání záporné vzdálenosti Szb se mění ž po ujetí dného počtu km (0, 40, 60 km) tzn zákzník, který ujel 39,9 km má stnovenou szbu 3 Kč/km td 3 Npište progrm, který ze zdné hodnoty průměru (d) vypočítá objem (V) kulového zásobníku n vodu Výslednou hodnotu nechte vypst n obrzovku jk v metrech krychlových, tk v litrech Dále předpokládejme, že tento zásobník je umístěn v pouštní zákldně, kterou obývá n osdníků, kde n je proměná, jejíž hodnotu budeme zdávt Progrm rovněž vypíše, n kolik dní vystčí vod v zásobníku při spotřebě 0 litrů n osobu den, kde spotreb bude konstnt 4 Doplňte progrm z cvičení o jednoduché menu, ve kterém bude možno zvolit tvr nádrže (kvádrová, válcová, kulová) Položky menu budou voleny klávesou: Kvádrová nádrž - 'K', Válcová nádrž - 'V', Kulová nádrž - 'O', pokud bude stisknut jiná kláves, progrm se ukončí použijte funkci RedKey jednotky CRT proceduru UpCse převádějící znky n velké 7/76

18 Cykly 6 C y k ly Cyklus v progrmu umožňuje vícenásobné opkování příkzu nebo posloupnosti příkzů Část, která má být opkován se nzývá tělem cyklu Progrmovcí jzyk Pscl má tři druhy cyklů: for počet opkování je určen výslovně, repet počet opkování je určen podmínkou vyhodnocenou po příkzu, který se má opkovt (n konci těl cyklu), while počet opkování je určen podmínkou vyhodnocenou před příkzem, který se má opkovt (n zčátku těl cyklu) 6 C y k l u s f o r Používá se, kdy je zdán výslovně počet opkování (určité části lgoritmu) Příkz for má dvě vrinty: Je li počáteční hodnot menší než koncová, používá vyhrzené slovo to Přírůstek je + for pocet:= {poc_hodn} to 0 {konc_hodn} do prikz; prikz; Je li počáteční hodnot větší než koncová, používá vyhrzené slovo downto Přírůstek je - for pocet:= 0 {poc_hodn} downto {konc_hodn} do prikz; prikz; 6 C y k l u s w h i l e Průběh cyklu while nznčuje vývojový digrm n obrázku B je booleovský výrz, tzn, že výsledek je buď true (+) nebo flse (-) Cyklus se provádí následovně Nejprve je vyhodnocen booleovský výrz Je-li true, je proveden příkz(y) těl cyklu Po provedení příkzu(ů) je opět vyhodnocen logický výrz Pokud je true, opět se provede příkz cyklu, pokud je flse, cyklus je ukončen progrm pokrčuje dál z tělem cyklu Opkování v cyklu WHILE probíhá tk dlouho, pokud je výsledek logického výrzu true Z toho vyplývá, že tělo cyklu nemusí být provedeno ni jednou, to v přípdě, nbývá-li logický výrz hned npoprvé hodnoty flse Synte příkzu: while logicky_vyrz do příkz ; příkz ; : příkz n; 8/76

19 Cykly 6 3 C y k l u s r e p e t B je opět logický výrz jko v přípdě cyklu While Z vývojového digrmu je všk n první pohled ptrný zásdní rozdíl Cyklus Repet vyhodnocuje logickou podmínku ž po provedení těl cyklu To znmená, že u cyklu Repet proběhne vždy lespoň jedenkrát Dlší podsttnou změnou je to, že dlší opkování proběhne pouze tehdy, je-li výsledek logické podmínky flse Jk tedy cyklus Repet prcuje? Nejdříve se vykoná příkz těl cyklu Potom je vyhodnocen logický výrz Pokud je výsledek flse, dojde k opkování cyklu, pokud je true, progrm pokrčuje dále Synte příkzu : repet příkz ; příkz ; : příkz n; until logicky_vyrz; 9/76

20 Příkldy: Npište progrm, který vytiskne n obrzovku tbulku druhých mocnin od do 0 ) s využitím cyklu for, b) s využitím cyklu while 0/76 Cykly Npište progrm, který n obrzovku vypíše do jednoho řádku sled znků "" ž "z" do dlšího řádku sled znků "A" ž "Z" 3 Podívejte se n progrm, který určí největší společný dělitel dvou celých čísel zdných terminálně Způsob, jkým je NSD určen se nzývá rekurzivní (vrceti se zpět) Stčí jen, když budete pozorovt kód přemýšlet nd ním 4 Npište progrm, který n obrzovce vytvoří čtverec ze znků "*" o uživtelem zdné velikosti strny (počet dílků) N obrzovku se všk vejde jen 5 řádků, tk omezte zdání velikosti strny n menší počet npř n 0 5 Vytvořte progrm, který seství tbulku hodnot funkce sinus n intervlu 0 ž 0 stupňů po jednom stupni s přesností n 4 desetinná míst 6 Sestvte progrmy n výpočet číselné řády s přesností 0, 00 ), b) Npište progrm který vypočítá fktoriál z terminálně zdného čísl Využijte k tomu cyklu for 8 Npište progrm který vypočítá fktoriál z terminálně zdného čísl Využijte k tomu cyklu while 9 Npište progrm, který zjistí, zd zdné n číslo je prvočíslo Výsledkem progrmu bude hlášení, že číslo n je (resp není) prvočíslo Návod: Zjišťujeme zbytek po dělení čísl n čísly,3,4,,n- Pokud je zbytek některého dělení nulový, není třeb dále dělit, tj progrm můžeme ukončit, protože testovné číslo není prvočíslem 0 Npište progrm, který vypočítá ciferný součet zdného celého (kldného i záporného) čísl vypíše jej Použijte k tomu cyklus while Npište progrm pro převod minut n hodiny minuty Vytvořte progrm, kterému n vstupu zdáte celé číslo vysk nkreslí se následující obrzec * * * * * * * * * * * * * * * * * * * * * * * * * * 3 Npište progrm, ve kterém jsou vstupními prmetry proměnné zkld eponent Tento progrm umocní dný zákld n dný eponent 4 Vyrobte si svou hru Bude spočívt v tom, že počítči zdáte horní mez (celé kldné číslo) on si bude "myslet" číslo n tomto intervlu (náhodně ho zvolí) Pk budete jeho číslo hádt dokud se vám ho nepodří uhodnout Progrm bude registrovt váš počet pokusů po uhodnutí čísl vám ho sdělí V příkldu použijte repet cyklus 5 Vytvořte progrm, kterému budete postupně zdávt předem neurčený počet známek on z nich spočítá průměr, který n konci vypíše společně s počtem známek Ošetřete zdání tk, by bylo možné zdt pouze známky v rozshu <;5> klávesu "Esc" pro ukončení zdávání Pro osttní přípdy uživtele upozorněte npř: "Chybné zdání" K zdávání známek použijte funkci RedKey Po ukončení zdávání výpisu průměru počtu známek bude uživtel tázán, zd chce zdávt znovu Rd: Ordinální číslo pro klávesu "Esc" je 7 Ordinální čísl numerických kláves jsou o 48 větší než jejich číselná hodnot, tzn: ordinální číslo klávesy "" je 49 pod

21 Strukturovné dtové typy 7 Strukturov n é dtové typy Strukturovné dtové typy jsou pole, záznm, řetězec, množin Ve strukturovných dtových typech je zveden jeden důležitý pojem, to složk (někdy tké prvek nebo položk) Tímto pojmem oznčujeme dílčí části strukturovného dtového typu, který popisuje již zmíněné vlstnosti 7 D t o v ý t y p p o l e ( r r y ) Pole je dtová struktur, která se skládá z pevného počtu položek stejného typu Jednotlivé položky jsou přístupné pomocí indeu, který je ordinálního typu Dtový typ pole má tyto vlstnosti: pevně dný počet prvků, všechny pole prvku jsou stejného dtového typu, 3 jednotlivé prvky pole mjí své jednoznčné oznčení, tzv inde Synte příkzu: type pole = rry [ intervl_indeu ] of typ_položky; vr prom_pole: pole; Příkld: type vektor = rry [ 0 ] of integer; {deklrce dtového typu vektor, kde inde nbývá hodnot 0 hodnoty jsou celá čísl} vr v: vektor; {deklrce proměnné v, která je typu vektor} u: rry [0] of rel; {deklrce proměnné u, která je typu pole obshující deset položek reálného dtového typu} Pro přístup k jednotlivým složkám musíme přistupujeme prostřednictvím hrntých závorek Npř jednotlivé složky vektoru v jsou v[], v[], v[3] Jednotlivé položky proměnné u jsou u[], u[], u[3],,u[0] 7 P o l e z n k ů Pole znků můžeme použít k uchování posloupnosti znků, tj řetězců Poli znků lze přiřdit řetězec (string), podmínkou všk je, že deklrovný počet znků musí přesně odpovídt počtu znků v řetězci Pole znků má od osttních strukturovných dtových typů výhodu v tom, že jej lze přímo vypisovt procedurmi write writeln Tyto operce přístup k jednotlivým složkám pole ukzuje následující příkld vr pole : rry [5] of chr; pole := leden ; pole[]:= d ; pole[]:= u ; pole[3]:= b ; writeln(pole); /76

22 Strukturovné dtové typy 7 V í c e r o z m ě r n á p o l e Počet rozměrů není omezen My se všk budeme zbývt nejvýše dvojrozměrným polem Tkové pole si můžeme předstvit jko tbulku nebo mtici Zde jsou různé způsoby deklrce dvojrozměrného pole type rdek = 8; sloupec = 8; schovnice schovnice schovnice3 schovnice4 = rry [8,8] of integer; = rry [8] of rry [8] of integer; = rry [rdek,sloupec] of integer; = rry [rdek] of rry [sloupec] of integer; 7 D t o v ý t y p z á z n m Tento strukturovný dtový typ je převážně využíván v dtbázových plikcích Záznm můžeme chápt jko jednorozměrné pole mjící tyto vlstnosti: pevně dný počet prvků (položek) záznmu, položky záznmu mohou být různého dtového typu, 3 k položkám záznmu se přistupuje přes jejich identifikátory Příkld tkového záznmu může vypdt tkto: type seznmmesicu = (leden,unor,brezen,duben, kveten, cerven,cervenec,srpen,zri,rijen,lisopd,prosinec) dtum = record den : 3; mesic : seznmmesicu; rok : integer; K jednotlivým složkám záznmu přistupujeme přes tečku identifikátor složek Přístup k záznmu jko celku je tké možný, což dokládá následující příkld vr dnesnidtum : dtum; dtumzrok : dtum; dnesnidtumden:=7; dnesnidtummesic:=leden; dnesnidtumrok:=004; dtumzrok:= dnesnidtum; {prirzeni celeho zznmu} dtumzrokrok:=dtumzrokrok+; {změn hodnoty jedne slozky} 73 D t o v ý t y p m n o ž i n Tento dtový nese pouze informci, zd je či není v množině V přípdě množiny je třeb mít n pměti jedno zásdní omezení Prvků, jejichž eistenci množin zchycuje, nesmí být více než 56 ( byte) V jiných verzích jzyk pscl může mít hodnotu ( byte) type Deklrce množiny je zchycen v následujícím příkldu: mnozincisel =set of byte; mnozincifer =set of 09; mnozinpismen =set of A Z ; mnozinmesicu =set of seznmmesicu; /76

23 Strukturovné dtové typy Operce definovné nd množinou jsou přiřzení, sjednocení (+), rozdíl (-) průnik (*) Množiny lze porovnávt relčními operátory 74 D t o v ý t y p s t r i n g Vlstnosti dtového typu string jsou následující: zákldní chování odpovídá poli znků je deklrován celá řd procedur funkcí pro práci s řetězci, 3 procedury red(ln) write(ln) umožňují přímo vstupní výstupní opperce Řetězcem rozumíme posloupnost znků, kterou chápeme jko celek Nejjednodušší předstv řetězce znků může být vyjádřen dtovým typem znky type vr delkretezce=055; znky z : znky =rry[delkretezce] of chr; Poznámk: Výhod smosttného dtového typu řetězec spočívá ve spojení tohoto typu s celou řdou opercí, které nelze obvykle s polem provádět 74 P ř e h l e d o p e r c í p r o p r á c i s ř e t ě z c i Funkce Conct(retezec_,retec_,,retezec_n) Funkce spojující řetězce v jeden celek Obdobně prcuje operátor + s řetězcovými operndy Výsledkem je hodnot dtového typu string Funkce Length(retezec) Funkce zjišťuje ktuální délku řetězce Výsledek je dtového typu byte Funkce Copy(retezec,odPozice,pocetznku) Funkce vybere z řetězce část od stnovené pozice Velikost této části je dán hodnotou pocetznku Funkce Pos(hlednyPodretezec,retezec) Funkce nbývá hodnoty čísl (dtového typu byte), odpovídjící pozici v řetězci, kde se vyskytuje zdný podřetězec Není li podřetězec obsžen, funkce nbývá hodnoty 0 Procedur Insert(vkldnyretezec,retezec,km) Procedur vloží vkládný řetězec do druhého řetězce n pozici km Výsledná hodnot je uložen v proměnné řetězec Procedur Delete(retezec,odkud,kolikZnku) Od pozice odkud se odstrní část řetězce o délce kolikznku Výsledná hodnot je uložen v proměnné řetězec Procedur Str(ciselnyVyrz,retezec) Procedur, která převede výrz libovolného číselného dtového typu n řetězcovou reprezentci Procedur Vl(retezec,cislo,poziceChyby) Procedur opčná k proceduře Str 3/76

24 Strukturovné dtové typy Příkldy: Zdeklrujte pole o deseti položkách Tyto položky budou celočíselného dtového typu Hodnoty položek budou druhé mocniny odpovídjícího indeu Vytiskněte kždou druhou položku tohoto pole Npište progrm, pomocí kterého vypočtete ritmetický průměr pěti fyzikálních měření Hodnoty měření (R - čísl) budou tvořit prvky pole budou zdávány terminálně 3 Npište progrm, kterým nčtete 0 prvků pole cisl, vytiskněte je njde největší nejmenší prvek pole 4 Nplňte pole deseti prvky (celočíselného dtového typu) seřďte jej vzestupně 5 Je dán posloupnost 0-ti celých čísel Vytiskněte je dále vypište jen ty, která jsou kldná 6 Je dán posloupnost 0-ti celých čísel Vytiskněte je dále vypište jen ty, která jsou prvočísl 7 Npište progrm, který přečte ze vstupu číselnou řdu vytiskne ji v opčném pořdí Počet čísel této řdy nebude větší než 0 8 Nplňte pole deseti znky Jednotlivé znky budou zdávány terminálně Progrm spočítá výskyt jednotlivých znků v tomto poli 9 Vytiskněte čtvercovou jednotkovou mtici řádu pátého, tzn nplňte dvojrozměrné pole smými nulmi vyjm hlvní digonály Prvky digonály budou jedničky 0 Npište progrm pro součet dvou čtvercových mtic pátého řádu Npište progrm, který vypočítá k násobek čtvercové mtice pátého řádu Npište jednoduchý progrm simulující dtbázi ojetých vozů ve fiktivního utobzru U kždého vozu budou uvedeny následující položky: ) výrobní znčk b) typ vozu, c) brv (bude zdáván počátečním písmenem příslušné brvy), d) počet dveří, e) rok výroby V této dtbázi zdejte lespoň tři vozy vytiskněte je n obrzovku s příslušnými položkmi 3 Definujte tři množiny A, B, C Nplňte tyto množiny prvky do 00 Určete: ) rozdíl dvojic (A, B), (A, C), (B, C) b) průnik všech tří množin, A B C AC c) 4/76

25 Dtový typ soubor 8 Soubor Soubor předstvuje část diskového prostoru, který obshuje určitá dt Bez ohledu n druh zřízení (pevný disk, floppy disk, flsh disk, CD ROM) se k souborům v prostředí progrmovcího jzyk přistupuje stejným způsobem Vlstní kce totiž řeší operční systém Kždý soubor je v rámci diskového prostoru oznčen názvem přístupovou cestou Z hledisk zprcování souborů můžeme rozdělit soubory podle různých kriterií Podle použití řídících znků: soubory tetové (orgnizovné do řádku; konec řádku má ordinální hodnotu #3#0), soubory netetové s udným typem, soubory netetové bez udání typu Podle druhu práce se soubory: soubory určené pouze pro čtení umožňují pouze získávání dt, soubory určené pouze pro zápis umožňují pouze uložení dt, soubory určené jk ke čtení, tk k zápisu umožňují dt získávt i ukládt 3 Podle způsobu zprcování dt v souboru: soubory zprcovávné postupně (sekvenčně) dt jsou ze souboru čten postupně v pořdí, jk jsou zpsán (u tetových souborů), soubory s přímým přístupem kždá složk souboru má své pořdové číslo, toto číslo můžeme použít pro skok n určitou složku (netetové soubory) 8 T e t o v é n e t e t o v é s o u b o r y Tetový soubor informce uvnitř souboru je chápán tkto: Znky jejichž ordinální hodnot je menší než 3, se chápou jko znky řídící, tj provede se předem dohodnutá kce Tyto hodnoty se nemusí zobrzit n výstupu Znky jejichž ordinální hodnot je 3 nebo větší jsou nositeli tetové informce Netetové soubory jsou opkem souborů tetových, při zprcování netetových souborů se znky s ordinální hodnotou menší než 3 nepovžují z znky řídící, le zprcují se jko jkékoliv jiné údje Tyto soubory dále dělíme n dvě skupiny podle uložených dt Jsou li všechn dt stejného typu (npř jen čísl rel nebo jen znky, nebo jen záznmy, td), pk hovoříme o netetových souborech s udným dtovým typem Netetové soubory bez udného dtového typu mohou obshovt údje různých dtových typů, tj směs čísel, znků záznmů, množin řetězců td 8 O t e v ř e n í u z v ř e n í s o u b o r u Otevření souboru je činnost, po jejímž úspěšném provedení nám operční systém umožní dlší práci se souborem jeho obshem Mimo jiné při otevření stnoveno, zd je soubor určen pro čtení, pro zápis nebo pro obojí Uzvření souboru je činnost, kterou operčnímu systému sdělujeme, že soubor již nebude používán 83 D e k l r c e s o u b o r u type MlMnozin = set of 0; SouborRelnychCisel = file of rel; SouborZnku = file of chr; {netetový} SouborMlychMnozin = file of MlMnozin;{nebo} SouborMlychMnozin = file of [0]; 5/76

26 Dtový typ soubor Proměnné dtového typu soubor pk můžeme deklrovt prostřednictví vytvořených identifikátorů dtových typů (v sekci type) nebo přímo: vr Rcisl znky obecnysoubor SouborZcisel : SouborRelnychCisel; : SouborZnku; : file; : file of integer; Pro tetové soubory je zveden zvláštní identifikátor vr tesoubor : tet; Pod deklrcí dtového typu soubor si musíme předstvit něco jiného než u proměnných všech dtových typů Při deklrci nevzniká v operční pměti soubor, le dtová struktur typu záznm, která obshuje všechny informce o souboru, jež jsou potřeb pro komunikci s operčním systémem 84 P r o c e d u r y f u n k c e p r o p r á c i s e s o u b o r y 84 K r o k y p ř i p r á c i s e s o u b o r y Propojení skutečného souboru s identifikátorem provedeme předdefinovnou procedurou ssign Má dv prmetry identifikátor skutečný název souboru Procedur je deklrován tkto: procedure ssign (vr Soubor; Nzev: string); ssign (TetSoubor, znkytt ); {konkétní příkld} Propojení skutečného souboru s identifikátorem musíme provést vždy před použitím souboru v následujících podprogrmech Otevření souboru je činnost, při níž určujeme, jké činnosti budeme se souborem dále provádět Rozlišujeme několik způsobů otevření souboru: Otevření pro čtení provádíme procedurou reset Tto procedur nství ktuální pozici n zčátek souboru Deklrce této procedury vypdá tkto: procedure reset(vr f[:file; velikostslozky :word]); { [nepovinné] } reset(tetsoubor); Důležitou podmínkou pro činnost této procedury je eistence skutečného souboru n disku Otevření pro zápis, které způsobí vytvoření nového souboru nebo, v př že soubor eistuje, zruší jeho strý obsh Aktuální pozice je tudíž n zčátku procedure rewrite(vr f[:file; velikostslozky :word]); rewrite (); {konkétní příkld} Otevření pro zápis n konec eistujícího souboru nzýváme někdy tké přidáváním k obshu souboru Tento způsob je možný pouze u tetových souborů Aktuální pozice v souboru je utomticky nstven z poslední znk procedure ppend(vr TetSoubor:tet); ppend(tetsoubor); {konkétní příkld} Uzvření souboru pro všechny typy souborů provádíme procedurou close s touto deklrcí: procedure close(vr f); close (TetSoubor); {konkétní příkld} Vyprázdnění vyrovnávcí pměti u tetových souborů probíhá procedurou flush: procedure flush(vr TetSoubor:tet); flush(tetsoubor); {konkétní příkld} 6/76

27 Dtový typ soubor Č t e n í z á p i s d o t e t o v ý c h s o u b o r ů Provádíme již známými procedurmi red, redln, write, writeln Jediná odchylk spočívá v zápisu prmetrů procedur Jko první prmetr je třeb uvést identifikátor souboru Totéž pltí pro vyhledávcí funkce eof, eoln, seekeof, seekeoln vr t :tet; znk :chr; while not seekeof(t) do red(t,znk); {ze souboru, jemuž je přiřzen identifikátor t v cyklu nčítáme jednotlivé znky dokud není vyhledán konec souboru} P r á c e s e s o u b o r y s u d n ý m t y p e m V netetových souborech nelze použít procedury redln writeln funkce eoln, seekeof seekeoln, jink čtení přípdně i zápis vypdá stejně red(in_file,znk); red(in_file,cislo); red(in_file,prom); 7/76

28 Dtový typ soubor Příkldy: ) Zčněme jednoduchým příkldem Uložte do souboru znky zdné uživtelem z klávesnice Tyto znky oddělujte mezermi, dokud uživtel nestiskne klávesu k ) Vzniklého souboru z příkldu ) využijeme v následujícím příkldu Budeme ho totiž povžovt z vstupní soubor, tzn, že mu nejdříve změňme název n vstuptt Znky z něj budeme postupně nčítt ukládt do souboru vystuptt Ve výstupním souboru budou znky s ordinální hodnotou o jedn vyšší Nkonec si zkuste libovolnou řetězcovou konstntu zdnou terminálně dopst n konec souboru vystuptt 3) Npište progrm, který njde do tetového souboru zpíše prvočísl do m, kde m bude konstnt Soubor bude mít jednoduchou hlvičku ve tvru: "Prvočísl do " Funkci progrmu vyzkoušejte hledáním prvočísel do Přeložený progrm vytvoří soubor prcisltt v kořenovém dresáři disku D 4) Npište progrm, který provede inverzi binárního kódu (libovolná posloupnost nul jedniček) Vstupní soubor bude tetový nzvěte jej vstuptt Inverze kódu bude uložen v souboru vystuptt v kořenovém dresáři n disku D: Co se rozumí inverzí binárního kódu ukzuje následující příkld inverze ) V tomto příkldu si vyzkoušíme nčíst čísl z tetového souboru, jež bude obshovt čísl do 0, uložit je do souboru netetového všk s udným dtovým typem (typ: intervl 0) Vystupní spoubor nzvěte vystup5tt 6) Opět využijeme předchozího příkldu resp souboru vystup5tt, který nm nyní poslouží jko soubor vstupní Nčtěte z něj všechn čísl vytiskněte je n obrzovku následně jejich průměr 7) Npište progrm, který vytvoří soubor s udným dtovým typem Tímto typem bude celočíselný (integer) Počet čísel v souboru bude presně dán vyzvou uživteli (npř zdejte tři přirozená čísl) Smotná čísl zdá uživtel terminálně t pk budou uložen do souboru s názvem decdt V druhém progrmu ověřte, zd se dt správně uložil, tím že je zpětně nčtete ze souboru vytisknete je n obrozovku 8) Npište progrm, který nčte dt z tetového souboru, přetypuje uloží do souboru s uvedeným typem Vstupní soubor bude obshovt posloupnost náhodně zdných čísel z intervlu od do 0 Tento soubor pojmenujte vstuptt uložte do rootu n disk D: Výstupní soubor umístěte tmtéž pojmenujte vystupdt Dále čísl souboru vystupdt uložte do pole nlezněte jeho minimum Vytiskněte jej n obrzovku 8/76

29 Řešení 3 příkldu: Progrm Pr_3; uses crt; vr m, :integer; s_out :tet; Dtový typ soubor function jeprvocislo(n:integer):boolen; vr pom: boolen; i :byte; pom:=flse; for i:= to (n-) do if (n mod i)=0 then pom:=pom or true else pom:=pom or flse; if (pom=flse) then jeprvocislo:=true else jeprvocislo:=flse; clrscr; writeln('zdej do, ktereho cisl se mji hledt prvocisl:'); red(m); ssign(s_out,'d:\file\prcisltt'); rewrite(s_out); writeln(s_out,'prvocisl do ', m, ' jsou:'); for := to m do if(jeprvocislo()=true) then write(s_out,,' '); close(s_out); {repet until keypressed;} end 9/76

30 Procedury funkce 9 Podprogrmy Smosttné části progrmu, které zprvidl slouží k vykonání stále se opkující činnosti V důsledku jejich použití se znčně zpřehledňuje zdrojový kód progrmu Podprogrmy jsou dvojího druhu procedury funkce 9 P r o c e d u r y f u n k c e Chápeme jko sekvenci příkzů, která řeší ucelenou dílčí úlohu Této sekvenci je přidělen identifikátor, který můžeme použít ve zbývjící části progrmu jko náhrdu z zmíněnou sekvenci příkzů Rozdíl mezi procedurou funkcí je, že funkce vrcí n místo, odkud je zvolán, hodnotu Tzn, ke kždé funkci musíme nvíc ještě určit dtový typ výsledné (návrtové) hodnoty někde v těle funkce musíme uvést přiřzovcí příkz, kterým identifikátoru funkce přiřdíme vypočtenou hodnotu 9 P r o c e d u r y Hned v úvodu si uveďme příkld jednoduché procedury: procedure NkresliCru writeln( ); V nšem příkldu je tělo procedury tvořeno jedním příkzem (volání procedury writeln) Činnost procedury by měl být zřejmá i z jejího názvu A nyní si ukžme, použití této procedury v těle progrmu red(,b); writeln( _opernd:,); writeln( _opernd:,b); NkreskliCru; writeln( soucet operndu:,+b); NkresliCru; 9 F u n k c e Opět si pojďme pojem funkce demonstrovt n jednoduchém příkldu Identifikátor funkce je Pi Funkce je tvořen jedním příkzem, který přiřdí identifikátoru funkce výslednou hodnotu function Pi: etended; {etended typ rcionálního čísl} Pi:= ; V progrmu pk funkci použijeme následovně: red(r); o:=*pi*r; S:=Pi*r*r; 9 P r m e t r y p o d p r o g r m ů Zprvidl podprogrmy obshují se svými identifikátory ještě seznm hodnot nebo proměnných, se kterými prcují Tyto hodnoty nzýváme prmetry podprogrmu Pojďme si uvést několik příkldů red(plochctverce){poznáte, kdy jde o proceduru resp funkci?} strnctverce:=sqrt(plochctverce); writeln( strn ctverce je: ; strnctverce); 30/76

31 93 M í s t n í s p o l e č n é d e k l r c e Tuto problemtiku si opět přiblížíme n jednoduchém příkldu: progrm Pokus; vr z,z :chr; procedure PrehodZnky; vr pom :chr; pom:=z; z:=z; z:=pom; redln(z,z); writeln(z,z); PrehodZnky; writeln(z,z); end Procedury funkce Deklrci proměnných z z nzýváme společnou (globální) Tyto proměnnou jsou použitelné jk v hlvním progrmu tk i v podprogrmu PrehodZnky Příkldem místní (lokální) deklrce je proměnná pom Tto proměnná pltí pouze pro podprogrm PrehodZnky Příkld: Npište si tento progrm zkuste v těle progrmu přiřdit proměnné pom hodnotu s 94 P ř e d e p s n é s k u t e č n é p r m e t r y p o d p r o- g r m ů Prmetry podprogrmů využíváme k přenosu hodnot do podprogrmů Proto podprogrmy nvrhujeme tk, bychom co nejvíce využívli prmetrů pokud možno nepoužívli proměnné deklrovné v hlvním progrmu Prmetry podprogrmů v místě deklrce nzýváme předepsné (formální) prmetry, ztímco v místě volání procedury (funkce) se jedná o skutečné prmetry Seznm skutečných prmetrů seznm formálních prmetrů musí vzájemně odpovídt jk v počtu, tk v pořdí i v dtových typech jednotlivých prmetrů Kdy s e jedná o formální resp skutečný prmetr si pojďme ukázt n příkldu vr prumer,vysk: rel; function ObjemVlce(d,v: rel):rel; {misto deklrce formlni p} {telo progrmu} objemvlce(prumer,vysk); {misto volni skutecne p} end 3/76

32 Procedury funkce 95 P r m e t r y n h r z e n é h o d n o t o u o d k z e m Dv způsoby náhrdy prmetrů si opět ukážeme n příkldech Progrm Prmetry_nhrzene_hodnotou; uses crt; Progrm Prmetry_nhrzene_odkzem; uses crt; vr z,z :chr; vr z,z :chr; procedure Zmen(,y:chr); vr pom:chr; pom:=; :=y; y:=pom; writeln('vypis z procedury "Zmen"'); writeln('z=',); writeln('z=',y); procedure Zmen(vr,y:chr); vr pom:chr; pom:=; :=y; y:=pom; writeln('vypis z procedury "Zmen"'); writeln('z=',); writeln('z=',y); clrscr; 0 writeln('zdej znk z: '); 0 redln(z); 03 writeln('zdej znk z: '); 04 redln(z); 05 Zmen(z,z); 06 writeln('vypis z tel progrmu'); 07 writeln('z=',z); 08 writeln('z=',z); repet until keypressed; end 3/76 clrscr; 0 writeln('zdej znk z: '); 0 redln(z); 03 writeln('zdej znk z: '); 04 redln(z); 05 Zmen(z,z); 06 writeln('vypis z tel progrmu'); 07 writeln('z=',z); 08 writeln('z=',z); repet until keypressed; end V progrmu Prmetry_nhrzene_hodnotou se záměn provedl uvnitř procedury Zmen Procedur writeln n řádcích všk vypsl hodnoty, jko by vůbec žádn výměn neproběhl Prmetr, který je nhrzován hodnotou, se chová jko místní proměnná, tzn pltí pouze uvnitř podprogrmu, nikoli vně Progrm Prmetry_nhrzene_odkzem se bude chovt jink Prmetry procedury (funkce) předstvují totiž vždy konkrétní proměnnou (tj tu, kterou jsme uvedli v seznmu skutečných prmetrů) Tímto způsobem jsou operce s prmetry ve skutečnosti operce s konkrétní proměnnou Tzn, že změn hodnoty provedená uvnitř podprogrmu se projeví i po návrtu do hlvního progrmu Díky tomuto můžeme hodnoty nejenom dovážet do podprogrmu, le i vyvážet zpět Progrm PR_6; uses crt; vr z,e :integer; function umocni (,n:integer):integer; vr i :byte; pom :longint; pom:=; for i:= to n do pom:=pom*; umocni:=pom clrscr; writeln('zdej zkld mocniny: '); red(z); writeln('zdej eponent: '); red(e); writeln(umocni(z,e)); repet until keypressed; end

33 Procedury funkce 96 R e k u r z e r e k u r z i v n í p o d p r o g r m y Příkzová část podprogrmu může obshovt volání jiných podprogrmů, ť již procedur nebo funkcí Situce, kdy podprogrm vol sám sebe, nzýváme rekurzivním voláním nebo rekurze Rekurzi můžeme využít pro řešení úloh, jejichž lgoritmus je sám o sobě rekurzivně definován Typickým příkldem je výpočet největšího společného dělitele nebo fktoriálu Progrm NSD_rekurzivne; uses crt; vr,b :integer; function NSD(,y:integer):integer; if =y then NSD:= else if (>y) then NSD:=NSD(-y,y) else NSD:=NSD(,y-); Progrm fct_rekurzivne; uses crt; vr :integer; function fct(n:integer):integer; if n=0 then fct:= else fct:=n*fct(n-); clrscr; write('zdej : '); red(); write('zdej b: '); red(b); NSD(,b); writeln('d(',,',',b,')=',nsd(,b)); repet until keypressed; end clrscr; write('zdej : '); red(); writeln('!=',fct()); repet until keypressed; end 33/76

34 Procedury funkce Příkldy: Npište progrm, který počítá druhou mocninu přirozeného čísl užitím funkce Npište proceduru, která vypíše řdu hvězdiček Počet hvězdiček je uveden jko prmetr procedury 3 Npište progrm, ve kterém pomocí procedury zmen, změníte obsh dvou pměťových buněk typu chr 4 Npište proceduru s názvem prohod, která prohodí dvě zdná čísl y pokud je > y Proceduru užijte v krátkém progrmu pro ověření funkce 5 Npište progrm, který s využitím funkce vypočítá objem válce vytiskne jej n obrzovku Vstupními prmetry jsou poloměr podstvy výšk válce Tyto jsou zdávány terminálně 6 Npište progrm v něm funkci umocni Formálními prmetry této funkce budou zákld mocniny eponent Funkce umocní dný zákld dným eponentem 7 Npište progrm, který poslouží k úprvě zlomku n zákldní tvr Funkce NSD bude mít z úkol njít největší společný dělitel čittele jmenovtele Vstupními hodnotmi budou čittel jmenovtel zlomku, výstupní zlomek v zákldním tvru 8 Vytvořte funkci, která v krtézské soustvě souřdnic vypočítá vzdálenost dvou bodů Souřdnice těchto bodů jsou prmetry funkce 9 Funkci, sestvenou v předchozím příkldu, využijte v progrmu, který ze vstupního souboru získá souřdnice vrcholů trojúhelníku vypočítá jeho obvod 0 Funkce signum je definovná tk, že pro kldné hodnoty prmetru dává hodnotu, pro záporné pro nulu dává nulu Sestvte tuto funkci použijte ji Nprogrmujte proceduru, která zjistí, zd trojúhelník zdný třemi strnmi, je prvoúhlý Formální prmetry této procedury budou délky strn trojúhelníku Terminálně zdejte souřdnice pěti bodu v rovině Spočítejte délku lomené čáry vzniklé spojením těchto bodů v tkovém pořdí, jk jsou zdávány Využijte k tomu funkce nprogrmovné v příkldu osmém 3 Npište funkci, která určí největší společný dělitel dvou zdných čísel b pomocí nznčeného Eukleidov lgoritmu: Vytvořte rovněž druhou funkci, která určí nejmenší společný násobek zdných čísel S výhodou k tomu můžete využít vlstnosti, že součin čísel b je roven součinu jejich největšího společného dělitele nejmenšího společného násobku, bn b b D, 4 Npište proceduru, která nplní čtvercovou mtici pořádcích postupně čísly,, 3, 34/76

35 Dynmická proměnná 0 Dynmická proměnná Dtové typy, o kterých byl doposud řeč (vyjm typu soubor) mjí přesně definovnou velikost Čili proměnná je při deklrci umístěná do konkrétního míst v operční pměti n tomto místě zůstává po celou dobu Těmto proměnným se říká sttické proměnné Kromě toho eistují tké dynmické proměnné Okmžik jejich vzniku či zániku není dán deklrcí, le zvláštním příkzem pro vytvoření nebo zánik dynmické proměnné Deklrujme jednu číselnou proměnnou: vr cislo: rel; Do tbulky identifikátorů se zpíše nový identifikátor cislo informce, že se jedná o dtový typ rel (6B), v neobszené části operční pměti se vyhrdí prostor o této velikosti Adres míst v operční pměti, kde se nchází tento šestibytový úsek, se přiřdí k identifikátoru Když v progrmu npíšeme příkz cislo:=55; přiřzujeme tuto hodnotu ve skutečnosti do operční pměti n dresu, která je spřžen s identifikátorem cislo Chceme -li vytvořit v operční pměti vytvořit dynmickou proměnnou (tj proměnnou, jejíž místo není předem určeno), musíme nejprve vytvořit sttickou proměnnou typu ukztel, ve které se bude uchovávt dres dynmické proměnné Deklrujeme proměnnou typu ukztel: vr dynmcislo: ^rel; Znk ^ je oznčením skutečnosti, že proměnná dynmcislo je dtového typu ukztel Potom můžeme v progrmu zpst New(dynmcislo); tím zbezpečíme: vytvoření úseku o velikosti 6 bytů (velikost proměnné rel), vložení dresy tohoto míst do proměnné dynmcislo, Chceme-li přiřdit hodnotu do tkto vytvořené dynmické proměnné, npíšeme dynmcislo^:=55,; tím proběhnou dvě kce: nejprve se zjistí hodnot v proměnné dynmcislo, poté se n tuto dresu přiřdí zdná hodnot 35/76

36 36/76 Dynmická proměnná 0 O p e r c e n d d t o v ý m t y p e m u k z t e l Mějme tento zdrojový tet const pi=34597; vr u,v :^rel; new(u); new(v); u^:=((pi/)); writeln(u^:6:4); v:=u; {ukztel "v" ukzuje n stejnou dresu v pmeti PC jko ukztel u, tj n n promennou dtoveho typu rel v niz je prirzen hodnot pi/} {v:=nil;} writeln(v^:6:4); end Proměnná v nbývá stejné hodnoty jko u obě ukzují n stejné místo v pměti (n stejnou hodnotu) Protože jsou stejného dtového typu, můžeme provést relční operce zjištěni rovnosti nerovnosti pomocí operátorů = < > 0 L i n e á r n í s e z n m y Seznm si můžeme předstvit jko posloupnost prvků, kde vzb určuje následník, přípdně předchůdce, vždy všk nejvýše jednoho (n rozdíl od stromu) Mohou být: lineární seznm jednosměrný, lineární seznm obousměrný 0 L i n e á r n í s e z n m j e d n o s m ě r n ý V jednosměrném lineárním seznmu obshuje vzební část odkz jen n následující prvek Příkld tkového seznmu je znázorněn n obrázku Seznm je dtovou bstrkcí, ve které můžeme odebírt ukládt prvek n libovolném místě Příkld vytvoření lineárního seznmu v jzyku Pscl: type uktyppr =^typprvku; typprvku = record n : integer; {dtová část} netpr : uktyppr; {vzební část} vr zctek,prvek,prvek,prvek3 : uktyppr; procedure Tisk_n(zc: uktyppr); while zc<>nil do writeln(zc^n); zc:=zc^netpr;

37 Dynmická proměnná {Ukztel zctek odkzuje n prvek seznmu V následujícím kroku zjistíme (klíčovým slovem nil ), že hodnot tohoto ukztele je prázdná} zctek:=nil; {Následující čtyři příkzy řeší vložení nového prvku3 n zčátek seznmu} new(prvek3); prvek3^n:=3; prvek3^netpr:= zctek; zctek:=prvek3; {vytvoření prostoru pro nový prvek} {vzb mezi prvky} {počáteční ukztel ukzuje n prvek3} {Následující čtyři příkzy řeší vložení nového prvku n zčátek seznmu} new(prvek); prvek^n:=; prvek^netpr:= zctek; zctek:=prvek; {Následující čtyři příkzy řeší vložení nového prvku n zčátek seznmu} new(prvek); prvek^n:=; prvek^netpr:= zctek; zctek:=prvek; Tisk_n(zctek); end Poznámk: Odstrňování nektuálních dynmických proměnných z pměti se děje pomocí procedury dispose Npř dispose(p); kde P je proměnná typu ukztel V uvedeném příkldu vytvoříme lineární seznm tří prvků, všk v opčném pořdí, než jsme je vytvářeli Procedurou Tisk_n vytiskneme hodnotu n všech tří prvků Tento lgoritmus(tisk_n) je konkrétním příkldem obecného lgoritmu průchodu lineárním seznmem Dlšími opercemi, které můžeme v seznmu použít jsou: hledání prvku, vyřzení prvku, vložení prvku do seznmu V následujícím příkldu jsou použity tyto operce progrm Aut_seznm; uses wincrt; type u=^uto; uto=record zn rok_vyroby brv pocet_dveri bourne vzb :string; :longint; :string; :byte; :boolen; :u; 37/76

38 vr zctek rok_vyr :u; :longint; Dynmická proměnná {procedur pro vlozeni noveho ut} procedure vloz_nove_uto(vr u_p:u; zn_p:string; rok_vyroby_p:longint; brv_p:string; pocet_dveri_p:byte; bourne_p:boolen); vr nove_uto: u; new(nove_uto); nove_uto^zn:=zn_p; nove_uto^rok_vyroby:=rok_vyroby_p; nove_uto^brv:=brv_p; nove_uto^pocet_dveri:=pocet_dveri_p; nove_uto^bourne:=bourne_p; {vytvoreni vzby} nove_uto^vzb:=u_p; u_p:=nove_uto; {procedur, kter vytiskne vsechn ut n obrzovku} procedure tisk_uto(u_p:u); while(u_p<>nil)do writeln(u_p^zn,'-',u_p^rok_vyroby,', brv: ',u_p^brv,', pocet dveri: ',u_p^pocet_dveri); u_p:=u_p^vzb; {funkce, kter hled ut podle roku vyroby} function Njdi_rok_vyroby(u_p:u; rok_vyroby_p:longint):u; while(u_p<>nil) nd (u_p^rok_vyroby<>rok_vyroby_p) do u_p:=u_p^vzb; Njdi_rok_vyroby:=u_p; clrscr; {vytvrime seznm pomoci procedury "vloz_nove_uto"} zctek:=nil; vloz_nove_uto(zctek,'audi',989,'modr',5,true); vloz_nove_uto(zctek,'mzd',995,'bil',3,flse); vloz_nove_uto(zctek,'mercedes',985,'cerven',5,true); vloz_nove_uto(zctek,'ford',000,'zelen',3,flse); {tisk vsech ut} tisk_uto(zctek); end write('zdejte rok vyroby ut: '); red(rok_vyr); writeln(njdi_rok_vyroby(zctek,rok_vyr)^zn); 38/76

39 Dynmická proměnná 0 L i n e á r n í s e z n m o b o u s m ě r n ý Obousměrný lineární seznm je rozšířením jednosměrného seznmu, protože obshuje odkzy jk n následující, tk n předchozí prvek Uveďme si příkld tkovéto deklrce: Progrm obousmerny_liner_seznm; uses wincrt; type u=^pr_seznmu; pr_seznmu= record c :integer; {dtov cst seznmu} p,n :u; {vzb n predchozi nsledujici prvek} vr s :u; {procedur pro vlozeni noveho prvku} procedure vloz_novy_pr(vr s :u; n_p :integer); new(s); s^c:=n_p; s^p:=nil; s^n:=nil; {procedur pro vlozeni noveho prvku z dny prvek} procedure vloz_z(vr u_p :u; n_p :integer); vr new_z :u; new(new_z); new_z^c:=n_p; new_z^n:=u_p^n; new_z^p:=u_p; u_p^n:=new_z; if new_z^n<>nil {jen pokud nejsme n konci seznmu} then new_z^n^p:=new_z; {procedur pro vlozeni noveho prvku pred dny prvek} procedure vloz_pred(vr u_p :u; n_p :integer); vr new_pred :u; new(new_pred); new_pred^c:=n_p; new_pred^p:=u_p^p; new_pred^n:=u_p; if u_p^p<>nil {jen pokud nejsme n zctku seznmu} then u_p^p^n:=new_pred; u_p^p:=new_pred; clrscr; s:=nil; vloz_novy_pr(s,); vloz_z(s,); vloz_pred(s,3); write(s^p^c,' '); write(s^c,' '); 39/76

40 write(s^n^c,' '); repet until keypressed; Dynmická proměnná end 40/76

41 Dynmická proměnná Obousměrný lineární seznm je rozšířením jednosměrného lineárního seznmu, protože obshuje odkzy jk n následující, tk i n předcházející prvek Znázorňuje to následující deklrce: type uktypprob typprob =^typprob; = record n :integer; prevpr,netpr : uktypprob; 03 Z á s o b n í k Zásobník je dynmická dtová struktur, do které se ukládjí prvky určitého typu odebírjí se v opčném pořdí Metod LIFO (lst-in, first-out) Chrkterizují ho operce: vytvoření prázdného zásobníku, uložení prvku n vrchol zásobníku, odebrání prvku z vrcholu zásobníku, test prázdnosti zásobníku 04 F r o n t Front je dtová struktur, ve které se prvky odebírjí v tom pořdí, v jkém do ní byly uloženy Pměť typu FIFO (first-in, first-out) 03 S t r o m o v é s t r u k t u r y Strukturu typu strom můžeme definovt buď jko prázdnou strukturu, prázdný strom (obdob prázdného seznmu) nebo jko vrchol (prvek), ke kterému je připojen konečný počet stromových struktur, nzývných podstromy V pri mjí největší význm stromy, kde vrchol má určeny dv následníky Tyto stromy se nzývjí binární stromy Pojmem vrchol u stromové struktury oznčujeme prvek, který bývá zprvidl deklrován tkto: type ukvrchol vrchol =^vrchol; = record dtovslozk : TypDtovSlozky; levypodstr,prvypodtrom : ukvrchol; Pojmy: kořen stromu - uzel, který není následníkem žádného uzlu listy - uzly, které nemjí následníky N obrázku je příkld stromové struktury Stromová struktur předstvuje b/ c * d e* f výrz 4/76

42 Knihovny K n ihovny podprogrmů v jzyce Pscl Knihovnou podprogrmů rozumíme obvykle soubor, který obshuje již připrvené smosttné podprogrmy Účelem knihoven je zrychlit tvorbu progrmů, protože řd podprogrmů může být použit v různých progrmech Tvůrce těchto knihoven si svoje podprogrmy vytvoří sám pk je používá Knihovny můžeme rozdělit podle původu n dv druhy: stndrdní knihovny jejich tvůrcem je utor implementce jzyk Společně s jzykem jsou dodávány ovšem pouze ve strojovém kódu uživtelské knihovny tvůrcem může být kdokoliv Výhodou je eistence zdrojového tetu S t n d r d n í k n i h o v n y v j z y c e P s c l Mezi ty nejčstěji používné ptří: system je nejdůležitější knihovnou podprogrmů Obshuje podprogrmy jko jsou red, redln, write, writeln, eof, eoln, bs, ep, sqrt Tto knihovn je připojen ke kždému progrmu utomticky crt je určen pro práci s obrzovkou, obshuje prostředky pro práci s brvmi, pohyb kurzoru, čtení kláves pod printer obshuje definici tetového soubrust, který je přiřzen n zřízení LPT (zprvidl tiskárn) operčního systému DOS grph obshuje celou řdu prostředků pro práci s grfikou, kreslení geometrických útvrů, pohyb grfického kurzoru, práci s brvmi, několik fontů pro grfický režim dos je knihovn, která podporuje propojení prostředí jzyk Pscl s operčním systémem Obshuje podprogrmy pro správu souborů, jejich tributu, disku, systémového dt čsu, přístup k registrům procesoru, k vektorům přerušení k proměnným systémového prostředí Z dlších eistujících knihoven uveďme npříkld grph3, overly, windos, td Příkld: Vyzkoušejte si lespoň tři procedury (funkce) z implementovných knihoven CRT, GRAPH T v o r b v l s t n í c h k n i h o v e n Vlstní knihovn má tři části: Rozhrní (interfce), v němž je soupis všech deklrci, které mjí být přístupné z osttních knihoven nebo z hlvního progrmu Struktur deklrční části je stejná jko u smotných progrmu, tzn: ) úsek deklrcí konstnt ) úsek deklrcí typů 3) úsek deklrcí proměnných 4) hlvičk procedury nebo funkce Zdrojový tet knihovny (implementtion), kde jsou těl všech podprogrmů, která byl uveden v rozhrní Zde můžeme deklrovt dlší dtové typy, konstnty, proměnné podprogrmy jko místní deklrce v této knihovně, tedy nepřístupné z venku Inicilizční část, která je nepovinná ve které můžeme provést nějké počáteční, nebo příprvné kce jko npříkld nstvení hodnot, kontrol souborů pod Zdrojový tet knihovny ukládáme do souboru, jehož název musí splňovt dvě podmínky: jméno souboru musí být stejné jko jméno knihovny+přípon ps (npř kn_ps) Kompilcí souboru vznikne stejnojmenný soubor s příponou tpu (tpu=turbo Pscl Unit) Poznámk: Součástí deklrční části progrmu nebo knihovny je vyhrzené slovo uses, které uvádí seznm připojovných knihoven 4/76

43 Pro ilustrci si předveďme následující příkld: my_k_ps unit my_k_; interfce vr implementtion {nzev souboru=nzev knihovny} {zde zcin rozhrni} NzevKnihovny: string; function Secti(,b:integer):integer; function Nsob(,b:integer):integer; procedure NkresliCru; function Secti (,b:integer):integer ; {zd zcin vlstní deklrce podprogrmu} secti:=+b; function nsob (,b:integer):integer; procedure NkresliCru; end nsob:=*b; writeln(' '); {zde zcin inicilizcni cst} NzevKnihovny:='Mt_op_0_(c)_005'; progrm Zkus_knihovnu; uses my_k_,crt; vr end,b:integer; writeln('zdej :'); redln(); writeln('zdej b:'); redln(b); {pripojeni knihoven} writeln('+b=',secti(,b)); NkresliCru; writeln('*b=',nsob(,b)); Knihovny 43/76

44 Knihovny K r u h o v é o d k z y m e z i k n i h o v n m i Knihovny mohou používt deklrce z jiných knihoven Budeme li předpokládt, že máme knihovny K_, K_, K_3, potom můžeme zpst tyto odkzy: unit K_; interfce uses K_3; implementtion end unit K_; interfce uses K_3; implementtion end unit K_3; interfce implementtion end Hlvní progrm pk bude mít podobu: progrm Pripoj_K 3; uses K_,K_; {nebo uses K_, K_, K_3} end Nemůžeme všk zpst následující odkzy, protože by došlo l uzvření kruhu při odkzech unit K_; interfce uses K_; implementtion end unit K_; interfce uses K_3; implementtion end unit K_3; interfce uses K_; implementtion end 44/76

45 Knihovny Příkldy: ) S využitím helpu (ctrl+f) vyzkoušejte lespoň tři procedury (funkce) jednotky crt, vysvětlete jejich synti význm ) S využitím helpu (ctrl+f) inicilizujte jednotku grph Dále nkreslete kruh Příslušnou proceduru k jeho vykreslení njdete opět v helpu 3) Sestvte knihovnu mtemtických funkcí, které nejsou k dispozici v jzyce Pscl, npř třetí mocnin ( ), tngens (tg), dekdický logritmus ( log ), n-tá mocnin ( 3 n ) 4) Sestvte dvě knihovny (fctoriltbu, komb_cislotbu) Z názvu už vyplývá co budou mít tyto knihovny z úkol fctoriltbu bude rekurzivně počítt fktoriál přirozeného čísl komb_cislotbu bude počítt kombinční číslo (n nd k) Tyto knihovny provžte druhou z nich použijte v hlvním progrmu, kde uživtel terminlně zdá prmetry funkce pro výpočet kombinčního čísl (i tyto deklrujte v knihovně) výsledek vytiskne n obrzovku 5) Sestvte knihovnu pro výpočet determinntu 3 řádu, připojte ji vyzkoušejte v hlvním progrmu 45/76

46 Objektové progrmování Dtový typ objekt objektově orient o- vné progrmování Objekt je definován jko dtový typ, který obshuje jednk dtové složky, jednk odkzy n podprogrmy, které zjišťují operce nd dtovými složkmi Dtový typ objekt je zákldním stvebním kmenem objektově orientovných progrmů V jzyce Turbo Pscl je tento dtový typ oznčen vyhrzeným slovem object Jeho synt se n první pohled podobá dtovému typu záznm Zákldní vlstnosti objektů jsou: zpouzdřenost (encpsultion) - vyjdřuje sloučení dtových složek ovládcích podprogrmů do jednoho celku, dědičnost (inheritnce) - předstvuje schopnost přebírt vlstnosti jiného objektu, slučitelnost - dědic vždy přebírá slučitelnost svých předchůdců, nikoliv nopk mnohotvrost je propojen s dědičností, protože se jedná o vlstnost skupiny objektů, které mjí společného předk Objekt jko jeden celek je tvořen seznmem dtových složek ve stejném tvru jko u typu záznm seznmem podprogrmů, které se nzývjí metody objektu Podprogrmy si lze předstvit jko ukztele n příslušné procedury funkce Ukžme si příkld, který využije dtový typ object Dtové složky jsou vysk sirk, podprogrmy zmennctverec, obvod obsh Progrm obd_objekt; type obdelnik = object sirk vysk :integer; :integer; procedure zmennctverec(vr,b:integer); function obvod(,b:integer):integer; function obsh(,b:integer):integer; Definici objektu je potřebné ještě doplnit o těl metod, tj podprogrmů, přičemž hlvičky není nutné opkovt Těl se doplňují kdekoliv dále v deklrční části Aby bylo ptrné, ke kterému objektu metod ptří (různé objekty mohou mít stejně pojmenovné metody), je u deklrce těl metody uveden identifikátor objektu, npříkld: procedure obdelnikzmennctverec; if <>b then :=b; function obdelnikobvod; obvod:=*(+b); function obdelnikobsh; obsh:=*b; 46/76

47 Objektové progrmování Uvnitř těl metody jsou všechny prvky dného objektu přímo přístupné (použitím identifikátoru dtového typu Obdelnik je zcel zřejmé, o jký objekt se jedná) Pokud by mělo dojít k nějké kolizi jmen, můžeme použít utomticky předávný prmetr self, který předstvuje ukztel n dný objekt Zápisem selfsložk tedy můžeme jednoznčně pojmenovt složku objektu odlišit ji od jiné proměnné nebo procedury Z á k l d n í m n i p u l c e s o b j e k t e m Předpokldejme deklrci dtového typu objekt: vr o_,o_ :obdelnik; Přístup k jednotlivým složkám objektů zpíšeme stejně jko u dtového typu záznm, tj mezi jméno objektu jméno složky zpíšeme tečku, nebo použijeme příkz with Vše je zřejmé z následujícího úseku zdrojového kódu: writeln('zdej sirku () obdelniku:'); redln(o_sirk); writeln('zdej vysku (b) obdelniku:'); redln(o_vysk); write('obvod obdelniku je: '); write(o_obvod(o_sirk,o_vysk)); writeln; write('obsh obdelniku je: '); write(o_obsh(o_sirk,o_vysk)); writeln; o_zmennctverec(o_sirk,o_vysk); end writeln('po zvolni procedury "zmennctverec" je =',o_sirk,', b=',o_vysk); Z p o u z d ř e n o s t o b j e k t ů Z příkldu je vidět zpouzdřenost, tj všechny složky včetně opercí tvoří jeden celek Zpouzdřenost všk spočívá i v tom, že práce s dtovými složkmi je svěřen výhrdně metodám (podprogrmům) objektu 3 D ě d i č n o s t o b j e k t ů Dědičnost objektů je velmi význmná vlstnost umožňující opětovné použití již odlděného kódu Předpokládejme eistující objekt lepsi_obdelnik, který chceme zdokonlit npříkld tím, že oproti původnímu objektu bude nvíc disponovt funkcí pro výpočet úhlopříčky obdélníku vypoctiuhlopricku Nvíc přidáme jednu dtovou složku sice úhlopříčku u Součsně všk chceme v jiných přípdech používt původní objekt 47/76

48 Objektové progrmování Nový objekt zdědí funkce pro výpočet obvodu obshu, přibude nová funkce pro výpočet úhlopříčky obdélníku proceduru zmennctverec uprvíme tk, by měnil n čtverec, jehož strnou bude vždy t krtší strn z, b Deklrce tkového objektu bude mít následující tvr: lepsi_obdelnik=object(obdelnik) {zdedeni vlstnosti objektu "obdelnik"} uhloprick:rel; {nov dtov slozk} function vypoctiuhlopricku(,b:integer):rel; {nov funkce} procedure zmennctverec(vr,b:integer); {tto metod se bude chovt jink} Funkce vypoctiuhlopricku procedur zmennctverec vypdjí tkto: function lepsi_obdelnikvypoctiuhlopricku; vypoctiuhlopricku:=sqrt(sqr()+sqr(b)); procedure lepsi_obdelnikzmennctverec; if <b then b:= else :=b; 4 S l u č i t e l n o s t o b j e k t ů Schopnost dědit vlstnosti objektů je zchycen v prvidlech pro slučitelnost dtových typů v jzyce pscl Dědic vždy přebírá slučitelnost svých předchůdců, nikoliv nopk Předpokládejme dv již známé objekty, npříkld obdelnik, lepsi_obdelnik následující deklrce: vr o_ :obdelnik; o_3 :lepsi_obdelnik; procedure zdvojnsob(obd: obdelnik); obdsirk:=*obdsirk; obdvysk:=*obdvysk; writeln('=',obdsirk,', b=',obdvysk); Slučitelnost objektů pk umožňuje provést tyto příkzy: o_:=o_3; {tento prikz lze provest} o_3:=o_; {nelze / type mismtch} procedure zdvojnsob(o_3); {tento prikz lze provest} Je tomu tk proto, že n levé strně přiřzení musí dojít k obszení všech položek, což nstne jen tehdy, nchází-li se tm objekt identický nebo předchůdce V opčném přípdě by k obszení všech složek nedošlo, zůstly by v nich nedefinovné hodnoty mohlo by to vést ke zhroucení progrmu 48/76

49 Objektové progrmování 5 M n o h o t v r o s t o b j e k t ů Mnohotvrost je propojen s dědičností, protože se jedná o vlstnost skupiny objektů, které mjí společného předk Uvžujme opět objekty typu obdelnik lepsi_obdelnik předpokládejme následující úsek progrmu: vr o_, o_3 :obdelnik; :lepsi_obdelnik; function obsvzniklehoctverce(obd: obdelnik):longint; {*} obdzmennctverec(obdsirk,obdvysk); obsvzniklehoctverce(o_3); end obsvzniklehoctverce:=sqr(obdsirk); Poždujeme, by funkce obsvzniklehoctverce přetvořil obdélník n čtverec následně vrátil obsh tkto vzniklého čtverce Syntkticky je progrm v pořádku, protože slučitelnost zručuje, že z formální prmetr obd: obdelnik lze dosdit skutečný prmetr o_3: lepsi_obdelnik Musíme si všk uvědomit, která procedur bude volán n řádku {*}, zd procedur obdelnikzmennctverec, nebo procedur lepsi_obdelnikzmennctverec Při překldu procedury překldč zjistil, že formální prmetr je typu obdelnik Pk tedy při překldu volání metody zmennctverec dosdil dresu metody obdelnikzmennctverec I když bude skutečným prmetrem jiný objekt (následník), bude použit tto metod (jednou přeložená dres se již nemůže změnit) 6 S t t i c k é v i r t u á l n í m e t o d y o b j e k t ů Metod, jejíž dres je znám již při překldu, se nzývá sttická Sttická metod není závislá n okmžité situci, její správné volání je zbezpečeno již při překldu její dres je přímo dostupná Adres n sttickou metodu se nzývá brzká (včsná) vzb (erly binding) Sttické metody jsou pevně svázány s dným typem objektu používjí se tehdy, nemjí-li u následníků (předchůdců) objektu smysl V uvedeném příkldě bychom nopk potřebovli, by se vyvoll t metod, která přísluší skutečně doszenému objektu V tom přípdě je nutné použít tzv mechnismus virtuálních metod, jejichž dresy se doplňují ž při běhu progrmu Virtuální metod je v objektu deklrován s direktivou virtul Její dres je uložen ve speciálním poli dného objektu, které se nzývá tbulk virtuálních metod (virtul method tble) Dále jen tvm Je li potřeb virtuální metodu vyvolt, získá se její dres z tvm Do tvm se všk v průběhu progrmu mohou ukládt podle potřeby různé hodnoty, což umožňuje v kždém okmžiku vyvolt jinou proceduru nebo funkci Z tohoto důvodu se dres virtuální metody nzývá pozdní vzb (lte binding) Tvm musí správně nplněn ještě před tím, než se zčne s objektem mnipulovt Toto zjistí speciální metod, zvná komstruktor, která je deklrovná vyhrzeným slovem constructor (místo procedure) Volání konstruktoru je tedy nutné vždy před dlšími mnipulcemi s objektem Konstruktor se musí povinně vyskytovt u kždého objektu, který má lespoň jednu virtuální metodu Je li určitá meto- 49/76

50 Objektové progrmování d definován jko virtuální, je nutné ji definovt jko virtuální u všech dědiců objektů Definice objektů z nšeho příkldu i smotný progrm se bude muset změnit do následujícího tvru: type obdelnik =object sirk :integer; vysk :integer; constructor zrd; procedure zmennctverec(vr,b:integer);virtul; function obvod(,b:integer):integer; function obsh(,b:integer):integer; lepsi_obdelnik =object (obdelnik) uhloprick :rel; constructor zrd; function vypoctiuhlopricku(,b:integer):rel; {nov funkce} procedure zmennctverec(vr,b:integer);virtul { tel metod zustvji stejn, le je treb doplnit i tel konstruktoru} constructor obdelnikzrd; constructor lepsi_obdelnikzrd; {tel konstruktoru mohou byt przdn, presto je jejich vyvolni nutne-nplni tvm} function obsvzniklehoctverce(vr obd: obdelnik):longint; obdzmennctverec(obdsirk,obdvysk); obsvzniklehoctverce:=sqr(obdsirk); vr o_ :obdelnik; o_3 :lepsi_obdelnik; o_zrd; {nplneni tbulky virtulnich metod objektu o_} o_3zrd; {nplneni tbulky virtulnich metod objektu o_3} obsvzniklehoctverce(o_); obsvzniklehoctverce(o_3); end Nyní již bude vše fungovt podle očekávání Příkzem o_3zrd se nplní tbulk virtuálních metod objektu o_3, při předání formou skutečného prmetru do procedury obsvzniklehoctverce se dres virtuální metody zmennctverec vloží do tbulky virtuálních metod předepsného prmetru při vyvolání této metody se proto použije dres procedury lepsi_obdelnikzmennctverec 50/76

51 Objektové progrmování Příkld projekt n objektové progrmování Npište progrm v němž zdeklrujete proměnnou trojuhelnik, která bude dtového typu objekt Objekt bude obshovt tři dtové složky (strny, b, c) Metody objektu budou funkce pro výpočet obvodu trojúhelníku (obvod), funkce určující, zd je dný trojúhelník sestrojitelný (lzesestrojit) Druh z uvedených funkcí bude vrcet hodnotu logického dtového typu Procedur jeprepon bude mít z úkol určit, která ze tří strn je přeponou tudíž nejdelší strnou Druhá procedur zmennrs srovná všechny strny trojúhelníku tk, ze budou rovny strně Vytvořte dědice objektu trojuhelnik nzvěte ho vytuneny_trojuhelnik Ten bude mít o jednu dtovou složku víc Tou složkou bude proměnná ob K ní vytvořte proceduru, která zjistí uložení skutečného obvodu trojúhelníku do této proměnné Nvíc bude vytuneny_trojuhelnik disponovt funkcí, která určí zd je prvoúhlý, či nikoli Proceduru zmennrs změňte u dědice tk, by sice přetvářel n rovnostrnný trojúhelník, le stnou bude přepon původního trojúhelníku Vše vyzkoušejte n konkrétních hodnotách Virtuální metodu objektu si vyzkoušíme n funkci obvodrs, která bude vrcet obvod přetvořeného trojúhelníku Formálním prmetrem této funkce bude proměnná dtového typu trojuhelnik (to ovšem znmená, že z skutečný prmetr lze dosdit i proměnnou typu vytuneny_trojuhelnik) V těle metody bude v úvodu zvolán procedur zmennrs, která bude odpovídt typu trojuhelnik resp vytuneny_trojuhelnik Vše vyzkoušejte n konkrétních hodnotách 5/76

52 Objektové progrmování Progrm Trojuhelnik_projekt; uses wincrt; type trojuhelnik = object strn_ strn_b strn_c :integer; :integer; :integer; constructor npltvm; function obvod (,b,c:integer):integer; function lzesestrojit(,b,c:integer):boolen; procedure jeprepon(,b,c:integer); procedure zmennrs(vr,b,c:integer);virtul; vytuneny_trojuhelnik = object (trojuhelnik) ob :integer; constructor npltvm; procedure vlozobvod(vr _ob:integer; pom:integer); function jeprvouhly(,b,c:integer):boolen; procedure zmennrs (vr,b,c:integer);virtul; constructor trojuhelniknpltvm; constructor vytuneny_trojuhelniknpltvm; function trojuhelnikobvod; obvod:=+b+c; function trojuhelniklzesestrojit; if((+b>c) nd (b+c>) nd (+c>b)) then lzesestrojit:=true else lzesestrojit:=flse; procedure trojuhelnikjeprepon; vr m :integer; if (>b) then m:= else m:=b; if (m<c) then m:=c; writeln('prepon trojuhelniku je ',m); procedure trojuhelnikzmennrs; b:=; c:=; { metody vytuneneho trojuhelniku } procedure vytuneny_trojuhelnikvlozobvod; _ob:=pom; 5/76

53 53/76 Objektové progrmování function vytuneny_trojuhelnikjeprvouhly; vr pom :integer; if(<b) then pom:=; :=b; b:=pom; end else if(<c) then; pom:=; :=c; c:=pom; if(sqr()=sqr(b)+sqr(c)) then jeprvouhly:=true else jeprvouhly:=flse; procedure vytuneny_trojuhelnikzmennrs; vr m :integer; if (>b) then m:= else m:=b; if (m<c) then m:=c; :=m; b:=m; c:=m; function obvodrs(vr _t: trojuhelnik):integer; _tzmennrs(_tstrn_,_tstrn_b,_tstrn_c); obvodrs:=_tobvod(_tstrn_,_tstrn_b,_tstrn_c); vr i :byte; t_ :trojuhelnik; t_ :vytuneny_trojuhelnik; clrscr; t_npltvm; t_npltvm; for i:= to 3 do write (chr(96+i),' '); writeln; redln(t_strn_,t_strn_b,t_strn_c); writeln('=',t_strn_,', b=',t_strn_b,', c=',t_strn_c); if(t_lzesestrojit(t_strn_,t_strn_b,t_strn_c)=true) then writeln('trojuhelnik lze sestrojit') else writeln('trojuhelnik nelze sestrojit'); t_jeprepon(t_strn_,t_strn_b,t_strn_c); writeln('o=',t_obvod(t_strn_,t_strn_b,t_strn_c),' (obvod nezmeneho trojuhelniku)'); t_zmennrs(t_strn_,t_strn_b,t_strn_c);

54 Objektové progrmování writeln('=',t_strn_,', b=',t_strn_b,', c=',t_strn_c,' po zvolni procedury "zmennrs"'); writeln('o_z=',obvodrs(t_),' (obvod zmeneneho trojuhelniku)'); writeln(' vytuneny trojuhelnik '); for i:= to 3 do write (chr(96+i),' '); writeln; redln(t_strn_,t_strn_b,t_strn_c); writeln('=',t_strn_,', b=',t_strn_b,', c=',t_strn_c); if(t_lzesestrojit(t_strn_,t_strn_b,t_strn_c)=true) then writeln('trojuhelnik lze sestrojit') else writeln('trojuhelnik nelze sestrojit'); t_jeprepon(t_strn_,t_strn_b,t_strn_c); if(t_jeprvouhly(t_strn_,t_strn_b,t_strn_c)=true) then writeln('trojuhelnik je prvouhly') else writeln('trojuhelnik neni prvouhly'); t_vlozobvod(t_ob,t_obvod(t_strn_,t_strn_b,t_strn_c)); writeln('o=',t_ob,' (obvod nezmeneho trojuhelniku)'); t_zmennrs(t_strn_,t_strn_b,t_strn_c); writeln('=',t_strn_,', b=',t_strn_b,', c=',t_strn_c,' po zvolni procedury "zmennrs"'); writeln('o_z=',obvodrs(t_),' (obvod zmeneneho trojuhelniku)'); repet until keypressed; end 54/76

55 3 M t ice Mticí A typu m, n nd R rozumíme tbulku sestvenou z m n relných čísel n-tice,, n-tice,, A m m i, i in se nzývá i-tým řádkem mtice A, j, j mj,,, kk hlvní digonálou mtice A se nzývá j-tým sloupcem mtice A, k-tici čísel n n mn Mtice determinnty 3 T y p y m t i c Mtice A typu n, n se nzývá čtvercová mtice stupně n, Jednotková mtice stupně n je čtvercová mtice, jejíž kždý prvek hlvní digonály je roven E, kde e, pro i,, n všechny osttní jsou rovny 0 (budeme oznčovt E); tzn e 0 pro i j, kde i, j,, n ij Mtice, jejímiž prvky jsou smé nuly je nulová mtice oznčuje se symbolem O Čtvercová mtice, která má mimo hlvní digonálu smé nuly, se nzývá digonální 3 O p e r c e s m t i c e m i e ij ii 3 P o r o v n á v á n í m t i c Mtice ij A, li téhož typu n B se rovnjí, jsou m, když ij bij, pro i,,,m j,,, n 3 S č í t á n í m t i c Součtem dvou mtic téhož typu m, n, tzn mtic A m m rozumíme mtici přičemž A B m b b b b ij n b b b n n b b bn B mn b m bm bmn A B, která je tké typu m, n, m m b b b m n n mn b b b n n mn 33 N á s o b e k m t i c e Je li r R, pk r-násobkem mtice A rozumíme mtici r r r n r r rn ra r m rm rmn Poznámk: Mtici A budeme oznčovt A nzývt mtici opčnou k mtici A 34 N á s o b e n í m t i c Nechť A je mtice typu m, n B mtice n, p Pk součinem mtic A, B (v tomto pořdí) AB C m, p, kde c ij i, j i b j ib j inbnj pro i,,, m rozumíme mtici c j,,, p typu Poznámk: Pozor násobení mtic není komuttivní Pro sčítání mtic pltí jk komuttivní tk i socitivní zákon 55/76

56 Metody řešení soustv lineárních rovnic 33 H o d n o s t m t i c e Hodnost h A mtice A je mimální počet lineárně nezávislých řádků mtice A Algoritmus pro určení hodnosti mtice: Mtici uprvíme tk, by prvek 0 Vynulujeme sloupec postupným přičítáním resp odečítáním násobku řádku 3 Mtici uprvíme tk, by prvek 0 4 Vynulujeme sloupec postupným přičítáním resp odečítáním násobku řádku 5 Tento postup opkujeme dokud nezískáme trojúhelníkovou mtici s nenulovými prvky n digonále Příkld: Určete hodnost mtice A Ř e š e n í s o u s t v r o v n i c m t i c o v o u m e t o d o u Př: Řešte soustvu: y z 6 y z 0 y z A 6 0 Mtici A budeme uprvovt n dolní trojúhelníkovou mtici (trojúhelníkový tvr) Tzn,že mtici uprvujeme tk, by všechny prvky pod hlvní digonálou byly nulové Tento způsob řešení soustvy se nzývá Gussov eliminční metod A A se nzývá (rozšířenou) mticí soustvy S touto mticí můžeme provádět následující elementární operce: vzájemná záměn dvou řádků, vynásobení některého řádku nenulovým číslem, připočítání libovolného násobku některého řádku k jinému řádku mtice B řádek opíšeme K řádku přičteme -násobek řádku K 3 řádku přičteme řádek řádek opíšeme K 3 řádku přičteme řádek řádek vydělíme číslem Mtice A B jsou ekvivlentní, proto můžeme původní soustvu přepst n trojúhelníkový tvr Dále řešíme: y z 6 3 y z 3 y A A z Řešením soustvy je uspořádná trojice: P 3,, 35 I n v e r z n í m t i c e Jestliže ke čtvercové mtici A stupně n nd R eistuje čtvercová mtice A stupně n tk, že pltí E, kde E je jednotková mtice stupně n, nzývá se mtice A inverzní mticí k mtici A Poznámk: Ke kždé čtvercové mtici eistuje nejvýše jedn mtice inverzní Nutnou postčující podmínkou eistence inverzní mtice k mtici A je, by determinnt mtice A byl různý od 0 56/76

57 Metody řešení soustv lineárních rovnic 4 Determinnty Determinnt je jistá hodnot přiřzen čtvercové mtici Předmětem tohoto studijního mteriálu je seznámit čtenáře s tím, jk vypočítt determinnt řádu, 3 řádu postupně i vyššího řádu rozvojem r- tého řádku resp s-tého sloupce K výpočtu determinntů vyšších řádů budeme využívt i některých vlstností determinntů Úvodem se všk budeme věnovt formální definici k tomu je zpotřebí definovt následující pojmy 4 V ý p o č e t d e t e r m i n n t u 4 d r u h é h o ř á d u Provádíme dle následujícího schémtu: A 4 t ř e t í h o ř á d u Pro urychlení výpočtu můžeme použít tzv Srrusovo prvidlo Pod poslední řádek opíšeme řádek mtice vynásobíme prvky ve směru hlvní digonály podle tohoto schémtu: A V l s t n o s t i d e t e r m i n n t ů Pro výpočet determinntů vyšších řádů využíváme některých vlstností: Determinnt čtvercové mtice, která má v jednom řádku (sloupci) smé nuly, je roven nule Determinnt čtvercové mtice, která má stejné dv řádky (sloupce) je roven nule 3 Determinnt mtice, v níž jeden řádek (sloupec) je násobkem jiného řádku (sloupce) této mtice, je roven nule 4 Změníme li pořdí dvou řádků (sloupců) dné mtice, pk determinnt nově vzniklé mtice se od determinntu původní mtice liší pouze znménkem 5 Determinnt součinu dvou mtic je roven součinu determinntů těchto mtic Podobné tvrzení pro determinnt součtu mtic nepltí 6 Determinnt mtice se nezmění, jestliže k libovolnému řádku (sloupci) této mtice přičteme k- 7 násobek jiného řádku (sloupce) této mtice k i n k i n n n k in nn k i n i n n n in nn 8 Determinnt mtice, jež má kromě prvků n hlvní digonále všechny zbývjící rovny nule, je roven součinů prvků n hlvní digonále /76

58 Metody řešení soustv lineárních rovnic 43 V ý p o č e t d e t e r m i n n t u v y š š í c h ř á d ů Vět o rozvoji determinntu Nechť je dán čtvercová mtice typu n Pk pltí: r r A A A rn r r r r rn rn s s A A A ns s s s s ns ns A A, (), () kde r, s n, determinnty A ij nzýváme subdeterminnty, nebo tké minory příslušné prvkům ij Subdeterminnty jsou determinnty mtic, které dostneme z mtice A vynecháním i tého řádku j-tého sloupce Vzthu () resp () se říká rozvoj determinntu podle prvků r-tého řádku, resp s-tého sloupce Příkldová část: Určete hodnoty determinntu: 3 5 b c ) b) c) c b Vypočtěte neznámou z rovnice: 3 b ) 3 b) 0 5 d) 3 3 e) c) 0 sin cos cos sin f) cos 0 sin 6 d) 5 58/76

59 Metody řešení soustv lineárních rovnic 59/76 5 M etody řešení soustv lineárních rovnic 5 G u s s o v e l i m i n č n í m e t o d Soustvou m lineárních rovnic o n neznámých,,, n je systém rovnic ve tvru,,,, m n mn m m n n n n n n b b b b () kde R ij, R b i ; m i,,, n j,, jsou koeficienty této rovnice Jestliže 0 n b b b, pk soustvu nezveme homogenní, v opčném přípdě nehomogenní Definujme: Mtice soustvy () mn m m n n A Rozšířená mtice soustvy () n mn m m n n b b b A Frobeniov vět Soustv () má řešení tehdy, je li A h A h Dále pltí: Je li n A h A h, má soustv právě jedno řešení Je li n h A h A h, má soustv nekonečně mnoho řešení; v tomto přípdě můžeme z h n neznámých volit libovolné prvky z R (tzv prmetry), zbývjících h neznámých je touto volbou určeno jednoznčně (vyjádřeno pomocí prmetrů) 5 C r m e r o v o p r v i d l o Lze použít z předpokldu, že dná soustv je soustvou n rovnic n neznámých determinnt mtice soustvy je různý od nuly, tzn 0 A Pk tto soustv má jediné řešení A A A A A A n,,,, kde i A i,,n, je mtice, kterou dostneme z mtice A tk, že v ní i-tý sloupec nhrdíme sloupcem prvých strn nší soustvy Příkldová část Řešte následující soustvu Gussovou eliminční metodou: ) b) c) Pomocí Crmerov prvidl řešte soustvu: )

60 6 V y u žití t bulkového proc e- s oru pro počítání s mticemi determ innty 6 S o u č e t m t i c Součet, příp rozdíl, získáme tk, že do buňky odpovídjící prvnímu řádku prvnímu sloupci výsledné mtice c vložíme vzorec pro součet prvků z prvního řádku prvního sloupce sčítných mtic b Využití tbulkového klkulátoru pro počítání s mticemi determinnty 6 S o u č i n m t i c Pro výpočet součinu mtic je v Ecelu funkce SOU- ČINMATIC(mt;mt) Máme-li zdné mtice, které chceme násobit, oznčíme celou oblst výsledné mtice Přitom buňk odpovídjící prvnímu řádku prvnímu sloupci výsledné mtice je ktuální Do této buňky vložíme vzorec =Součinmtic(mt;mt) Tento vzorec nkopírujeme (potžením z ouško) do osttních buněk výsledné mtice Zdání vzorce ukončíme součsným stiskem kláves Ctrl+Shift+Enter Zdáváme-li vzorec prostřednictvím průvodce funkcí, pk při závěrečném potvrzení tlčítkem OK rovněž musíme podržet n klávesnici Ctrl+Shift 60/76

61 63 k n á s o b e k m t i c e K násobek mtice získáme tk, že do buňky odpovídjící prvnímu řádku prvnímu sloupci výsledné mtice vložíme vzorec pro součin prvku k prvku mtice n pozici,, tedy prvku Abychom při následném kopírování vzorce do zbývjících buněk výsledné mtice docílili toho, že půjde vždy o součin prvku ij s k, musíme buňku obshující k (v nšem př A) dresovt bsolutně Toho docílíme tk, že ve vzorci umístíme před tuto buňku kurzor stiskneme klávesu F4 Před sloupec řádek udávjící pozici buňky se doplní symbol dolrovky (v nšem př $A$) Využití tbulkového klkulátoru pro počítání s mticemi determinnty 64 I n v e r z n í m t i c e Pro výpočet inverzní mtice eistuje v Ecelu funkce INVER- ZE(mtice) Máme-li mtici, jejíž inverzní mtici hledáme, oznčíme celou oblst výsledné mtice Přitom buňk odpovídjící prvnímu řádku prvnímu sloupci výsledné mtice je ktuální Do této buňky vložíme vzorec =INVERZE(mtice) Tento vzorec nkopírujeme (potžením z ouško) do osttních buněk výsledné mtice Zdání vzorce ukončíme součsným stiskem kláves Ctrl+Shift+Enter Zdáváme-li vzorec prostřednictvím průvodce funkcí, pk při závěrečném potvrzení tlčítkem OK rovněž musíme podržet n klávesnici Ctrl+Shift 6/76

Komplexní čísla tedy násobíme jako dvojčleny s tím, že použijeme vztah i 2 = 1. = (a 1 + ia 2 )(b 1 ib 2 ) b 2 1 + b2 2.

Komplexní čísla tedy násobíme jako dvojčleny s tím, že použijeme vztah i 2 = 1. = (a 1 + ia 2 )(b 1 ib 2 ) b 2 1 + b2 2. 7 Komplexní čísl 71 Komplexní číslo je uspořádná dvojice reálných čísel Komplexní číslo = 1, ) zprvidl zpisujeme v tzv lgebrickém tvru = 1 + i, kde i je imginární jednotk, pro kterou pltí i = 1 Číslo 1

Více

P2 Číselné soustavy, jejich převody a operace v čís. soustavách

P2 Číselné soustavy, jejich převody a operace v čís. soustavách P Číselné soustvy, jejich převody operce v čís. soustvách. Zobrzení čísl v libovolné číselné soustvě Lidé využívjí ve svém životě pro zápis čísel desítkovou soustvu. V této soustvě máme pro zápis čísel

Více

Logaritmická funkce teorie

Logaritmická funkce teorie Výukový mteriál pro předmět: MATEMATIKA reg. č. projektu CZ..07/..0/0.0007 Logritmická funkce teorie Eponenciální funkce je funkce prostá, proto k ní eistuje inverzní funkce. Tto inverzní funkce se nzývá

Více

Zavedení a vlastnosti reálných čísel PŘIROZENÁ, CELÁ A RACIONÁLNÍ ČÍSLA

Zavedení a vlastnosti reálných čísel PŘIROZENÁ, CELÁ A RACIONÁLNÍ ČÍSLA Zvedení vlstnosti reálných čísel Reálná čísl jsou zákldním kmenem mtemtické nlýzy. Konstrukce reálných čísel sice není náplní mtemtické nlýzy, le množin reálných čísel R je pro mtemtickou nlýzu zákldním

Více

m n. Matice typu m n má

m n. Matice typu m n má MATE ZS KONZ B Mtice, hodnost mtice, Gussův tvr Mtice uspořádné schém reálných čísel: m m n n mn Toto schém se nzývá mtice typu m řádků n sloupců. m n. Mtice typu m n má Oznčujeme ji A, B,někdy používáme

Více

Souhrn základních výpočetních postupů v Excelu probíraných v AVT 04-05 listopad 2004. r r. . b = A

Souhrn základních výpočetních postupů v Excelu probíraných v AVT 04-05 listopad 2004. r r. . b = A Souhrn zákldních výpočetních postupů v Ecelu probírných v AVT 04-05 listopd 2004. Řešení soustv lineárních rovnic Soustv lineárních rovnic ve tvru r r A. = b tj. npř. pro 3 rovnice o 3 neznámých 2 3 Hodnoty

Více

Matice. a B =...,...,...,...,..., prvků z tělesa T (tímto. Definice: Soubor A = ( a. ...,..., ra

Matice. a B =...,...,...,...,..., prvků z tělesa T (tímto. Definice: Soubor A = ( a. ...,..., ra Definice: Soubor A ( i j ) Mtice 11 12 1n 21 22 2n m 1 m2 prvků z těles T (tímto tělesem T bude v nší prxi nejčstěji těleso reálných čísel R resp těleso rcionálních čísel Q či těleso komplexních čísel

Více

2.1 - ( ) ( ) (020201) [ ] [ ]

2.1 - ( ) ( ) (020201) [ ] [ ] - FUNKCE A ROVNICE Následující zákldní znlosti je nezbytně nutné umět od okmžiku probrání ž do konce studi mtemtiky n gymnáziu. Vyždováno bude porozumění schopnost plikovt ne pouze mechnicky zopkovt. Některé

Více

3 Algebraické výrazy. 3.1 Mnohočleny Mnohočleny jsou zvláštním případem výrazů. Mnohočlen (polynom) proměnné je výraz tvaru

3 Algebraické výrazy. 3.1 Mnohočleny Mnohočleny jsou zvláštním případem výrazů. Mnohočlen (polynom) proměnné je výraz tvaru Algerické výrz V knize přírod může číst jen ten, kdo zná jzk, ve kterém je npsán. Jejím jzkem je mtemtik jejím písmem jsou mtemtické vzorce. (Glileo Glilei) Algerickým výrzem rozumíme zápis, ve kterém

Více

8. Elementární funkce

8. Elementární funkce Historie přírodních věd potvrzuje, že většinu reálně eistujících dějů lze reprezentovt mtemtickými model, které jsou popsán tzv. elementárními funkcemi. Elementární funkce je kždá funkce, která vznikne

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Základní pojmy: Číselné obory a vztahy mezi nimi Zákony pro počítání s číselnými množinami

Základní pojmy: Číselné obory a vztahy mezi nimi Zákony pro počítání s číselnými množinami / Zákldní pojmy: Číselné obory vzthy mezi nimi ČÍSELNÉ MNOŽINY Zákony pro počítání s číselnými množinmi. Přirozená čísl vyjdřují počet prvků množiny N. Celá čísl změn počtu prvků dné množiny, přírůstky

Více

Diferenciální počet. Spojitost funkce

Diferenciální počet. Spojitost funkce Dierenciální počet Spojitost unkce Co to znmená, že unkce je spojitá? Jký je mtemtický význm tvrzení, že gr unkce je spojitý? Jké jsou vlstnosti unkce v bodě? Jké jsou vlstnosti unkce v intervlu I? Vlstnosti

Více

DIGITÁLNÍ UČEBNÍ MATERIÁL. Název školy SOUpotravinářské, Jílové u Prahy, Šenflukova 220. Název materiálu VY_32_INOVACE / Matematika / 03/01 / 17

DIGITÁLNÍ UČEBNÍ MATERIÁL. Název školy SOUpotravinářské, Jílové u Prahy, Šenflukova 220. Název materiálu VY_32_INOVACE / Matematika / 03/01 / 17 DIGITÁLNÍ UČEBNÍ MATERIÁL Číslo projektu CZ07/500/4076 Název školy SOUpotrvinářské, Jílové u Prhy, Šenflukov 0 Název mteriálu VY INOVACE / Mtemtik / 0/0 / 7 Autor Ing Antonín Kučer Oor; předmět, ročník

Více

2. Funkční řady Studijní text. V předcházející kapitole jsme uvažovali řady, jejichž členy byla reálná čísla. Nyní se budeme zabývat studiem

2. Funkční řady Studijní text. V předcházející kapitole jsme uvažovali řady, jejichž členy byla reálná čísla. Nyní se budeme zabývat studiem 2. Funkční řd Studijní text 2. Funkční řd V předcházející kpitole jsme uvžovli řd, jejichž člen bl reálná čísl. Nní se budeme zbývt studiem obecnějšího přípdu, kd člen řd tvoří reálné funkce. Definice

Více

3. ROVNICE A NEROVNICE 85. 3.1. Lineární rovnice 85. 3.2. Kvadratické rovnice 86. 3.3. Rovnice s absolutní hodnotou 88. 3.4. Iracionální rovnice 90

3. ROVNICE A NEROVNICE 85. 3.1. Lineární rovnice 85. 3.2. Kvadratické rovnice 86. 3.3. Rovnice s absolutní hodnotou 88. 3.4. Iracionální rovnice 90 ROVNICE A NEROVNICE 8 Lineární rovnice 8 Kvdrtické rovnice 8 Rovnice s bsolutní hodnotou 88 Ircionální rovnice 90 Eponenciální rovnice 9 Logritmické rovnice 9 7 Goniometrické rovnice 98 8 Nerovnice 0 Úlohy

Více

Návrh základních kombinačních obvodů: dekodér, enkodér, multiplexor, demultiplexor

Návrh základních kombinačních obvodů: dekodér, enkodér, multiplexor, demultiplexor Předmět Ústv Úloh č. 2 BDIO - Digitální obvody Ústv mikroelektroniky Návrh zákldních kombinčních obvodů: dekodér, enkodér, multiplexor, demultiplexor Student Cíle Porozumění logickým obvodům typu dekodér,

Více

13. Exponenciální a logaritmická funkce

13. Exponenciální a logaritmická funkce @11 1. Eponenciální logritmická funkce Mocninná funkce je pro r libovolné nenulové reálné číslo dán předpisem f: y = r, r R, >0 Eponent r je konstnt je nezávisle proměnná. Definičním oborem jsou pouze

Více

( ) ( ) ( ) Exponenciální rovnice. 17.3. Řeš v R rovnici: 3 + 9 + 27 = ŘEŠENÍ: Postup z předešlého výpočtu doplníme využitím dalšího vztahu: ( ) t s t

( ) ( ) ( ) Exponenciální rovnice. 17.3. Řeš v R rovnici: 3 + 9 + 27 = ŘEŠENÍ: Postup z předešlého výpočtu doplníme využitím dalšího vztahu: ( ) t s t 7. EXPONENCIÁLNÍ ROVNICE 7.. Řeš v R rovnice: ) 5 b) + c) 7 0 d) ( ) 0,5 ) 5 7 5 7 K { } c) 7 0 K d) ( ) b) + 0 + 0 K ( ) 5 0 5, 7 K { 5;7} Strtegie: potřebujeme zíkt tkový tvr rovnice, kd je n obou trnách

Více

ZÁKLADNÍ POZNATKY. p, kde ČÍSELNÉ MNOŽINY (OBORY) N... množina všech přirozených čísel: 1, 2, 3,, n,

ZÁKLADNÍ POZNATKY. p, kde ČÍSELNÉ MNOŽINY (OBORY) N... množina všech přirozených čísel: 1, 2, 3,, n, ZÁKLADNÍ POZNATKY ČÍSELNÉ MNOŽINY (OBORY) N... množin všech přirozených čísel: 1, 2, 3,, n, N0... množin všech celých nezáporných čísel (přirozených čísel s nulou: 0,1, 2, 3,, n, Z... množin všech celých

Více

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů. Základní symboly - písmena A B C Y Z a b c y z - číslice 0 1 2 9 - speciální symboly + - * / =., < > = a další - klíčová slova and array begin case const a další Klíčová slova jsou chráněnými útvary,

Více

Logaritmická funkce, logaritmus, logaritmická rovnice

Logaritmická funkce, logaritmus, logaritmická rovnice Logritmická funkce. 4 Logritmická funkce, ritmus, ritmická rovnice - získá se jko funkce inverzní k funkci eponenciální, má tvr f: = Pltí: > 0!! * * = = musí být > 0, > 0 Rozlišujeme dv zákldní tp: ) >

Více

( ) 2 2 2 ( ) 3 3 2 2 3. Výrazy Výraz je druh matematického zápisu, který obsahuje konstanty, proměnné, symboly matematických operací, závorky.

( ) 2 2 2 ( ) 3 3 2 2 3. Výrazy Výraz je druh matematického zápisu, který obsahuje konstanty, proměnné, symboly matematických operací, závorky. Výrzy Výrz je druh mtemtického zápisu, který obshuje konstnty, proměnné, symboly mtemtických opercí, závorky. Příkldy výrzů: + výrz obshuje pouze konstnty číselný výrz x výrz obshuje konstntu ( proměnnou

Více

Úlohy školní klauzurní části I. kola kategorie C

Úlohy školní klauzurní části I. kola kategorie C 52. ročník mtemtické olympiády Úlohy školní kluzurní části I. kol ktegorie 1. Odtrhneme-li od libovolného lespoň dvojmístného přirozeného čísl číslici n místě jednotek, dostneme číslo o jednu číslici krtší.

Více

Jak již bylo uvedeno v předcházející kapitole, můžeme při výpočtu určitých integrálů ze složitějších funkcí postupovat v zásadě dvěma způsoby:

Jak již bylo uvedeno v předcházející kapitole, můžeme při výpočtu určitých integrálů ze složitějších funkcí postupovat v zásadě dvěma způsoby: .. Substituční metod pro určité integrály.. Substituční metod pro určité integrály Cíle Seznámíte se s použitím substituční metody při výpočtu určitých integrálů. Zákldní typy integrálů, které lze touto

Více

1. LINEÁRNÍ ALGEBRA 1.1. Matice

1. LINEÁRNÍ ALGEBRA 1.1. Matice Lineární lgebr LINEÁRNÍ LGEBR Mtice Zákldní pojmy Mticí typu m/n nzýváme schém mn prvků, které jsou uspořádány do m řádků n sloupců: n n m/n = = = ( ij ) m m mn V tomto schémtu pro řádky sloupce užíváme

Více

DERIVACE A INTEGRÁLY VE FYZICE

DERIVACE A INTEGRÁLY VE FYZICE DOPLŇKOVÉ TEXTY BB0 PAVEL SCHAUER INTERNÍ MATERIÁL FAST VUT V BRNĚ DERIVACE A INTEGRÁLY VE FYZICE Obsh Derivce... Definice derivce... Prciální derivce... Derivce vektorů... Výpočt derivcí... 3 Algebrická

Více

Lineární nerovnice a jejich soustavy

Lineární nerovnice a jejich soustavy teorie řešené úlohy cvičení tipy k mturitě výsledky Lineární nerovnice jejich soustvy Víš, že pojem nerovnice není opkem pojmu rovnice? lineární rovnice má většinou jediné řešení, kdežto lineární nerovnice

Více

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

Více

M - Příprava na 3. zápočtový test pro třídu 2D

M - Příprava na 3. zápočtový test pro třídu 2D M - Příprv n. ápočtový test pro třídu D Autor: Mgr. Jromír JUŘEK Kopírování jkékoliv dlší využití výukového mteriálu je povoleno poue s uvedením odku n www.jrjurek.c. VARIACE 1 Tento dokument byl kompletně

Více

x + F F x F (x, f(x)).

x + F F x F (x, f(x)). I. Funkce dvou více reálných proměnných 8. Implicitně dné funkce. Budeme se zbývt úlohou, kdy funkce není zdná přímo předpisem, který vyjdřuje závislost její hodnoty n hodnotách proměnných. Jeden z možných

Více

Větu o spojitosti a jejich užití

Větu o spojitosti a jejich užití 0..7 Větu o spojitosti jejich užití Předpokldy: 706, 78, 006 Pedgogická poznámk: Při proírání této hodiny je tře mít n pměti, že všechny věty, které studentům sdělujete z jejich pohledu neuvěřitelně složitě

Více

Přednáška 9: Limita a spojitost

Přednáška 9: Limita a spojitost 4 / XI /, 5: Přednášk 9: Limit spojitost V minulých přednáškách jsme podrobněji prozkoumli důležitý pojem funkce. Při řešení konkrétních problémů se nše znlosti (npř. nměřená dt) zpisují jko funkční hodnoty

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

jsou všechna reálná čísla x, pro která platí: + x 6

jsou všechna reálná čísla x, pro která platí: + x 6 Příkld 1. Kolik lichých přirozených čísel lze vytvořit z číslic 0, 1, 2,, 8, jestliže se žádná číslice neopkuje? A: 2 B: 6 C: 9 D: 52 E: 55 Příkld 2. Definičním oborem funkce y = A: x ( 5; ) B: x ( 5;

Více

2.8.5 Lineární nerovnice s parametrem

2.8.5 Lineární nerovnice s parametrem 2.8.5 Lineární nerovnice s prmetrem Předpokldy: 2208, 2802 Pedgogická poznámk: Pokud v tom necháte studenty vykoupt (což je, zdá se, jediné rozumné řešení) zere tto látk tk jednu půl vyučovcí hodiny (první

Více

2.3. DETERMINANTY MATIC

2.3. DETERMINANTY MATIC 2.3. DETERMINANTY MATIC V této kpitole se dozvíte: definici determinntu čtvercové mtice; co je to subdeterminnt nebo-li minor; zákldní vlstnosti determinntů, používné v mnoh prktických úlohách; výpočetní

Více

return n; 3/29 Ing. Miroslav Balík, Ph.D. - BI-PA1-05 if (n<1) { printf("%d neni prirozene cislo\n", n); exit(0); }

return n; 3/29 Ing. Miroslav Balík, Ph.D. - BI-PA1-05 if (n<1) { printf(%d neni prirozene cislo\n, n); exit(0); } 1 Příprv studijního prormu Informtik je podporován projektem finncovným z Evropského sociálního fondu rozpočtu hlvního měst Prhy. Prh & EU: Investujeme do vší budoucnosti Funkce, intuitivní chápání složitosti

Více

{ } ( ) ( ) 2.5.8 Vztahy mezi kořeny a koeficienty kvadratické rovnice. Předpoklady: 2301, 2508, 2507

{ } ( ) ( ) 2.5.8 Vztahy mezi kořeny a koeficienty kvadratické rovnice. Předpoklady: 2301, 2508, 2507 58 Vzth mezi kořen koefiient kvdrtiké rovnie Předpokld:, 58, 57 Pedgogiká poznámk: Náplň zřejmě přeshuje možnost jedné vučoví hodin, příkld 8 9 zůstvjí n vičení neo polovinu hodin při píseme + + - zákldní

Více

4. přednáška 22. října Úplné metrické prostory. Metrický prostor (M, d) je úplný, když každá cauchyovská posloupnost bodů v M konverguje.

4. přednáška 22. října Úplné metrické prostory. Metrický prostor (M, d) je úplný, když každá cauchyovská posloupnost bodů v M konverguje. 4. přednášk 22. říjn 2007 Úplné metrické prostory. Metrický prostor (M, d) je úplný, když kždá cuchyovská posloupnost bodů v M konverguje. Příkldy. 1. Euklidovský prostor R je úplný, kždá cuchyovská posloupnost

Více

Základy teorie matic

Základy teorie matic Zákldy teorie mtic 1. Pojem mtice nd číselným tělesem In: Otkr Borůvk (uthor): Zákldy teorie mtic. (Czech). Prh: Acdemi, 1971. pp. 9--12. Persistent URL: http://dml.cz/dmlcz/401328 Terms of use: Akdemie

Více

je jedna z orientací určena jeho parametrizací. Je to ta, pro kterou je počátečním bodem bod ϕ(a). Im k.b.(c ) ( C ) (C ) Obr Obr. 3.5.

je jedna z orientací určena jeho parametrizací. Je to ta, pro kterou je počátečním bodem bod ϕ(a). Im k.b.(c ) ( C ) (C ) Obr Obr. 3.5. 10. Komplexní funkce reálné proměnné. Křivky. Je-li f : (, b) C, pk lze funkci f povžovt z dvojici (u, v), kde u = Re f v = Im f. Rozdíl proti vektorovému poli je v tom, že jsou pro komplexní čísl definovány

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 04. Datové typy, operace, logické operátory Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

Spojitost funkce v bodě, spojitost funkce v intervalu

Spojitost funkce v bodě, spojitost funkce v intervalu 10.1.6 Spojitost funkce v bodě, spojitost funkce v intervlu Předpokldy: 10104, 10105 Př. 1: Nkresli, jk funkce f ( x ) dná grfem zobrzí vyznčené okolí bodu n ose x n osu y. Poté nkresli n osu x vzor okolí

Více

( a) Okolí bodu

( a) Okolí bodu 0..5 Okolí bodu Předpokldy: 40 Pedgogická poznámk: Hodin zjevně překrčuje možnosti většiny studentů v 45 minutách. Myslím, že nemá cenu přethovt do dlší hodiny, příkldy s redukovnými okolími nejsou nutné,

Více

Matematika II: Testy

Matematika II: Testy Mtemtik II: Testy Petr Schreiberová Ktedr mtemtiky deskriptivní geometrie VŠB - Technická univerzit Ostrv Mtemtik II - testy 69. Řy 9 - Test Ktedr mtemtiky deskriptivní geometrie, VŠB - Technická univerzit

Více

( t) ( t) ( t) Nerovnice pro polorovinu. Předpoklady: 7306

( t) ( t) ( t) Nerovnice pro polorovinu. Předpoklady: 7306 7.3.8 Nerovnice pro polorovinu Předpokldy: 736 Pedgogická poznámk: Příkld 1 není pro dlší průěh hodiny důležitý, má smysl pouze jko opkování zplnění čsu při zpisování do třídnice. Nemá smysl kvůli němu

Více

1.1 Numerické integrování

1.1 Numerické integrování 1.1 Numerické integrování 1.1.1 Úvodní úvhy Nším cílem bude přibližný numerický výpočet určitého integrálu I = f(x)dx. (1.1) Je-li znám k integrovné funkci f primitivní funkce F (F (x) = f(x)), můžeme

Více

METODICKÝ NÁVOD MODULU

METODICKÝ NÁVOD MODULU Centrum celoživotního vzdělávání METODICKÝ NÁVOD MODULU Název modulu: Zákldy mtemtiky Zkrtk: ZM Počet kreditů: Semestr: Z/L Mentor: Petr Dolnský Tutor: Petr Dolnský I OBSAH BALÍČKU STUDIJNÍCH OPOR: ) Skriptum:

Více

3. Kvadratické rovnice

3. Kvadratické rovnice CZ..07/..08/0.0009. Kvdrtické rovnice se v tetice oznčuje lgebrická rovnice druhého stupně, tzn. rovnice o jedné neznáé, ve které neznáá vystupuje ve druhé ocnině (²). V zákldní tvru vypdá následovně:

Více

2.2.9 Grafické řešení rovnic a nerovnic

2.2.9 Grafické řešení rovnic a nerovnic ..9 Grfické řešení rovnic nerovnic Předpokldy: 0, 06 Př. : Řeš početně i grficky rovnici x + = x. Početně: Už umíme. x + = x x = x = K = { } Grficky: Kždá ze strn rovnice je výrzem pro lineární funkci

Více

Až dosud jsme se zabývali většinou reálnými posloupnostmi, tedy zobrazeními s definičním

Až dosud jsme se zabývali většinou reálnými posloupnostmi, tedy zobrazeními s definičním Limit funkce. Zákldní pojmy Až dosud jsme se zbývli většinou reálnými posloupnostmi, tedy zobrzeními s definičním oborem N. Nyní obrátíme svou pozornost n širší třídu zobrzení. Definice.. Zobrzení f, jehož

Více

LINEÁRNÍ DIFERENCIÁLNÍ ROVNICE 2.ŘÁDU

LINEÁRNÍ DIFERENCIÁLNÍ ROVNICE 2.ŘÁDU LINEÁRNÍ DIFERENCIÁLNÍ ROVNICE 2.ŘÁDU ZDENĚK ŠIBRAVA 1. Obecné řešení lin. dif. rovnice 2.řádu s konstntními koeficienty 1.1. Vrice konstnt. Příkld 1.1. Njděme obecné řešení diferenciální rovnice (1) y

Více

Opakování ke státní maturitě didaktické testy

Opakování ke státní maturitě didaktické testy Číslo projektu CZ..7/../.9 Škol Autor Číslo mteriálu Název Tém hodiny Předmět Ročník/y/ Anotce Střední odborná škol Střední odborné učiliště, Hustopeče, Msrykovo nám. Mgr. Rent Kučerová VY INOVACE_MA..

Více

Příklad 22 : Kapacita a rozložení intenzity elektrického pole v deskovém kondenzátoru s jednoduchým dielektrikem

Příklad 22 : Kapacita a rozložení intenzity elektrického pole v deskovém kondenzátoru s jednoduchým dielektrikem Příkld 22 : Kpcit rozložení intenzity elektrického pole v deskovém kondenzátoru s jednoduchým dielektrikem Předpokládné znlosti: Elektrické pole mezi dvěm nbitými rovinmi Příkld 2 Kpcit kondenzátoru je

Více

(1) přičemž všechny veličiny uvažujeme absolutně. Její úpravou získáme vztah + =, (2) Přímé zvětšení Z je dáno vztahem Z = =, a a

(1) přičemž všechny veličiny uvažujeme absolutně. Její úpravou získáme vztah + =, (2) Přímé zvětšení Z je dáno vztahem Z = =, a a Úloh č. 3 Měření ohniskové vzdálenosti tenkých čoček 1) Pomůcky: optická lvice, předmět s průhledným milimetrovým měřítkem, milimetrové měřítko, stínítko, tenká spojk, tenká rozptylk, zdroj světl. ) Teorie:

Více

56. ročník Matematické olympiády. b 1,2 = 27 ± c 2 25

56. ročník Matematické olympiády. b 1,2 = 27 ± c 2 25 56. ročník Mtemtické olympiády Úlohy domácí části I. kol ktegorie 1. Njděte všechny dvojice (, ) celých čísel, jež vyhovují rovnici + 7 + 6 + 5 + 4 + = 0. Řešení. Rovnici řešíme jko kvdrtickou s neznámou

Více

x jsou všechna reálná čísla x, pro která platí: log(x + 5) D: x ( 5; 4) (4; ) + x+6

x jsou všechna reálná čísla x, pro která platí: log(x + 5) D: x ( 5; 4) (4; ) + x+6 Test studijních předpokldů Vrint A1 Příkld 1. Kolik přirozených čísel lze vytvořit z číslic 0, 1,, 4, 8, jestliže se žádná číslice neopkuje? A: 1 B: 3 C: 60 D: 40 E: 48 Příkld. Definičním oborem funkce

Více

2.5.9 Vztahy mezi kořeny a koeficienty kvadratické rovnice

2.5.9 Vztahy mezi kořeny a koeficienty kvadratické rovnice 59 Vzth mezi kořen koefiient kvdrtiké rovnie Předpokld:, 57, 58 Pedgogiká poznámk: Náplň zřejmě přeshuje možnost jedné vučoví hodin Příkld 8 9 zůstávjí n vičení nebo polovinu hodin při píseme + b + - zákldní

Více

2.5.9 Vztahy mezi kořeny a koeficienty kvadratické rovnice

2.5.9 Vztahy mezi kořeny a koeficienty kvadratické rovnice 59 Vzth mezi kořen koefiient kvdrtiké rovnie Předpokld:, 57, 58 Pedgogiká poznámk: Náplň zřejmě přeshuje možnost jedné vučoví hodin Příkld 8 9 zůstávjí n vičení nebo polovinu hodin při píseme + b + - zákldní

Více

( a, { } Intervaly. Předpoklady: , , , Problém zapíšeme snadno i výčtem: { 2;3; 4;5}?

( a, { } Intervaly. Předpoklady: , , , Problém zapíšeme snadno i výčtem: { 2;3; 4;5}? 1.3.8 Intervly Předpokldy: 010210, 010301, 010302, 010303 Problém Množinu A = { x Z;2 x 5} zpíšeme sndno i výčtem: { 2;3; 4;5} Jk zpst množinu B = { x R;2 x 5}? A =. Jde o nekonečně mnoho čísel (2, 5 všechno

Více

ANALYTICKÁ GEOMETRIE V PROSTORU

ANALYTICKÁ GEOMETRIE V PROSTORU ANALYTICKÁ GEOMETRIE V PROSTORU 3. přednášk Vektorová lger Prvoúhlé souřdnice odu v prostoru Poloh odu v prostoru je vzhledem ke třem osám k soě kolmým určen třemi souřdnicemi, které tvoří uspořádnou trojici

Více

a a Posloupnost ( ) je totožná s posloupností: (A) 9 (B) 17 (C) 21 (D) 34 (E) 64 (B) (C) (E)

a a Posloupnost ( ) je totožná s posloupností: (A) 9 (B) 17 (C) 21 (D) 34 (E) 64 (B) (C) (E) . Když c + d + bc + bd = 68 c+ d = 4, je + b+ c+ d rovno: 9 7 34 64 4. Posloupnost ( ) =, n+ = 3 =, n+ n = 3 3 =, n+ = = 3, n+ = n + 3n + n je totožná s posloupností: n n =. n+ = 3, = n Povrch rotčního

Více

VISUAL BASIC. Práce se soubory

VISUAL BASIC. Práce se soubory VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit

Více

ZÁKLADY. y 1 + y 2 dx a. kde y je hledanou funkcí proměnné x.

ZÁKLADY. y 1 + y 2 dx a. kde y je hledanou funkcí proměnné x. VARIAČNÍ POČET ZÁKLADY V prxi se čsto hledjí křivky nebo plochy, které minimlizují nebo mximlizují jisté hodnoty. Npř. se hledá nejkrtší spojnice dvou bodů n dné ploše, nebo tvr zvěšeného ln (má minimální

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

5.1.5 Základní vztahy mezi body, přímkami a rovinami

5.1.5 Základní vztahy mezi body, přímkami a rovinami 5.1.5 Zákldní vzthy mezi body, přímkmi rovinmi Předpokldy: 510 Prostor má tři rozměry, skládá se z bodů přímk - jednorozměrná podmnožin prostoru (množin bodů), rovin - dvojrozměrná podmnožin prostoru (množin

Více

14. cvičení z Matematické analýzy 2

14. cvičení z Matematické analýzy 2 4. cvičení z temtické nlýzy 2 22. - 26. květn 27 4. Greenov vět) Použijte Greenovu větu k nlezení práce síly F x, y) 2xy, 4x 2 y 2 ) vykonné n částici podél křivky, která je hrnicí oblsti ohrničené křivkmi

Více

Opakovací test. Klíčová slova: výraz, interval, množina, kvadratický trojčlen, mocnina, exponent, výrok, negace

Opakovací test. Klíčová slova: výraz, interval, množina, kvadratický trojčlen, mocnina, exponent, výrok, negace VY_32_INOVACE_MAT_190 Opkovcí test lgebrické výrzy, logik, množiny A, B Mgr. Rdk Mlázovská Období vytvoření: září 2012 Ročník: čtvrtý Temtická oblst: mtemtické vzdělávání Klíčová slov: výrz, intervl, množin,

Více

NPRG030 Programování I, 2010/11

NPRG030 Programování I, 2010/11 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE když X, Y jsou (číselné) výrazy, potom X = Y X Y X < Y X > Y X = Y jsou

Více

a i,n+1 Maticový počet základní pojmy Matice je obdélníkové schéma tvaru a 11

a i,n+1 Maticový počet základní pojmy Matice je obdélníkové schéma tvaru a 11 Mticový počet zákldní pojmy Mtice je obdélníkové schém tvru 2...... n 2 22. 2n A =, kde ij R ( i =,,m, j =,,n ) m m2. mn ij R se nzývjí prvky mtice o mtici o m řádcích n sloupcích říkáme, že je typu m/n

Více

Výraz. podmínky (B) 1 (E) (A) 56 (B) 144 (C) 512 (D) 2 011 (E) Taková čísla neexistují. Počet všech přirozených čísel, která vyhovují

Výraz. podmínky (B) 1 (E) (A) 56 (B) 144 (C) 512 (D) 2 011 (E) Taková čísla neexistují. Počet všech přirozených čísel, která vyhovují . Posloupnost ( ) =, n+ = 3 =, n+ n = 3 3 =, n+ = = 3, n+ = n +. = = n+ 3, 3n + n je totožná s posloupností: n n n = Dvid hrje kždý všední den fotbl v sobotu i v neděli chodí do posilovny. Dnes se sportovně

Více

Formální jazyky. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 6. března / 48

Formální jazyky. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 6. března / 48 Formální jzyky M. Kot, Z. Sw (VŠB-TU Ostrv) Úvod do teoretické informtiky 6. březn 2007 1/ 48 Motivce 1: Vyhledávání v textu Potřebujeme řešit následující problém: Máme řdu různých textů(npř. soubory n

Více

INTEGRACE KOMPLEXNÍ FUNKCE KŘIVKOVÝ INTEGRÁL

INTEGRACE KOMPLEXNÍ FUNKCE KŘIVKOVÝ INTEGRÁL INTEGRAE KOMPLEXNÍ FUNKE KŘIVKOVÝ INTEGRÁL N konci kpitoly o derivci je uveden souvislost existence derivce s potenciálním polem. Existuje dlší chrkterizce potenciálného pole, která nebyl v kpitole o derivci

Více

NPRG030 Programování I, 2018/19 1 / :25:37

NPRG030 Programování I, 2018/19 1 / :25:37 NPRG030 Programování I, 2018/19 1 / 26 24. 9. 2018 10:25:37 Čísla v algoritmech a programech 10 26 Poloměr vesmíru 2651 studujících studentů MFF UK 3.142857... Ludolfovo číslo 10 16 stáří vesmíru v sekundách!!!

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

OBECNÝ URČITÝ INTEGRÁL

OBECNÝ URČITÝ INTEGRÁL OBECNÝ URČITÝ INTEGRÁL Zobecnění Newtonov nebo Riemnnov integrálu se definují různým způsobem dostnou se někdy různé, někdy stejné pojmy. V tomto textu bude postup volen jko zobecnění Newtonov integrálu,

Více

VIII. Primitivní funkce a Riemannův integrál

VIII. Primitivní funkce a Riemannův integrál VIII. Primitivní funkce Riemnnův integrál VIII.2. Primitivní funkce Definice. Nechť funkce f je definován n neprázdném otevřeném intervlu I. Řekneme, že funkce F : I R je primitivní funkce k f n intervlu

Více

Integrální počet - II. část (určitý integrál a jeho aplikace)

Integrální počet - II. část (určitý integrál a jeho aplikace) Integrální počet - II. část (určitý integrál jeho plikce) Michl Fusek Ústv mtemtiky FEKT VUT, fusekmi@feec.vutbr.cz 7. přednášk z ESMAT Michl Fusek (fusekmi@feec.vutbr.cz) 1 / 23 Obsh 1 Určitý vlstní (Riemnnův)

Více

Úlohy krajského kola kategorie A

Úlohy krajského kola kategorie A 67. ročník mtemtické olympiády Úlohy krjského kol ktegorie A 1. Pvel střídvě vpisuje křížky kolečk do políček tbulky (zčíná křížkem). Když je tbulk celá vyplněná, výsledné skóre spočítá jko rozdíl X O,

Více

Obecně: K dané funkci f hledáme funkci ϕ z dané množiny funkcí M, pro kterou v daných bodech x 0 < x 1 <... < x n. (δ ij... Kroneckerovo delta) (4)

Obecně: K dané funkci f hledáme funkci ϕ z dané množiny funkcí M, pro kterou v daných bodech x 0 < x 1 <... < x n. (δ ij... Kroneckerovo delta) (4) KAPITOLA 13: Numerická integrce interpolce [MA1-18:P13.1] 13.1 Interpolce Obecně: K dné funkci f hledáme funkci ϕ z dné množiny funkcí M, pro kterou v dných bodech x 0 < x 1

Více

4. Determinanty. Výpočet: a11. a22. a21. a12. = a 11 a 22 a 33 + a 12 a 23 a 31 + a 13 a 21 a 32 a 13 a 22 a 31. a 11 a 23 a 32 a 12 a 21 a 33

4. Determinanty. Výpočet: a11. a22. a21. a12. = a 11 a 22 a 33 + a 12 a 23 a 31 + a 13 a 21 a 32 a 13 a 22 a 31. a 11 a 23 a 32 a 12 a 21 a 33 . Determinnty Determinnt, znčíme deta, je číslo přiřzené čtvercové mtici A. Je zveden tk, by pro invertibilní mtici byl nenulový pro neinvertibilní mtici byl roven nule. Výpočet: = + = + + - - - + + +

Více

+ c. n x ( ) ( ) f x dx ln f x c ) a. x x. dx = cotgx + c. A x. A x A arctgx + A x A c

+ c. n x ( ) ( ) f x dx ln f x c ) a. x x. dx = cotgx + c. A x. A x A arctgx + A x A c ) INTEGRÁLNÍ POČET FUNKCE JEDNÉ PROMĚNNÉ ) Pojem neurčitého integrálu Je dán funkce Pltí všk tké F tk, y pltilo F ( ) f ( ) Zřejmě F ( ), protože pltí, 5,, oecně c, kde c je liovolná kon- stnt f ( ) nším

Více

8. cvičení z Matematiky 2

8. cvičení z Matematiky 2 8. cvičení z Mtemtiky 2 11.-1. dubn 2016 8.1 Njděte tři pozitivní čísl jejichž součin je mximální, jejichž součet je roven 100. Zdání příkldu lze interpretovt tké tk, že hledáme mximální objem kvádru,

Více

2.9.11 Logaritmus. Předpoklady: 2909

2.9.11 Logaritmus. Předpoklady: 2909 .9. Logritmus Předpokld: 909 Pedgogická poznámk: Následující příkld vždují tk jeden půl vučovcí hodin. V přípdě potřeb všk stčí dojít k příkldu 6 zbtek jen ukázt, což se dá z jednu hodinu stihnout (nedoporučuji).

Více

Cvičení 4.ročník rovnice, nerovnice, výrazy, funkce . 4 3

Cvičení 4.ročník rovnice, nerovnice, výrazy, funkce . 4 3 Cvičení.ročník rovnice, nerovnice, výrzy, funkce ) Vypočítejte: ) [0 (8. 0 7. 0 )] b) [ ( ). ( ) ( 7)]: ( ) c) (9 ): ( ) + [ 8 (0 )] d)[. ( 9 + 7) ( ). ( )]. e). 9. 9 f). 7 + 9 ) Vyjádřete jko jedinou

Více

URČITÝ INTEGRÁL FUNKCE

URČITÝ INTEGRÁL FUNKCE URČITÝ INTEGRÁL FUNKCE Formulce: Nším cílem je určit přibližnou hodnotu určitého integrálu I() = () d, kde předpokládáme, že unkce je n intervlu, b integrovtelná. Poznámk: Geometrický význm integrálu I()

Více

Vzdělávací materiál. vytvořený v projektu OP VK. Název školy: Gymnázium, Zábřeh, náměstí Osvobození 20. Číslo projektu: CZ.1.07/1.5.00/34.

Vzdělávací materiál. vytvořený v projektu OP VK. Název školy: Gymnázium, Zábřeh, náměstí Osvobození 20. Číslo projektu: CZ.1.07/1.5.00/34. Vzdělávcí mteriál vytvořený v projektu OP VK Název školy: Gymnázium, Zářeh, náměstí Osvoození 20 Číslo projektu: Název projektu: Číslo název klíčové ktivity: CZ.1.07/1.5.00/34.0211 Zlepšení podmínek pro

Více

Definice. Nechť k 0 celé, a < b R. Definujeme. x < 1. ϕ(x) 0 v R. Lemma [Slabá formulace diferenciální rovnice.] x 2 1

Definice. Nechť k 0 celé, a < b R. Definujeme. x < 1. ϕ(x) 0 v R. Lemma [Slabá formulace diferenciální rovnice.] x 2 1 9. Vriční počet. Definice. Nechť k 0 celé, < b R. Definujeme C k ([, b]) = { ỹ [,b] : ỹ C k (R) } ; C 0 ([, b]) = { y C ([, b]) : y() = y(b) = 0 }. Důležitá konstrukce. Shlzovcí funkce (molifiér, bump

Více

Programy na PODMÍNĚNÝ příkaz IF a CASE

Programy na PODMÍNĚNÝ příkaz IF a CASE Vstupy a výstupy budou vždy upraveny tak, aby bylo zřejmé, co zadáváme a co se zobrazuje. Není-li určeno, zadáváme přirozená čísla. Je-li to možné, používej generátor náhodných čísel vysvětli, co a jak

Více

NPRG030 Programování I, 2016/17 1 / :58:13

NPRG030 Programování I, 2016/17 1 / :58:13 NPRG030 Programování I, 2016/17 1 / 31 10. 10. 2016 10:58:13 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE NPRG030 Programování

Více

Symbolicko - komplexní metoda I Opakování komplexních čísel z matematiky

Symbolicko - komplexní metoda I Opakování komplexních čísel z matematiky Symbolicko - komplexní metod I pkování komplexních čísel z mtemtiky Použité zdroje: Blhovec,.: Elektrotechnik II, Informtorium spol.s r.o., Prh 005 Wojnr, J.: Zákldy elektrotechniky I, Tribun EU s.r.o.,

Více

METODICKÉ LISTY Z MATEMATIKY pro gymnázia a základní vzdělávání

METODICKÉ LISTY Z MATEMATIKY pro gymnázia a základní vzdělávání METODICKÉ LISTY Z MATEMATIKY pro gymnázi zákldní vzdělávání Jroslv Švrček kolektiv Rámcový vzdělávcí progrm pro zákldní vzdělávání Vzdělávcí oblst: Mtemtik její plikce Temtický okruh: Nestndrdní plikční

Více

5.1.5 Základní vztahy mezi body přímkami a rovinami

5.1.5 Základní vztahy mezi body přímkami a rovinami 5.1.5 Zákldní vzthy mezi body přímkmi rovinmi Předpokldy: 510 Prostor má tři rozměry, skládá se z bodů. Přímk - jednorozměrná podmnožin prostoru (množin bodů) Rovin - dvojrozměrná podmnožin prostoru (množin

Více

3.2. LOGARITMICKÁ FUNKCE

3.2. LOGARITMICKÁ FUNKCE .. LOGARITMICKÁ FUNKCE V této kpitole se dovíte: jk je definován ritmická funkce (ritmus) jké má ákldní vlstnosti; důležité vorce pro práci s ritmickou funkcí; co nmená ritmovt odritmovt výr. Klíčová slov

Více

Vícebytová celočíselná aritmetika

Vícebytová celočíselná aritmetika IMTEE 7 / 8 Přednášk č. 7 Vícebytová celočíselná ritmetik = bitová šířk zprcovávných dt > než šířk slov PU npř.: 8 b PU zprcovává b dt dále teoretické příkldy: b PU zprcovává 6 b slov Uložení dt v pměti

Více

Integrální počet - IV. část (aplikace na určitý vlastní integrál, nevlastní integrál)

Integrální počet - IV. část (aplikace na určitý vlastní integrál, nevlastní integrál) Integrální počet - IV. část (plikce n určitý vlstní integrál, nevlstní integrál) Michl Fusek Ústv mtemtiky FEKT VUT, fusekmi@feec.vutbr.cz 9. přednášk z AMA Michl Fusek (fusekmi@feec.vutbr.cz) / 4 Obsh

Více

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová

Více

II. kolo kategorie Z5

II. kolo kategorie Z5 II. kolo ktegorie Z5 Z5 II 1 Z prvé kpsy klhot jsem přendl 4 pětikoruny do levé kpsy z levé kpsy jsem přendl 16 dvoukorun do prvé kpsy. Teď mám v levé kpse o 13 korun méně než v prvé. Ve které kpse jsem

Více