Skúsme vytvoriť program, ktorý načíta číslo n a čísla od 0 po
n - 1 vypíše na 3 riadkoch za sebou. To nemôže byť ťažké, nie?
# Program vypise cisla od 0 po n - 1 ("n" je na vstupe) na 3 riadkoch za sebou.
n = int(input())
for i in range(n):
print(f' {i}', end='')
print() # novy riadok
for i in range(n):
print(f' {i}', end='')
print() # novy riadok
for i in range(n):
print(f' {i}', end='')
print() # novy riadok
# Vstup:
# 3
# Vystup:
# 0 1 2
# 0 1 2
# 0 1 2
Príklad sme ale uvádzali aj z iného dôvodu. Asi už tušíte, že trikrát
skopírovaný for-cyklus nevyzerá najlepšie. Ako by sme teda mohli
zopakovať riadky viackrát? No predsa cyklom! V cykle, ktorý sa zopakuje
3-krát napíšeme cyklus, ktorý vypíše prvky od 0 po n - 1.
# Program vypise cisla od 0 po n - 1 ("n" je na vstupe) na 3 riadkoch za sebou. Pouziva vnoreny cyklus.
n = int(input())
for i in range(3):
for j in range(n):
print(f' {j}', end='')
print() # novy riadok
# Vstup:
# 3
# Vystup:
# 0 1 2
# 0 1 2
# 0 1 2
Dva cykly od seba v označení oddelíme tak, že cyklus opakujúci sa
3-krát nazveme vonkajší a cyklus v ňom nazveme vnútorný. Všimnite
si, že vnútorný cyklus musí použiť inú premennú ako i, pretože inak by
došlo ku kolízii mien a vonkajší cyklus by mohol byť ovplyvnený
vnútorným. Vo vnútornom cykle sme preto použili názov j. Vždy, keď sa
začne vykonávať telo vonkajšieho cyklu, spustí sa znovu vnútorný cyklus
vypisujúci čísla od 0 po n - 1.
Predstavte si teraz, že chceme vytvoriť malú tabuľku násobilky do 4.
Tabuľka násobilky je jednoduchá tabuľka, ktorá v ľubovoľnej bunke
obsahuje vynásobené číslo riadku a stĺpca.
| * | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| 1 | 1 | 2 | 3 | 4 |
| 2 | 2 | 4 | 6 | 8 |
| 3 | 3 | 6 | 9 | 12 |
| 4 | 4 | 8 | 12 | 16 |
Teraz napíšeme program, ktorý vypíše telo takejto tabuľky. Ako by sme
postupovali, keby sme chceli takúto tabuľku vypísať po riadkoch zľava
doprava? V riadku s číslom 1 sa vystriedajú všetky hodnoty stĺpcov
(1 až 4). Potom sa presunieme na ďalší riadok s číslom 2 a opäť sa
vystriedame všetky hodnoty stĺpcov (1 až 4). Takto by sme
pokračovali až do posledného riadku.
Všimnite si, že pre každý riadok prejdeme vždy všetky stĺpce. Môžeme si
to predstaviť ako cyklus cez riadky od 1 do 4, v ktorom je navyše
vnorený cyklus cez stĺpce od 1 do 4.
# Vypis tabulky nasobilky velkosti 5x5.
for i in range(1, 5):
for j in range(1, 5):
# Medzeru medzi cislami nevypisujeme pred prvym cislom v riadku
if j > 1:
print(' ', end='')
print(i * j, end='')
print() # novy riadok