Procvičování a soubory  19. března 2019

Materiály

Domácí projekty

0.

Co vrací funkce print?

1.

Čím se liší chyby, které dostaneš když zadáš tyhle příkazy?

  • int('blabla')
  • float('blabla')
  • int('8.9')
  • int(8.9)
2.

Napiš program, který vypíše „tabulku“ s násobilkou. (K řešení tohoto povinného projektu se můžeš dopracovat postupně přes ty nepovinné)

0 0 0 0 0
0 1 2 3 4
0 2 4 6 8
0 3 6 9 12
0 4 8 12 16
3.

Napiš program, který načte číslo a zjistí, jestli je sudé.

Sudá čísla jsou beze zbytku dělitelná dvěma.

Na začátek trocha zdánlivě nudného opakování, ať si trochu osvěžíme programování. To ale neznamená, že tu nemůžeš najít něco zvláštního a překvapivého!

4.

Co dělá funkce print?

5.

Co dělá pojmenovaný argument end funkce print?

6.

Co dělá pojmenovaný argument sep funkce print?

Následující sada projektů není jednoduchá, ale uděláš-li ji, pochopíš různá použití cyklu for.

7.

Pomocí cyklu for a funkce range() napiš program, který vypíše:

a
a
a
a
8.

Pomocí cyklu for napiš program, který vypíše:

Řádek 0
Řádek 1
Řádek 2
Řádek 3
Řádek 4
9.

Jak jsi pojmenovala proměnnou, kterou jsi v minulém příkladu použila? Vymysli pro ni název, který nejlépe vystihuje, co proměnná obsahuje.

Je důležité proměnnou pojmenovat výstižně, jinak se v dalších projektech můžeš ztratit. Možné řešení je uvedeno na konci zadání.

10.

Pomocí cyklu for napiš program, který vypíše:

0 na druhou je 0
1 na druhou je 1
2 na druhou je 4
3 na druhou je 9
4 na druhou je 16

Jak pojmenuješ proměnnou cyklu?

11.

Pomocí cyklů for a parametru end pro print napiš program, který postupně z jednotlivých 'X' vypíše:

X X X X X
X X X X X
X X X X X
X X X X X
X X X X X

„Z jednotlivých 'X'“ znamená, že nepoužiješ např. print('X X X X X').

Jak pojmenuješ proměnnou cyklu? A tu druhou?

12.

Napiš program, který postupně z jednotlivých 'X' vypíše:

X
X X
X X X
X X X X
13.

Pomocí cyklu for a příkazu if napiš program, který vypíše následující řádky. Funkci print volej pouze uvnitř v cyklu:

první řádek
není první
není první
není první
14.

Pomocí cyklů for a příkazu if napiš program, který z jednotlivých 'X' a mezer vypíše:

X X X X X X
X         X
X         X
X         X
X         X
X X X X X X
15.

Programy s cyklem for uprav tak, aby počet řádků (či velikost čtverce/trojúhelníku/tabulky) mohl zadat uživatel.

Následující sada projektů může vyžadovat delší zamyšlení. A to zamyšlení je důležitější než samotná odpověď.

16.

Co dělá tenhle kód?

for c in 'Ahoj světe!':
    print(c)
17.

Vymyslíš lepší jméno pro proměnnou c z minulé úlohy?

18.

Co dělá tenhle kód?

for c in 38:
    print(c)
19.

Už víš, co dělá for s range(), výčtem hodnot a řetězcem. Dokážeš to zobecnit – popsat for jednodušeji, než jak je popsán v materiálech?

Teď několik programovacích oříšků pro dlouhé chvíle. Nemáš-li čas, přeskoč je.

20.

Napiš program, který se zeptá na 3 čísla a zjistí, jestli je jejich součet větší než 10. Dokážeš to napsat tak, aby funkce input byla v kódu zapsaná jen jednou? ;)

21.

Napiš program, který vypíše čísla od jedné do 100, ale:

  • Pokud je číslo dělitelné třemi, napíše místo něj „bum”.
  • Pokud je číslo dělitelné pěti, napíše místo něj „bác”.
  • Pokud je číslo dělitelné pěti i třemi zároveň, napíše místo toho „bum-bác”.
22.

Pokud máš ráda matematiku* a nebojíš se výzvy, načti od uživatele číslo n a:

  • Vypočti faktoriál n! (součin všech celých čísel od 1 do n).
  • Zjisti, jestli je n prvočíslo.
  • Vypiš prvních n členů Fibonacciho posloupnosti (1, 1, 2, 3, 5, 8, 13, 21, …).

* t.j. nemáš-li ráda matematiku, nedělej tenhle projekt :)