Úvod do Programování

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

Download "Úvod do Programování"

Transkript

1 Úvod do Programování Lukáš Stříteský, Marek Pechal 20. prosince 2007 Abstrakt V článku se dozvíte, jak začít programovat v jazyce Pascal. Jediné předpokládané znalosti jsou, že dokážete z internetu stáhnout program a nainstalovat si jej na svůj počítač. Vše ostatní se zde dočtete. K úspěchu stačí chuť dozvědět se něco nového, kterou jistě máte. Naučíme se také používat malování zvané Gnuplot. Závěrem si objasníme i některé základní numerické metody. A také jak naše výsledky elegantně publikovat. 1 Hned na to 1.1 První program Určitě jste netrpěliví a rádi byste už začali psát svůj první program. Nic nám v tom nebrání. Jediné, co je k tomu potřeba stáhnout, například z FYKOSího webu 1 je program FreePascal, takzvaný kompilátor (překladač) Pascalu. Jeho domovská stránka je kde se o něm případně dozvíte spoustu dalšího. 2 Máte-li jej stažený, stačí si ho jednoduše nainstalovat (popřípadě předem ještě rozbalit) a spustit. Klepněte na první záložku nahoře File a potom klepněte na New, jak je znázorněno na obrázku. Otevřelo se nám nové okno, napíšeme zde náš první program, opište do něj prosím tento text. Program Ahoj; Begin WriteLn( Ahoj! ); ReadLn; End. Potom stiskněte Ctrl-F9 (popřípadě Run a opět Run ). FreePascal vás vyzve k uložení Vašeho programu. Stačí napsat ahoj a stisknout ENTER, popřípadě kliknout na Ok. Náš první program je na světě, navíc se okamžitě spustil. Otevřela se konzole, ve které je napsáno něco jako Running c:\fcp\2.1.4\bin\i386-win32\ahoj.exe Ahoj! 1 nebo odkudkoli jinde 2 Stáhněte si prosím verzi FreePascalu (ta je na webu FYKOSu). Současná verze tohoto programu (červen 2007) v sobě bohužel obsahuje nepříjemnou chybu způsobující nefunkčnost unity Graph, která by vás třeba mohla lákat. Nebo by se dala použít ještě i verze beta (tzv aka), tam už je opět vše v pořádku a stabilní verze by měla být hotova v srpnu

2 Obrázek 1: Nový soubor ve FreePascalu 2

3 Gratuluji! Naprogramovali jste svůj první program v Pascalu! Jednoduché, že? Teď si vysvětlíme, co se to přesně stalo, co náš program zatím umí a naučíme ho toho ještě trochu více. Pascalovské programy začínají klíčovým slovem Program, za kterým je uveden jeho název (hlavička programu) 3. Potom následuje deklarační část, kterou jsme prozatím vypustili, neboť ji zatím nepotřebujeme. Poslední část je příkazová označená slovy Begin a End. Důležitá vlastnost Pascalu je, že není takzvaně case-sensitive, čili nerozlišuje velká a malá písmena. Napsali jsme dva příkazy (každý příkaz v Pascalu je ukončen středníkem ; ). První příkaz je WriteLn( Ahoj! ); Tento příkaz vypíše na obrazovku Ahoj!. Druhý příkaz ReadLn; slouží k tomu, aby se do programu načetl vstup z klávesnice. Napište v příkazové řádce našeho programu cokoliv a stiskněte ENTER. Do programu se načetl váš vstup, čímž se příkaz ReadLn; vykonal. A protože je to příkaz pro tuto chvíli poslední, tak se program ukončil. Pojďme jej tedy naučit mnohem více, třeba počítat. Bude to opět velmi jednoduché. 1.2 Ciferný součet Nyní si napíšeme program, který nám spočítá ciferný součet libovolného celého čísla. Například ciferný součet čísla 1987 je = 25. Opět si prosím přepište 4 zdrojový kód a zkuste si jej spustit. Vzápětí si jej vysvětlíme. Program CifernySoucet; Var X, Y: Integer; Begin WriteLn( CIFERNY SOUCET ); WriteLn( Napiste cislo a~stisknete Enter ); ReadLn(X); Y := 0; While X <> 0 do Begin Y := Y + X mod 10; X := X div 10 End; WriteLn(Y); ReadLn; end. Co je zde všechno nové? Řádek Var X, Y: Integer; nám takzvaně deklaruje dvě proměnné (angl. variables) X a Y. Co to znamená? Řekneme tím našemu programu, ať si zamluví určitou část paměti počítače pro nějaké dvě hodnoty, jež jsme si označili X a Y. Budou to dvě celá čísla, sdělili jsme to klíčovým slovem Integer. Příkaz ReadLn(X); načte vstup z klávesnice do naší již deklarované proměnné X. Čili vezme námi naťukané číslo a uloží ho do paměti počítače. Příkaz Y := 0; přiřadí proměnné Y hodnotu 0. Příkaz While X <> 0 do poručí našemu počítači: Prováděj níže uvedené výpočty (příkazy), dokud se X nebude rovnat nule! Je-li příkazů více, v našem případě dva, uzavřeme je opět mezi Begin a End;. 3 Je to nepovinný parametr. 4 Asi jste si již všimli, že ve FreePascalu nám nefunguje oblíbená sekvence CTRL-C, CTRL-V, neboť se jedná o DOSovský program, nikoliv Wokenní. Namísto těchto klávesových zkratek zkuste CTRL+INSERT, resp. SHIFT+INSERT. Druhou možností je si náš zdrojový soubor, který máme uložený, třeba ahoj.pas, otevřít pomocí Poznámkového bloku. Provedeme v něm požadované změny a uložíme. Novou upravenou verzi načteme do FreePascalu stiskem CTRL-ALT-F a R nebo File a Reload. 3

4 Tyto složené přiřazovací příkazy obsahují pro nás dva nové výrazy s operátory mod a div. Ty umí vydělit dvě čísla, avšak celočíselně se zbytkem, jak děti v první třídě 5. Prvním výrazem je X mod 10. Tento výraz nabude hodnoty (říká se spíše, že vrátí hodnotu) zbytku po celočíselném dělení čísla X desíti. Například pro X = 1987 je X mod 10 = 7 nebo 11 mod 3 = 2 apod. Naopak výraz X div 10 vrátí samotnou hodnotu celočíselného dělení desíti. Pro X = 1987 je X div 10 = 198 nebo 11 div 3 = 3 a pod. Ukažme si nyní na konkrétním příkladu, co náš program dělá. Dejme tomu, že uživatel naťuká 1987 a stiskne ENTER. Toto číslo se uloží do proměnné X. Proměnná Y má hodnotu 0. Poté vstoupíme do takzvaného podmíněného (While) cyklu. Cyklicky, tedy pořád dokola, budeme vykonávat příkazy Y := Y + X mod 10; a X := X div 10; dokud nenabude proměnná X hodnoty 0. A co že to ty příkazy provádí? Nejprve přiřadí do proměnné Y samotnou hodnotu Y (nyní nula) plus 1987 mod 10, čili sedm. Proměnná Y tedy nabyla hodnoty sedm. Do proměnné X se na dalším řádku přiřadí hodnota 1987 div 10, čili 198. Protože se X stále ještě nerovná 0, provedeme tyto příkazy znovu. Řádek Y := Y + X mod 10; nyní znamená Y = mod 10 = 15, čili proměnná Y má už hodnotu patnáct. Proměnná X vzápětí nabude hodnoty 198 div 10 = 19. Protože to však stále ještě není 0, tak musíme počítat zase znova. Y = mod 10 = 24 a X = 19 div 10 = 1. Jednička už je hodně málo, avšak stále ještě ne 0, proto proběhne cyklus ještě naposledy a jeho výsledkem je, že Y = mod 10 = 25 a X = 1 mod 10 = 0. Náš vydřený výsledek se vypíše příkazem WriteLn(Y); Příkaz ReadLn; nám nyní slouží vlastně pouze k tomu, aby se program neukončil okamžitě po vypsání výsledku, ale nechal nás si jej alespoň přečíst nebo vyfotografovat. 1.3 Rozklad na prvočísla Nyní si napíšeme program, který nám rozloží číslo na jeho prvočísla. Například 180 = Tento program vypadá následovně. Program Prvociselny_Rozklad; Var N: Integer; // zkoumane cislo D: Integer; // delitele Begin Write( Zkoumane kladne cele cislo vetsi nez 1: ); Readln(N); Write( Prvociselny rozklad: ); While N mod 2 = 0 do Begin N:=N div 2; Write(2, ) End; D:=3; // prvni lichy delitel While N > 1 do Begin While N mod D = 0 do Begin N:=N div D; 5 Přece jenom je náš program stále ještě takové dítě. 4

5 Write(D, ) End; D:=D+2 End; ReadLn; End. // dalsi mozny delitel 1.4 Hřeb naše nová kalkulačka Následujícím programem je kalkulačka. Program Kalkulacka; Var vyraz: String; //najde polohu operatoru s~nejvetsi prioritou //a odstrani prebytecne vnejsi zavorky Function Poloperatoru(var vyraz: String): Integer; Var plus, krat: Integer; //poloha posledniho operatoru zavorky: Integer; //bilance zavorek i: Integer; begin plus:=0; krat:=0; zavorky:=0; for i:=1 to length(vyraz) do case vyraz[i] of ( : zavorky := zavorky + 1; ) : zavorky := zavorky - 1; +, - : if zavorky = 0 then plus := i; *, / : if zavorky = 0 then krat := i; end; if plus > 0 then Operator := plus else if krat > 0 then Operator := krat else if vyraz [1] <> ( then Operator := 0 else //odstranime vnejsi zavorky begin vyraz := Copy(vyraz, 2, length(vyraz) - 2); Operator := Operator(vyraz) end end; //function Operator 5

6 //spocita rekurzivne hodnotu zadaneho vyrazu Function Hodnota(var vyraz: string): integer; Var poloha: Integer; //poloha operatoru vyraz1, vyraz2: String; //levy a~pravy usek od operatoru vysledek: Integer; //vysledna hodnota begin poloha := Poloperatoru(vyraz); if poloha = 0 then Val(vyraz, vysledek); else begin vyraz1 := Copy(vyraz, 1, poloha-1); vyraz2 := Copy(vyraz, ploha + 1, Length(vyraz)-poloha); case vyraz[poloha] of + : vysledek := Hodnota(vyraz1) + Hodnota(vyraz2); - : vysledek := Hodnota(vyraz1) - Hodnota(vyraz2); * : vysledek := Hodnota(vyraz1) * Hodnota(vyraz2); / : vysledek := Hodnota(vyraz1) div Hodnota(vyraz2); end end; Hodnota := vysledek; end; Begin WriteLn( Vitejte v~kalkulatoru! ); WriteLn( Prikazem {,,}+{ } muzete scitat ); WriteLn( Prikazem {,,}*{ } muzete nasobit ); WriteLn( Prikazem {,,}-{ } muzete odcitat ); WriteLn( Prikazem {,,}/{ } muzete delit ); WriteLn( Uzivejte zavorek {,,}({ }, {,,}){ } dle libosti ); WriteLn( Jen at Vas vyraz neprekroci delku 256 znaku. ); ReadLn(vyraz); WriteLn( Hodnota vyrazu je: ); WriteLn(Hodnota(vyraz)); ReadLn; end. 2 Teorie Nyní, poté co jsme si programování osahali na praktických příkladech, by vám mohla přijít vhod také nějaká ta teorie. Studujme na chvíli tedy jazyk Pascal. 6

7 2.1 Programovací jazyky Nejstaršími programovacími jazyky jsou jazyky strojové a jejich symbolické verze (asemblery). Této skupině jazyků se říká souhrnně strojově orientované jazyky. Tyto programy se skládají z posloupnosti elementárních příkazů, které nazýváme instrukce a které může přímo provádět procesor. I dlouhé programy napsané takovýmto jazykem jsou tedy dobře zvládnutelné počítačem, ovšem o to obtížnější je práce programátora. Hlavním důvodem, proč se v nich tak špatně vytváří programy je, že nejsou strukturované. Tento nedostatek odstranily vyšší programovací jazyky, mezi které patří i Pascal. Povíme si nyní něco o jejich základních rysech Typy dat Ve vyšších programovacích jazycích jsou vymezené typy dat, které určují jejich obor hodnot a možné operace nad nimi. Přirozeně to bude například typ celých čísel (v Pascalu Integer), reálných čísel (v Pascalu Real) nebo posloupnost alfanumerických znaků (v Pascalu String) Konstanty Konstanta je datový objekt, jehož hodnota se během celého výpočtu nemění. Podle toho, jak konstantu v programu identifikujeme, rozlišujeme dva druhy konstant. První jsou přímé konstanty neboli literály. Je jí přímý zápis hodnoty do programu, například 2, nebo 3,14593 nebo posloupnost neboli řetězec alfanumerických znaků. Pojmenované konstanty se identifikují svými svými jmény, takzvanými identifikátory a v programu se zavádějí deklarací Proměnné Proměnná je datový objekt, jehož hodnota se může v průběhu výpočtu měnit. Proměnné se nejčastěji identifikují pomocí jmen, takzvaných identifikátorů proměnných. Ty se opět zavádí deklaracemi, čímž se určí též jejich datový typ Deklarace Deklarace zavádí a pojmenovává určité součásti programu jako proměnné, konstanty, funkce, procedury a podobně. Deklarace se můžou lišit podle rozsahu jejich platnosti. Takto rozlišujeme deklarace globální, jenž platí v celém programu a deklarace lokální, které se uplatní pouze v jedné jeho části například pouze v jedné funkci. Deklarace lze rovněž dělit na statické a dynamické. Rozdíl je v tom, že dynamická deklarace může být ovlivněna za běhu programu například tím, jaký programu pošleme vstup. Naopak statická deklarace nezávisí na hodnotách proměnných a uskuteční se za všech okolností stejně. Spousta vyšší programovacích jazyků nepřipouští dynamické deklarace a Pascal mezi ně patří Výrazy Výraz je operační struktura, pomocí které se popisuje výpočet hodnoty. V programovacích jazycích mají většinou podobný tvar jako matematické výrazy například X := ( ) * 6. Skládají se z operátorů, operandů i závorek. Operandem může být konstanta, proměnná nebo hodnota funkce. Operátory se obvykle dělí na unární a binární podle počtu operandů a mohou působit pouze na přípustné typy operandů. Dále jsou pro ně určeny typy výsledných hodnot a také priority, podle kterých se určuje pořadí při provádění operací ve výrazu, v němž se vyskytuje více než jeden operátor. 7

8 Mezi operátory patří i relační operátory, kterými se tvoří relace. Relace je výraz, který nabývá jedné z logických hodnot 6 podle toho, zda hodnoty operandů v něm uvedených jsou či nejsou ve vztahu, který udává relační operátor. Ve většině vyšších programovacích jazyků musí být výraz vždy součástí nějaké vyšší jazykové konstrukce, zpravidla příkazu, z níž je zřejmé, co má být s hodnotou výrazu provedeno, například přiřazena proměnné Příkazy Pomocí příkazů se popisují jednotlivé výpočetní akce. Existují příkazy například přiřazovací (které přiřazují hodnotu proměnné), přikazy skoku, volání funkcí a procedur. Řídícími strukturami, kterými se vyjadřuje postupné, podmíněné či opakované provádění dílčích příkazů, jsou strukturované příkazy. V jazycích, které navazují na koncepci příkazů jazyka Algol 60, to je složený příkaz, podmíněné příkazy a příkazy cyklu. Většinou se skládají z dílčích příkazů a obsahují také výrazy udávající podmínky pro větvení či opakování. Ilustrativním příkladem je přiřazení proměnné Y absolutní hodnotu proměnné X. if X >= 0 then Y := X else X := - Y Syntaktický diagram Syntaxe je souhrn pravidel udávajících přípustné tvary dílčích konstrukcí a celého programu. Každý syntaktický diagram definuje všechny přípustné tvary konstrukce, jejíž název je uveden v nadpisu diagramu. Každý přípustný tvar této konstrukce získáme tak, že projdeme nějakou cestou vedoucí od začátku syntaktického diagramu do jeho konce. identifikator pismeno pismeno cislice Podprogramy Při hledání algoritmického řešení složitějšího problému si jej rozdělíme na několik podproblémů, kterým se pak věnujeme každému zvlášť a nakonec je všechny propojíme. Vyšší programovací jazyky umožňují aplikovat takovýto přístup při psaní programu jeho rozkladem na podprogramy. Podprogram je tedy popisem dílčího algoritmu, v němž konkrétní data mohou být zastoupena formálními parametry. Podprogramy se dělí na procedury a funkce. Procedura je popisem algoritmu, který nějakým způsobem transformuje data, funkce popisuje algoritmus výpočtu jedné hodnoty, která může být též použita jako operand ve výrazu. 6 pravda či nepravda 8

9 2.2 Jazyk Pascal V této kapitolce si povíme něco konkrétně k jazyku Pascal Jazyk Pascal Co s výstupem? Jakožto fyzikům nám občas nebude stačit výstup z našeho programu na obrazovku, protože budeme potřebovat získaná data dále zpracovávat (např. z nich vytvářet grafy v další kapitolce si ukážeme jak). Naštěstí nám operační systém (budeme teď chvíli mluvit konkrétně o Windows) umožňuje to, co program vypisuje, velmi jednoduše zapsat do textového souboru. Jak? 7 Spustíme si příkazový řádek v nabídce Start systému Windows zvolíme spustit, do textového pole zadáme cmd a stiskneme ENTER, případně klikneme na OK. Otevře se nám okno s černým pozadím windowsovský příkazový řádek. Na posledním řádku je vypsán název aktuálního adresáře. Ten musíme nejdříve změnit na adresář s naším programem (předpokládejme, že je to třeba C:\mujadresar\programky). V adresářové struktuře se můžeme pohybovat pomocí příkazu cd. Zápisem cd.. se přesuneme o adresář výš (je-li to možné), příkazem cd adresar vstoupíme z aktuálního adresáře do jeho podadresáře s názvem adresar. Je-li počáteční aktuální adresář C:\Documents and Settings\Moje, budeme postupovat takto: C:\Documents and Settings\Moje>cd.. C:\Documents and Settings>cd.. C:\>cd mujadresar C:\mujadresar>cd programky C:\mujadresar\programky> Teď bychom chtěli přesměrovat výstup programu fykos.exe do textového souboru vystup.txt. Do příkazového řádku jednoduše zadáme fykos > vystup.txt. To, co by program normálně vypisoval na obrazovku, se nyní tiše zapíše do textového souboru. Tohle celé lze samozřejmě zařídit i programově tedy přímo v pascalovském programu automaticky zapisovat do souboru (nemusíme se pak obtěžovat s příkazovým řádkem) a není to až tak složité. Posuďte sami. Než začneme zapisovat, musíme si deklarovat proměnnou, která bude náš výstupní soubor reprezentovat. Tato proměnná bývá typu text či textfile (podle toho, jakou verzi Pascalu používáte). Této proměnné pak musíme přiřadit název souboru a ten pak otevřít.... var f:text; begin assign(f, nazevmehosouboru.txt ); rewrite(f);... Příkaz rewrite přepíše veškerý dosavadní obsah našeho souboru (vyprázdní jej), a pokud soubor neexistuje, tak jej vytvoří. Pokud byste chtěli starý obsah souboru zachovat a pouze k němu připisovat další data, museli byste pro otevření použít příkaz append. V tomto okamžiku můžete do souboru zapisovat stejně jako na obrazovku tedy příkazy write a writeln, pouze musíte jako jejich první parametr udat identifikátor souboru. Například: 7 Pokročilejším čtenářům se omlouváme, za trochu velmi základního opakování. 9

10 Obrázek 2: Okno právě spuštěného Gnuplotu verze 4.0 writeln(f, Vypisu tam text a~cislo,x, a~zase text. ); Když už se souborem nehodláte dále pracovat, je dobré jej za sebou zavřít příkazem close(f). 3 Gnuplot Program Gnuplot je velmi užitečný nástroj, určený jak už jeho název napovídá ke kreslení všemožných typů grafů. Předpona GNU nám také říká, že program je vyvíjen pod stejnojmennou opensourceovou licencí a je tedy zdarma ke stažení (i s obsáhlou dokumentací) na internetových stránkách Po jednoduché instalaci a spuštění zjistíte, že se Gnuplot chová podobně jako například DOSovský příkazový řádek bliká na vás kurzor a čeká na váš příkaz, který je po stisknutí klávesy ENTER ihned vykonán. Nepíšete tedy celý program, který by se pak najednou provedl, jak je tomu v Pascalu (i když i to se dá v Gnuplotu dělat, jak uvidíme později). Dalšími důležitými rozdíly Gnuplotu oproti Pascalu, jejichž opomíjení se může škaredě vymstít 8, jsou jeho case sensitivnost (tzn. je důležité, jestli napíšete plot, nebo Plot, zatímco v Pascalu je to prašť jako uhoď) a jeho chování při dělení, které je pro uživatele neobeznámeného s jazykem C téměř zákeřné. Napíšete-li totiž příkaz plot [0:1] 1/3+x a budete očekávat, že vám Gnuplot poslušně naservíruje graf funkce 1/3 + x v intervalu [0, 1], překvapí vás vykreslením grafu funkce x a vy budete jistě dumat, jaký čert v tom vězí. Svízel je v tom, že Gnuplot používá znak / pro normální i pro celočíselné dělení a to, o které z nich se v tom kterém případě jedná, pozná z charakteru operandů. Jsou-li oba celočíselné, myslí si Gnuplot, že jde o dělení celočíselné, a tak konstantu 1/3 nevyhodnotí jako 0, , jak bychom zajisté chtěli, nýbrž jako prachsprostou nulu. To, že po něm žádáme jednu třetinu, oznámíme například zápisem 9 8 Vzpomeňte si, až budete zoufale lovit chybu, která jak se ukáže spočívala v jediném velkém písmenu na místě malého. 9 Stejně dobře by fungovalo i 1/3.0 nebo dokonce 1./3 či 1/3.. 10

11 Obrázek 3: Gnuplotí okna s výslednými grafy 1.0/3. Nyní už nejsou oba operandy celočíselné, a tak Gnuplot interpretuje zápis správně. 3.1 Základní příkazy Příkaz plot Jistě nejdůležitějším příkazem, který budete v Gnuplotu používat, je příkaz plot, který vykreslí graf zadané funkce nebo data z externího souboru. Jeho povinným parametrem je interval nezávislé proměnné (označené implicitně jako x), v němž se graf vykreslí, a samozřejmě samotná funkce. Interval se udává ve tvaru [a:b], kde a a b jsou jeho krajní body, a funkce ve formě číselného výrazu, podobného tomu z Pascalu (používané operátory a funkce blíže popíšeme později). Použití funkce plot může vypadat například takto: plot [0:1] x plot [-pi:pi] sin(x) plot [-1:1] sqrt(x**2+1) plot [2:3] sqrt(exp(x)/x**2+(1-x)*log(x)) Po zadání některého z těchto řádků do Gnuplotu a potvrzení ENTERem se otevře nové okno s výsledným grafem (viz obrázek 3) Konvence pro zápis výrazů v Gnuplotu je téměř stejná jako v Pascalu, pro elementární aritmetické operace se užívá operátorů +, -, *, /, jejich priorita je zcela obvyklá (tj. násobení a dělení má vyšší prioritu než sčítání a odčítání), stejně tak závorky fungují tak, jak jsme zvyklí. Oproti Pascalu existuje navíc binární operátor ** pro umocňování. Symboly matematických funkcí začínají malým písmenem, jejich argumenty se uzavírají do kulatých závorek. Několik nejzákladnějších uvádíme v tabulce 1. Pokud chceme, můžeme do jednoho grafu vykreslit i více funkcí. Stačí je od sebe oddělit čárkami, např. plot [0:1] x,x**2,x**3. Příkaz plot také umí vykreslovat do grafu data ze souboru, což jistě velmi oceníte, až se (možná) budete na matfyzu ve druhém semestru protloukat fyzikálním praktikem. Ukážeme si to na příkladu. Mějme textový soubor teplota.txt, obsahující ve dvou sloupcích 10 data z měření průběhu venkovní 10 oddělených mezerou či tabulátorem 11

12 Tabulka 1: Základní matematické funkce v Gnuplotu druhá odmocnina exponenciála přirozený logaritmus sinus (resp. hyperbolický) kosinus (resp. hyperbolický) tangens (resp. hyperbolický) arkussinus (resp. hyperbolický) arkuskosinus (resp. hyperbolický) arkustangens (resp. hyperbolický) sqrt exp log sin (resp. sinh) cos (resp. cosh) tan (resp. tanh) asin (resp. asinh) acos (resp. acosh) atan (resp. atanh) Obrázek 4: Plot dat z externího souboru teploty během dne (v prvním sloupci čas uplynulý od půlnoci v hodinách, ve druhém teplota ve stupních Celsia). Chceme-li z našeho měření vykreslit graf, jednoduše Gnuplotu zadáme příkaz plot teplota.txt. Než to ale uděláme, musíme správně nastavit pracovní adresář Gnuplotu na ten, ve kterém se soubor teplota.txt nachází. To uděláme pomocí příkazu cd (napíšeme např cd c:\mujadresar, je-li náš soubor umístěn na disku c: v adresáři mujadresar). Pak už nám nic nebrání přistoupit k samotnému vykreslování. Výsledek ukazuje obrázek 4. Dejme tomu, že v souboru teplota.txt máme kromě sloupce s časem a teplotou ještě třetí sloupec s naměřenými hodnotami atmosférického tlaku, jehož závislost na denní době bychom také chtěli vykreslit. Musíme tedy Gnuplotu nějak sdělit, že nechceme do grafu vykreslovat data z prvního a druhého sloupce, nýbrž z prvního a třetího. To uděláme připojením textu using 1:3. Náš příkaz tedy bude plot teplota.txt using 1:3. Klíčové slovo using můžeme také využít v situaci, kdy nechceme na svislou osu grafu vynášet přímo data ze souboru, ale nějakou hodnotu na nich závislou, například jejich druhou mocninu. Pak napíšeme using 1:($2**2). Symbol $2 zde zastupuje data z druhého sloupce (a pozor závorky zde nelze vynechat!). Stejný trik samozřejmě funguje i pro vodorovnou osu. Po zadání plot data.txt using (log($1)) :($1*$4) bychom získali graf, v němž na vodorovné ose je vynášen přirozený logaritmus čísel z prvního sloupce souboru data.txt, na svislé pak součin čísel 12

13 Obrázek 5: Plot dat z externího souboru s chybovými úsečkami z prvního a čtvrtého sloupce. Vraťme se nyní zpět k příkladu s výsledky měření teploty a tlaku. Jestliže bychom chtěli v grafu závislosti tlaku na čase vykreslené body pospojovat čárou (o to se ale v praktiku nikdy nepokoušejte, jinak skončíte ve fyzikálním pekle), jednoduše Gnuplotu řekneme plot teplota.txt using 1:3 with lines. Jsme-li jako experimentátoři alespoň trochu co k čemu, víme, že spolu s naměřenými hodnotami bychom měli uvést i jejich chyby. Mějme tedy ve čtvrtém sloupci našeho souboru zapsány chyby jednotlivých měření teploty. Ty dostaneme do grafu ve formě hezkých chybových úseček (errorbarů) příkazem plot data.txt using 1:2:4 with errorbars, kde tentokrát musíme specifikovat tři sloupce dat první s nezávisle proměnnou, druhý se závisle proměnnou a třetí s její chybou. Výsledek bude vypadat jako na obrázku 5. Nakonec je ještě třeba zmínit se o souvisejícím příkazu replot, který zadán bez parametrů zopakuje poslední provedený plot. Dokáže však do něj také přidat další graf, zadáme-li mu jako parametr požadovanou funkci či název souboru s daty (případně doplněné o další specifikace jako např. using 1:3 či with lines). Všimněme si však, že tentokrát již nezadáváme interval nezávislé proměnné, protože ten je dán z posledního provedení příkazu plot Pomocné příkazy Samozřejmě se nemusíme spokojit se vzhledem grafu, který nám Gnuplot poskytne na první pokus. Nabízí se nám totiž řada možností, jak jej dále upravovat můžeme přidat popisky os, legendu jednotlivých vykreslených závislostí, atd. To lze provádět nastavením nejrůznějších parametrů před samotným vykreslením grafu. Potřebný příkaz má většinou tvar set nazevparametru jehohodnota, chceme-li nastavit parametr nazevparametru na hodnotu jehohodnota, nebo unset nazevparametru, přejeme-li si jej vynulovat. Je-li tedy například naším cílem přidat popisek vodorovné osy t [ms], napíšeme příkaz set xlabel t [ms]. Obdobně pro svislou osu užijeme parametr ylabel. Pokud se nám popisek nelíbí, můžeme jej opět odstranit příkazem unset xlabel. Gnuplot nám také umožňuje upravovat legendu vykreslovaných závislostí, je-li jich v jediném grafu více. Její text nastavíme při volání příkazu plot přidáním klíčového slova title následova- 13

14 Obrázek 6: Dvě závislosti v jediném grafu opatřené legendou ného požadovaným textovým řetězcem. Tak například příkaz plot [0:1] x title prvni, x**2 title druha vykreslí v intervalu [0, 1] grafy funkcí x a x 2 opatřené popisky prvni a druha, jak vidíme na obrázku 6. Zobrazený výsledek však má nepříjemnou vadu. Legenda se bohužel vykreslila na tak nevhodném místě, že zasahuje do grafů. Naštěstí nám ale Gnuplot umožňuje její polohu nastavovat. V levém horním rohu máme docela dost místa, napíšeme tedy set key left top a při příštím vykreslení (například příkazem replot) se nám legenda poslušně přesune tam, kam jsme chtěli. Způsobů, jak lze manipulovat s podobou výsledného grafu, existuje nepřeberné množství a není v našich silách je zde všechny rozebrat. Věříme, že váš hlad po dalších informacích ukojí oficiální dokumentace. A nyní se již pusťme do dalšího důležitého tématu, kterým je výstup do souboru Možnosti výstupu To, co dělá z Gnuplotu pro nás tak zajímavý nástroj, je vedle jeho dostupnosti a bohatých vykreslovacích možností jistě i schopnost poskytovat výstup v široké škále různých formátů od rastrových obrázků přes vektorové (postscript, PDF) až po zdrojové texty pro MetaPost či L A TEX. Pro nás bude důležitý zejména výstup do formátu postscript, protože jej můžeme velmi snadno začlenit do TEXovských dokumentů. Zájemci o informace o ostatních formátech je mohou snadno získat z volně dostupné dokumentace ke Gnuplotu. Přejeme-li si tedy výstup v již zmíněném postscriptu, zajistíme to příkazem set term postscript. Jestliže na konec přidáme ještě slovo eps, bude použit takzvaný encapsulated (zapouzdřený) postscript. Když už máme nastaven formát výstupu, zbývá ještě určit název výstupního souboru. Zadáme tedy příkaz set output mujsoubor.eps. A nyní je už vše připraveno k tomu, abychom do souboru mujsoubor.eps kreslili. To můžeme provádět zcela přirozeně příkazem plot. Drobnou nevýhodou tohoto postupu však je skutečnost, že výsledný graf nevidíme (nekreslí se na obrazovku, ale do souboru). Zde nám může pomoci příkaz replot. Ještě před nastavením výstupu si graf vykreslíme na obrazovku a upravíme si jej postupně k obrazu svému. Když už jsme spokojeni, nastavíme výše popsaným způsobem výstup a necháme vše vykreslit znovu příkazem replot. Jakmile máme v souboru to, co chceme, měli bychom jej opět odpojit. Jinak totiž zůstane otevřený 14

15 a pokusíme-li se jej někam přesunout, přejmenovat či vymazat, nepodaří se nám to. Napišme tedy příkaz unset output a vše bude v pořádku. Náš první postscriptový obrázek z Gnuplotu je hotov! Příkaz fit Další velmi užitečnou schopností Gnuplotu je možnost fitování (prokládání) souboru dat funkční závislostí. Jednoduše řečeno jde o nalezení takové funkce z určité dané třídy funkcí (např. všech lineárních funkcí, polynomů čtvrtého řádu, exponenciálních funkcí, apod.), která v jistém smyslu co nejlépe vystihuje naměřená data. Zajímají-li vás bližší detaily, pak vězte, že Gnuplot používá nelineární metodu nejmenších čtverců a optimální parametry požadované funkční závislosti hledá metodou postupných iterací (tedy opakovaného provádění jistých operací za účelem postupného zpřesňování dosaženého výsledku). Výhodou je možnost fitování dat prakticky libovolnou třídou funkcí, nevýhodou pak to, že v určitých případech Gnuplot optimální parametry nemusí vůbec najít, případně s nimi dokonce může utéct do oblasti zcela nesmyslných hodnot 11. Příkaz fit se používá následujícím způsobem. Jako první parametr zadáme typ fitované funkční závislosti například a*x pro přímou úměrnost, a*x+b pro lineární funkci, a*x**2+b*x+c pro kvadratickou, a*exp(b*x) pro exponenciálu, atd. Symboly a, b, c, apod. (lze však použít téměř libovolný identifikátor kromě x) zde představují parametry funkce, které bude Gnuplot určovat. Jako druhý parametr zadáme název souboru s daty. Dále pak můžeme pomocí klíčového slova using stejně jako v případě příkazu plot specifikovat, které dva sloupce nás zajímají. Potom Gnuplot při fitování bere všechna data se stejnou váhou. Můžeme však také udat místou dvou sloupců tři, kde třetí obsahuje chyby závislé proměnné. Pak se přesnější hodnoty berou s větší váhou než ty, jejichž chyba je větší 12. Na závěr musíme Gnuplotu sdělit, které parametry má hledat, což uděláme uvedením slova via následovaného jejich seznamem. Po potvrzení příkazu ENTERem Gnuplot provede hromadu výpočtů a o svém snažení (a ve velké většině případů o jeho úspěchu) nám podá obsáhlou zprávu, kterou zároveň uloží do logovacího souboru (implicitně se jmenuje fit.log). Zde najdeme finální hodnoty hledaných parametrů včetně jejich chyb a korelační matice (tj. do jaké míry jsou spolu tyto hodnoty svázány). Hodnoty parametrů také zůstanou v paměti Gnuplotu uloženy až do jeho ukončení pod námi zvolenými identifikátory. Můžeme je tedy dále využít a například do grafu vykreslit spolu s daty ze souboru i jimi proloženou závislost. Demonstrujme si vše na příkladu. Zkusíme data z měření teploty během dne proložit polynomem čtvrtého řádu. Samotný fit provedeme příkazem fit a*x**4+b*x**3+c*x**2+d*x+e teplota.txt using 1:2:4 via a,b,c,d,e Následně vykreslíme do grafu naměřené teploty a pak do něj přidáme proloženou závislost. plot teplota.txt using 1:2:4 with errorbars replot a*x**4+b*x**3+c*x**2+d*x+e Grafy nám poněkud nešťastně zasahují do legendy a tak si ji příkazem set key left top přesuneme do levého horního rohu a vše vykreslíme znovu zadáním replot. Teď když už jsme s výsledkem spokojeni, si jej necháme vykreslit do postscriptového souboru: 11 I tuto situaci je ale někdy možno řešit můžeme Gnuplot trochu postrčit žádoucím směrem tak, že mu napovíme, jaké by zhruba hledané parametry měly být. K tomu je ovšem musíme umět nějakým způsobem odhadnout. 12 Přesněji váha každé hodnoty je rovna převrácené hodnotě kvadrátu její chyby. 15

16 30 28 teplota.txt using 1:2:3 a*x**4+b*x**3+c*x**2+d*x+e Obrázek 7: Naměřená data spolu s proloženou závislostí set term postscript eps set output teplota.eps replot Při bližším pohledu na získaný graf v obrázku 7 si všimneme, že námi navržená polynomiální závislost zvláště v podvečerních hodinách neaproximuje naměřená data příliš dobře. Stálo by tedy za to vyzkoušet i jiné typy závislostí. 3.2 Programy v Gnuplotu Pokud vás trápí, že ať už chcete v Gnuplotu udělat cokoliv, musíte mu to po každém spuštění vždy ručně zadat znovu, máme pro vás dobrou zprávu. Také v tomto případě si můžete napsat jednoduchý program, který pak necháte Gnuplotem zpracovat, kdy budete chtít. Docela dobře vám k tomu poslouží i obyčejný poznámkový blok. Jednoduše napíšete požadovanou posloupnost příkazů, textový soubor uložíte (nechť se nachází například v adresáři C:\mujadresar pod názvem program.txt). Pokud nyní z příkazového řádku zavoláte Gnuplot s parametrem obsahujícím cestu k danému programu, bude v něm obsažená posloupnost příkazů postupně vykonána, načež se Gnuplot automaticky ukončí. Jak se to celé provede? Předpokládejme, že máme Gnuplot nainstalován v adresáři C:\gnuplot. Spustíme si příkazový řádek a dostaneme se do adresáře C:\gnuplot\bin. Skončili jsme v podadresáři bin gnuplotího kořenového adresáře, protože právě zde se nachází vlastní program Gnuplotu s názvem wgnuplot.exe. Kdybychom nyní do příkazového řádku zadali wgnuplot, spustil by se Gnuplot ve windowsovském okně tak, jak jej známe. Protože však chceme pouze zpracovat náš programu, napíšeme do příkazového řádku wgnuplot C:\mujadresar\program.txt 16

17 a potvrdíme ENTERem. Možná se vám bude zdát, že se vůbec nic nestalo. Pokud ale zkontrolujete adresář C:\mujadresar, najdete tam výsledný obrázek, který vám Gnuplot nakreslil 13. Tolik k úvodní teorii, jistě jste už ale nedočkaví si to vše vyzkoušet v praxi. Zde je náš první příklad. Mějme v souboru teplota.txt zaznamenány výsledky měření teploty ve dvou dnech. V prvním sloupci čas v hodinách, v druhém a třetím teploty z obou dnů, ve čtvrtém a pátém jejich chyby (to vše ve stupních Celsia). Následující sekvence příkazů slouží k automatickému zpracování tohoto měření do formy grafu. Výsledkem bude graf závislosti teploty v kelvinech na čase v minutách, včetně příslušných popisků a legendy, ve formátu encapsulated postscript (EPS). set key left top set xlabel t [min] set ylabel T [K] plot teplota.txt using ($1*60):($ ):4 with errorbars title den 1. replot teplota.txt using ($1*60):($ ):5 with errorbars title den 2. set term postscript eps set output teplota.eps replot Smysl jednotlivých řádků 14 je poměrně jednoduchý. První nastaví pozici legendy grafů do levého horního rohu. Druhý a třetí určují popisky os. Ve čtvrtém se vykreslí graf závislosti teplot z druhého sloupce (první den), v pátém je přidán obdobný graf pro teploty z třetího sloupce (druhý den). Příkazem na šestém řádku je určen formát výstupu enhanced postscript. Sedmý udává název výstupního souboru. Poslední řádek pak zajistí překreslení výsledných grafů, tentokrát již do postscriptového souboru (nezapomenout! bez posledních tří řádků bychom neměli žádný výstup). Přímo výstavní výsledek, který získáme zpracováním výše uvedeného programu, můžete obdivovat na obrázku 8. A na závěr ještě jeden příklad, tentokrát ze života konkrétně z měření viskozity škrobové suspenze rotačním viskozimetrem ve fyzikálním praktiku. Vzhledem k tomu, že jde o takzvanou nenewtonovskou kapalinu, závisí její viskozita na rychlosti otáčení hřídele měřícího přístroje. Tato závislost je přibližně mocninná a exponent této mocniny lze určit měřením. Soubor skrob_visc_l3.txt obsahuje následující naměřená data První sloupec udává rychlost otáčení měřící hřídele v otáčkách za minutu, druhý pak naměřenou viskozitu v mpa s a třetí chybu měření opět ve stejných jednotkách. Skript pro Gnuplot, který tato data úhledně zpracuje a poskytne nám graf i parametry nafitované mocninné závislosti, může vypadat třeba takto: 13 Pokud jste samozřejmě nezapomněli v programu zajistit výstup do souboru implicitní výstup na obrazovku by vám nebyl příliš platný vzhledem k tomu, že se Gnuplot po vykonání příkazů opět ihned vypne. 14 Pozor čtvrtý a pátý řádek se nám nevešly na stránku, takže jsou oba rozlomeny do dvou řádků. V programu však musejí být celistvé. 17

18 305 den 1. den T [K] t [min] Obrázek 8: Výsledek demonstračního gnuplotího programu set key box set key right top set key title Legenda set xlabel otacky [rpm] set ylabel viskozita [mpa.s] fit a*x**b skrob_visc_l3.txt using 1:2:3 via a,b plot [10:110] skrob_visc_l3.txt using 1:2:3 title namerena data with errorbars replot a*x**b title mocninna zavislost set term postscript mono eps set output graf.eps replot První řádek Gnuplotu říká, že kolem legendy chceme vykreslit rámeček, druhý ji pak umisťuje do pravého horního rohu a třetí nastavuje její nadpis na Legenda. Další dva řádky se starají o popisky os, šestý provádí fitování měřených dat funkcí ax b. Sedmý vykreslí naměřená data a osmý nafitovanou mocninnou závislost. Poslední tři řádky už jen zajistí výstup do souboru graf.eps v černobílém zapouzdřeném postscriptu. Výsledek vidíme na obrázku 9. Charakter mocninné závislosti proložené získanými daty můžeme následně vyčíst z logovacího souboru. Jeho nejdůležitější část, která nás především zajímá, vypadá asi takto: Final set of parameters Asymptotic Standard Error ======================= ========================== a = / (4.552%) b = / (2.175%) 18

19 3500 Legenda namerena data mocninna zavislost viskozita [mpa.s] otacky [rpm] Obrázek 9: Závislosti viskozity na rychlosti otáčení hřídele correlation matrix of the fit parameters: a b a b Jsou zde uvedeny hodnoty parametrů a a b nafitované funkce včetně jejich směrodatných i relativních odchylek a korelační matice. Co víc bychom si mohli přát? 3.3 Pár tipů závěrem Jednodušší zpracování programů v Gnuplotu Jste-li již maličko zběhlejší v práci s počítačem, poradíme vám trik, jak si výrazně zjednodušit zpracovávání gnuplotích programů. Zcela tak odpadne práce s příkazovým řádkem. Zvolte si nějakou souborovou příponu, kterou zatím žádný z programů na vašem počítači nepoužívá například.gpl,.gpt atd. Tuto příponu pak asociujte s Gnuplotem ve Windows XP se to dělá v Průzkumníku přes Nástroje Možnosti složky a záložku typy souborů. Pak již jen stačí, když gnuplotí programy místo standardní přípony textových souborů.txt ukládáte pod vámi zvolenou příponou a zpracováváte v Průzkumníku (nebo třeba Total Commanderu, chcete-li) jediným dvojklikem. Vaše touha po zjednodušování může jít ještě dál a vytváření souborů s programy pro Gnuplot můžete zcela přenechat vašemu programu v (například) Pascalu, který se tak postará nejen o numerickou simulaci daného fyzikálního problému a o výstup dat do souboru, ale i o zavolání Gnuplotu a předání vytvořeného instrukčního souboru. Jestliže si tedy trochu pohrajete, můžete jediným spuštěním vašeho pascalovského programu získat cenná numerická data i jejich pěkné grafické zpracování. 19

20 3.3.2 PSfrag Jestliže vytváříte grafy v Gnuplotu za účelem jejich umístění do L A TEXovského dokumentu a jste-li k tomu navíc esteticky citlivější povahy, může vám vadit fakt, že Gnuplot nedisponuje příliš pěknými fonty. A vy byste přitom tak moc chtěli, aby t v popisku vodorovné osy grafu bylo stejné jako t ve vzorci y = A sin(ωt). Gnuplot sice umožňuje výstup grafů v TEXovském formátu, ale žel bohu jsou vykreslovací možnosti samotného TEXu poměrně chabé (vyzkoušejte si to a zděsíte se zubatých grafů a podobných ošklivostí). Tudy tedy cesta nepovede. Naštěstí však existuje pomoc ve formě přídavného balíčku pro TEXjménem PSfrag. Použijeme-li jej v našem dokumentu, prohledají se veškeré texty ve vkládaných postscriptových obrázcích a je-li nalezen text ve formátu \tex{cokoliv}, vypíše se na jeho místě cokoliv, tentokrát ale TEXovským písmem (je možné i vkládání matematických formulí). Graf tedy můžeme s použitím PSfragu opatřit dobře vypadajícími popisky os například takto. set xlabel \tex{$\tau$ [s]} set ylabel \tex{$t$ [$^{\circ}$c]} 4 Numerické metody Z předchozích kapitol jste si snad přinejmenším teoreticky osvojili práci v programech Freepascal a Gnuplot. Aby se vám však otevřely dveře k jejich plnohodnotnému fyzikálnímu využití, budete potřebovat znát i pár chytrých numerických metod, které umožňují řešit matematické problémy (a tedy i problémy fyzikální, zapsané matematickým jazykem) numericky. Nejdůležitější z těchto metod si nyní stručně popíšeme. Úvodem však ještě několik slov o tom, kde může zvídavý čtenář utišit svůj hlad po dalších vědomostech, jež mu neposkytne tento studijní text. O numerických výpočetních metodách velmi obsáhle pojednává například anglickojazyčný text [1], poněkud stručněji pak již poněkud letitá česká kniha [2]. Pevně doufáme, že vám následující kapitoly poskytnou alespoň určitý základ a umožní vám začít psát první zajímavé programy. 4.1 Numerické řešení rovnic Nejdříve se podívejme na to, jak se dají numericky řešit obyčejné rovnice. Někdy se zkrátka dostaneme do situace, kdy bychom chtěli řešit rovnici, která analyticky řešitelná není (možná s výjimkou nějakých pokročilejších technik, jako je použití nekonečných řad). Potom nám může pomoci některá z numerických metod Metoda půlení intervalů Jednou z nejjednodušších, ale přesto poměrně účinných, je metoda půlení intervalů. Využívá toho, že rozumná funkce (konkrétně spojitá), která v bodě a nabývá záporné a v bodě b kladné hodnoty, musí někde mezi body a a b projít nulou. Jestliže tedy máme řešit rovnici f(x) = 0 (uvědomme si, že každou rovnici o jedné neznámé lze na tento tvar převést) a jsou dány dva body a, b takové, že f(a)f(b) < 0, nachází se mezi nimi zcela jistě alespoň jeden kořen naší rovnice. 20

Č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

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

Numerická matematika 1

Numerická matematika 1 Numerická matematika 1 Obsah 1 Řešení nelineárních rovnic 3 1.1 Metoda půlení intervalu....................... 3 1.2 Metoda jednoduché iterace..................... 4 1.3 Newtonova metoda..........................

Více

Paměť počítače. alg2 1

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

Lineární funkce, rovnice a nerovnice

Lineární funkce, rovnice a nerovnice Lineární funkce, rovnice a nerovnice 1. Lineární funkce 1.1 Základní pojmy Pojem lineární funkce Funkce je předpis, který každému číslu x z definičního oboru funkce přiřadí právě jedno číslo y Obecně je

Více

Nelineární rovnice. Numerické metody 6. května FJFI ČVUT v Praze

Nelineární rovnice. Numerické metody 6. května FJFI ČVUT v Praze Nelineární rovnice Numerické metody 6. května 2018 FJFI ČVUT v Praze 1 Úvod Úvod Ohraničení kořene Hledání kořene Soustava Programy 1 Úvod Úvod - Úloha Hledáme bod x, ve kterém je splněno pro zadanou funkci

Více

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více

Jednoduché cykly 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.

Jednoduché cykly 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Jednoduché cykly Tento oddíl obsahuje úlohy na první procvičení práce s cykly. Při řešení každé ze zde uvedených úloh stačí použít vedle podmíněných příkazů jen jediný cyklus. Nepotřebujeme používat ani

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

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

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 21. září 2009 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Organizace předmětu Přednášky 1. 5. Základní

Více

StatSoft Jak vyzrát na datum

StatSoft Jak vyzrát na datum StatSoft Jak vyzrát na datum Tento článek se věnuje podrobně možnostem práce s proměnnými, které jsou ve formě datumu. A že jich není málo. Pokud potřebujete pracovat s datumem, pak se Vám bude tento článek

Více

Přílohy. Příloha 1. Obr. P1.1 Zadání úlohy v MS Excel

Přílohy. Příloha 1. Obr. P1.1 Zadání úlohy v MS Excel Přílohy Příloha 1 Řešení úlohy lineárního programování v MS Excel V této příloze si ukážeme, jak lze řešit úlohy lineárního programování pomocí tabulkového procesoru MS Excel 2007. Výpočet budeme demonstrovat

Více

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM CÍLE KAPITOLY Využívat pokročilé možnosti formátování, jako je podmíněné formátování, používat vlastní formát čísel a umět pracovat s listy. Používat

Více

0.1 Úvod do matematické analýzy

0.1 Úvod do matematické analýzy Matematika I (KMI/PMATE) 1 0.1 Úvod do matematické analýzy 0.1.1 Pojem funkce Veličina - pojem, který popisuje kvantitativní (číselné) vlastnosti reálných i abstraktních objektů. Příklady veličin: hmotnost

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5 Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou

Více

5. Lokální, vázané a globální extrémy

5. Lokální, vázané a globální extrémy 5 Lokální, vázané a globální extrémy Studijní text Lokální extrémy 5 Lokální, vázané a globální extrémy Definice 51 Řekneme, že f : R n R má v bodě a Df: 1 lokální maximum, když Ka, δ Df tak, že x Ka,

Více

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1 Kapitola 4 Rasterizace objektů Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na rastrově definované obrazy. Při zobrazení reálného modelu ve světových souřadnicích na výstupní

Více

Obr. P1.1 Zadání úlohy v MS Excel

Obr. P1.1 Zadání úlohy v MS Excel Přílohy Příloha 1 Řešení úlohy lineárního programování v MS Excel V této příloze si ukážeme, jak lze řešit úlohy lineárního programování pomocí tabulkového procesoru MS Excel. Výpočet budeme demonstrovat

Více

Derivace funkcí více proměnných

Derivace funkcí více proměnných Derivace funkcí více proměnných Pro studenty FP TUL Martina Šimůnková 16. května 019 1. Derivace podle vektoru jako funkce vektoru. Pro pevně zvolenou funkci f : R d R n a bod a R d budeme zkoumat zobrazení,

Více

Lingebraické kapitolky - Analytická geometrie

Lingebraické kapitolky - Analytická geometrie Lingebraické kapitolky - Analytická geometrie Jaroslav Horáček KAM MFF UK 2013 Co je to vektor? Šipička na tabuli? Ehm? Množina orientovaných úseček majících stejný směr. Prvek vektorového prostoru. V

Více

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

Algoritmus pro hledání nejkratší cesty orientovaným grafem 1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval

Více

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce

Více

Stručný návod k programu Octave

Stručný návod k programu Octave Stručný návod k programu Octave Octave je interaktivní program vhodný pro technické výpočty. Je nápadně podobný programu MATLAB, na rozdíl od něho je zcela zadarmo. Jeho domovská vebová stránka je http://www.octave.org/,

Více

Matematika I (KMI/PMATE)

Matematika I (KMI/PMATE) Přednáška první aneb Úvod do matematické analýzy Funkce a její vlastnosti Úvod do matematické analýzy Osnova přednášky pojem funkce definice funkce graf funkce definiční obor funkce obor hodnot funkce

Více

PODPROGRAMY PROCEDURY A FUNKCE

PODPROGRAMY PROCEDURY A FUNKCE PODPROGRAMY PROCEDURY A FUNKCE Programy bez podprogramů Příklady: a) Napište program, který na obrazovku nakreslí čáru složenou ze znaků pomlčka. program Cara; b) Napište program, který na obrazovku nakreslí

Více

Numerické metody 6. května FJFI ČVUT v Praze

Numerické metody 6. května FJFI ČVUT v Praze Extrémy funkcí Numerické metody 6. května 2018 FJFI ČVUT v Praze 1 Úvod Úvod 1D Více dimenzí Kombinatorika Lineární programování Programy 1 Úvod Úvod - Úloha Snažíme se najít extrém funkce, at už jedné

Více

Funkce a lineární funkce pro studijní obory

Funkce a lineární funkce pro studijní obory Variace 1 Funkce a lineární funkce pro studijní obory Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Funkce

Více

ANOTACE vytvořených/inovovaných materiálů

ANOTACE vytvořených/inovovaných materiálů ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 IV/2 Inovace a

Více

1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004.

1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004. Prostá regresní a korelační analýza 1 1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004. Problematika závislosti V podstatě lze rozlišovat mezi závislostí nepodstatnou, čili náhodnou

Více

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel

Více

Bakalářská matematika I

Bakalářská matematika I 1. Funkce Diferenciální počet Mgr. Jaroslav Drobek, Ph. D. Katedra matematiky a deskriptivní geometrie Bakalářská matematika I Některé užitečné pojmy Kartézský součin podrobnosti Definice 1.1 Nechť A,

Více

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace. 1. Úvod. Algoritmus 1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá

Více

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28. Zdokonalování gramotnosti v oblasti ICT Kurz MS Excel kurz 6 1 Obsah Kontingenční tabulky... 3 Zdroj dat... 3 Příprava dat... 3 Vytvoření kontingenční tabulky... 3 Možnosti v poli Hodnoty... 7 Aktualizace

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

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Programovací jazyk - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Odlišnosti implementace od normy - odchylky např.: nepovinná hlavička programu odlišná

Více

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ Parametrické vyjádření přímky v rovině Máme přímku p v rovině určenou body A, B. Sestrojíme vektor u = B A. Pro bod B tím pádem platí: B = A + u. Je zřejmé,

Více

Aplikovaná numerická matematika

Aplikovaná numerická matematika Aplikovaná numerická matematika 6. Metoda nejmenších čtverců doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních

Více

metoda Regula Falsi 23. října 2012

metoda Regula Falsi 23. října 2012 Hledání kořenů rovnic jedné reálné proměnné metoda Regula Falsi Michal Čihák 23. října 2012 Metoda Regula Falsi hybridní metoda je kombinací metody sečen a metody půlení intervalů předpokladem je (podobně

Více

Tabulkový procesor. Základní rysy

Tabulkový procesor. Základní rysy Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních

Více

MAXScript výukový kurz

MAXScript výukový kurz MAXScript výukový kurz Díl čtvrtý jazyk MAXScript, část I. Jan Melichar, březen 2008 Jan Melichar (aka JME) strana 1 OBSAH ÚVOD... 4 ZÁKLADNÍ PŘÍKAZY... 5 OPERÁTORY... 6 PROMĚNNÉ... 6 POLE... 7 ZÁVĚREM...

Více

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004 Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.

Více

Matematika (KMI/PMATE)

Matematika (KMI/PMATE) Úvod do matematické analýzy Funkce a její vlastnosti Funkce a její vlastnosti Veličina Veličina - pojem, který popisuje kvantitativní (číselné) vlastnosti reálných i abstraktních objektů. Funkce a její

Více

Stěžejní funkce MS Excel 2007/2010, jejich ovládání a možnosti využití

Stěžejní funkce MS Excel 2007/2010, jejich ovládání a možnosti využití Stěžejní funkce MS Excel 2007/2010, jejich ovládání a možnosti využití Proč Excel? Práce s Excelem obnáší množství operací s tabulkami a jejich obsahem. Jejich jednotlivé buňky jsou uspořádány do sloupců

Více

7. Funkce jedné reálné proměnné, základní pojmy

7. Funkce jedné reálné proměnné, základní pojmy , základní pojmy POJEM FUNKCE JEDNÉ PROMĚNNÉ Reálná funkce f jedné reálné proměnné je funkce (zobrazení) f: X Y, kde X, Y R. Jde o zvláštní případ obecného pojmu funkce definovaného v přednášce. Poznámka:

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

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),

Více

STATISTICA Téma 1. Práce s datovým souborem

STATISTICA Téma 1. Práce s datovým souborem STATISTICA Téma 1. Práce s datovým souborem 1) Otevření datového souboru Program Statistika.cz otevíráme z ikony Start, nabídka Programy, podnabídka Statistika Cz 6. Ze dvou nabídnutých možností vybereme

Více

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec StatSoft Vzorce Jistě se Vám již stalo, že data, která máte přímo k dispozici, sama o sobě nestačí potřebujete je nějak upravit, vypočítat z nich nějaké další proměnné, provést nějaké transformace, Jinak

Více

Programování v jazyku LOGO - úvod

Programování v jazyku LOGO - úvod Programování v jazyku LOGO - úvod Programovací jazyk LOGO je určen pro výuku algoritmizace především pro děti školou povinné. Programovací jazyk pracuje v grafickém prostředí, přičemž jednou z jeho podstatných

Více

Nerovnice, grafy, monotonie a spojitost

Nerovnice, grafy, monotonie a spojitost Nerovnice, grafy, monotonie a spojitost text pro studenty Fakulty přírodovědně-humanitní a pedagogické TU v Liberci vzniklý za podpory fondu F Martina Šimůnková 29. prosince 2016 1 Úvod Na druhém stupni

Více

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

ŘEŠENÍ KVADRATICKÝCH A ZLOMKOVÝCH NEROVNIC V ŠESTI BODECH (Tento text je součástí výkladu k definičním oborům, tam najdete další příklady a pokud chcete část tohoto textu někde použít, můžete čerpat ze stažené kompletní verze definičních oborů ve formátu.doc.)

Více

11MAMY LS 2017/2018. Úvod do Matlabu. 21. února Skupina 01. reseni2.m a tak dále + M souborem zadané funkce z příkladu 3 + souborem skupina.

11MAMY LS 2017/2018. Úvod do Matlabu. 21. února Skupina 01. reseni2.m a tak dále + M souborem zadané funkce z příkladu 3 + souborem skupina. 11MAMY LS 2017/2018 Cvičení č. 2: 21. 2. 2018 Úvod do Matlabu. Jan Přikryl 21. února 2018 Po skupinách, na které jste se doufám rozdělili samostatně včera, vyřešte tak, jak nejlépe svedete, níže uvedená

Více

1. D Y N A M I C K É DAT O V É STRUKTUR Y

1. D Y N A M I C K É DAT O V É STRUKTUR Y 1. D Y N A M I C K É DAT O V É STRUKTUR Y Autor: Petr Mik Abychom se mohli pustit do dynamických datových struktur, musíme se nejdřív podívat na datový typ ukazatel. 1. D AT O V Ý TYP U K A Z AT E L Datové

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

řešeny numericky 6 Obyčejné diferenciální rovnice řešeny numericky

řešeny numericky 6 Obyčejné diferenciální rovnice řešeny numericky řešeny numericky řešeny numericky Břetislav Fajmon, UMAT FEKT, VUT Brno Na minulé přednášce jsme viděli některé klasické metody a přístupy pro řešení diferenciálních rovnic: stručně řečeno, rovnice obsahující

Více

Jednoduchá exponenciální rovnice

Jednoduchá exponenciální rovnice Jednoduchá exponenciální rovnice Z běžné rovnice se exponenciální stává, pokud obsahuje proměnnou v exponentu. Obecně bychom mohli exponenciální rovnici zapsat takto: a f(x) = b g(x), kde a, b > 0. Typickým

Více

0.1 Funkce a její vlastnosti

0.1 Funkce a její vlastnosti 0.1 Funkce a její vlastnosti Veličina - pojem, který popisuje kvantitativní (číselné) vlastnosti reálných i abstraktních objektů. Příklady veličin: hmotnost (m) čas (t) výše úrokové sazby v bance (i) cena

Více

Přednáška 3: Limita a spojitost

Přednáška 3: Limita a spojitost 3 / 1 / 17, 1:38 Přednáška 3: Limita a spojitost Limita funkce Nejdříve je potřeba upřesnit pojmy, které přesněji popisují (topologickou) strukturu množiny reálných čísel, a to zejména pojem okolí 31 Definice

Více

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1 Výraz - syntaxe i sémantika podobné jako v matematice - obsahuje proměnné, konstanty, operátory, závorky, volání funkcí - všechny operátory nutno zapisovat (nelze např. vynechat znak násobení) - argumenty

Více

Funkce pro studijní obory

Funkce pro studijní obory Variace 1 Funkce pro studijní obory Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Funkce Funkce je přiřazení,

Více

Základní vzorce a funkce v tabulkovém procesoru

Základní vzorce a funkce v tabulkovém procesoru Základní vzorce a funkce v tabulkovém procesoru Na tabulkovém programu je asi nejzajímavější práce se vzorci a funkcemi. Když jednou nastavíte, jak se mají dané údaje zpracovávat (některé buňky sečíst,

Více

1 Mnohočleny a algebraické rovnice

1 Mnohočleny a algebraické rovnice 1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 19. září 2011 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Doporučená literatura web: http://marian.fsik.cvut.cz/zapg

Více

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

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 15 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Je dána čtvercová mřížka, v níž každý čtverec má délku

Více

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2 * násobení maticové Pro čísla platí: Pro matice - násobení inverzní maticí inv inverzní matice A -1 k dané matici A je taková matice, která po vynásobení s původní maticí dá jednotkovou matici. Inverzní

Více

Hledání kořenů rovnic jedné reálné proměnné metoda sečen Michal Čihák 23. října 2012

Hledání kořenů rovnic jedné reálné proměnné metoda sečen Michal Čihák 23. října 2012 Hledání kořenů rovnic jedné reálné proměnné metoda sečen Michal Čihák 23. října 2012 Opakování rovnice přímky Úloha: Určete rovnici přímky procházející body A[a, f(a)] a B[b, f(b)], kde f je funkce spojitá

Více

Úvod do lineární algebry

Úvod do lineární algebry Úvod do lineární algebry 1 Aritmetické vektory Definice 11 Mějme n N a utvořme kartézský součin R n R R R Každou uspořádanou n tici x 1 x 2 x, x n budeme nazývat n rozměrným aritmetickým vektorem Prvky

Více

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u. Několik řešených příkladů do Matematiky Vektory V tomto textu je spočteno několik ukázkových příkladů které vám snad pomohou při řešení příkladů do cvičení. V textu se objeví i pár detailů které jsem nestihl

Více

- funkce, které integrujete aproximujte jejich Taylorovými řadami a ty následně zintegrujte. V obou případech vyzkoušejte Taylorovy řady

- funkce, které integrujete aproximujte jejich Taylorovými řadami a ty následně zintegrujte. V obou případech vyzkoušejte Taylorovy řady Vzorové řešení domácího úkolu na 6. 1. 1. Integrály 1 1 x2 dx, ex2 dx spočítejte přibližně následují metodou - funkce, které integrujete aproximujte jejich Taylorovými řadami a ty následně zintegrujte.

Více

Numerické řešení rovnice f(x) = 0

Numerické řešení rovnice f(x) = 0 Numerické řešení rovnice f(x) = 0 Přemysl Vihan 9.10.2003 Katedra fyziky, Pedagogická fakulta Univerzity J.E. Purkyně v Ústí n.l. 2. ročník, PMVT-mag. Abstrakt Seminární práce se zabývá numerickým řešením

Více

Příklad 1 ŘEŠENÉ PŘÍKLADY Z M1A ČÁST 6

Příklad 1 ŘEŠENÉ PŘÍKLADY Z M1A ČÁST 6 Příklad 1 Vyšetřete průběh funkce: a) = b) = c) = d) =ln1+ e) =ln f) = Poznámka K vyšetřování průběhu funkce použijeme postup uvedený v zadání. Některé kroky nejsou již tak detailní, všechny by ale měly

Více

Hledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012

Hledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012 Hledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012 Problém hledání kořenů rovnice f(x) = 0 jeden ze základních problémů numerické matematiky zároveň i jeden

Více

Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází

Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází Tiskové sestavy Tiskové sestavy se v aplikaci Access používají na finální tisk informací z databáze. Tisknout se dají všechny objekty, které jsme si vytvořili, ale tiskové sestavy slouží k tisku záznamů

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

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ KOMPLEXNÍ ČÍSLA Gymnázium Jiřího Wolkera v Prostějově Výukové materiály z matematiky pro vyšší gymnázia Autoři projektu Student na prahu 21. století - využití ICT ve vyučování matematiky na gymnáziu INVESTICE

Více

Úvod do programování

Úvod do programování Úvod do programování Základní literatura Töpfer, P.: Algoritmy a programovací techniky, Prometheus, Praha učebnice algoritmů, nikoli jazyka pokrývá velkou část probíraných algoritmů Satrapa, P.: Pascal

Více

pracovní list studenta

pracovní list studenta Výstup RVP: Klíčová slova: pracovní list studenta Funkce kvadratická funkce Mirek Kubera žák načrtne grafy požadovaných funkcí, formuluje a zdůvodňuje vlastnosti studovaných funkcí, modeluje závislosti

Více

VZORCE A VÝPOČTY. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý

VZORCE A VÝPOČTY. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý Autor: Mgr. Dana Kaprálová VZORCE A VÝPOČTY Datum (období) tvorby: září, říjen 2013 Ročník: sedmý Vzdělávací oblast: Informatika a výpočetní technika 1 Anotace: Žáci se seznámí se základní obsluhou tabulkového

Více

= - rovnost dvou výrazů, za x můžeme dosazovat různá čísla, tím měníme

= - rovnost dvou výrazů, za x můžeme dosazovat různá čísla, tím měníme - FUNKCE A ROVNICE Následující základní znalosti je nezbytně nutné umět od okamžiku probrání až do konce kapitoly (většinou do napsání čtvrtletní písemné práce, na výjimky z tohoto pravidla bude upozorněno).

Více

M - Kvadratické rovnice a kvadratické nerovnice

M - Kvadratické rovnice a kvadratické nerovnice M - Kvadratické rovnice a kvadratické nerovnice Určeno jako učební tet pro studenty dálkového studia. VARIACE 1 Tento dokument byl kompletně vytvořen, sestaven a vytištěn v programu dosystem - EduBase.

Více

Řešení úloh z TSP MU SADY S 1

Řešení úloh z TSP MU SADY S 1 Řešení úloh z TSP MU SADY S 1 projekt RESENI-TSP.CZ úlohy jsou vybírány z dříve použitých TSP MU autoři řešení jsou zkušení lektoři vzdělávací agentury Kurzy-Fido.cz Masarykova univerzita nabízí uchazečům

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

Výroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0).

Výroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0). Výroková logika II Negace Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0). Na konkrétních příkladech si ukážeme, jak se dají výroky negovat. Obecně se výrok dá negovat tak, že před

Více

2. cvičení z ZI1 - Excel

2. cvičení z ZI1 - Excel Doc.Ing. Vlastimil Jáneš... janes@fd.cvut.cz 2. cvičení z ZI1 - Excel O Excelu - organizace listů : 1 list : max. 65 536 řádků a 256 sloupců, tj. 16 777 216 buněk. Sloupce : A, B,.Z, AA, AB,. IU, IV (26

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

5 Přehled operátorů, příkazy, přetypování

5 Přehled operátorů, příkazy, přetypování 5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování

Více

Vzorce. Suma. Tvorba vzorce napsáním. Tvorba vzorců průvodcem

Vzorce. Suma. Tvorba vzorce napsáním. Tvorba vzorců průvodcem Vzorce Vzorce v Excelu lze zadávat dvěma způsoby. Buď známe přesný zápis vzorce a přímo ho do buňky napíšeme, nebo použijeme takzvaného průvodce při tvorbě vzorce (zejména u složitějších funkcí). Tvorba

Více

Matematická analýza III.

Matematická analýza III. 2. Parciální derivace Miroslav Hušek, Lucie Loukotová UJEP 2010 Parciální derivace jsou zobecněním derivace funkce jedné proměnné. V této kapitole poznáme jejich základní vlastnosti a využití. Co bychom

Více

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu http://akademie.ldf.mendelu.cz/cz (reg. č. CZ.1.07/2.2.00/28.

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu http://akademie.ldf.mendelu.cz/cz (reg. č. CZ.1.07/2.2.00/28. Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem

Více

Mgr. Ladislav Zemánek Maturitní okruhy Matematika 2013-2014. 1. Obor reálných čísel

Mgr. Ladislav Zemánek Maturitní okruhy Matematika 2013-2014. 1. Obor reálných čísel Mgr. Ladislav Zemánek Maturitní okruhy Matematika 2013-2014 1. Obor reálných čísel - obor přirozených, celých, racionálních a reálných čísel - vlastnosti operací (sčítání, odčítání, násobení, dělení) -

Více

10. cvičení - LS 2017

10. cvičení - LS 2017 10. cvičení - LS 2017 Michal Outrata Příklad 1 Spočtěte následující itu daných posloupností: (a) (b) (c) n 3 +5n 2 n 3 6n 2 +3 n ; n 4 3n 2 6 n 4 + 3n 2 + 6; n 2 15n+2(1 n). 2(n 2) 3 2n 3 Příklad 2 Pro

Více

Regrese. 28. listopadu Pokud chceme daty proložit vhodnou regresní křivku, musíme obvykle splnit tři úkoly:

Regrese. 28. listopadu Pokud chceme daty proložit vhodnou regresní křivku, musíme obvykle splnit tři úkoly: Regrese 28. listopadu 2013 Pokud chceme daty proložit vhodnou regresní křivku, musíme obvykle splnit tři úkoly: 1. Ukázat, že data jsou opravdu závislá. 2. Provést regresi. 3. Ukázat, že zvolená křivka

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

Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97. Vybrané části Excelu. Ing. Petr Adamec

Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97. Vybrané části Excelu. Ing. Petr Adamec INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97 Vybrané části Excelu Ing. Petr Adamec Brno 2010 Cílem předmětu je seznámení se s programem Excel

Více

GRAF FUNKCE NEPŘÍMÁ ÚMĚRNOST

GRAF FUNKCE NEPŘÍMÁ ÚMĚRNOST GRAF FUNKCE NEPŘÍMÁ ÚMĚRNOST Úloha: Sestrojte graf funkce nepřímé úměrnosti a zjistěte její vlastnosti. Popis funkcí modelu: Sestrojit graf funkce nepřímá úměrnost Najít průsečíky grafu se souřadnými osami

Více

1 Mnohočleny a algebraické rovnice

1 Mnohočleny a algebraické rovnice 1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem

Více