godor202105.py
1    godor=[]    #a forrásállomány adatainak tárolása egy listában - GLOBÁLIS adat
2    
3    #----------------------------------------------------------------------------------------------
4    # 1. Olvassa be és tárolja el a melyseg.txt fájl tartalmát! Írja ki a képernyőre, hogy az 
5    #    adatforrás hány adatot tartalmaz!
6    #----------------------------------------------------------------------------------------------
7    def F1():
8    
9        fbe=open('melyseg.txt','r')
10   
11       for sor in fbe:
12           godor.append(int(sor.strip()))
13   
14       print(godor)
15   
16       print('1. feladat') 
17       print('A fájl adatainak száma: %d' %len(godor))
18   
19       fbe.close()
20   
21   #----------------------------------------------------------------------------------------------
22   # 2. Olvasson be egy távolságértéket, majd írja a képernyőre, hogy milyen mélyen van a gödör 
23   #    alja azon a helyen! Ezt a távolságértéket használja majd a 6. feladat megoldása során is!
24   #----------------------------------------------------------------------------------------------
25   def F2():
26       print('2. feladat')
27       global tavolsag
28       tavolsag=int(input('Adjon meg egy távolságértéket! '))
29   
30       print('Ezen a helyen a felszín %d méter mélyen van.' %godor[tavolsag-1])
31   
32   #----------------------------------------------------------------------------------------------
33   # 3. Határozza meg, hogy a felszín hány százaléka maradt érintetlen és jelenítse meg 2 tizedes 
34   #    pontossággal!
35   #----------------------------------------------------------------------------------------------
36   def F3():
37       print('3. feladat')
38   
39       #megszámlálás programozási tétel
40       nulla_db=0
41       for melyseg in godor:
42           if melyseg==0:
43               nulla_db+=1
44   
45       #Python lista műveletei: COUNT - adott értékű elem megszámlálása
46       nulla_db=godor.count(0)
47               
48       print('Az érintetlen terület aránya %.2f%s.' %(nulla_db/len(godor)*100,'%'))
49   
50   #----------------------------------------------------------------------------------------------
51   # 4. Írja ki a godrok.txt fájlba a gödrök leírását, azaz azokat a számsorokat, amelyek egy-egy 
52   #    gödör méterenkénti mélységét adják meg! Minden gödör leírása külön sorba kerüljön! Az 
53   #    állomány pontosan a gödrök számával egyező számú sort tartalmazzon!
54   #----------------------------------------------------------------------------------------------
55   def F4_5():
56       fki=open('godrok.txt','w')
57   
58       godrok_szama=0
59       enter=False
60       for melyseg in godor:
61           if melyseg>0:
62               print(melyseg,end=' ',file=fki)
63               enter=True      #ha gödörben vagyunk, akkor majd kell ENTER
64           else:
65               if enter==True:
66                   godrok_szama+=1
67                   print(file=fki)
68               enter=False     #ha felszínen vagyunk (0 mélység): kapcsoljuk vissza HAMISra 
69       fki.close()
70   
71   #----------------------------------------------------------------------------------------------
72   # 5. Határozza meg a gödrök számát és írja a képernyőre!
73   #----------------------------------------------------------------------------------------------
74       print('5. feladat')
75       print('A gödrök száma: %d' %godrok_szama)
76   
77   #----------------------------------------------------------------------------------------------
78   # 6. Ha a 2. feladatban beolvasott helyen nincs gödör, akkor „Az adott helyen nincs gödör.” 
79   #    üzenetet jelenítse meg, ha ott gödör található, akkor határozza meg, hogy
80   #
81   #       a) mi a gödör kezdő és végpontja! A meghatározott értékeket írja a képernyőre! 
82   #          (Ha nem tudja meghatározni, használja a további részfeladatoknál a 7 és 22 
83   #          értéket, mint a kezdő és a végpont helyét)
84   #----------------------------------------------------------------------------------------------
85   def F6a():
86       print('6. feladat')
87       global kezd,veg
88       if godor[tavolsag-1]==0:
89           print('Az adott helyen nincs gödör.')
90       else:
91           kezd=tavolsag-1
92           while godor[kezd-1]!=0:
93               kezd-=1
94           
95           veg=tavolsag
96           while godor[veg]!=0:
97               veg+=1
98           veg-=1
99       print('a)')
100      print(f'A gödör kezdete: {kezd+1} méter, a gödör vége: {veg+1} méter. ')
101  #----------------------------------------------------------------------------------------------
102  # 6. Ha a 2. feladatban beolvasott helyen nincs gödör, akkor „Az adott helyen nincs gödör.” 
103  #    üzenetet jelenítse meg, ha ott gödör található, akkor határozza meg, hogy
104  #
105  #       b) a legmélyebb pontja felé mindkét irányból folyamatosan mélyül-e! Azaz a gödör 
106  #          az egyik szélétől monoton mélyül egy pontig, és onnantól monoton emelkedik a 
107  #          másik széléig. Az eredménytől függően írja ki a képernyőre a „Nem mélyül 
108  #          folyamatosan.” vagy a „Folyamatosan mélyül.” mondatot!
109  #----------------------------------------------------------------------------------------------
110  def F6b():
111      print('b)')
112      global max_melyseg
113      max_melyseg_helye=0
114      max_melyseg=0
115      for i in range(kezd,veg+1):
116          if godor[i]>max_melyseg:
117              max_melyseg=godor[i]
118              max_melyseg_helye=i
119  
120      le=True
121      for i in range(kezd,max_melyseg_helye):
122          if godor[i]>godor[i+1]:
123              le=False
124              break
125  
126      fel=True
127      for i in range(max_melyseg_helye,veg):
128          if godor[i]<godor[i+1]:
129              fel=False
130              break
131  
132      if le and fel:
133          print('Folyamatosan mélyül.')
134      else:
135          print('Nem mélyül folyamatosan.')
136      
137  #----------------------------------------------------------------------------------------------
138  # 6. Ha a 2. feladatban beolvasott helyen nincs gödör, akkor „Az adott helyen nincs gödör.” 
139  #    üzenetet jelenítse meg, ha ott gödör található, akkor határozza meg, hogy
140  #
141  #       c) mekkora a legnagyobb mélysége! A meghatározott értéket írja a képernyőre! 
142  #----------------------------------------------------------------------------------------------
143  def F6c():
144      print('c)')
145      print('A legnagyobb mélysége %d méter.' %max_melyseg)
146  #----------------------------------------------------------------------------------------------
147  # 6. Ha a 2. feladatban beolvasott helyen nincs gödör, akkor „Az adott helyen nincs gödör.” 
148  #    üzenetet jelenítse meg, ha ott gödör található, akkor határozza meg, hogy
149  #
150  #       d) mekkora a térfogata, ha szélessége minden helyen 10 méternyi! A meghatározott 
151  #          értéket írja a képernyőre! 
152  #----------------------------------------------------------------------------------------------
153  def F6d():
154      print('d)')
155      terfogat=0
156      for i in range(kezd,veg+1):
157          terfogat+=godor[i]*10
158  
159      print('A térfogata %d m^3.' %terfogat)
160  #----------------------------------------------------------------------------------------------
161  # 6. Ha a 2. feladatban beolvasott helyen nincs gödör, akkor „Az adott helyen nincs gödör.” 
162  #    üzenetet jelenítse meg, ha ott gödör található, akkor határozza meg, hogy
163  #
164  #       e) a félkész csatorna esőben jelentős mennyiségű vizet fogad be. Egy gödör annyi 
165  #          vizet képes befogadni anélkül, hogy egy nagyobb szélvihar hatására se öntsön 
166  #          ki, amennyi esetén a víz felszíne legalább 1 méter mélyen van a külső felszínhez 
167  #          képest. Írja a képernyőre ezt a vízmennyiséget! 
168  #----------------------------------------------------------------------------------------------
169  def F6e():
170      print('e)')
171      terfogat=0
172      for i in range(kezd,veg+1):
173          terfogat+=(godor[i]-1)*10
174  
175      print('A vízmennyiség %d m^3.' %terfogat)
176  #**********************************************************************************************
177  F1()
178  F2()
179  F3()
180  F4_5()
181  F6a()
182  F6b()
183  F6c()
184  F6d()
185  F6e()
186  
187  
188  
189  
190  
191  
192  
193  
194  
195  
196  
197  
198  
199  
200  
201  
202