VÝUKOVÝ MATERIÁL Identifikační údaje školy
Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vytvořeno Určeno pro Přílohy
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 CZ.1.07/1.5.00/34.1076 Pro vzdělanější Šluknovsko 32 – Inovace a zkvalitnění výuky prostřednictvím ICT 0207 Mgr. Bc. Jan Škoda Programování VY_32_INOVACE_0207_0204 Podmínka IF Žák si upevní učivo o podmínce IF v programovacím jazyku C 18. 7. 2013 3. ročník oboru Informační technologie 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
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 2.#include 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.