Table of Contents

Cvičení 4: 1D pole

Úkol 1 Opakování funkce a for cykly

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

Úkol 2 Najdi a změň

Úkol 3 Záměna slova

Načítání ze souboru

f=open('line.txt','r')
line = f.readline()
pole = list(map(int, line.split()))
f.close()

pole=[]
f=open('pole.txt','r')
for line in f:
    pole.append(int(line))
f.close()

for x in pole:
    print(x)

Úkol 4 funkce nalezení maxima

Úkol 5 funkce nalezení druhého největšího prvku v poli

Polynomy

Úkol 6 hezký výpis polynomu

Úkol 7 výpočet hodnoty polynomu

Témata k procvičení

Domácí úkol

Lehká varianta

Vstup programu je:

1 2 3 3 3 3 3 3 3 3 5 6
Výstup programu bude:
4 2 6 
protože program obsahuje dvě nepřekrývající se posloupnosti délky 4 3 3 3 3 od indexu 2 a od indexu 6

Vstup programu je:

1 2 3 4 1 2 3 4
Výstup programu bude:
4 0 4

Vstup programu je:

1 2 3 4 5 6 5 7 8 9
Výstup programu bude:
1 4 6

Těžká varianta

Hodnocení (2b)

Program umí řešit malé problémy s maximálně 9 ciframi [1.2b]

Vstup:
876504
21
Výstup:
8+7+6+5*0*4
Vstup:
98706543
34
Výstup:
9+8+7*0*6+5+4*3
Vstup:
98706543
103
Výstup (jedna z následujících řádek):
9+87+0*65+4+3
9+87+0*6*5+4+3

Program navíc umí rychle řešit i dlouhé vstupy s až 16 ciframi v čase do 1s [0.8b]

Vstup:
223344556677889
96
Výstup:
2+2*3+3*4+4*5+5+6+6+7+7+8+8+9
Vstup:
1122334455667788
78
Výstup (jedna z následujících řádek):
1+1+2+2*3+3*4+4+5+5+6+6+7+7+8+8
1*1*2+2+3+3+4*4+5+5+6+6+7+7+8+8
1*1*2*2+3+3+4*4+5+5+6+6+7+7+8+8
Vstup:
1122334455667788
60
Výstup:
NO_SOLUTION

Všechny nuly na vstupu ponechte i na výstupu:

Vstup:
1042
43
Výstup (jedna z vícero možností):
1+042