Úvod do programování. Úvod do programování. ing. Miroslav Jílek 2009, SJOP Poděbrady

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

Download "Úvod do programování. Úvod do programování. ing. Miroslav Jílek 2009, SJOP Poděbrady"

Transkript

1 Úvod do programování ing. Miroslav Jílek 2009, SJOP Poděbrady 1

2 Obsah 1) Algoritmus 2 2) Vývojový diagram 4 3) Příklady vývojových diagramů 9 4) Úvod do programování v Pascalu 13 5) Příklady programů s komentářem 17 6) Řešení cyklů For 20 Úvodem Na začátek si vysvětlíme dva pojmy bez jejichž pochopení nelze začít studium programování. Jsou to pojmy proměnná a hodnota proměnné. Proměnná je název vymezeného objektu, do kterého lze vkládat obsah, kterému říkáme hodnota proměnné. Na příklad: Sklenice je proměnná a pivo je obsah proměnné. Obsah proměnné můžeme změnit, například pivo vylijeme a do sklenice místo piva nalijeme mléko. Změnili jsme obsah proměnné, ale proměnná zůstala původní. Stejně tak to funguje v programování můžeme měnit obsahy proměnných. Proměnná má dvě vlastnosti. První její vlastnost je jméno proměnné a druhá je typ proměnné. Jméno slouží k uchopení (matematickým a logickým operacím) a typ proměnné definuje jakou do proměnné můžeme vložit hodnotu číselnou, textovou, logickou (true/false). Hodnota proměnné má vlastnost jednu a tou je informace, kterou nese. 2

3 Algoritmus Algoritmus je exaktně definovaný postup řešení problému (úlohy). Řešení se skládá z jednotlivých kroků. Pořadí kroků musí být dodrženo. Záměna pořadí kroků způsobí dosažení chybného výsledku, v extrémním případě nebude výsledek dosažen žádný. Algoritmus pracuje s daty (údaji), které zpracovává podle stanovených kritérií (podmínek). Algoritmus musí vždy poskytnou výsledek. Pozor: výsledkem může být také informace, že úloha nemá řešení! Algoritmus má tři části. První část je sběr dat, druhá zpracování dat a třetí poskytnutí výsledku. Algoritmus může být jednoduchý (proběhne jednou) nebo cyklický (neustále se opakuje a je ukončen splněním nějaké podmínky nebo vnějším zásahem). Požadavky na algoritmus a) musí poskytovat exaktní výsledek b) musí být stabilní pro všechna možná vstupní data c) měl by být maximálně univerzální, jednoduchý a rychlý Každý počítačový program má svůj algoritmus. Běžné uživatelské programy se samozřejmě skládají z velkého množství jednotlivých algoritmů, které jsou vzájemně propojeny a vzájemně si předávají data. Vytváření počítačových programů je velice komplikovaná činnost, která zahrnuje celou řadu kroků, které musíme provést a respektovat. Kromě vlastního programovaní (psaní kódu) se jedná o zjištění existujících řešení, komunikaci se zákazníky (průzkum potřeb potenciálních uživatelů, reklama a školení), dále nepřetržitý servis a aktualizace produktů. V dnešní době patří právě marketingové otázky programování k těm rozhodujícím. Úspěšný je takový software, který je nejen programátorsky kvalitní, ale který má marketingovou a technickou podporu. 3

4 Jednoduchý příklad algoritmu: Jako příklad algoritmu vezměme řešení problému, kdy máme projít dveřmi. Tato úloha se zdá být velice jednoduchá, ale to jen proto, že ji máme zautomatizovanou a v běžném životě nad ní nepřemýšlíme. Řešení úlohy si nyní popíšeme kroky, resp. činnostmi, které musíme provést: 1) Otázka : Jsem u dveří? Pamatujte: Každá otázka (podmínka) použitá v algoritmu musí mít jednoznačnou odpověď Ano nebo Ne! Nesmí existovat neurčitá odpověď. 2) Odpověď: Ne pak udělej krok ke dveřím a opakuj bod jedna, Ano pokračuj bodem tři 3) Otázka: Jsou dveře otevřeny? 4) Odpověď: Ne pak otevři dveře, Ano žádná akce 5) Projdi dveřmi Na tomto příkladě vidíme, že nelze zaměnit pořadí jednotlivých kroků. Nelze nejprve projít dveřmi a pak je otevřít. To by skončilo karambolem. Stejně tak je tomu i u programování. Nyní si všimněte bodu dva. Jedná se o cyklus úkonů, kdy děláme kroky ke dveřím, do té doby, než ke dveřím přijdeme. Počet kroků není předem znám a závisí na výchozí pozici tedy bodu, ze kterého začínáme řešit problém. Zajímavý je také bod čtyři. Zde se algoritmus rozděluje. V případě odpovědi Ne dveře otevřeme, v případě odpovědi Ano nic neděláme. Dále se větve algoritmu spojí a pokračují dalším krokem. Tuto úlohu si zapamatujte. Později, na stránce 9, se k ní ještě vrátíme. Úkol: Promyslete si situaci, kdybychom museli ještě řešit, zda jsou dveře zamčeny, zda máme klíč apod. 4

5 Vývojový diagram Vývojový diagram je grafické znázornění algoritmu. Vývojový diagram usnadňuje vývoj algoritmu. Jeho velkou předností je jeho přehlednost. Druhou možností jak zapsat algoritmus je slovní vyjádření v krocích. Takto jsme znázornili algoritmus v minulém příkladu, kdy jsme procházeli dveřmi. Vývojový diagram se skládá ze značek. Značky jsou grafické symboly, která představují matematické nebo logické operace nebo usnadňují či dokonce umožňují orientaci ve vývojovém diagramu. Jednotlivé značky jsou vzájemně propojeny čarami. Čáry tak znázorňují postup od jednotlivých kroků ke krokům dalším. V algoritmu a tedy i ve vývojovém diagramu je možné, aby se některé kroky opakovaly a některé byly vynechány. O tom, zda se daný krok provede nebo ne rozhoduje konkrétní situace pro konkrétní vstupní údaje. Značky vývojového diagramu 1) Mezní značka Mezní značka symbolizuje začátek (Start) a konec algoritmu. Algoritmus musí mít jeden začátek a jeden konec. I u složitých programů je jeden začátek a jeden konec nutností. Při zakončení programů se provádí některé nezbytné softwarové úkony a proto je jeden konec nutný. 5

6 2) Spojovací značka Spojovací značka slouží ke znázornění spojení jednotlivých částí algoritmu, které bylo nutno z důvodu nedostatku místa na papíře nebo pro zvýšení přehlednosti. Pokud rozdělujeme algoritmus do více částí, pak spojovací značky znázorňují, které čáry budou vzájemně spojeny, tedy kde navazuje algoritmus. Do kolečka značky se zpravidla zapisuje číslo (nebo jiný symbol). Stejná čísla (symboly) pak určují kde bude přerušená čára algoritmu pokračovat. 3) vstupní a výstupní údaje Tato značka symbolizuje vstup dat do algoritmu nebo výstup výsledků algoritmu. 6

7 4) Zpracování dat Tato značka představuje krok, při kterém se zpracovávají data. Může to být například matematická operace, operace s textovými řetězci a podobně. 5) Rozhodování příkaz IF Příkaz IF rozvětví (rozdělí) chod algoritmu do dvou větví. Rozdělení je provedeno na základě logického vyhodnocení podmínky. Vyhodnocení může mít hodnotu Ano(+)/Ne(-) (True/False). Chod algoritmu pokračuje tou větví, která odpovídá logickému vyhodnocení podmínky. Větev True obsahuje jiné kroky než větev False. 7

8 6) Cyklus FOR Cyklus FOR se opakuje předem definovaným počtem opakování. I se nazývá řídící proměnná cyklu a nabývá hodnot od 1 do N s krokem 1 (tedy 1,2,3,...N). V našem případě číslo jedna a číslo N nazýváme počáteční a koncová hodnota cyklu. Počáteční a koncovou hodnotu cyklu můžeme definovat libovolně. Také krok může být jiný než plus jedna (např.-1, +5, atd.). Počáteční a koncová hodnota cyklu a hodnota krok (step) MUSÍ být celočíselná (integer, longinteger). Krok cyklu (step) znamená o jakou hodnotu se změní řídící proměnná cyklu po každém opakování. Např. v cyklu od 2 do 9 s krokem +2 se cyklus bude opakovat čtyřikrát. Poslední hodnota proměnné cyklu, při které se vykonají příkazy těla cyklu (smyčky), bude 8. Při každém opakování se provedou úkony (kroky) definované v části smyčka. Pokud chceme tento cyklus předčasně ukončit musíme změnit (nastavit) hodnotu řídící proměnné cyklu na hodnotu za její koncovou hodnotu. Cyklus FOR může být použit vnořeně, tedy může běžet cyklus v cyklu. Pak jednotlivé cykly nazýváme vnitřní a vnější, při vícenásobném použití první vnitřní, druhý vnitřní atd. 8

9 7) Cyklus WHILE Cyklus WHILE se opakuje tak dlouho, dokud je podmínka platná (True). V takovém případě se při každém cyklu (smyčce, loop) opakují příkazy těla cyklu (na obr. označeno jako tělo (body of cycle)). Jakmile je podmínka neplatná (False) cyklus končí. Pokud je podmínka neplatná od samého počátku cyklu, pak se příkazy těla cyklu nevykonají ani jednou! Toto je nejdůležitější vlastnost cyklu While. Počet opakování cyklu tedy není předem znám a je závislý na vyhodnocení podmínky cyklu. Existují dvě mezní situace: první, že se cyklus, resp. příkazy jeho těla nevykonají ani jednou (podmínka je od samého počátku False) nebo se opakují do nekonečna (podmínka není nikdy True). Těchto vlastností je možno efektivně využít při programování. Podmínkou rozumíme jakýkoli logický nebo matematický výraz, ke kterému existuje pravdivostní hodnota Ano (True) nebo Ne (False). Příkladem podmínek můžou být např. podmínky: A>2, A>=B, A=3 apod. Všimněte si, že v podmínce zpravidla používáme proměnné a testujeme jejich hodnoty. 9

10 Příklady vývojových diagramů 1) Vývojový diagram úlohy Průchod dveřmi Tento vývojový diagram znázorňuje algoritmus, se kterým jsme se seznámili již v úvodu kapitoly Algoritmy. První co algoritmus řeší je otázka, zda jsme u dveří. Pokud ne, pak uděláme krok ke dveřím. Po příchodu ke dveřím řešíme otázku, zda jsou dveře otevřené. Příkaz Otevřít se v této úloze provede pouze za situace, kdy dveře nejsou otevřené. Všimněte si: nezáleží, jak daleko jsme od dveří ani zda jsou dveře otevřené. Algoritmus je UNIVERZÁLNÍ. 10

11 2) Vývojový diagram úlohy vyhledání největšího čísla z řady N-čísel V první části diagramu je Vstup N čísel. Použili jsme zjednodušení a neřešíme problém samotného vložení těchto čísel. V praxi bychom museli doplnit ještě nějaký cyklus od jedné do N kdy by se postupně vkládala jednotlivá čísla. Pro řešení této úlohy je zavedeno pole čísel. Jedná se o jednotlivá čísla uložená pod jedním názvem a každé jednotlivé číslo má svůj index. V příkladu jsme použili jako název Č a index v závorce. Jako index mohou být použita přirozená čísla, u některých programovacích nástrojů může být použita i nula. Řešení úlohy spočívá v tom, že jako maximum (Max) vezme první číslo, tedy Max = Č(1), a následně postupně testujeme všechna další čísla. Pokud je některé z čísel větší než momentální maximum je toto číslo, resp. jeho hodnota, vložena do do Max např.: If Č(I) > Max Then Max = Č(I). Úkol: Upravte algoritmus tak, aby čísla testoval od konce k začátku. 11

12 3) Vývojový diagram úlohy řazení čísel podle velikosti Řazení čísel je jedním z nejdůležitějších základních algoritmů v programování. Existuje mnoho způsobů jak řadit čísla. V naší úloze je využit princip vzájemné výměny sousedních čísel, který se opakuje tak dlouho, až jsou čísla seřazena. Také zde nebudeme řešit způsob zadávání jednotlivých čísel. Soustředíme se na vlastní řazení. Řazení probíhá v cyklu od jedné do N-1. Do N-1 proto, že jsou porovnávána vždy dvě čísla. Poslední porovnávanou dvojicí čísel jsou předposlední a poslední číslo. Pokud bychom cyklus opakovali N-krát došly by chybě, neboť za posledním číslem (n-tým) již další neexistuje. Pokud je první číslo porovnávané dvojice čísel větší než druhé, pak dojde k jejich výměně, resp. k výměně jejich pořadí v řadě čísel a ukazatel (řídící proměnná cyklu) se zmenší o dvě. Pozor! Řídící proměnná cyklu se nesmí dostat pod startovní hodnotu 1 (If I<0 then I=0). Při dalším cyklu se nula zvýší na jedničku a může tak být testováno první číslo! Na konci řazení bude minimum na první pozici (zleva). 12

13 Pro záměnu obsahů dvou proměnných potřebujeme použít třetí proměnnou, která se v našem případě nazvali Temp. Princip je znázorněn na obrázku: Např.: na počátku bude A = 3, B = 5 a dále: 1) Temp=A 2) A=B 3) B=Temp Na konci bude A =5 a B =3. Tento princip výměny je univerzální pro všechny typy proměnných. Pro číselné typy proměnných se obejdeme bez přechodné, tedy třetí proměnné. Můžeme postupovat takto: 1) A = A + B 2) B = A B 3) A = A B Např.: na počátku bude A =3, B= 5 a budeme pokračovat: 1) A = ) B = 8 5 3) A = 8 3 Na konci tedy bude A =5 a B =3! Vraťme se ještě k našemu algoritmu. Podívejme se jak bude probíhat řazení pro konkrétní řadu čísel: 4,3,2,5,3 : 1.změna 3,4,2,5,3 2.změna 3,2,4,5,3 3.změna 2,3,4,5,3 4.změna 2,3,4,3,5 5.změna 2,3,3,4,5 Všimněte si, čísla se postupně posouvají vlevo. Posouvání končí, kdy jsou čísla v celé řadě čísel vlevo menší než sousední čísla vpravo. 13

14 Úvod do programování v Pascalu V této kapitole se seznámíme s nejelementárnějšími postupy programování v programovacím nástroji Pascal. Po zvládnutí tohoto úvodu do programování nebudete schopni komerčně programovat, ale snadněji a rychleji pochopíte moderní programovací nástroje ve svém dalším studiu. Budeme se zabývat pouze těmi nejdůležitějšími příkazy (commands), které jsou základem pro vytváření algoritmů. 1.Typy proměnných: (budeme se zabývat pouze některými) Integer - celé číslo v rozsahu < 32768; > Longint - celé číslo v rozsahu < 2 mld.; + 2 mld.> Real - reálné číslo Char - jednoznaková proměnná (obsahuje max. 1 znak) String[x] - řetězec, obsahující x znaků Array pole, množina (set) tato proměnná má jedno jméno, ale může obsahovat více údajů stejného typu. Např.: Array[1..5] of Integer znamená že proměnná bude obsahovat pět celočíselných údajů. Jednotlivé údaje jsou identifikovány jménem proměnné a indexem 1 až 5. 2.Operandy a matematické operace: +, -, *, /, ^ sčítání, odčítání, násobení, dělení, mocnění <, >, =<, >=, <>, = logické porovnání A^0.5 nebo Sqrt(A) je druhá odmocnina z A Or, And logické spojky := přiřazení (vložení) Příklady použití: A:=A+B příkaz vezme hodnotu z proměnné A a přičte k ní hodnotu proměnné B a výsledek vloží do proměnné A A:=A+1 příkaz zvětší (zvýší) hodnotu proměnné A o jedničku If A<>0 And B>5 Then C:=1; příkaz porovná obsah proměnné A a obsah proměnné B a pouze v případě když je obsah proměnné A různý od nuly a zároveň obsah proměnné B je větší než pět vloží do proměnné C hodnotu jedna. 14

15 3.Příkazy pascalu: (vysvětlíme si pouze ty nejdůležitější z hlediska seznámení se se základy programování v Pascalu) Write, Writelnvypíše obsah proměnné nebo závorky na monitor do pozice kurzoru, např. Příkaz Writeln(A) vypíše hodnotu proměnné A, příkaz Write('Ahoj') vypíše slovo Ahoj, writeln navíc posune kurzor na nový řádek Read, Readln po stisknutí klávesy Enter přečte hodnotu z obrazovky a vloží ji do proměnné v závorce, např. Readln(A) vloží hodnotu do proměnné A, pozor: zadaná hodnota musí odpovídat typu proměnné, ln má stejný význam jako u writeln GoToXY změní pozici kurzoru, např. GoToXY(5,6) umístí kurzor na pátý sloupec šestého řádku obrazovky, obrazovka má 80 sloupců a 24 řádků ClrScr If While smaže obrazovku testuje podmínku a na základě výsledku (True/False) pokračuje chod programu určitou cestou Např.: If A>B Then Příkaz1 Else Příkaz2; Pokud bude výsledek podmínky A>B True pak bude vykonán Příkaz1, pokud bude výsledek podmínky roven False pak bude vykonán Příkaz2. Pokud neuvedeme v příkazu If část Else Příkaz2, pak se v případě, že výsledek podmínky bude False nevykoná žádný příkaz. Tento příkaz na základě výsledku vyhodnocení podmínky (v našem případě podmínky A>B) větví chod programu do dvou cest. Pokud bychom chtěli, můžeme na místo Příkaz1 vložit i více příkazů. V takovém případě musí být tyto příkazy ohraničeny příkazem Begin a End příkaz cyklu. Cyklus se opakuje tak dlouho dokud je podmínka splněna (True). Při každém opakování se vykoná příkaz Příkaz1. Na místo Příkaz1 můžeme vložit i více příkazů. V takovém případě 15

16 Repeat For Length GoTo musí být tyto příkazy ohraničeny příkazy Begin a End Např.: While Podmínka do Příkaz1; Pokud není podmínka splněna pak se cyklus nevykoná ani jednou příkaz cyklu. Cyklus se opakuje tak dlouho, dokud podmínka není splněna (skončí až když je podmínka True). Příkaz je zakončen klíčovým slovem Until. Např.: Repeat Příkaz1 Until Podmínka; Cyklus se bude vykonávat (včetně příkazu Příkaz1 nebo skupiny příkazů mezi příkazy Repeat a Until tak dlouho, dokud nebude podmínka splněna (dokud bude False). Příkaz(y) se tedy vykoná nejméně jednou! Příkaz cyklu s definovaným počtem opakování. Např.: For A:=1 To 10 Do Příkaz1; Tento cyklus vykoná desetkrát Příkaz1. Na místo Příkaz1 můžeme vložit více příkazů, ale tyto příkazy musí být ohraničeny příkazy Begin a End vrací dynamickou délku řetězce (length of string) Např.: S :='Ahoj studente!'; X:=Length(S); pak X bude mít hodnotu 14, protože řetězec (string) S obsahuje 14 znaků. skok v programu. Tento příkaz přesune chod (zpracování) programu až na řádek, který začíná definovaným návěstím (label) Např.: If A=5 then Goto Skok1; Příkaz1; Příkaz2; Skok1: Příkaz3; Pokud bude A rovno 5, pak se příkazy Příkaz1 a Příkaz2 nevykonají a chod programu bude pokračovat až návěstím Skok1 a tedy příkazem Příkaz3. 16

17 4.Struktura programu Program napsaný v programovacím jazyce Pascal má několik základních pravidel. Tato pravidla umožňují překládat a vykonávat kompilátoru příkazy a umožňují běh celého programu. Na následujícím schématu si tato základní pravidla vysvětlíme (také zde se omezíme na nezbytné minimum informací): Program Jmeno; Uses Crt; Var JménoProměnné: TypProměnné; Begin Příkazy Programu; End. Každý program začíná klíčovým slovem Program, za ním následuje jméno programu. Každý řádek je zakončen středníkem. Tento symbol pro kompilátor znamená konec řádku (příkazu). Výjimku tvoří příkaz začínajícího bloku např. Begin nebo Repeat. Na druhém řádku je uvedeno klíčové slovo Uses a za ním následuje seznam použitých ovladačů. Ovladače jsou moduly, které umožňují práci programu např. s periferním zařízením, s grafickou kartou apod. V našem případě ovladač Crt umožňuje spolupráci programu s monitorem a klávesnicí. Na třetím řádku našeho vzorového schématu je klíčové slovo Var. Tímto klíčovým slovem začíná deklarace v programu použitých proměnných. Proměnné deklarujeme tak, že nejprve zapíšeme jména proměnných od sebe oddělených čárkou, dále zapíšeme dvojtečku a za ní typ proměnné. Z tohoto vyplývá, že všechny takto deklarované proměnné budou pouze jednoho typu. Pokud potřebuje proměnné jiného typu musíme je deklarovat na dalším řádku. Nakonec zapíšeme tělo programu. To začíná příkazem Begin, končí příkazem End a mezi těmito příkazy jsou uvedeny příkazy programu (algoritmus programu). Tečka za posledním End představuje konec programu. 17

18 Příklady programů s komentářem Úvod do programování 1) Vyhledání maxima z řady čísel (algoritmus vyhledání Maxima ze str.10, pro zjednodušení budeme pracovat pouze s deseti celými čísly, navíc do programu přidáme ještě načtení deseti čísel) Program Maximum; Uses Crt; Var Max,I: Integer; C:Array[1..10] Of Integer; Begin ClrScr; For I:=1 To 10 Do Begin Write('Zadej ',I,'cislo : '); Readln(C[I]); End; ClrScr; For I:=1 To 10 Do Write(C[I],', '); Writeln; Max:=C[1]; For I:=2 To 10 Do If C[I]>Max Then Max:=C[I]; Write('Maximum je ',Max); Repeat Until (Keypressed) End. V programu použijeme (deklarovali jsme) proměnné Max (hledané maximum), I (řídící proměnná cyklu) a C (proměnná typu Array umožňuje zadat deset čísel). Všechny proměnné jsou typu Integer. První příkaz těla programu ClrScr smaže obrazovku. Dále následuje cyklus od 1 do 10, který postupně zobrazí deset řádků s výzvou na zapsání hodnoty (čísla). Pokaždé bude uživatel informován o pořadí, které číslo právě zadává. Příkaz Readln(C[I]) 18

19 bude vkládat údaje z obrazovky monitoru do proměnné C do pozice s indexem I. Po zadání desátého čísla bude monitor smazán a budou zobrazena všechna zadaná čísla v pořadí v jakém byla zadána na jednom řádku. Příkaz Writeln přesune kurzor na nový řádek. Do proměnné Max se vloží první zadané číslo, které v tu chvíli představuje maximum. Vlastní vyhledání maxima proběhne v cyklu od 2 do 10, tedy od druhého do posledního zadaného čísla, kdy bude každé číslo porovnáno s hodnotou proměnné Max a v případě, že právě testované číslo (C[I]) bude větší než právě aktuální maximum bude do proměnné Max vložena hodnota tohoto právě testovaného čísla. Po ukončení cyklu, tedy testování zadaných čísel bude na monitor vypsána věta s informací o hodnotě nalezeného maxima. Příkaz Repeat Until (Keypressed); v praxi bude opakovat cyklus, ve kterém nebude nic vykonáno, až do okamžiku stisknutí libovolné klávesy. Tento řádek tedy umožňuje přerušení chodu programu až do okamžiku, kdy stiskneme libovolnou klávesu. Poslední příkaz End s tečkou končí program. V případě, že bude zadána řada čísel, ve které existuje maximum vícekrát, pak bude jako maximum použito to první. Toto je důležité, pokud chceme znát pozici maxima v řadě. Otázky k přemýšlení: a) Upravte program tak, aby vyhledal minimum. b) Upravte program tak, aby informoval také o pozici, na které je zadáno maximum. c) Upravte program tak, aby vypočítal průměrnou hodnotu zadaných čísel. d) Upravte program tak, aby informoval, kolik zadaných čísel je kladných a kolik záporných e) Upravte program tak, aby umožňoval zadat pouze nezáporná čísla. 19

20 2) Řazení čísel (pro zjednodušení budeme pracovat pouze s deseti celými čísly) Program Razeni; Uses Crt; Var Temp,I: Integer; C:Array[1..10] Of Integer; Begin ClrScr; For I:=1 To 10 Do Begin Write('Zadej ',I,'cislo : '); Readln(C[I]); End; ClrScr; Write('Zadana rada cisel : '); For I:=1 To 10 Do Write(C[I],', '); Writeln; For I:=1 To 9 Do Begin If C[I]>C[I+1] Then Begin Temp:=C[I]; C[I]:=C[I+1]; C[I+1]:=Temp; I:=I-2; If I<0 Then I:=0; End; End; Write('Serazena rada cisel : '); For I:=1 To 10 Do Write(C[I],', '); Repeat Until (Keypressed) End. Vzhledem k tomu, že zápis programu je velice podobný zápisu předešlému vysvětlíme si pouze tu část algoritmu, ve které probíhá řazení. Algoritmus je určen k řazení deseti čísel (N=10). Cyklus, ve kterém budeme porovnávat sousední čísla bude od 1 do 9 (N-1). Jestliže bude testované číslo (index I) větší než číslo 20

21 následující (index I+1) pak se tato čísla v pořadí vymění. Výměna proběhne tak, že do přechodné proměnné Temp se vloží první číslo(index I), na pozici prvního čísla (I) se přesune následující číslo (I+1) a na místo následujícího čísla (I+1) se vloží hodnota proměnné Temp (I). Tím dojde k výměně pozic dvou sousedních čísel. Zde máme dvě možnosti: a) posunout ukazatel (řídící proměnná cyklu I) o dvě pozice zpět a dále testovat, zda není třeba číslo dále posunout vlevo. Tento způsob posouvá každé číslo vlevo tak dlouho, dokud není toto číslo na své pozici. Toto řešení je použito v příkladu. b) pokračovat v testování dále až do I=N-1. Tím by se vyměnila všechna sousední čísla, která by byla v opačném pořadí než požadujeme, ale bylo by třeba opakovat celý cyklus tolikrát, dokud by docházelo ke změnám v pořadí čísel, resp. dokud by nebyla všechna čísla definitivně seřazena. Otázky k přemýšlení: a) Upravte algoritmus programu tak, aby řadil čísla sestupně (decrease), tedy od maxima do minima. b) Navrhněte jiný způsob řazení. Řešení cyklů FOR V následujících příkladech si vysvětlíme proces cyklu for. a) jednoduchý cyklus B:=0; For A:=1 to 10 do begin B:=B + A; B:=2 * B A; end; Otázka: Jaká bude hodnota proměnné B na konci cyklu? 21

22 Tento jednoduchý cyklus provede při každém cyklu (bude jich deset) dva příkazy, resp. dvě matematické operace. Nejprve k obsahu proměnné B připočte (přidá) hodnotu proměnné A. Hodnota proměnné A bude postupně číslo od jedné do desíti. V druhé matematické operaci nejprve vynásobí hodnotu proměnné B dvěma a nakonec od výsledku odečte hodnotu proměnné A (tedy postupně v jednotlivých cyklech jedničku až desítku). Sestavme si nyní tabulku hodnot proměnných použitých v cyklu (jsou dvě, A a B, proměnná A je řídící proměnná cyklu): A B (na počátku = 0) 1 0+1=1, 2*1 1= =3, 2*3-2= =7, 2*7-3= =15, 2*15-4= =31, 2*31-5= =63, 2*63-6= =127, 2*127-7= =255, 2*255-8= =511, 2*511-9= =1023, 2* = Výsledná hodnota proměnné B po ukončení cyklu bude 22

23 b) dvojitý (vnořený) cyklus C:=0; For A:=1 to 10 do For B:=A to 10 do C:=C+1; Otázka: Jaká bude hodnota proměnné C na konci cyklu? Tato úloha je složitější. Probíhá zde cyklus v cyklu. Vnější cyklus (řídící proměnná A) proběhne desetkrát a vnitřní cyklus (řídící proměnná B) bude postupně probíhat 10, 9,., 2 krát a nakonec jednou. Počet opakování vnitřního cyklu se bude postupně snižovat o jedničku. Důvodem je postupně se o jedničku zvyšující počáteční hodnota cyklu. Při každém opakování vnitřního cyklu se hodnota proměnné C zvýší o jedničku. To znamená, že potřebujeme zjistit kolikrát se provede přičtení jedničky k hodnotě proměnné C, resp. kolikrát se provede matematická operace C=C+1. Pro první vnější cyklus, kdy A=1, se provede přičtení 10 krát, pro druhý 9 krát až pro desátý jen jednou. Výsledná hodnota C je tedy součet řady čísel =((10+1)/2)*10=55. Pozn.: Součet přirozených čísel od 1 do N vypočítáme podle vzorce: = N * (1 + N) / 2 23

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

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

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

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

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

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

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

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

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

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

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní

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í 07. Základní příkazy vstup a výstup hodnot 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

Č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

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

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1. Prvocisla: Kratky ukazkovy priklad na demonstraci baliku WEB. Nasledujici program slouzi pouze jako ukazka nekterych moznosti a sluzeb,

Více

Lekce 01 Úvod do algoritmizace

Lekce 01 Úvod do algoritmizace Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním

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

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: CZ.1.07/1.5.00/34.0410 Číslo šablony: 1 Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek:

Více

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

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

Více

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

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

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

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

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

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární

Více

10 Algoritmizace Příklad 2 Word 2007/ VBA

10 Algoritmizace Příklad 2 Word 2007/ VBA TÉMA: Zápis algoritmu, cyklus se známým počtem opakování Prostředí aplikace Wordu je možné doplnit v rámci využití maker o automatizaci složitějších posloupností příkazů. Vedle záznamu makra je možno makra

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

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

Násobení pomocí sčítání Neznalost zákonů neomlouvá Násobení pomocí sčítání Zadání problému: Vymyslete algoritmus, jak násobit dvě čísla, když operaci násobení neznáme. Upřesnění zadání: Známe čísla, známe operaci sčítání, odčítání.

Více

POČÍTAČE A PROGRAMOVÁNÍ

POČÍTAČE A PROGRAMOVÁNÍ POČÍTAČE A PROGRAMOVÁNÍ Vícerozměrná statická a dynamická pole, Pole polí Miroslav Vavroušek PPI 08 V1.1 Opakovaní z minulé přednášky Datová pole Jednorozměrná statická datová pole Dynamická datová pole

Více

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox 02. HODINA Obsah: 1. Typy souborů a objektů 2. Ovládací prvky Label a TextBox 3. Základní příkazy a vlastnosti ovládacích prvků 4. Práce s objekty (ovládací prvky a jejich vlastnosti) 2.1 Typy souborů

Více

ALGORITMIZACE Příklady ze života, větvení, cykly

ALGORITMIZACE Příklady ze života, větvení, cykly ALGORITMIZACE Příklady ze života, větvení, cykly Cíl kapitoly: Uvedení do problematiky algoritmizace Klíčové pojmy: Algoritmus, Vlastnosti správného algoritmu, Možnosti zápisu algoritmu, Vývojový diagram,

Více

Závěrečná zkouška z informatiky 2011

Závěrečná zkouška z informatiky 2011 Závěrečná zkouška z informatiky 2011 1) Číslo A je v dvojkové soustavě a má hodnotu 1101011. Číslo B je v šestnáctkové soustavě a má hodnotu FF3. Vypočítejte : A * B a výsledek napište v desítkové soustavě.

Více

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců. TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců. Zadání: V textovém souboru text.txt je uloženo několik řádků textu. Vytvořte makro, které určí nejdelší řádek z daného souboru. 1. Název

Více

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

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá

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

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

VY_32_INOVACE_08_2_04_PR

VY_32_INOVACE_08_2_04_PR Ing. Petr Stránský VY_32_INOVACE_08_2_04_PR Příkazy vstupu - definice Výstupním zařízením může být obrazovka, tiskárna nebo soubor. Jednotlivé údaje se zapisují pomocí příkazu WRITE nebo WRITELN. Příkaz

Více

2. lekce Algoritmus, cyklus Miroslav Jílek

2. lekce Algoritmus, cyklus Miroslav Jílek 2. lekce Algoritmus, cyklus Miroslav Jílek 1/36 Algoritmus 2/36 Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů 3/36 Algoritmus je konečná posloupnost operací, která dává

Více

Martin Hejtmánek hejtmmar@fjfi.cvut.cz http://kmlinux.fjfi.cvut.cz/ hejtmmar

Martin Hejtmánek hejtmmar@fjfi.cvut.cz http://kmlinux.fjfi.cvut.cz/ hejtmmar Základy programování Martin Hejtmánek hejtmmar@fjfi.cvut.cz http://kmlinux.fjfi.cvut.cz/ hejtmmar Počítačový kurs Univerzity třetího věku na FJFI ČVUT Pokročilý 21. května 2009 Dnešní přednáška 1 Počátky

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í 06. Proměnné, deklarace proměnných 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

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 17. Řadící algoritmy Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2

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

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

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus Pracovní listy - programování (algoritmy v jazyce Visual Basic) Předmět: Seminář z informatiky a výpočetní techniky Třída: 3. a 4. ročník vyššího stupně gymnázia Algoritmus Zadání v jazyce českém: 1. Je

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

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové soubory

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové soubory Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové

Více

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

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

Ú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

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

Funkce, podmíněný příkaz if-else, příkaz cyklu for Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura 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

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy jazyka Pascal

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy jazyka Pascal Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy

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í 13. Práce s řetězci - palindrom Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona:

Více

Programujeme v softwaru Statistica

Programujeme v softwaru Statistica Programujeme v softwaru Statistica díl druhý Newsletter Statistica ACADEMY Téma: Programování, makra, skripty Typ článku: Návody V tomto článku si ukážeme další možnosti při psaní maker v softwaru Statistica.

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

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

ŘÍDÍCÍ STRUKTURY - PODMÍNKY ŘÍDÍCÍ STRUKTURY - PODMÍNKY Pokusíme se rozvětvit sktipt v Bashi ŘÍDÍCÍ STRUKTURY - PODMÍNKY V této lekci budeme probírat podmínkové, tj., které nám pomohou rozvětvit skript a provádět určité pouze při

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

Řídicí struktury. alg3 1

Řídicí struktury. alg3 1 Řídicí struktury Řídicí struktura je programová konstrukce, která se skládá z dílčích příkazů a předepisuje pro ně způsob provedení Tři druhy řídicích struktur: posloupnost, předepisující postupné provedení

Více

CZ.1.07/1.5.00/

CZ.1.07/1.5.00/ Celá čísla Celočíselný typ má označení INTEGER. Kromě tohoto základního jsou k dispozici ještě další celočíselné typy, které uvádí následující tabulka. Každý typ umožňuje definovat určitý rozsah celých

Více

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

C2110 Operační systém UNIX a základy programování C2110 Operační systém UNIX a základy programování 5. lekce Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Masarykova univerzita, Kotlářská 2, CZ-61137 Brno C2110 Operační systém

Více

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

Basic256 - úvod do programování Příklady. ing. petr polách Basic256 - úvod do programování Příklady ing. petr polách 1 Basic 256 input, print Př.: Vytvořte program pro součet dvou čísel: input "Zadej a: ", a input "Zadej b: ", b print a+b input "Zadej a: ", a

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

Algoritmizace řazení Bubble Sort

Algoritmizace řazení Bubble Sort Algoritmizace řazení Bubble Sort Cílem této kapitoly je seznámit studenta s třídícím algoritmem Bubble Sort, popíšeme zde tuto metodu a porovnáme s jinými algoritmy. Klíčové pojmy: Třídění, Bubble Sort,

Více

dovolují dělení velkých úloh na menší = dekompozice

dovolují dělení velkých úloh na menší = dekompozice Podprogramy dovolují dělení velkých úloh na menší = dekompozice Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Více

Výukový materiál zpracován v rámci projektu EU peníze školám

Výukový materiál zpracován v rámci projektu EU peníze školám Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ. 1.07/1.5.00/34.0637 Šablona III/2 Název VY_32_INOVACE_39_Algoritmizace_teorie Název školy Základní škola a Střední

Více

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

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné

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

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Vývojové diagramy Daniela Szturcová

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í 14. Strukturované datové typy - pole, záznam, množina 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

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,

Více

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

Školní kolo soutěže Baltík 2009, kategorie C Úloha 1 Sídliště Počet bodů: 40 b Pracujte v 3D režimu s Baltíkem. a) Bílý a šedivý Baltík si postaví šachovnici o rozměru 6x6 políček následujícím způsobem. Předměty SGP21.sgpm a SGP22.sgpm upravte na

Více

Poslední nenulová číslice faktoriálu

Poslední nenulová číslice faktoriálu Poslední nenulová číslice faktoriálu Kateřina Bambušková BAM015, I206 Abstrakt V tomto článku je popsán a vyřešen problém s určením poslední nenulové číslice faktoriálu přirozeného čísla N. Celý princip

Více

NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č

NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č.404 http://ksvi.mff.cuni.cz/~holan/ Tomas.Holan@mff.cuni.cz NPRG030 Programování I, 2014/15 1 / 37 6. 10. 2014 11:42:59 NPRG030 Programování I,

Více

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální

Více

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text;

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text; Typy a proměnné zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text; Typy Hodnoty, kterých mohou nabývat vlastnosti prvků nejsou

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

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 10. Opakování v cyklech Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona:

Více

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná. Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence

Více

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Operátory a příkazy BI-JSC Evropský sociální fond

Více

MQL4 COURSE. By Coders guru www.forex-tsd.com. -5 Smyčky & Rozhodnutí Part 1

MQL4 COURSE. By Coders guru www.forex-tsd.com. -5 Smyčky & Rozhodnutí Part 1 MQL4 COURSE By Coders guru www.forex-tsd.com -5 Smyčky & Rozhodnutí Part 1 Vítejte v páté lekci mého kurzu MQL4. Předchozí lekci si můžete stáhnout z tohoto odkazu: http://forex-tsd.com /attachment.php?attachmentid=399

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 programovacího jazyka Turbo Pascal

Základy programovacího jazyka Turbo Pascal Základy programovacího jazyka Turbo Pascal Programovací jazyk Pascal byl navržen začátkem 70. let profesor Niklaus Wirth z Vysoké školy technické v Curychu Cíle návrhu vytvořit jazyk vhodný pro výuku programování

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

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento

Více

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................

Více

Programování 2 (NMIN102) Soubory. RNDr. Michal Žemlička, Ph.D.

Programování 2 (NMIN102) Soubory. RNDr. Michal Žemlička, Ph.D. Programování 2 (NMIN102) Soubory RNDr. Michal Žemlička, Ph.D. Soubor abstrakce vstupního, výstupního či vstupně výstupního zařízení textová, typovaná a netypovaná varianta základní operace: otevření, čtení/zápis,

Více

ALGORITMIZACE PRAKTICKÉ

ALGORITMIZACE PRAKTICKÉ LOGO IMAGINE Obsah 1. Příkazy 1.1. Základní příkazy 1.2. Vestavěné příkazy Imagine 1.2.1.Příkaz mnohoúhelník 1.2.2.Náhodná procházka 2. Matematické operace 3. Funkce 4. Predikáty 5. Konstruktory 6. Selectory

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

- 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

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 III/2 Inovace a

Více

6. Příkazy a řídící struktury v Javě

6. Příkazy a řídící struktury v Javě 6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

Přijímací zkouška z informatiky Dz

Přijímací zkouška z informatiky Dz Přijímací zkouška z informatiky Dz Každý příklad je hodnocen osmi body. Je dovoleno používat počítací stroje a není dovoleno používat matematické tabulky. Hodnotí se nejen výsledek, ale i postup. 1. Určete

Více

PROGRAMOVÁNÍ V SHELLU

PROGRAMOVÁNÍ V SHELLU PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který

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

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

KAPITOLA 4 ZPRACOVÁNÍ TEXTU

KAPITOLA 4 ZPRACOVÁNÍ TEXTU KAPITOLA 4 ZPRACOVÁNÍ TEXTU TABULÁTORY Jsou to značky (zarážky), ke kterým se zarovná text. Můžeme je nastavit kliknutím na pravítku nebo v dialogovém okně, které vyvoláme kliknutím na tlačítko Tabulátory

Více

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.

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. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

2 Datové typy v jazyce C

2 Datové typy v jazyce C 1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,

Více

NPRG030 Programování I, 2015/16 1 / :25:32

NPRG030 Programování I, 2015/16 1 / :25:32 NPRG030 Programování I, 2015/16 1 / 21 22. 10. 2015 13:25:32 Podprogramy Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X

Více

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody 4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty

Více

Digitální učební materiál

Digitální učební materiál Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_147_IVT Autor: Ing. Pavel Bezděk Tematický okruh:

Více