PYTHON PROGRAMOZÁS
7. Típusalgoritmusok 1.
Olyan algoritmusok (programozási tételek), amelyekkel a programírás során felmerülő problémák egyszerűen megoldhatók.
a, ÖSSZEGZÉS
b, ÁTLAGOLÁS
c, ELDÖNTÉS
d, KIVÁLASZTÁS
a, ÖSSZEGZÉS
01a Sorozatszámítás, ÖSSZEGZÉS (TK. 67. old. 1. feladat)
(Mennyi pénze lett a taxisnak?)
bevételek = [1,5,2,3,4]
összes = 0
for bevétel in bevételek:
összes += bevétel #vagy: összes = összes + bevétel
print('Napi bevétel:', összes, 'picula.')
01b Sorozatszámítás, ÖSSZEGZÉS (TK. 67. old. 1. feladat)
(megoldás SUM függvénnyel)
bevételek = [1,5,2,3,4]
összes = sum(bevételek)
print('Napi bevétel:', összes, 'picula.')
02 Sorozatszámítás, ÖSSZEGZÉS (TK. 67. old. 2. feladat)
(Hány kiló libát ehet meg a róka?)
libák = [1,5,2,3,4]
rókának_jut = 0
for liba in libák:
if liba <= 3:
rókának_jut += liba
print('A rókának', rókának_jut, 'kilónyi liba marad.')
b, ÁTLAGOLÁS
03a Sorozatszámítás, ÁTLAGOLÁS (TK. 68. old. 3. feladat)
(Átlagosan hány piculát keres a taxis egy fuvarral?)
bevételek = [1,5,2,3,4]
összes = 0
darab = 0
for bevétel in bevételek:
összes += bevétel
darab += 1
print('Az átlagos bevétel:', összes/darab, 'picula.')
03b Sorozatszámítás, ÁTLAGOLÁS (TK. 68. old. 3. feladat)
(Megoldás SUM és LEN használatával.)
bevételek = [1,5,2,3,4]
összes = sum(bevételek)
darab = len(bevételek)
print('Az átlagos bevétel:', összes/darab, 'picula.')
03c Sorozatszámítás, ÁTLAGOLÁS (TK. 68. old. 3. feladat)
(Megoldás STATISTIC.MEAN használatával.)
import statistics
bevételek = [1,5,2,3,4]
átlag = statistics.mean(bevételek)
print('Az átlagos bevétel:', átlag, 'picula.')
04 Sorozatszámítás, ÁTLAGOLÁS (TK. 68. old. 4. feladat)
(Átlagosan hány kilósak a rókának maradt libák?)
libák = [1,5,2,3,4]
rókának_jut = 0
darab = 0
for liba in libák:
if liba <= 3:
rókának_jut += liba
darab += 1
print('A róka libái átlagosan', rókának_jut/darab, 'kilósak.')
c, ELDÖNTÉS
(Van-e adott tulajdonságú elem a listában?)
Addig vizsgáljuk, ameddig meg nem találjuk az első olyat, amelyik eleget tesz a feltételnek!
A ciklusból való kilépésre való a BREAK utasítás (ha van adott tulajdonságú elem, akkor a többit már felesleges megvizsgálni).
05a ELDÖNTÉS (TK. 68. old. 5. feladat)
(Van-e ötpiculás bevételű fuvara?)
bevételek = [1,5,2,3,4]
vanilyen = False
for bevétel in bevételek:
if bevétel == 5:
vanilyen = True
break
if vanilyen:
print('Van ötpiculás bevétel.')
05b ELDÖNTÉS (TK. 68. old. 4. feladat)
(megoldás IF ... IN segítségével)
bevételek = [1,5,2,3,4]
if 5 in bevételek:
print('Van ötpiculás bevétel.')
06a ELDÖNTÉS (TK. 69. old. 6. feladat)
(Volt-e olyan, hogy a róka legalább háromkilós libát lopott?)
libák = [1,5,2,3,4]
vanilyen = False
for liba in libák:
if liba >= 3:
vanilyen = True
break
if vanilyen:
print('Van legalább egy háromkilós liba.')
06b ELDÖNTÉS (TK. 69. old. 6. feladat)
(Volt-e olyan, hogy a róka kisebb libát lopott, mint az előző napon?)
Index szerint kell bejárni a listát, mert az aktuális elemet az előzőhöz kell hasonlítani!
libák = [1,5,2,3,4]
vanilyen = False
for index in range(len(libák)): #len(libák)=5 és a range(5)= 0,1,2,3,4, így az index 0-tól 4-ig fut
if index > 0: #a nulladik elemet még nem vizsgáljuk, nincs mihez hasonlítani
if libák[index] < libák[index-1]:
vanilyen = True
break
if vanilyen:
print('Volt, amikor kisebb libát lopott az előző napinál.')
d, KIVÁLASZTÁS
(Az adott elem hol van a listában?)
07a KIVÁLASZTÁS (TK. 70. old. 7. feladat)
(Hányadik volt az ötpiculás?) - egyet talál meg
bevételek = [1,5,2,3,4]
holvan = None
for index in range(len(bevételek)):
if bevételek[index] == 5:
holvan = index
break
print('Az ötpiculás fuvar sorszáma:', holvan + 1) #holvan+1, hogy a sorszámozás 1-el kezdődjön
07b KIVÁLASZTÁS (TK. 70. old. 7. feladat)
(megoldás az INDEX függvénnyel)
bevételek = [1,5,2,3,4]
print('Az ötpiculás fuvar sorszáma:', bevételek.index(5) + 1)
08 KIVÁLASZTÁS (TK. 70. old. 8. feladat)
(Hányadik napon lopott először háromkilós libát a róka?)
libák = [1,5,2,3,4]
holvan = None
for index in range(len(libák)):
if libák[index] >= 3:
holvan = indexű
break
print('Az első nagy libát a(z) ', index+1,'.napon fogta a róka.', sep='')