1 repules = [] 2 # 1. feladat - beolvasás 3 fbe = open('adatok.txt','r',encoding='utf-8') 4 for sor in fbe: 5 repules.append(list(map(int,sor.strip().split(';')))) 6 fbe.close() 7 # ------------------------------------------------------------ 8 # 2. és 3. feladat 9 print('2. feladat - fájlbaírás') 10 11 def egtaj(fok): 12 if 315 <= fok: 13 return 'É' 14 elif 225 <= fok: 15 return 'N' 16 elif 135 <= fok: 17 return 'D' 18 elif 45 <= fok: 19 return 'K' 20 else: 21 return 'É' 22 # szótár adattípus használata: kulcs az égtáj, érték a db 23 # 'É': 1-ről indul, mert kezdetben arra néz a drón 24 compass = {'É':1,'K':0,'D':0,'N':0} 25 26 fki = open('irany.txt','w') 27 irany = repules[0][2] 28 print(f'{repules[0][0]}: {irany}, É',file = fki) 29 for i in range(1, len(repules)): 30 irany = (irany+repules[i][2]) % 360 31 et = egtaj(irany) 32 print(f'{repules[i][0]}: {irany}, {et}', file=fki) 33 compass[et] += 1 # szótár adott kulcsú elemének növelése 34 fki.close() 35 36 print('3. feladat') 37 for et, db in compass.items(): # szótár elemeinek ciklikus kiírása 38 print(f'{et}: {db}') 39 mx_irany = max(compass, key = compass.get) # maximális értékhez tartozó kulcs 40 print(f'Legtöbbször {mx_irany} irányába repült a drón!') 41 # ------------------------------------------------------------ 42 # 4. feladat - maximális magasság 43 # maximális magasság kiválasztása, a "kis" listák második eleme a magasság 44 max_magassag = max(repules, key = lambda elem:elem[1]) 45 print(f'A legnagyobb repülési magasság {max_magassag[1]} cm volt!') 46 # ------------------------------------------------------------ 47 # 5. feladat - lokális minimumok száma 48 db = 0 49 for i in range(1, len(repules)-1): # i-1 és i+1 miatt ilyen a range 50 # csak az olvashatóság kedvéért: 51 elozo = repules[i-1][1] 52 aktualis = repules[i][1] 53 kovetkezo = repules[i+1][1] 54 if elozo > aktualis < kovetkezo: 55 db += 1 56 print(f'Süllyedések száma: {db}') 57 58