godor_python.py
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