11. tanév

Programozás

Ebben a tanévben jelentek meg a bonyolultabb projektfeladatok, valamint a programozás alapjai és gyakorlati alkalmazása.

Programozási alapok

Programozás alapjai Python nyelven

A programozás alapjait Python nyelven sajátítottam el. A fejlesztéshez a Visual Studio Code fejlesztői környezetet használom, amely lehetővé teszi a hatékony kódírást, hibakeresést és projektkezelést.

Használt eszközök

Python 3 Visual Studio Code Pygame Fájlkezelés Matematikai modulok

1. Változók és adattípusok

x = 10              # egész szám (int)
sebesség = 2.5     # lebegőpontos szám (float)
név = "Robot"      # szöveg (string)
lista = [1,2,3]    # lista

Megismertem az alap adattípusokat és azok használatát számításokhoz és adatkezeléshez.

2. Feltételek

if sebesség > 2:
    print("Gyors robot")
else:
    print("Lassú robot")

A feltételes elágazások lehetővé teszik döntési logika kialakítását.

3. Ciklusok

for i in range(5):
    print(i)

while érték > 0:
    érték -= 1

A ciklusok segítségével ismétlődő feladatokat tudok automatizálni.

4. Függvények

def tavolsag(x1, y1, x2, y2):
    return ((x2-x1)**2 + (y2-y1)**2)**0.5

A függvények segítik a program strukturálását és az újrafelhasználhatóságot.

5. Fájlkezelés

with open("adat.txt") as f:
    for sor in f:
        print(sor)

Külső adatfájlok beolvasása és feldolgozása fontos része a projektjeimnek.

6. Algoritmikus gondolkodás

Projekt bemutató

Búvárrobot optimalizálási feladat (Python)

A projekt célja egy búvárrobot útvonalának optimalizálása volt egy 3D térben. A robot korlátozott idő és sebesség mellett mozog, és célja az összegyűjtött gyöngyök értékének maximalizálása, miközben vissza kell térnie a kiindulási pontra.

A feladat lényegi eleme: optimalizálási probléma megoldása heurisztikus módszerrel.

Algoritmus

Fontosabb függvények és szerepük

1️⃣ tavolsag() – Két pont közti euklideszi távolság

def tavolsag(x, y, z, i):
    return math.sqrt(
        (x - gx)**2 +
        (y - gy)**2 +
        (z - gz)**2
    )

Ez a függvény számolja ki a robot és egy gyöngy közötti 3D távolságot. Erre azért volt szükség, mert az optimalizálás alapja az érték és a megtett út aránya.

2️⃣ arany() – Érték / Távolság arány

def arany(x, y, z, i):
    return gyongy_ertek / tavolsag(...)

Ez a függvény meghatározza, hogy egy gyöngy mennyire "éri meg" a robot aktuális pozíciójához képest. Minél nagyobb az érték és minél kisebb a távolság, annál jobb döntés azt választani.

👉 Ez a greedy stratégia alapja.

3️⃣ origo_robot() – Visszatérési távolság

def origo_robot(x,y,z):
    return sqrt(x² + y² + z²)

Ez biztosítja, hogy a robot mindig vissza tudjon térni a kiindulási pontra. Ez a feltétel akadályozza meg, hogy a robot túl messzire menjen és "beragadjon".

Működés

Döntési mechanizmus

Ez egy heurisztikus optimalizálás, nem garantált globális optimum, de hatékony és gyors megoldás.

Vizualizáció

Pygame megjelenítés

A program grafikus felületen is megjeleníti a robot mozgását.

Búvárrobot vizualizáció
Tapasztalatok

Nehézségek és tanulságok

A projekt fejlesztette az:
✔ algoritmikus gondolkodást
✔ optimalizálási szemléletet
✔ strukturált kódírást
✔ grafikus programozási ismereteket

Interaktív

Python terminál

Próbáld ki a Python kódokat közvetlenül a böngészőben.

Python betöltése...