Docy

Összetett feladat

Estimated reading: 4 minutes 0 views

Összetett feladat

magyarázat

				
					def feladat():
    epuletek = []
    f = open('legmagasabb.txt', encoding='UTF-8')
    f.readline()
    sor = f.readline()
    while (sor):
        epuletek.append(Épület(sor))
        sor = f.readline()
    f.close()

				
			
  • Első lépésben létrehozunk egy üres listát, epuletek néven, amelyben tárolni fogjuk az épületeket.
  • Megnyitjuk a legmagasabb.txt nevű fájlt olvasásra, UTF-8 kódolással.
  • Beolvassuk az első sort a fájlból, majd további sorokat olvasunk be egy ciklusban.
  • Minden beolvasott sort hozzáadunk az epuletek listához, az Épület osztály segítségével létrehozva egy új épületet.
  • Amikor már nincs több sor, bezárjuk a fájlt.
				
					    print('Épületek száma: {0} db'.format(len(epuletek)))

				
			
  • Kiírjuk a képernyőre az épületek számát, az epuletek lista hosszát használva.
				
					    osszEmelet = 0
    for e in epuletek:
        osszEmelet += e.emelet
    print('Emeletek összege: {0}'.format(osszEmelet))
				
			
  • Egy for ciklussal végigiterálunk az epuletek listán, és minden épület emelet számát hozzáadjuk az osszEmelet változóhoz.
  • Kiírjuk a képernyőre az emeletek összegét.
				
					    legmagasabbEpulet = epuletek[0]
    for e in epuletek:
        if (legmagasabbEpulet.magassag < e.magassag):
            legmagasabbEpulet = e
    print('\tNév: {0}'.format(legmagasabbEpulet.nev))
    print('\tVáros: {0}'.format(legmagasabbEpulet.varos))
    print('\tOrszág: {0}'.format(legmagasabbEpulet.orszag))
    print('\tMagasság: {0}'.format(legmagasabbEpulet.magassag))
    print('\tEmeletek száma: {0}'.format(legmagasabbEpulet.emelet))
    print('\tÉpítés éve: {0}'.format(legmagasabbEpulet.epult))
				
			
  • Az epuletek lista első elemét (azaz az első épületet) alapértelmezetten a legmagasabb épületnek tekintjük.
  • Egy for ciklussal végigiterálunk az epuletek listán, és minden épületet összehasonlítunk a jelenlegi legmagasabb épülettel.
  • Ha találunk egy olyan épületet, amely magasabb, mint a jelenlegi legmagasabb épület, akkor frissítjük a legmagasabbEpulet változót.
  • Kiírjuk a képernyőre a legmagasabb épület adatait.
				
					    i = 0
    while i < len(epuletek) and epuletek[i].orszag != 'Olaszország':
        i += 1
    if i < len(epuletek):
        print('Van olasz épület az adatok között!')
    else:
        print('Nincs olasz épület az adatok között!')

				
			
  • Inicializálunk egy i változót, amelyet a ciklus indexelésére használunk.
  • Egy while ciklusban végigmegyünk az epuletek listán, és megvizsgáljuk, hogy az épület országa ‘Olaszország’-e.
  • Ha találunk egy olasz épületet, akkor befejezzük a ciklust, és kiírjuk, hogy van olasz épület az adatok között.
  • Ha nem találunk olasz épületet, akkor kiírjuk, hogy nincs olasz épület az adatok között.

Teljes kód

				
					def feladat():
    epuletek = []
    f = open('legmagasabb.txt', encoding='UTF-8')
    f.readline()
    sor = f.readline()
    while (sor):
        epuletek.append(Épület(sor))
        sor = f.readline()
    f.close()
    print('Épületek száma: {0} db'.format(len(epuletek)))

    osszEmelet = 0
    for e in epuletek:
        osszEmelet += e.emelet
    print('Emeletek összege: {0}'.format(osszEmelet))

    legmagasabbEpulet = epuletek[0]
    for e in epuletek:
        if (legmagasabbEpulet.magassag < e.magassag):
            legmagasabbEpulet = e
    print('A legmagasabb épület adatai')
    print('\tNév: {0}'.format(legmagasabbEpulet.nev))
    print('\tVáros: {0}'.format(legmagasabbEpulet.varos))
    print('\tOrszág: {0}'.format(legmagasabbEpulet.orszag))
    print('\tMagasság: {0}'.format(legmagasabbEpulet.magassag))
    print('\tEmeletek száma: {0}'.format(legmagasabbEpulet.emelet))
    print('\tÉpítés éve: {0}'.format(legmagasabbEpulet.epult))

    i = 0
    while i < len(epuletek) and epuletek[i].orszag != 'Olaszország':
        i += 1
    if i < len(epuletek):
        print('Van olasz épület az adatok között!')
    else:
        print('Nincs olasz épület az adatok között!')
				
			

Leave a Comment

Megosztom ezt a leírást
Tartalom