11. Osztály – Informatikai Portfolio
Informatikai Portfolio

11. Osztály

Python programozási feladatok és projektek gyűjteménye. Számológéptől az algoritmusokon át az Európai Országok projekt feladatig.

Fityó Viktor 11.V 2023/24 tanév
Projekt #01

Számológép

Két szám alapműveleteinek elvégzése. Elsőként egyszerű egyszeri kiírással, majd függvényekkel és menürendszerrel felépítve.

Alap Számológép

sep & end

Négy alapművelet egyszerre

A program bekér két számot, konvertálja int-re, majd kiszámítja és kiírja mind a négy alapműveletet. A sep="" és end=" " paraméterekkel az összeadás és kivonás egy sorba kerül.

sz1 = input(„1. szám „) sz2 = input(„2. szám „) sz1 = int(sz1) sz2 = int(sz2) össz = (sz1 + sz2) kiv = (sz1sz2) szor = (sz1 * sz2) oszt = (sz1 / sz2) print(sz1, „+”, sz2, „=”, össz, sep=„”, end=” „) print(sz1, „-„, sz2, „=”, kiv, sep=„”) print(sz1, „*”, sz2, „=”, szor, sep=„”, end=” „) print(sz1, „/”, sz2, „=”, oszt, sep=„”)

A sep="" eltünteti a szóközt az argumentumok között, az end="        " megakadályozza az újsort – így az összeadás és kivonás ugyanabba a sorba kerül.

Eredeti fájlnévwfaawufAWUfhu.py
ÁtnevezveSzamologep_alap.py
Input2 egész szám
Output4 alapművelet
Technikasep, end paraméter

Függvényes Számológép

def + return

Külön függvény minden művelethez

A fejlettebb verzióban minden alapműveletet saját def függvény végez. A menü() kiírja a lehetőségeket, bekér egy választ, majd return-nel visszaadja azt a hívónak.

szam1 = int(input(„1. szám: „)) szam2 = int(input(„2. szám: „)) def kivonas(szam1, szam2): print(szam1, „-„, szam2, „=”, szam1szam2) def szorzas(szam1, szam2): print(szam1, „*”, szam2, „=”, szam1 * szam2) def osztas(szam1, szam2): print(szam1, „/”, szam2, „=”, szam1 / szam2) def menü(): print(„”” Menü 1, kivonás 2, összeadás 3, osztás 4, szorzás”””) valasz = int(input(„Válasszon műveletet: „)) return valasz valasz = menü() if valasz == 1: kivonas(szam1, szam2) elif valasz == 3: szorzas(szam1, szam2) elif valasz == 4: osztas(szam1, szam2)
Eredeti fájlokagísgfawe.py
pit.py
ÁtnevezveSzamologep_menu.py
Fogalmakdef, return
Vezérlésif / elif
Projekt #02

Algoritmikus Tételek

Véletlenszám-listák generálása és feldolgozása. Összegzés, megszámolás, eldöntés, keresés, kiválogatás, szétválogatás, másolás, buborékrendezés.

Lista Algoritmusok

8 algoritmus

Teljes algoritmustétel-gyűjtemény – Tételek.py

Véletlenszám lista (-100-tól 100-ig) generálása, majd az összes klasszikus algoritmus alkalmazása egymás után.

import random t = [] n = int(input(„A Lista elem száma: „)) for _ in range(n): t.append(random.randint(-100, 100)) # 1. Összegzés osszeg = 0 for i in range(n): osszeg = osszeg + t[i] print(„Összege: „, osszeg) # 2. Megszámolás – 5-nél nagyobbak szamlalo = 0 for i in range(n): if t[i] > 5: szamlalo = szamlalo + 1 # 3a. Eldöntés – for + flag van = 0 for i in range(n): if t[i] == keresett_ertek: van = 1 # 3b. Eldöntés – while + and (gyorsabb megállás) i = 0 while i < n and t[i] != keresett_ertek: i = i + 1 if i < n: print(„Helye: „, i + 1) # 4. Kiválogatás – negatív elemek b = [] for elem in t: if elem < 0: b.append(elem) # 5. Szétválogatás – 5 alatti és feletti b, c = [], [] for elem in t: if elem < 5: b.append(elem) else: c.append(elem) # 6. Másolás – minden elem duplázva b = [] def dupla(num): return num * 2 for elem in t: b.append(dupla(elem)) # 7. Buborékrendezés for i in range(n1, 0, –1): for j in range(0, i): if t[j] > t[j + 1]: t[j], t[j + 1] = t[j + 1], t[j]
1
Összegzés
Elemek összege for ciklussal.
🔢
2
Megszámolás
Feltételt teljesítő elemek száma.
3a+b
Eldöntés
for + flag és while + and módszerrel.
🧺
4
Kiválogatás
Negatív elemek új listába.
⚖️
5
Szétválogatás
Két külön lista feltétel alapján.
📋
6
Másolás
Duplázó függvény + append.
🔀
7
Buborék
Szomszédos csere, O(n²).
Eredeti fájlokTételek.py
finfej.py
ÁtnevezveAlgoritmus_tetelek.py
Generálásrandint(-100, 100)
Eldöntés2 módszer
RendezésBubble sort

Komp-feladat

Eldöntés + megszámolás

Nehéz járművek a kompon

1000–10000 kg közötti véletlenszerű járműtömegek, 20 elemű lista. Meghatározza, volt-e 9300 kg-nál nehezebb jármű, és ha igen, pontosan hány darab.

import random lista = [] szamlalo = 0 t_szamlalo = 0 n_szamlalo = False while szamlalo < 20: lista.append(random.randint(1000, 10000)) szamlalo = szamlalo + 1 szamlalo = 0 while szamlalo < 20: if lista[szamlalo] >= 9300: n_szamlalo = True t_szamlalo = t_szamlalo + 1 szamlalo = szamlalo + 1 if n_szamlalo == True: print(„volt 9300kg-nál nehezebb jármű ma a hajón”) print(t_szamlalo, „darab nehéz jármű volt a hajón ma”) else: print(„nem volt 9300kg-nál nehezebb jármű”)
Eredeti fájldaaaagagwgwagwagwagwag.py
ÁtnevezveKomp_jarmu_feladat.py
Lista mérete20 elem
Tartomány1 000 – 10 000 kg
Határ9 300 kg

Lista a Listában

2D adatszerkezet

Tanulói névsor és osztályátlag – listabanlista.py

Külső lista tárolja a tanulókat, belső lista az adataikat (név + átlag). Az osztályátlagot összegzéssel, a beágyazott tanulok[1] mezőből számítja.

osztaly = [] for _ in range(3): tanulo = [] nev = input(„Kérem a nevet: „) atlag = float(input(„Kérem az átlagot: „)) tanulo.append(nev) tanulo.append(atlag) osztaly.append(tanulo) # Osztályátlag összegzéssel osszeg = 0 for tanulok in osztaly: osszeg = osszeg + tanulok[1] print(„Az Átlag: „, osszeg / 3)
Eredeti fájllistabanlista.py
ÁtnevezveDiak_atlag_2D.py
osztaly[i][0]Tanuló neve (str)
osztaly[i][1]Tanuló átlaga (float)
Projekt #03

Diák-nyilvántartás

Tanulók adatainak (név, nem, átlag, email) tárolása 2D listában. Új tanuló hozzáadása, nemek megszámolása, osztályátlag és keresés névre.

Tanuló Adatbázis

2D lista + menü

Névsor, nem, átlag, email – seggluik.py

3 előre feltöltött tanuló szerepel a listában. A felhasználó hozzáad egy negyediket, majd menüből kérdezhet le adatmezőt (1–4).

tanulo = [ [„Béla”, „f”, 3.5, „bela1234@gmail.com”], [„Mari”, „l”, 2.5, „mari1234@gmail.com”], [„Jozsi”, „f”, 4.5, „jozsi1234@gmail.com”] ] # Új tanuló bekérése nev = input(„Új tanuló neve: „) neme = input(„Neme (f/l): „) atlag = float(input(„Átlaga: „)) email = input(„Email: „) tanulo.append([nev, neme, atlag, email]) # Adatlekérdezés menüből (index = x – 1) def menü(): print(„1=név 2=nem 3=átlag 4=email”) menü() x = int(input(„Melyik adatot kéred? „)) for a in range(0, 4): print(tanulo[a][x1]) # Nemek megszámolása fiu, lany = 0, 0 for i in range(4): if tanulo[i][1] == „f”: fiu = fiu + 1 else: lany = lany + 1 # Osztályátlag osszeg = 0 for i in range(4): osszeg = osszeg + tanulo[i][2] print(„Átlag: „, osszeg / 4)
Eredeti fájlseggluik.py
ÁtnevezveDiak_nyilvantartas.py
Struktúra[név, nem, átlag, email]
Lekérdezésmenü → index – 1
Átlagosszeg / 4
Projekt #04

Dobás Szimulátor ⚠ Szintaxishibák

Kockadobás és pénzfeldobás szimulálása megadott számú kísérlettel, százalékos eloszlás kiírásával.

Kocka & Pénzérme

random + statisztika

Százalékos eloszlás – doga12345.py

A program bekéri a dobások számát, while ciklussal szimulálja azokat. Minden értékhez számlálót vezet, végén kiírja a százalékos arányt.

import random x = int(input(„dobások száma: „)) ö = 1 a = b = c = d = e = f = 0 while ö <= x: y = random.randint(1, 6) ö = ö + 1 if y == 1: a += 1 elif y == 2: b += 1 elif y == 3: c += 1 elif y == 4: d += 1 elif y == 5: e += 1 elif y == 6: f += 1 print(a, „egyes |”, (a/x)*100, „%”) print(b, „kettes|”, (b/x)*100, „%”) print(c, „hármas|”, (c/x)*100, „%”) print(d, „négyes|”, (d/x)*100, „%”) print(e, „ötös |”, (e/x)*100, „%”) print(f, „hatos |”, (f/x)*100, „%”)

Ismert hibák: az if aa==1 sorból hiányzik a kettőspont, az input() hívásokból zárójel, és a pénzérme blokkban rossz a behúzás. A kockadobás rész önállóan helyesen fut.

Eredeti fájlokdoga12345.py
nincs_befejezve_.py
ÁtnevezveKocka_szimulacios.py
Kockarandint(1, 6)
Pénzérmerandint(1, 2)
Statisztika(db / összes) × 100 %
Állapot⚠ Részben kész
Projekt #05

Dolgozat Feladatok

5 egymásra épülő feladat osztályzatokkal: saját név + átlag, megszámolás, keresés, minimum kiválasztás, szétválogatás.

5 Feladat – Osztályzatok

Összegzéstől rendezésig

Dolgozat.py – valódi feladatsor

osztaly2 = [4.5, 3.1, 4.1, 3.6, 4.7] hossz = len(osztaly2) # 1. Saját név + osztályátlag print(„Fityó Viktor”) osszeg = 0 for i in range(hossz): osszeg = osszeg + osztaly2[i] print(„Átlag: „, osszeg / hossz) # 2. Bekért értéknél nagyobb átlagok száma kerdes = float(input(„Írjon be egy átlagot: „)) szamlalo = 0 for i in range(hossz): if osztaly2[i] > kerdes: szamlalo = szamlalo + 1 # 3. Keresés – szerepel-e az átlag? keresett = float(input(„Írjon be egy átlagot: „)) i = 0 while i < hossz and osztaly2[i] != keresett: i = i + 1 if i < hossz: print(„Hányadik helyen van: „, i + 1) # 4. Legrosszabb átlag – minimum kiválasztás KisElem = osztaly2[0] for elem in osztaly2: if elem < KisElem: KisElem = elem print(„legrosszabb átlag:”, KisElem) # 5. Szétválogatás – 4.0 alatti és feletti b, c = [], [] for elem in osztaly2: if elem < 4: b.append(elem) else: c.append(elem) print(„4-nél kisebb:”, b) print(„4-nél nagyobb:”, c)
#FeladatAlgoritmusEredmény
1Saját név + osztályátlagÖsszegzés3.98
2Bekértnél nagyobb átlagok számaMegszámolásfor + if
3Átlag keresése listábanLineáris kereséswhile + and
4Legrosszabb átlag megtalálásaMinimum kiválasztás3.1
54.0 alatti és feletti átlagokSzétválogatásb + c lista
Eredeti fájlDolgozat.py
ÁtnevezveDolgozat_feladatok.py
Lista[4.5, 3.1, 4.1, 3.6, 4.7]
Feladatok5 db
Minimum3.1
Határérték4.0
Projekt #06 – Projekt Feladat

Európai Országok

Az európai országok adatait tartalmazó orszagok.txt feldolgozása és interaktív menürendszeren keresztüli lekérdezése. 49 ország – keresés, szétválogatás, kiíratás.

Dokumentáció

Felhasználói & Fejlesztői
📄 Felhasználói Dokumentáció
  • Az adatok forrása: orszagok.txt
  • Indítás: Projekt feladat.py futtatásával
  • 1 – Keresés ország / főváros alapján
  • 2 – Kiválogatás népesség szerint
  • 3 – Kiválogatás terület szerint
  • 4 – Lista kiírása (3 módban)
  • 5 – Program leállítása

💻 Minimális rendszerigény
  • Intel Core i5 vagy azzal egyenértékű
  • 4 GB RAM (8 GB javasolt)
  • 15 GB szabad tárhely
  • Internet kapcsolat
🛠 Fejlesztői Dokumentáció
  • Bemenet: orszagok.txt – négy mező, pontosvessző elválasztóval
  • Kimenet: menüből kiválasztott művelet eredménye
  • Keresés: lineáris, while ciklussal
  • Szétválogatás: határérték-alapú, két listára
  • Lista kiírás: teljes / ország-főváros / csak főváros
  • Kilépés: while kerdes != 5 ciklus feltétele

🔧 Fejlesztési lehetőségek
  • Kis- és nagybetű-érzéketlenség (.lower())
  • Rendezés ábécé vagy népesség szerint
  • Népsűrűség: népesség / terület számítása

Program Kód

Projekt_feladat.py

Fájl beolvasása – 49 európai ország

A orszagok.txt soronként tárolja az adatokat ; elválasztóval: Ország;Népesség;Terület;Főváros. Beolvasás után int konverzió a 2. és 3. mezőre.

# Fájl beolvasása – orszagok.txt t = [] with open(‘orszagok.txt’) as forrásfájl: for sor in forrásfájl: sor = sor.strip().split(„;”) sor[1] = int(sor[1]) sor[2] = int(sor[2]) t.append(sor) hossz = len(t) # = 49 # Menü ciklus kerdes = 0 while kerdes != 5: menü1() kerdes = int(input(„válassz műveletet: „)) if kerdes == 1: # — Keresés — Kereses_menü() kereses_kerdes = int(input(„Válassz: „)) if kereses_kerdes == 1: keresett = input(„Mi a keresett ország?: „) mezo = 0 else: keresett = input(„Mi a keresett főváros?: „) mezo = 3 i = 0 while i < hossz and t[i][mezo] != keresett: i = i + 1 if i < hossz: print(„Van, helye: „, i + 1) else: print(„Nincs ilyen!”) elif kerdes == 2: # — Népesség szétválogatás — kivalogatas = int(input(„Határérték: „)) b, c = [], [] for elem in range(hossz): if t[elem][1] < kivalogatas: b.append(t[elem][0]) else: c.append(t[elem][0]) elif kerdes == 4: # — Lista kiírása — Kerdes4 = int(input(„1=Teljes 2=Ország-Főváros 3=Csak főváros: „)) if Kerdes4 == 1: for a in range(hossz): print(t[a]) elif Kerdes4 == 2: for a in range(hossz): print(t[a][0], t[a][-1]) elif Kerdes4 == 3: for a in range(hossz): print(t[a][-1]) print(„Viszlát!”)
t[i] indexMezőTípusPélda (Magyarország)
t[i][0]Ország nevestrMagyarország
t[i][1]Népességint9 800 000
t[i][2]Terület (km²)int93 030
t[i][3]FővárosstrBudapest
🔍
1. menü
Keresés
Ország vagy főváros – while + and.
👥
2. menü
Népesség
Határérték alatti és feletti két listába.
🗺️
3. menü
Terület
Terület alapján szétválogatás.
📄
4. menü
Kiíratás
Teljes / Ország-Főváros / Csak főváros.
🚪
5. menü
Kilépés
while kerdes != 5, „Viszlát!”
Eredeti fájlokProjekt_feladat.py
Projek_feladat.py
orszagok.txt
Rekordok49 európai ország
Elválasztópontosvessző ( ; )
Konverzióstr → int (2 mező)
KeresésLineáris while + and
Szétválogatás2 lista, határérték
Kilépéskerdes == 5