to=[]

#---------------------------------------------------------------------------------------
# 1. Olvassa be és tárolja el a melyseg.txt állomány adatait, és annak felhasználásával
#    oldja meg a következő feladatokat! 
#---------------------------------------------------------------------------------------
def F1():
    
    fbe=open('melyseg.txt','r')
    global tsor,toszlop
    tsor=int(fbe.readline().rstrip())
    toszlop=int(fbe.readline().rstrip())

    for fsor in fbe:
        fsor=list(map(int,fsor.strip().split()))    
        to.append(fsor)

    fbe.close()
    #print(to)

#---------------------------------------------------------------------------------------
# 2. Kérje be egy mérési eredmény sor- és oszlopazonosítóját, majd írassa ki az adott
#    helyen mért adatot a képernyőre! (A sorok és oszlopok számozása kezdődjön 1-gyel!)
#---------------------------------------------------------------------------------------
def F2():
    print('2. feladat ')
    sor=int(input('A mérés sorának azonosítója='))-1
    oszlop=int(input('A mérés oszlopának azonosítója='))-1
    print('A mért mélység az adott helyen %d dm' %to[sor][oszlop])

#---------------------------------------------------------------------------------------
# 3. Határozza meg a tó (vagyis az ábrán szürkével jelölt rész) felszínének területét,
#    valamint a tó átlagos mélységét! Írassa ki a két eredményt a mintának megfelelően
#    a képernyőre! A tó átlagos mélysége méterben kifejezve, két tizedesjegy pontossággal
#    jelenjen meg!
#---------------------------------------------------------------------------------------
def F3():
    print('3. feladat')

    db_0=0
    melysegek=0
    for sor in to:
        db_0+=sor.count(0)
        melysegek+=sum(sor)

    felszin=tsor*toszlop-db_0
    atlag=(melysegek/10)/felszin
    
    print('A tó felszíne: %d m2, átlagos mélysége: %.2f m' %(felszin,atlag))

#---------------------------------------------------------------------------------------
# 4. Mekkora a tó legnagyobb mélysége, és hol a legmélyebb a tó? Jelenítse meg a választ 
#    a képernyőn! A legmélyebb pont koordinátáit a mintának megfelelően (sor; oszlop) 
#    formában írassa ki! Ha több ilyen mérési eredmény is van, mindegyik koordinátapárja 
#    jelenjen meg! 
#---------------------------------------------------------------------------------------
def F4():
    print('4. feladat')
    
    maxm=0
    for sor in to:
        if max(sor)>maxm:
            maxm=max(sor)
    print('A tó legnagyobb mélysége: %d dm' %maxm)

    print('A legmélyebb helyek sor-oszlop koordinátái:')
    for i,sor in enumerate(to,1):
        try:
            if sor.index(maxm)>-1:
                print('('+str(i)+'; '+str(sor.index(maxm)+1)+')',end=' ')
        except:
            pass
            
    print()
    #(14; 20) (26; 11) (32; 16)

#---------------------------------------------------------------------------------------
# 5. Milyen hosszú a tó partvonala, vagyis az ábrán a szürkével jelölt részt határoló
#    vastag fekete vonal hossza? A partvonalhoz vegye hozzá a tóban lévő szigetek
#    kerületét is! Írassa ki az eredményt a mintának megfelelően a képernyőre!
#    (A megoldás során felhasználhatja, hogy a táblázat első és utolsó sorában és
#    oszlopában minden adat 0.) 
#---------------------------------------------------------------------------------------
def F5():
    print('5. feladat')

    partvonal=0
    for i in range(1,tsor-1):
        for j in range(1,toszlop-1):
            if to[i][j]>0:
                if to[i-1][j]==0:       #felette
                    partvonal+=1
                if to[i+1][j]==0:       #alatta
                    partvonal+=1
                if to[i][j-1]==0:       #balra
                    partvonal+=1
                if to[i][j+1]==0:       #jobbra
                    partvonal+=1               
    print('A tó partvonala %d m hosszú' %partvonal)

#---------------------------------------------------------------------------------------
# 6. Kérje be a felhasználótól egy oszlop azonosítóját, és szemléltesse a diagram.txt
#    szöveges állományban „sávdiagramon” a tó mélységét az adott oszlopban a következő 
#    módon! A sor elején jelenjen meg a mérési adat sorának azonosítója pontosan két 
#    számjeggyel, majd tegyen egymás mellé annyi csillagot (*), ahány méter az adott
#    helyen a tó mélysége! A mérési adatokat a matematika szabályainak megfelelően
#    kerekítse!
#---------------------------------------------------------------------------------------
def F6():
    print('6. feladat')

    fki=open('diagram.txt','w')

    oszlop=int(input('A vizsgált szelvény oszlopának azonosítója='))-1

    for i,sor in enumerate(to,1):
        print(str(i).zfill(2).rjust(2)+'*'*round(sor[oszlop]/10))
        print(str(i).zfill(2).rjust(2)+'*'*round(sor[oszlop]/10),file=fki)

    fki.close()
        
#---------------------------------F Ő M O D U L-----------------------------------------
F1()
F2()
F3()
F4()
F5()
F6()
