Programovani v Maplu Procedura

Podobné dokumenty
Basic256 - úvod do programování Příklady. ing. petr polách

Operační systémy. Cvičení 4: Programování v C pod Unixem

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

MAPLOVSKY PROGRAMOVACI JAZYK

Úvod do programování. Lekce 5

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

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

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

Funkce, intuitivní chápání složitosti

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

Stručný návod k programu Octave

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Algoritmizace a programování

Algoritmizace a programování


Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

Řídicí struktury. alg3 1

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

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

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

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

Řídící struktury, if, while, switch

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

Základy algoritmizace a programování

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Algoritmy a datové struktury

Úvod do programu MAPLE

2. lekce Algoritmus, cyklus Miroslav Jílek

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

NPRG030 Programování I, 2017/18 1 / :22:16

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr)

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

Svobodná chebská škola, základní škola a gymnázium s.r.o. Dušan Astaloš. samostatná práce, případně skupinová práce. pochopení znaků dělitelnosti

Algoritmus pro generování normálních magických čtverců

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

Moravské gymnázium Brno s.r.o.

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Svobodná chebská škola, základní škola a gymnázium s.r.o. Dušan Astaloš. samostatná práce, případně skupinová práce. znaky dělitelnosti

Příkazy if, while, do-while, for, switch

Definice funkcí a procedur. Mnoho operací provozujeme opakovaně, proto je hloupé programovat je při každém použití znovu.

Násobení pomocí sčítání

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

Kód trezoru 1 je liché číslo.

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Řídící struktury, if, while, switch

Programovací jazyk Pascal

Martin Flusser. November 1, 2016

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Přijímací zkouška na navazující magisterské studium 2017

Rekurzivní algoritmy

POSLOUPNOSTI. 1. Najděte prvních pět členů posloupnosti (a n ) n=1, je-li a) a n = 1 2 (1 + ( 1)n ), b) a n = n + ( 1) n, c) a n = ( 1) n cos πn2

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

ELEKTROTECHNIKA A INFORMATIKA

Je n O(n 2 )? Je n 2 O(n)? Je 3n 5 +2n Θ(n 5 )? Je n 1000 O(2 n )? Je 2 n O(n 2000 )? Cvičení s kartami aneb jak rychle roste exponenciála.

Funkce pokročilé možnosti. Úvod do programování 2 Tomáš Kühr

C2110 Operační systém UNIX a základy programování

- jak udělat konstantu long int: L long velka = 78L;

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

Přednáška 3. Rekurze 1

Jednoduché cykly

Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele

Poslední nenulová číslice faktoriálu

Příklady k prvnímu testu - Matlab

Doba běhu daného algoritmu/programu. 1. Který fragment programu z následujících dvou proběhne rychleji?

PSK3-9. Základy skriptování. Hlavička

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Úvod do programování - Java. Cvičení č.4

Dělitelnost čísel, nejmenší společný násobek, největší společný dělitel

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

Matice. Přednáška MATEMATIKA č. 2. Jiří Neubauer. Katedra ekonometrie FEM UO Brno kancelář 69a, tel

Sekvenční a podmíněné provádění

awk programovatelný filtr

IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí

Jazyk C# a platforma.net

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer

Svobodná chebská škola, základní škola a gymnázium s.r.o. Dušan Astaloš. samostatná práce, případně skupinová práce. pochopení znaků vztahů mezi čísly

Skriptování aneb funkce a procedury, cykly a vstupy a výstupy

Větvení a cykly. Úvod do programování 1 Tomáš Kühr

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Předmět: Algoritmizace praktické aplikace

IAJCE Přednáška č. 6. logický celek, řešící dílčí část problému Příklad velmi špatného zápisu programu na výpočet obsahu obdélníku

DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right)

Tematická oblast: Programování 2 (VY_32_INOVACE_08_2_PR) Anotace: Využití ve výuce: Použité zdroje:

Úvod do Operačních Systémů

Prvočísla a čísla složená

NPRG030 Programování I, 2018/19 1 / :03:07

Digitální učební materiál

Lokální definice (1) plocha-kruhu

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Transkript:

Programovani v Maplu Procedura Priklad: procedura, ktera scita 2 cisla: a + 2*b soucet := proc (a, b) local c; # lokalni promenna - existuje a meni se jenom uvnitr procedury c:=a+b; # globalni promenna - existuje a meni se v celem worksheetu - zmeny c uvnitr procedury je "vidno" i vne procedury # vystup - nastaveni navratove hodnoty + okamzite "vyskoceni" z procedury return c # bez return procedura vrati vysledek posledniho prikazu (1.1) soucet(1, 2); 5 (1.2) c; (1.3) c soucet([1, 2, 3], [2, 1, 3]); # procedura soucet bude fungovat pro vsechny argumenty, pro ktere jsou definovany operace uvnitr procedury (1.4) Podminene prikazy if <podminka then <prikazy elif <podminka then <prikazy <prikazy % elif se da pouzit opakovane v jednom if - kodu Priklad 1: Urcete, zda je cele cislo x liche nebo sude. testls := proc (x) local a; a := modp(x, 2); if a = 0 then printf("%d je sude cislo", x) printf("%d je liche cislo", x) (2.1)

testls(-4); -4 je sude cislo testls(-7); -7 je liche cislo testls(2.1); Error, (in testls) invalid argument for modp or mods floor(1.6); 1 (2.2) Priklad 1 (bez predpokladu: x je cele cislo): Urcete, zda je cislo x liche nebo sude. testls2 := proc (x) local a; a := x-2*floor((1/2)*x); if a = 0 then printf(" %d je sude cislo ", x) elif a = 1 then printf("%d je liche cislo", x) printf("%1.10f neni cele cislo, tudiz neni sude ani liche", x) ; (2.3) testls2(7); 7 je liche cislo testls2(4); 4 je sude cislo testls2(2.35); 2.3500000000 neni cele cislo, tudiz neni sude ani liche floor(1.4); 1 (2.4) Jine reseni Prikladu 1: TEST := proc (a)

if a < floor(a) then printf("%1.10f neni cele cislo, tudiz neni sude ani liche", a) elif (1/2)*a-floor((1/2)*a) = 0 then printf(" %d je sude cislo ", a) printf("%d je liche cislo", a) (2.5) TEST(1.1); 1.1000000000 neni cele cislo, tudiz neni sude ani liche TEST(2); 2 je sude cislo TEST(-3); -3 je liche cislo Priklad 2: Necht a,b 2Z. Pokud b deli a, tak spoctete a/b. Jinak napiste "b nedeli a". delitelnost := proc (a, b) if modp(a, b) = 0 then printf(" %d deli %d, podil je %d", b, a, a/b) printf("%d nedeli %d", b, a) (2.6) delitelnost(10, 5); 5 deli 10, podil je 2 delitelnost(9, 5); 5 nedeli 9 Priklad 3: Necht x 2=. Rozhodnete, zda je x 1) delitelne 3 nebo 2) delitelne 3 a 5 nebo 3) delitelne 3 a 5 a 7 nebo 4) neni delitelne cisly 3, 5, 7 zaroven. delitelnost := proc (x) if modp(x, 3) = 0 then

if modp(x, 5) = 0 then if modp(x, 7) = 0 then printf(" %d je delitelne cisly %d, %d, %d ", x, 3, 5, 7) printf(" %d je delitelne cisly %d, %d", x, 3, 5) printf(" %d je delitelne cislem %d ", x, 3) printf("%d neni delitelne cisly %d, %d, %d zaroven", x, 3, 5, 7) (2.7)

delitelnost(22); 22 neni delitelne cisly 3, 5, 7 zaroven delitelnost(15); 15 je delitelne cisly 3, 5 delitelnost(105); 105 je delitelne cisly 3, 5, 7 delitelnost(21); 21 je delitelne cislem 3 For cyklus for <promenna from <minimalni hodnota to <maximalni hodnota by <velikost kroku do <prikazy end do Priklad 1: Vypoctete n!, kde n 2 ; faktorial := proc (n) local a, i; a := 1; for i to n do a := a*i end do (3.1) faktorial(2); faktorial(4); 2 24 (3.2) (3.3) Priklad 2: Urcete soucet celych cisel mezi cisly a, b, kde a= -20, b= 40 soucet:=proc(a,b) local i,c; c:=0; for i from a to b do c:=c+i; return(c) (3.4) soucet(1, 3); 6 (3.5) Priklad 3: Sectete kazde ctvrte cele cislo mezi cisly a, b (kde a= -27, b= 403)

soucet2 := proc (a, b) local i, c; c := -a+1; for i from a-1 by 4 to b do c := c+i return c (3.6) soucet2(1, 5); 4 (3.7) While cyklus while <podminka do <prikazy end do Priklad 1: a) Jake je nejvetsi prirozene cislo, pro ktere plati x^3 <= a, kde a si muzete volit libovolne? test1 := proc(a) local i; i := 0; while i^3 <= a do i := i+1 return i-1 (4.1) test1(8); 2 (4.2) b) to same jako a) + delitelne 4 test2 := proc(a) local i; i := 0; while i^3 <= a do i := i+4 return i-4

(4.3) test2(1200); 8 (4.4) Priklad 2: Kolik prvnich prirozenych cisel lze secist tak, aby soucet nebyl vetsi nez a? test3 := proc(a) local i, s; i := 0; s := 0; while s <= a do i := i+1; s := s+i return i-1 (4.5) test3(10); test3(1200); 4 48 (4.6) (4.7) Priklad 3: Vypoctete n!, kde n 2 ;, pomoci while cyklu (viz Priklad 1 v sekci For cyklus pro porovnani ruznych reseni) faktorial1 := proc(n) local a, i; a := 1; i := 1; while i <= n do i := i+1; a := a*i return a/i (4.8) faktorial1(4); 24 (4.9) nebo trochu jinak:

faktorial2 := proc(n) local a, i; a := 1; i := 1; while i <= n do a := a*i; i := i+1 return a (4.10) faktorial(4); 24 (4.11) Poznamky return Priklad: Pocitejte postupne pro 1/(x-5) je pro 1 rovno -0.250000 1/(x-5) je pro 2 rovno -0.333333 1/(x-5) je pro 3 rovno -0.500000 1/(x-5) je pro 4 rovno -1.000000 Pro x = 5 delime nulou. break Priklad: Pocitejte postupne pro

1/(x-5) je pro 1 rovno -0.250000 1/(x-5) je pro 2 rovno -0.333333 1/(x-5) je pro 3 rovno -0.500000 1/(x-5) je pro 4 rovno -1.000000 Pro x = 5 delime nulou. Nepresli jsme vsechny hodnoty od 1 do 10.