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 Číslo projektu CZ.1.07/1.5.00/34.1076 Název projektu Pro vzdělanější Šluknovsko Číslo a název šablony 32 Inovace a zkvalitnění výuky prostřednictvím ICT Autor 0207 Mgr. Bc. Jan Škoda Tematická oblast Programování Číslo a název materiálu VY_32_INOVACE_0207_0204 Podmínka IF Anotace Žák si upevní učivo o podmínce IF v programovacím jazyku C Vytvořeno 18. 7. 2013 Určeno pro 3. ročník oboru Informační technologie Přílohy Bez příloh
Metodický list Učitel: Výklad s projekcí elektronického učebního materiálu. Demonstrace v reálném prostředí. Ukázka obecného postupu činností. Monitorování činnosti žáků. Žák: Sleduje výkladovou projekci a demonstraci učitele. Procvičuje na reálném prostředí softwaru.
c++ Podmínka IF
Podmínka if Doteď jsme se naučili vytvářet program, který za každých okolností postupoval přímočaře, bez jakéhokoliv větvení. Právě na to, slouží příkaz if. Jeho syntaxe je: if (podmínka) příkaz; V případě, že je podmínka splněna, vykoná se příkaz. Podmínka obvykle obsahuje jeden (anebo více) operátor z následující tabulky.
Operátory Operátor Význam == rovná se (nepleťte si s operátorem přirazení (=) < > menší, větší!= nerovná se Zdroj: Autor
Podmínka if Jako podmínka můžete použít i jakýkoliv výraz, vracející true nebo false. Jako true nebo false (pravda/nepravda) se dá dokonce vyhodnotit i klasická proměnná. Proměnná obsahující hodnotu 0 bude vyhodnocená jako false (podmínka není splněná), jakákoliv jiná hodnota bude true (splněná podmínka). Uvádím pár příkazů if s pravdivým vyhodnocením podmínky:
Podmínka if 1.unsigned short a,b; 2.a = 5; 3.b=5; 4.//1.podmínka 5.if(a==b) 6.cout<<"a se rovna b"; 7.//2.podmínka 8.if(a<10) 9.cout<<"a je mensi jak 10 "; 10.//3.podmínka 11.if(a>0) 12.cout<<"a je vetsi jak 0 "; 13.//4.podmínka 14.if(true) 15.cout<<"podminka je splnena"; 16.//5.podminka 17.if(1) 18.cout<<"podminka je splnena";
Úplná podmínka (else) V případě, že není splněna podmínka, může se vykonat příkaz následující za příkazem else: if (podmínka) podmínka splněna; else podmínka nesplněna; Na závěr ještě jeden příklad:
Úplná podmínka (else) 1.#include <iostream> 2.using namespace std; 3.int main() 4.{ 5.unsigned short delenec,delitel; 6.cout << "Zadejte delence: "; 7.cin>>delenec; 8.cout << "Zadejte delitele: "; 9.cin>>delitel; 10.if((delenec%delitel)==0) 11.cout << "Cislo " << delenec << " je delitelne cislem " << delitel << "." ; 12.else 13.cout << "Cislo " << delenec << " není delitelne cislem " << delitel << "." ; 14.system("PAUSE"); 15.return EXIT_SUCCESS; 16.}
Příklad - rozbor Na začátku programu získáme od uživatele potřebné hodnoty proměnných, potom testujeme, jestli se zbytek po dělení rovná nule. Jestli se rovná, vypíšeme, že číslo je dělitelné beze zbytku. V jiném případě, napíšeme, že číslo není dělitelné beze zbytku.
Složený příkaz Z předchozí definice víte, že v podmínce můžeme použít jen jediný příkaz. Někdy je ale potřeba vykonat více příkazů za sebou. Tento problém se dá vyřešit pomocí bloku (složených příkazů). Každý blok začíná levou složenou závorkou( { ) a končí pravou složenou závorkou( } ). Do bloku se dá uzavřít libovolný počet příkazů, ale celý blok se chová jako jeden příkaz.
Příklad 1.#include <cstdlib> 2.#include <iostream> 3.using namespace std; 4.int main() 5.{ 6.unsigned short a; 7.cout << "Zadej hodnotu a: "; 8.cin >>a; 9.if (100>a) 10.{cout << "a je mensi nez 100.\n"; 11.cout << "do 100 ještě chybi" << 100-a << endl;} 12.else 13.cout << "a je o " << a-100 << vetsi nez 100."<<endl; 14.system("PAUSE"); 15.return EXIT_SUCCESS; 16.} Všimněte si, že za podmínkou jsou dva příkazy uzavřené do bloku.
Zkrácené vyhodnocování V podmínce if ((vek>5) && (vek<15)) se vyhodnotí nejprve pravdivost vek>5 a když podmínka není splněná, tak se už s vyhodnocováním dál nepokračuje, protože pokud by druhá podmínka byla splněna, tak celý výraz splněný není.
Zkrácené vyhodnocování Podobně v podmínce if((vek<14) (vek ==18)) když je splněno vek<14, už se netestuje vek==18, protože na platnost výrazu s operátorem OR stačí splnit jednu část podmínky.
Zdroje BERAN, Martin. Učebnice Borland C: učebnice programování v Borland C 4. generace. Praha: BEN - technická literatura, 1995, 442 s. ISBN 80-238-0304-2. HEROUT, Pavel. Učebnice jazyka C. 3. vyd. České Budějovice: Kopp, 1994, 269 s. ISBN 80-858-2821-9. HEROUT, Pavel. Učebnice jazyka C: 2. díl. 1. vyd. České Budějovice: KOPP, 1995, 236 s. ISBN 80-858-2850-2. SCHILDT, Herbert. Nauč se sám C. Překlad Jiří Grée, Adéla Gréeová. Praha: SoftPress, 2001, 623 s. ISBN 80-864-9713-5.