Če želimo sešteti elemente v tabeli, ugotoviti, kateri je največji ipd., se moramo znati po tabeli sprehoditi – obiskati vsak element posebej. Osnovni sprehod po tabeli smo si na kratko že ogledali v prejšnji učni enoti:
for element in tabela: # element vsebuje trenutni element tabele
V prvem obhodu zanke se v spremenljivko element
zapiše prvi element tabele, v drugem drugi itd.
Oglejmo si primer. Koliko kilogramov sladkarij je Liza Bonbonc prodala v celotnem letu? Na to vprašanje lahko odgovorimo s sprehodom po tabeli in pomožno spremenljivko, ki hrani skupno količino sladkarij do trenutnega meseca. Pomožno spremenljivko (imenovali jo bomo prodajaLeto
) najprej postavimo na 0, v vsakem koraku zanke pa ji prištejemo trenutni element tabele. Napišimo program:
V prvem obhodu zanke ima spremenljivka prodajaMesec
vrednost 182, v drugem 250, v tretjem 225 itd. Spremenljivka prodajaLeto
pa ima po prvem obhodu zanke vrednost 0 + 182 = 182, v drugem 182 + 250 = 432 (torej vsoto po prvih dveh mesecih), v tretjem 432 + 225 = 657 (vsoto po prvih treh mesecih) itd. Ko se zanka konča, spremenljivka prodajaLeto
vsebuje skupno količino prodanih sladkarij v celotnem letu.
Program za izračun vsote prepiši v datoteko (npr. vsota.py
) in ga zaženi iz terminala svojega operacijskega sistema.
Kolikšna je bila največja mesečna prodaja sladkarij? Te naloge se lotimo tako, da se sprehodimo po tabeli, sproti pa vzdržujemo spremenljivko, ki podaja največjo prodajo do trenutno obravnavanega meseca. Spremenljivko – imenujmo jo najProdaja
– na začetku postavimo na vrednost prvega elementa tabele. Nato jo v vsakem koraku zanke primerjamo s trenutnim elementom tabele. Če je trenutni element tabele večji od trenutne vrednosti spremenljivke najProdaja
, priredimo trenutni element spremenljivki najProdaja
, sicer pa ne naredimo ničesar. Tako dosežemo, da bo spremenljivka najProdaja
po vsakem koraku zanke vsebovala doslej največji element, po koncu zanke pa največji element celotne tabele.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|---|
180 | 250 | 225 | 315 | 328 | 160 | 51 | 36 | 340 | 280 | 378 | 320 |
prodajaMesec
: 180najProdaja
: 180