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