Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

2 - Cykly a vnořené cykly

  • Operátory a řídicí struktury - if, for, while, do-while
  • Cykly a vnořené cykly
  • Pro vyučující: 02

Procvičovaná témata

if( podmínka ){
    příkaz1
} else {
    příkaz2
}

  • řídicí struktury - for

for( inicializace ; podmínka ; změna){
    příkaz
}

Používáme standard C99, a proto je možné deklarovat proměnnou přímo při inicializaci.

for (int i = 0; ...) {
    ...
}

  • řídicí struktury - while

while(podmínka) {
    tělo cyklu
}

  • řídicí struktury - do-while

do {
    tělo cyklu
} while (podmínka);

  • příkazy pro ovládání běhu cyklů - break, continue
  • funkce

Úkoly

  • Vypište čísla od 1 do 10 pomocí všech uvedených cyklů (for, while, do-while).
  • Nahraďte terminační podmínku pomocí příkazu break.
  • Vypište všechna sudá čísla od 1 do $n$, kde $n$ zadá uživatel na standardním vstupu
  • Vypište součin všech čísel vypsaných v předchozím kroku
  • Vypište řadu $n$ čísel ve tvaru:

1, -1, 1, -1, 1, -1, ...

  • Napiště program který umožní výpočet Ludolfova čísla pomocí Leibnizovy řady

$$ \qquad\pi = 4 \sum_{k=0}^\infty\dfrac{(-1)^k}{2k+1} = \dfrac{4}{1}-\dfrac{4}{3}+\dfrac{4}{5}-\dfrac{4}{7}+\dfrac{4}{9}-\dfrac{4}{11}+\cdots $$

  • Vytvořte funkci pro výpočet Ludolfova čísla pomocí $n$ prvků Leibnizovy řady
  • Zjistěte kolik členů řady je potřeba zahrnout, abychom dostali Ludolfovo číslo s přesností na $10^{-6}$.
  • Vypište v dekadické, hexadecimální a binární reprezentaci znak zapsaný na standardním vstupu uživatelem (hint: pro výpis v binárním tvaru použijte bitové operátory)

Standardní vstup:

a
Standardní výstup:
97
0x61
b01100001

  • Vypište:

*****
****
***
**
*

  • Vypište následující tabulku:

  0  1  2  3  4  5  6  7  8  9
 10 11 12 13 14 15 16 17 18 19
 20 21 22 23 24 25 26 27 28 29
 30 31 32 33 34 35 36 37 38 39
 40 41 42 43 44 45 46 47 48 49
 50 51 52 53 54 55 56 57 58 59
 60 61 62 63 64 65 66 67 68 69
 70 71 72 73 74 75 76 77 78 79
 80 81 82 83 84 85 86 87 88 89
 90 91 92 93 94 95 96 97 98 99

  • Jak to naprogramujete pomocí jednoho cyklu? Jak pomocí dvou vnořených cyklů? Co se vám zdá lepší a proč?
  • Nyní zkuste vypsat pouze diagonálu:

  0
    11
       22
          33
             44
                55
                   66
                      77
                         88
                            99

  • Nyní tu druhou:

                             9
                         18
                      27
                   36
                45
             54
          63
       72
    81
 90

  • A co obě zároveň?

  0                          9
    11                   18
       22             27
          33       36
             44 45
             54 55
          63       66
       72             77
    81                   88
 90                         99

  • Parametrizujte svuj kód. Dokážete pouhou změnou parametru vypsat totéž pro tabulku 5×5?
courses/b3b36prg/labs/lab02.txt · Last modified: 2019/02/25 17:26 by cizekpe6