1 import os 2 #---------- 1. FELADAT ---------- 3 minden=[sor.rstrip() for sor in open('melyseg.txt','r')] 4 print(f'1. feladat\nA fájl adatainak száma: {len(minden)}') 5 #---------- 2. FELADAT ---------- 6 tavolsag=int(input('2.feladat\nAdjon meg egy távolságértéket! ')) 7 print('Ezen a helyen a felszín %s méter mélyen van.' %minden[tavolsag-1]) 8 #---------- 3. FELADAT ---------- 9 print(f'3. feladat\nAz érintetlen terület aránya {minden.count("0")/len(minden)*100:.2f}%.') 10 #---------- 4. FELADAT ---------- 11 csak_godrok=[adat.lstrip() for adat in ' '.join(minden).split(' 0') if adat!='0' and adat!=''] 12 #---------- 5. FELADAT ---------- 13 if os.path.exists('godrok.txt'): 14 os.remove('godrok.txt') 15 print('5. feladat\nA gödrök száma: %d' %len([open('godrok.txt','a').write(egy_godor+'\n') for egy_godor in csak_godrok])) 16 #---------- 6. FELADAT ---------- 17 minden=list(map(int,minden)) 18 print('6. feladat') 19 if minden[tavolsag-1]>0: 20 #:::::::::::::::::::::::::: 6.a FELADAT 21 #A megadott távolságtól vissza az első nulláig, illetve előre az első nulláig 22 e,v=tavolsag-1,tavolsag 23 while minden[e]>0: 24 e-=1 25 while minden[v]>0: 26 v+=1 27 eleje=e+1 28 vege=v-1 29 print('a)\nA gödör kezdete: {} méter, a gödör vége: {} méter.'.format(eleje+1,vege+1)) 30 #:::::::::::::::::::::::::: 6.b FELADAT 31 #g - vizsgálandó gödör a minden gödörből 32 g=minden[eleje:vege+1] 33 #A 6.b feladat nagyon sokféleképpen megközelíthető. Most nézzük így: 34 #a gödör eleje biztosan lefelé lépést jelent! 35 #Készítsünk egy '1' és '0' karakterekből álló szöveget a gödörből! 36 #Például, ha gödör 1 2 3 2 1 sorozat lenne, akkor: '11100', vagy 37 #például, ha gödör 1 2 1 3 1 sorozat lenne, akkor: '11010'. 38 #A második sorozatban van '10' és '01' részlet is, így nem folymatosan mélyül. 39 def f_or_l(s): 40 if g[s-1]<=g[s]: 41 return '1' #lefelé vagy egyenesen megy a gödörben 42 elif g[s-1]>g[s]: 43 return '0' #felfelé megy a gödörben 44 def nem_monoton(st): #st - string, egy szöveg 45 #Ha van '10' (le-fel) és van '01' (fel-le) is akkor baj van 46 return (st.find('10')>-1) and (st.find('01')>-1) 47 print('b)') 48 if nem_monoton('1'+''.join([f_or_l(i) for i in range(1,len(g)) if len(g)>1])): 49 print('Nem mélyül folyamatosan.') 50 else: 51 print('Folyamatosan mélyül.') 52 #:::::::::::::::::::::::::: 6.c FELADAT 53 print('c)\nA legnagyobb mélysége %d méter.' %max(g)) 54 #:::::::::::::::::::::::::: 6.d FELADAT 55 print('d)\nA térfogata %d m^3.' %(sum(g)*10)) 56 #:::::::::::::::::::::::::: 6.e FELADAT 57 print('e)\nA vízmennyiség %d m^3.' %((sum(g)-len(g))*10)) 58 else: 59 print('Az adott helyen nincs gödör.') 60 61 62