Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

C – strukturované příkazy

Podobné prezentace


Prezentace na téma: "C – strukturované příkazy"— Transkript prezentace:

1 C – strukturované příkazy
Mgr. Lenka Švancarová

2 Úvod do problematiky U předchozích programů jsme vždy vykonávali všechny příkazy jeden po druhém. Pokud budeme chtít, aby se některé příkazy vykonaly jen za určité podmínky a nebo se opakovaly jen za určité podmínky, budeme muset v programech využít strukturovaných příkazy. Strukturované příkazy řídí chod programu na základě toho, zda je podmínka v nich obsažená splněna (vrací nenulovou hodnotu) či nikoliv (vrací nulu).

3 Podmínka Pascal C a=5 not(p=’V’) nelze (p=’V’) or (p =’v’)
(j=’Jan’) and not(a=0) (a mod 2)=0 //mod //vrací zbytek po dělení (a==5) (!(p==’V’)) (p!=’V’) (a==p) //různé typy dat ((p==’V’) || (p ==’v’)) ((j==’Jan’) && (a!=0)) (a%2==0) (p=’V’) //co se stane? Podmínka v C musí být uzávorkovaná. V C lze porovnávat i hodnoty proměnných různých datových typů (v Pascalu ne).

4 C – větvení Mgr. Lenka Švancarová

5 Úplné větvení Sémantika (stejná jak v TP) Vývojový diagram
Jestliže je splněna podmínka (vrací nenulovou hodnotu), vykonají se příkazy pravdivé větve, když není (vrací nulu), vykonají se příkazy nepravdivé větve. Vždy se tedy vykonají příkazy jen v jedné větvi a pokračuje se dál v programu. Podmínka + - Příkaz(y) Příkaz(y)

6 if syntaxe if (podmínka) { jeden nebo více příkazů pravdivé větve
} else { jeden nebo více příkazů nepravdivé větve } Nepoužijeme-li v pravdivé větvi {}, musíme (jeden) neuzávorkovaný příkaz ukončit středníkem (na rozdíl od TP, kde před else středník psát nelze). Pokud je v pravdivé či nepravdivé větvi jeden příkaz, je na nás, zda použijeme { } či nikoliv. V případě více příkazů jsou { } povinné.

7 C – úplné větvení Nakresli vývojový diagram a napiš zdrojový kód. Řeš s využitím úplného větvení. Uživatel zadá číslo. Vypočte se jeho absolutní hodnota a výsledek se vypíše na obrazovku. |7|=7 obecně |x|=x pokud je x kladné |-8|=8 obecně |x|=-x pokud je x záporné

8 printf(”|x|=%.0f\n”, x*(-1))
if úplné větvení Start scanf(”%f”,&x) (x < 0) + - printf(”|x|=%.0f\n”, x*(-1)) printf(”|x|=%.0f\n”, x) Stop

9 if neúplné větvení #include <stdio.h> int main() { float x;
printf(”Zadej cislo: ”); scanf(”%f”,&x); if (x < 0) printf(”|x|=%.0f\n”, x*(-1)); else printf(”|x| = %.0f\n”,x); return(0); } #include <stdio.h> int main() { float x; printf(”Zadej cislo: ”); scanf(”%f”,&x); if (x < 0) { printf(”|x|=%.0f\n”, x*(-1)); } else { printf(”|x| = %.0f\n”,x); } return(0); } Pokud je v pravdivé či nepravdivé větvi jeden příkaz, je na nás, zda použijeme {}. V případě více příkazů jsou {} povinné.

10 Neúplné větvení Sémantika (stejná jak v TP) Vývojový diagram
Jestliže je splněna podmínka (vrací nenulovou hodnotu), vykonají se příkazy pravdivé větve, když není (vrací nulu), přes nepravdivou větev se pouze projde (nejsou v ní příkazy, tak není co vykonávat). Podmínka + - Příkaz(y)

11 if syntaxe if (podmínka) { jeden nebo více příkazů pravdivé větve }
Protože v nepravdivé větvi nejsou žádné příkazy, není ani v zápisu. Pokud je v pravdivé větvi jeden příkaz, je na nás, zda použijeme { } či nikoliv. V případě více příkazů jsou { } povinné.

12 C – neúplné větvení Nakresli vývojový diagram a napiš zdrojový kód. Řeš s využitím neúplného větvení. Uživatel zadá číslo. Vypočte se jeho absolutní hodnota a výsledek se vypíše na obrazovku. |7|=7 obecně |x|=x pokud je x kladné |-8|=8 obecně |x|=-x pokud je x záporné

13 if neúplné větvení Start Stop scanf(”%f”,&x) x < 0 - + x=x*(-1)
printf(”|x|=%.0f\n”, x) Stop

14 if neúplné větvení #include <stdio.h> int main() { float x;
printf(”Zadej cislo: ”); scanf(”%f”,&x); if (x < 0) x=x*(-1); printf(”|x| = %.0f\n”,x); return(0); } #include <stdio.h> int main() { float x; printf(”Zadej cislo: ”); scanf(”%f”,&x); if (x < 0) { x=x*(-1); } printf(”|x| = %.0f\n”,x); return(0); } Pokud je v pravdivé či nepravdivé větvi jeden příkaz, je na nás, zda použijeme {} či nikoliv. V případě více příkazů jsou {} povinné.

15 C – větvení Nakresli vývojový diagram a napiš kód.
Uživatel zadá dvě čísla. Jestliže nebude druhé zadané číslo nula, čísla se vydělí, jinak se vypíše „nulou dělit nelze“ a toto tvrzení se podtrhne. Uživatel zadá celé číslo. Vypíše se, zda je zadané číslo liché nebo sudé. Uživatel zadá dvě celá čísla. Určí se, zda jsou navzájem dělitelná.

16 C – větvení Nakresli vývojový diagram a napiš zdrojový kód.
Uživatel zadá číslo a program vypíše buď je to známka (pro čísla 1, 2, 3, 4, 5) nebo není to známka. Program určí, zda uživatelem zadané číslo leží v intervalu (2,7>. Uživatel zadá tři kladná čísla – třetí největší. Vypište Je to trojúhelník nebo Není to trojúhelník.

17 if vnořování V kladné větvi či záporné může být libovolný příkaz, tedy i další if. Předchozí věta nám říká, že příkazy if lze do sebe zanořovat. Je-li v sobě vnořeno několik if, patří else k poslednímu if bez else.

18 if vnořování Nakresli vývojový diagram k tomuto zdrojovému kódu.
#include <stdio.h> int main() { float x,y; printf(”Zadej prvni cislo :”); scanf(”%f”,&x); printf(”Zadej druhe cislo :”); scanf(”%f”,&y); if (x > y) { printf(”Vetsi cislo je %f\n”,x); printf(”Mensi cislo je %f\n”,y);} else if (x = = y) printf(”Cisla jsou stejna.\n”); else { printf(”Vetsi cislo je %f\n”,y); printf(”Mensi cislo je %f\n”,x);} return(0); } Nakresli vývojový diagram k tomuto zdrojovému kódu.

19 Pascal – úplné větvení (opakování)
Nakresli vývojový diagram a napiš zdrojový kód. Uživatel zadá číslo. Vypíše se, zda je zadané číslo nula, kladné nebo záporné. (Tedy vždy jen jeden z uvedených výpisů.)

20 C – if Uživatel zadá, zda chce u obdélníku vypočítat obsah či obvod a pak jeho rozměry. Program spočte požadované. Uživatel zadá reálné číslo, jeden ze znaků +, –, * nebo / a poté druhé reálné číslo. Program vypíše výsledek. Jsou zadána tři čísla. Napiš program, který určí největší z nich. Napiš program, který vypočte kvadratickou rovnici.


Stáhnout ppt "C – strukturované příkazy"

Podobné prezentace


Reklamy Google