1 / 20

C – strukturované příkazy

C – strukturované příkazy. Mgr. Lenka Švancarová. Úvod do problematiky. U předchozích programů jsme vždy vykonávali všechny příkazy jeden po druhém.

otis
Download Presentation

C – strukturované příkazy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 vprogramech 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 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? Pascal C 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 vprogramu. 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. if úplné větvení Start scanf(”%f”,&x) (x < 0) + - printf(”|x|=%.0f\n”,x*(-1)) printf(”|x|=%.0f\n”,x) Stop

  9. #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); } if neúplné větvení 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 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ží vintervalu (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 kposlednímu if bez else.

  18. if vnořování #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.

More Related