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

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

6 Příkazy řízení toku

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

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

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

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

1. Téma 03 - Rozhodování

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

Algoritmizace a programování

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

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

Algoritmizace a programování

Operátory. Základy programování 1 Tomáš Kühr

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

Algoritmy a datové struktury

Řídicí struktury. alg3 1

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

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

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

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

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

Řídicí příkazy KAPITOLA 3. Vstup znaků z klávesnice

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

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

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Příkaz while. while (podmínka) { příkaz; } Příklad: int i=0; while (i < 10) { System.out.println(i); i++; } // vypíše čísla od 0 do 9

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

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

Programování v jazyce C

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

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: :01:48

Algoritmizace a programování

C# konzole Podíl dvou čísel, podmínka IF

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

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

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

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

Řešení sady 1. Úvod do programování 1 Tomáš Kühr

Programování v C++ 1, 1. cvičení

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

Základy programování (IZP)

Lekce 01 Úvod do algoritmizace

Lekce 04 Řídící struktury

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

MQL4 COURSE. By Coders guru -5 Smyčky & Rozhodnutí Část 2

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

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

Větvení programů příkaz IF

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

Základy algoritmizace a programování

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

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

NPRG031 Programování II --- 2/2 Z, Zk

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Skripty - úvod. Linux - skripty 2

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

Programovani v Maplu Procedura

Základy algoritmizace a programování

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

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

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

Martin Flusser. November 1, 2016

Úvod do programování

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

Základní stavební prvky algoritmu

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

Úvod do programování. Lekce 3

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

Úvod do programování v jazyce Java

Pointery II. Jan Hnilica Počítačové modelování 17

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

Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

PROGRAMOVÁNÍ V SHELLU

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

Algoritmizace prostorových úloh

Rozklad na prvočinitele. 3. prosince 2010

Základy programování (IZP)

Software602 Form Designer

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch.

Inovace bakalářského studijního oboru Aplikovaná chemie

2. lekce Algoritmus, cyklus Miroslav Jílek

Řídicí struktury, výrazy a funkce

Používejte jen ty konstrukty jazyka C/C++, které jsme doposud probírali (nepoužívejte STL apod.)

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

Algoritmizace prostorových úloh

Jazyk C# a platforma.net

68. ročník Matematické olympiády 2018/2019

URČITÝM ZPŮSOBEM PODOBNÉ

Algoritmy I. Cvičení č.1, 2 ALGI 2016/17

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

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

Práce se soubory. Základy programování 2 Tomáš Kühr

Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

2. Základy jazyka. Proměnné. Základy jazyka

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

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

Transkript:

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

Z minula Chary můžete používat jako znaky ale i jako čísla 0-255. Jakou formu vybrat záleží na konkrétní aplikaci. Když pracujete se znaky, používejte konstanty znaků ( a, 0, )! Rozmyslete se jaká konstrukce pro větvení je pro danou aplikaci výhodná. Větvení si dobře promyslete a nebojte se ho popřípadě celé předělat. Hall of Shame: switch (znak) case 'a': printf("mala samohlaska '%c'\n", znak); break; case 'e': printf("mala samohlaska '%c'\n", znak); break; case 'i': printf("mala samohlaska '%c'\n", znak); break; case 'y': printf("mala samohlaska '%c'\n", znak); break;..... case 'CH': if (znak >= 65 && znak <= 90) case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': printf("zadany znak je velke pismeno %c\n", vstup); break;

Motivace Vypište prvních 5 přirozených čísel printf("1\n"); printf("2\n"); printf("3\n"); printf("4\n"); printf("5\n"); Vypište prvních n přirozených čísel int n; scanf("%d", &n); if (n >= 1) printf("1\n"); if (n >= 2) printf("2\n"); if (n >= 3) printf("3\n"); if (n >= 4) printf("4\n"); if (n >= 5) printf("5\n");

Cyklus while Opakování bloku příkazů Dokud je splněna uvedená podmínka Podmínku píšeme na začátek cyklu Testuje se na začátku každého průchodu cyklem Tělo cyklu nemusí být provedeno ani jednou Vhodné, když nevíme dopředu počet iterací Typický zápis: while (podmínka) příkazy

Příklady while cyklu int n, i; scanf("%d", &n); i = 1; while (i <= n) printf("%d\n", i); i++; int prvni, druhe; int vetsi, mensi; vetsi = prvni; mensi = druhe; while (mensi!= 0) int zbytek; zbytek = vetsi % mensi; vetsi = mensi; mensi = zbytek; printf("vysledek je %d. \n", vetsi);

Cyklus for Složitější konstrukce cyklu Podporuje nejběžnější způsob použití cyklu Inicializace řídících proměnných před cyklem Test podmínky na začátku cyklu Změny řídících proměnných mezi průchody Typický zápis: for (inicializace; podmínka; iterace) příkazy

Příklady for cyklu int od, po, i; scanf("%d", &od); scanf("%d", &po); for (i = od; i <= po; i++) printf("%d\n", i); int od, krok, i; scanf("%d", &od); scanf("%d", &krok); for (i = od; i > 0; i-= krok) printf("%d\n", i);

For vs. while cyklus Cyklus for lze přepsat pomocí while For cyklus: for (inicializace; podmínka; iterace) příkazy Odpovídá: inicializace; while (podmínka) příkazy iterace;

Největší společný dělitel (pomocí for) int prvni, druhe; int vetsi, mensi; for (vetsi = prvni, mensi = druhe ; mensi!= 0; ) int zbytek; zbytek = vetsi % mensi; vetsi = mensi; mensi = zbytek; printf("vysledek je %d. \n", vetsi);

Cyklus do-while Na rozdíl od předchozích typů cyklu testuje podmínku až na konci prvního průchodu Tělo cyklu se vždy alespoň jednou provede Typický zápis: do příkazy while (podmínka);

Příklady cyklu do-while int n, i; scanf("%d", &n); i = 1; do printf("%d\n", i); i++; while (i <= n); int prvni, druhe; int vetsi, mensi, zbytek; vetsi = prvni; mensi = druhe; do zbytek = vetsi % mensi; vetsi = mensi; mensi = zbytek; while (mensi!= 0); printf("vysledek je %d. \n", vetsi);

Přerušení cyklu Cykly bývají v reálných programech i složitější Někdy potřebujeme přerušit cyklus i jinde než na začátku/konci Často v závislosti na různých podmínkách Příkazy pro přerušení cyklu: okamžité vyskočení - break; přerušení aktuálního průchodu a přechod k dalšímu - continue; Vztahují se vždy k "nejbližšímu" cyklu

Příklad přerušení break int cislo; int mocnina; int min = 100; for (cislo = 1; ; cislo++) mocnina = cislo * cislo; if (mocnina > min) printf("%d\n", mocnina); break;

Příklad přerušení continue int pocet = 5; int mocnina = 1; int cislo = 1; int max = 500; while (mocnina < max) printf("%d, ", mocnina); cislo++; mocnina = cislo * cislo; if ((cislo-1) % pocet!= 0) continue; printf("\n");

Složitější zacyklení Jeden cyklus může (samozřejmě) být uvnitř druhého cyklu: int pocet = 10; int delkaradku = 3; int i, j; for (i = 0; i < pocet; i++) for (j = 0; j < pocet; j++) printf("%d * %d = %d, \t", i, j, i * j); if ((i * pocet + j + 1) % delkaradku!= 0) continue; printf("\n"); Příkazy pro přerušení cyklu se týkají vždy toho nejvnitřnějšího cyklu, ve kterém jsou uvedeny.

Poznámky Co patří do předpisu cyklu? for (delitel = 2; delitel <= cislo / 2;) ++delitel; Dodržovat jednu konvenci při psaní složených závorek! for (a = 0; a < velikost; a++) if (hvezda > velikost) break; else Zbytečné podmínky / větvení for (cislo= 1; cislo <= velikost; cislo++) if (cislo > velikost) break;

Cvičení Napište program, který od uživatele načte znak a celé číslo. Program vykreslí do konzole pomocí zadaného znaku pravoúhlý trojúhelník o straně velikosti zadaného čísla. Příklady použití: Zadejte znak: * Zadejte velikost: 1 * Zadejte znak: # Zadejte velikost: 2 # ## Zadejte znak: 8 Zadejte velikost: 4 8 88 8 8 8888