Podmíněné vykonávání a rozvětvení. Co je to? Podmíněné vykonávání = nechceme provést všechny příkazy, chceme určité části kódu něčím podmínit Rozvětvení.

Slides:



Advertisements
Podobné prezentace
Vypracovala: Monika Čáslavská
Advertisements

Pro začátek něco lehčího
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
ŘÍDÍCÍ STRUKTURY - PODMÍNKY
Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
Vytvoření dokumentu bylo financováno ze zdrojů Evropského sociálního fondu a státního rozpočtu ČR. Název projektu: Výuka programování na střední škole.
Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
Počítače a programování 2 Přednáška Jiří Šebesta.
Příkazy Přednáška č. 4. Příkazy (statements)  Příkaz – dílčí krok programu (část kódu – zpravidla jeden řádek)  Program – posloupnost příkazů  Příkazy.
Třetí cvičení Podmíněné příkazy Cykly Break a Continue Switch Return
Pole, ukazatele a odkazy
PHP Podmíněné příkazy v PHP - 06
Počítače a programování 1. Obsah přednášky Výjimky - základní typy výjimek Způsoby zpracování výjimek.
C# pro začátečníky Mgr. Jaromír Osčádal
If-else, do-while, switch, operátory
Materiály k přednášce Úvod do programování Ondřej Čepek.
SOKOBAN Ondra Mandík, I4a SPŠE Ječná. POPIS Hra bude obsahovat jednoho hráče, bedny, zdi a cílová místa pro bedny. Hráč nesmí procházet zdí. Hráč před.
Informatika I 3. přednáška
Ing. Josef Veselý Označení šablony a vzdělávací sady viz.rozpis.
C – strukturované příkazy
C# - Exceptions (výjimky)
Vaše první aplikace V rámci projektu „Cesta k vědě“ (veda.gymjs.net) vytvořil V. Pospíšil a Antonín Šulc. Modifikace a.
Ing. Josef Veselý Označení šablony a vzdělávací sady viz.rozpis.
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
C# - prvky UI – vlastnosti a události Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
JavaScript Podmínky, cykly a pole.
Čísla Desetinná čísla. čísla desetinná se v PC ukládají jiným způsobem než čísla celá – výpočty s nimi provádí dvě odlišné části procesoru při výpočtech.
PictureBox u vkládání obrázků u vlastnost Picture pomocí příkazu LoadPicture u přiřazení obrázku mezi dvěma prvky PictureBox Auto.Picture = AutoCerv.Picture.
IB111 Programování a algoritmizace
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
PHP Vytváření formuláře.
2 UDÁLOSTI ONMOUSEOVER, ONMOUSEOUT Odkaz Událost je část kódu vyvolana za určité (uživatelem vyvolané) situace (kliknutí myší, přejetím kurzorem myši,
NEÚPLNÁ PODMÍNKA V JAVĚ. VÝVOJOVÝ DIAGRAM +- Podmínka Příkaz_1.
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
Typy cyklů Do...Loop For...Next For Each...Next.
STRING A UKAZATELE. Co to je řetězec? Řetězec v Javě je samostatný objekt. Je konstantní, co znamená, že jednou vytvořený řetězec nelze změnit. Chceme-li.
Vnořené větvení. If – else - vnořování Kostrukce if, nebo if-else lze do sebe vnořovat, a tak vytvářet další větvení již rozvětveného kódu.
Vzdálená správa Tomáš Kalný.
Pascal – strukturované příkazy
Počítače a programování 2 pro obor EST KPC2E TUTORIÁL 3
C – if Mgr. Lenka Švancarová. if vývojový diagram Podmínka Příkaz(y) Podmínka Příkaz(y) Úplné větveníNeúplné větvení ++--
Úvod do programování2 Vyučující: Mgr. Vítězslav Jersák Web: xjv.webnode.cz.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
Programování ÚVOD, PROMĚNNÉ, OPERÁTORY A PODMÍNĚNÝ PŘÍKAZ ERIK KRÁL.
Výukový materiál zpracován v rámci projektu
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
Výukový materiál zpracován v rámci projektu
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Výukový materiál zpracován v rámci projektu
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
C# konzole – Vstup a výstup
C# konzole – Podíl dvou čísel, podmínka IF
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
ZAL – 3. cvičení 2016.
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
© Copyright Radim Štefan
Výukový materiál zpracován v rámci projektu
Programujeme lépe a radostněji
ProgeCAD Modifikace prvků.
C# přehled vlastností.
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
ProgeCAD Modifikace prvků.
Transkript prezentace:

Podmíněné vykonávání a rozvětvení

Co je to? Podmíněné vykonávání = nechceme provést všechny příkazy, chceme určité části kódu něčím podmínit Rozvětvení = někdy se vykoná jedna část kódu (jedna větev), někdy druhá část kódu (druhá větev)

Podmíněné vykonávání Příklad: program kreslí obrazec, jenž se může sestávat z kříže, čtverce a kružnice. To, jestli se příslušná část obrazce na monitoru objeví, řídí uživatel pomocí tří zaškrtávacích políček

Postup řešení: Jádro bude určitě v obsluze události Paint panelu Budou zde všechny kreslící příkazy Jejich vykonávání však bude podmíněno stavem zaškrtávacích políček

Z Získej kreslící plochu a stanov rozměry obrazce Je políčkoČtverec zaškrtnuto? Je políčkoKříž zaškrtnuto? Je políčkoKružnice zaškrtnuto? K Nakresli kříž Nakresli čtverec Nakresli kružnici ano ne

Postup: Obrazec v panelu musí reagovat na zaškrtávací políčka Když uživatel „ofajfkuje“ čtverec, musí se objevit čtverec, když „fajfku“ zruší, obrazec zmizí To znamená, že kdykoli se stav zaškrtnutého políčka změní, je třeba obrazec překreslit Budou se tedy obsluhovat události CheckedChanged políček Obsluha bude společná pro všechna políčka a jediné, co se v ní povede, bude překreslení panelu

Uživatelské rozhraní programu Ovládací prvky: políčkoKříž políčkoČtverec políčkoKružnice panel

namespace Podmíněné_kreslení { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void panel_Paint(object sender, PaintEventArgs e) { //Kreslící plocha panelu a rozměry obrazce Graphics kp = e.Graphics; int šířka = panel.ClientSize.Width - 1; int výška = panel.ClientSize.Width - 1; //Je-li zaškrtnuto políčkoKříž, proveď příkazy: //kp.DrawLine(Pens.CornflowerBlue, 0, 0, šířka, výška); //kp.DrawLine(Pens.CornflowerBlue, 0, výška, šířka, 0); // Je-li zaškrtnuto políčkoČtverec, proveď příkaz: //kp.DrawRectangle(Pens.CornflowerBlue, 0, 0, šířka, výška); // Je-li zaškrtnuto políčkoKružnice, proveď příkaz: // kp.DrawEllipse(Pens.CornflowerBlue, 0, 0, šířka, výška); } private void všechnaPolíčka_CheckedChanged(object sender, EventArgs e) { panel.Refresh(); }

Řídící konstrukce IF if (podmínka) příkaz;NEBO if (podmínka) { příkaz1; příkaz2; } Jako podmínka se v konstrukci if používá proměnná, vlastnost nebo výraz typu bool. Podmínka se považuje za splněnou, má-li proměnná/vlastnost/výraz hodnotu true.

Dokončení příkladu private void panel_Paint(object sender, PaintEventArgs e) { //Kreslící plocha panelu a rozměry obrazce Graphics kp = e.Graphics; int šířka = panel.ClientSize.Width - 1; int výška = panel.ClientSize.Width - 1; //Je-li zaškrtnuto políčkoKříž, proveď příkazy: if (políčkoKříž.Checked) { kp.DrawLine(Pens.CornflowerBlue, 0, 0, šířka, výška); kp.DrawLine(Pens.CornflowerBlue, 0, výška, šířka, 0); } // Je-li zaškrtnuto políčkoČtverec, proveď příkaz: if (políčkoČtverec.Checked) kp.DrawRectangle(Pens.CornflowerBlue, 0, 0, šířka, výška); // Je-li zaškrtnuto políčkoKružnice, proveď příkaz: if (políčkoKružnice.Checked) kp.DrawEllipse(Pens.CornflowerBlue, 0, 0, šířka, výška);

Rozvětvení programu Program: Vytvoříme jednoduchou hru hádání čísla Po stisku tlačítka „Mysli si (nová hra)“ si počítač „bude myslet“ nějaké číslo v rozmezí 1 až 5. Úkolem uživatele poté bude číslo hádat Svůj odhad zapíše do textového pole a stiskne tlačítko „Hádám“ Počítač poté vyhodnotí, jestli uživatel myšlené číslo uhodl či nikoli tlačítkoMysliSi, tlačítkoHádám, poleHádám

Teorie k příkladu Při rozvětvení se vykoná vždy buď jedna nebo druhá alternativa V reakci na stisk tlačítka „Mysli si“ se vygeneruje číslo a to číslo se někam uloží (do členské proměnné – číslo zde musí vydržet po celou dobu hry) Poté je bude možno porovnávat s odhadem uživatele

public partial class HadaniCisla : Form { int myšlenéČíslo; Random náhoda = new Random(); public HadaniCisla() { InitializeComponent(); } private void tlačítkoMyslisi_Click(object sender, EventArgs e) { myšlenéČíslo = náhoda.Next(1, 5 + 1); } private void tlačítkoHádám_Click(object sender, EventArgs e) { //pokud se číslo zapsané v textovém poli shoduje s číslem //v proměnné myšlenéČíslo, proveď příkaz: //MessageBox.Show("UHODL(A) JSTE!"); //V opačném případě proveď příkaz: //MessageBox.Show("Neuhodl(a) jste, zkuste znovu."); }

Řídící konstrukce if-else K zápisu rozvětvení programu slouží konstrukce IF-ELSE: if (podmínka) akce1 //jsou to buď samostatné příkazy ukončené středníkem, nebo bloky příkazů ve složených závorkách// else akce2//jsou to buď samostatné příkazy ukončené středníkem, nebo bloky příkazů ve složených závorkách//

Dokončení příkladu private void tlačítkoHádám_Click(object sender, EventArgs e) { int hádanéČíslo; try { hádanéČíslo = Convert.ToInt32(poleHádám.Text); } catch { MessageBox.Show("Zadán nekorektní údaj."); return; } if (hádanéČíslo == myšlenéČíslo) MessageBox.Show ("UHODL(A) JSTE!"); else MessageBox.Show("Neuhodl(a) jste, zkuste znovu."); }

Relační operátory if (hádanéČíslo == myšlenéČíslo) celý výraz typu bool - výpočet, jehož hodnota typu bool – buď true nebo false v tomto případě se hodnota proměnné hádanéČíslo porovnává s hodnotou proměnné myšlenéČíslo pokud se obě hodnoty rovnají, je výsledkem výrazu hodnota true, jestliže se nerovnají, je výsledkem false

Relační operátor V matematiceV C# a = ba == b a = ba != b a < b a <= b a > b a >= b