Table of Contents

Cvičení 3: Funkce

Opakování cyklů

Ramanujan Taxi

Funkce

Při programování často potřebujeme vykonat určité operace opakovaně. K tomu se hodí tzv. funkce.

def jmenoFunkce( parametry ):
   telo_funkce

Maximum ze dvou čísel:

def maximum(x,y):
    if x>y:
        return x
    else:
        return y  

max = maximum(2,0.5)
print(max)
 
# nebo rovnou muzeme predat jiné funkci
a = 6
b = 7
print("Maximum z ",a," a ", b, " je ", maximum(a,b))

def hello():
    print("Hello World!")

hello()

def maximum2(x,y):
    if (x > y):
        return x, True
    else:
        return y, False  
 

maxValue, info = maximum2(5,6)
 
#zkusime predat printu:
print("Maximum z 5,6 je ", maximum2(5,6))

Funkce quit()

if (spatny_vstup):
    quit()

Dosud jsme se setkali s několika funkcemi:

Absolutní hodnota

Sexy prvočísla

Dokonalá čísla

Super-dokonalá čísla

Největší společný dělitel

Césarova šifra

Témata k procvičení

month=['leden','unor','brezen','duben','kveten','cerven','cervenec','srpen','zari','rijen','listopad','prosinec']

def a(x,y,z):
    return (x and y) or (not y and z)
 
def b(x,y,z):
    return x or z

Domácí úkol

Lehká varianta

Např. pro vstup

5
21
9
8
7
6
vypadá výsledek takto:
7
Hledáme největší společné dělitele s číslem 21. Pro nsd(21,9)=3, nsd(21,8)=1, nsd(21,7)=7, nsd(21,6)=3. Vydíme, že největší z největších společných dělitelů je 7.

pro vstup

12
192779
253
263
273
283
683
693
703
713
723
733
743
vypadá výsledek takto:
733

pro vstup

6
3099
6376
8005
4116505
9980
10000
vypadá výsledek takto:
1033

Těžká varianta