You are on page 1of 13

EU peníze středním školám – projekt: Šablony na BiGy

Anotace:
Druh interaktivity: Kombinovaný výklad
Identifikátor materiálu: EU-OPVK-ICT2/5/1/15
Multidialogová forma
Datum, období vytvoření: září 2012
Příklady k procvičení
Vzdělávací oblast : Informatika a ICT
Vzdělávací obor, tematický okruh: Informatika a ICT, programování Cílová skupina: žák
Předmět: Seminář z Informatiky a výpočetní Stupeň a typ vzdělávání: gymnaziální vzdělávání
techniky
Věk.skupina,ročník 17 – 18 let, 3. ročník SŠ,
Anotace: septima
V prezentaci jsou uvedeny typické příklady využívající cykly. Pomůcky: PC, dataprojektor, IT
Autor: RNDr. Alena Pavlačková
Jazyk: český Zdroje obrázků a textů:
1) Herout, P.: Učebnice jazyka C, 4. přepracované vydání,
Očekávaný výstup:
Koop, České Budějovice, 2004, ISBN 80-7232-220-6
Vytvoření jednoduchých algoritmů využívajících cykly v jazyce vývojových 2) Hanzálková, M.: Učební materiál v rámci grantového
diagramů i v jazyce C. projektu FRVŠ, č.j. 1726/2002, , IS 421726
Speciální vzdělávací potřeby: žádné
Klíčová slova:
Příkazy while, if.
Druh učebního materiálu: prezentace 1
Lekce 15

Příklady využívající cykly


sada 2

2
• Pokud budeme při sestavování algoritmu
používat cyklus a nejsme schopni předem
určit, kolikrát smyčka proběhne, není vhodné
použít cyklus for.

• Můžeme využít cyklus while nebo do-while.

3
Příklad 4 - zadání

Vstup:
Řada celých nenulových čísel ukončených nulou (nula je značka
konce řady).

Výstup:
Součet řady čísel

Konkrétně:
Vstup: 8 2 3 4 3 0
Výstup: 8+2+3+4+3=20

4
Příklad 4 - rozbor
Vynulujeme proměnnou S, do které si postupně
budeme shromažďovat jednotlivé sčítance.
Hlavní řídící strukturou algoritmu bude cyklus,
který v každé otáčce načte jedno číslo z bufferu
klávesnice a přičte je k proměnné S. Cyklus
skončí, až z bufferu bude načtena nula.

5
Příklad 4 - řešení #include<stdio.h>
#include<stdlib.h>
main()
{
int a, S;

printf("Zdejte radu celych nenulovych


cisel ukoncenych nulou \n");

S=0;
scanf("%i",&a);
while(a!=0)
{
S=S+a;
scanf("%i",&a);
}
printf("Soucet=%i\n",S);
system("PAUSE");
}
6
Příklad 5 - zadání
Vstup:
Řada celých nenulových čísel ukončených nulou (nula je značka
konce řady).

Výstup:
Maximální prvek ze zadané řady čísel

Konkrétně:
Vstup: 8 2 3 15 3 0
Výstup: 15

7
Příklad 5 - rozbor
• Do proměnné max si uložíme první číslo
z řady.
• Hlavní řídící strukturou algoritmu bude cyklus,
který v každé otáčce načte jedno číslo
z bufferu a porovná je s dosavadním maximem.
Pokud je načtené číslo větší, než dosavadní
maximum, bude maximum tímto číslem
nahrazeno.
• Cyklus skončí, až z bufferu bude načtena nula.
8
Příklad 5 - řešení #include<stdio.h>
#include<stdlib.h>
main()
{
int a, max;

printf("Zadejte cela nenulova cisla


ukoncena nulou\n");
scanf("%i",&a);
max=a;
while(a!=0){
if(a>max)
max=a;
scanf("%i",&a);
}
printf("Maximum=%i\n",max);
system("PAUSE");
}

9
Příklad 6 - zadání

Vstup:
Řada celých nenulových čísel ukončených nulou (nula je značka
konce řady).

Výstup:
Aritmetický průměr řady čísel

Konkrétně:
Vstup: 5 6 7 8 0
Výstup: 6.5

10
Příklad 6 - rozbor
Vynulujeme proměnnou S, do které si postupně
budeme shromažďovat jednotlivé sčítance.
V proměnné počet si budeme evidovat počet sčítanců.
Hlavní řídící strukturou algoritmu bude cyklus, který v
každé otáčce načte jedno číslo z bufferu klávesnice.
Přičte je k proměnné S a zároveň povýší proměnnou
pocet o jedničku. Cyklus skončí, až
z bufferu bude načtena nula.
Na závěr stanovíme průměr jako S/počet.

11
#include<stdio.h>

Příklad 6 - řešení #include<stdlib.h>


main()
{
int a,pocet,S;
float prumer;

printf("Zdejte radu celych nenulovych cisel


ukoncenych nulou \n");

S=0;
scanf("%i",&a);
pocet=1;
while(a!=0)
{
S=S+a;
scanf("%i",&a);
pocet++;
}
prumer=(float)S/(float)(pocet-1);
printf("Prumer=%f\n",prumer);
system("PAUSE");
}

12
V předchozím příkladu je u výpočtu průměru použit operátor přetypování.

(float)S

nový datový typ float proměnná S byla původně typu int

Ve výraze prumer=S/pocet má proměnná prumer typ float


(protože průměr opravdu může vyjít jako desetinné číslo), kdežto
proměnné S a pocet jsou typu integer.
Pokud v C dělíme 2 celá čísla operátorem celočíselný podíl (/),
vyjde výsledek také celočíselný. Chceme-li mít výsledek typu
float, musíme u jednotlivých operandů použít operátor
přetypování.

13

You might also like