Mari néni és Bözsi néni is fogyni szeretne. A nagyobb motiváció érdekében figyelemmel kísérik egymás testsúlyának alakulását. Az adatokat minden hétfőn rögzítik a fogyi.txt állományba. A fájl sorai rendre Mari néni, majd Bözsi néni tömegét tartalmazzák kg-ban egészre kerekítve, az egymást követő heteken egy szóközzel elválasztva. A fájl legfeljebb egy év (53 hét) adatait tartalmazza.
87 85
86 88
A példában a második héten Mari néni 86 kg, Bözsi néni pedig 88 kg volt. Készítsünk fogyokura néven programot az alábbiak szerint. Minden esetben írassuk ki a feladat számát is.
Feladatok:
Olvassuk be a fájlból és tároljuk el az adatokat.
Kérjük be egy hét sorszámát, majd írassuk ki, hogy ezen a hétfőn hány kilogramm volt a két hölgy.
Írjuk ki a képernyőre, hogy hány olyan hét volt, amikor Mari néni tömege meghaladta Bözsi néniét.
Számítsuk ki, hogy mennyi volt a mérés ideje alatt Bözsi néni átlagos tömege. Az eredményt két tizedesjegy pontossággal írassuk ki a képernyőre.
Vizsgáljuk meg, hogy melyik héten volt Mari néni tömege a legnagyobb. Ha több ilyen hét is volt, akkor mindegyiket írassuk ki a képernyőre.
Keressük meg, hogy mikor csökkent az előző héthez képest az egyik, illetve a másik hölgy tömege. Az eredményt egy-egy szóközzel elválasztva a következő formában írassuk ki a csokken.txt nevű szöveges állományba.
Írjuk egy táblázatban a képernyőre, hogy adott tömegeket mely heteken mért Mari néni. A táblázatban csak azok a tömegek szerepeljenek, amelyeket ténylegesen el is ért Mari néni.
# 1. feladat
with open('fogyi.txt') as fajl: forras = fajl.read().splitlines()
adatok = [sor.split(' ') for sor in forras]
# 2. feladat
print('2. feladat')
het = '200000'
while int(het)>len(adatok): het = input('Kérem a hetet: ')
print('A(z) '+het+'. héten Mari néni',adatok[int(het)-1][0],'kg, Bözsi néni',adatok[int(het)-1][1],'kg volt')
# 3. feladat
print(‘'\n3. feladat')
lista = [1 for adat in adatok if int(adat[0])>int(adat[1])]
print(len(lista),'héten volt nehezebb Mari néni')
# 4. feladat
print(‘\n4. feladat’)
atlag = int(sum([int(adat[1]) for adat in adatok])/len(adatok)*100)/100
print('Bözsi néni átlagos tömege',atlag,'kg volt.')
# 5. feladat
print('\n5. feladat')
mari_max = max([int(adat[0]) for adat in adatok])
hetek = [str(index1+1) for index1 in range(len(adatok)) if int(adatok[index1][0])==mari_max]
print('Mari néni a legnehezebb volt ezeken a heteken: '+', '.join(hetek))
# 6. feladat
mari_csokkent = [[index1+1,index1+2] for index1 in range(len(adatok)-1) if int(adatok[index1+1][0])<int(adatok[index1][0])]
bozsi_csokkent = [[index1+1,index1+2] for index1 in range(len(adatok)-1) if int(adatok[index1+1][1])<int(adatok[index1][1])]
kiir1 = 'Mari néni: '
for adat in mari_csokkent: kiir1 += str(adat[0])+'-'+str(adat[1])+' '
kiir2 = 'Bözsi néni: '
for adat in bozsi_csokkent: kiir2 += str(adat[0])+'-'+str(adat[1])+' '
with open('csokken.txt','w') as fajl: print(kiir1,file=fajl) print(kiir2,file=fajl)
# 7. feladat
print('\n7. feladat')
tomegek = list({adat[0] for adat in adatok})
tomegek.sort()
for index1 in range(len(tomegek)): kiir = tomegek[index1]+' kg:' for index2 in range(len(adatok)): if adatok[index2][0] == tomegek[index1]: kiir +=' '+str(index2+1) print(kiir)