
Robot
Robot
robot.py
# 1. feladat: Robot parancsszó beolvasása
parancs = input("Kérem a robot parancsait: ")
# 2. feladat: Betűk számlálása
e_betu = parancs.count("E")
d_betu = parancs.count("D")
k_betu = parancs.count("K")
n_betu = parancs.count("N")
print(f"E betűk száma: {e_betu}")
print(f"D betűk száma: {d_betu}")
print(f"K betűk száma: {k_betu}")
print(f"N betűk száma: {n_betu}")
# 3. feladat: Új parancsszó (legrövidebb út) meghatározása
horizontalis_mozgas = e_betu - k_betu # Kelet (E) - Nyugat (K)
fuggoleges_mozgas = n_betu - d_betu # Észak (N) - Dél (D)
uj_parancs = ""
# Keleti vagy nyugati irány
if horizontalis_mozgas > 0:
uj_parancs += "E" * horizontalis_mozgas
elif horizontalis_mozgas < 0:
uj_parancs += "K" * abs(horizontalis_mozgas)
# Északi vagy déli irány
if fuggoleges_mozgas > 0:
uj_parancs += "N" * fuggoleges_mozgas
elif fuggoleges_mozgas < 0:
uj_parancs += "D" * abs(fuggoleges_mozgas)
print(f"Egy legrövidebb út parancsszava: {uj_parancs}")
Magyarázat lépések szerint:
1. feladat: Robot parancsszó beolvasása
- A program bekéri a felhasználótól a robot mozgását vezérlő szót.
- Ez lehet egy tetszőleges betűsorozat, például: EEEKDKEKDKEKDDNN.
2. feladat: Betűk számlálása
- A program megszámolja az E, D, K, és N betűk előfordulásait a parancsszóban.
- Az str.count() függvényt használjuk minden betűhöz, és az eredményt kiírjuk.
3. feladat: Új, legrövidebb út meghatározása
- Mozgások kiszámítása:
- horizontalis_mozgas: Keleti (E) mozgás mínusz nyugati (K) mozgás.
- fuggoleges_mozgas: Északi (N) mozgás mínusz déli (D) mozgás.
- Legrövidebb parancsszó összeállítása:
- Ha keletre kell mozogni (horizontalis_mozgas > 0), akkor az E betűk számát adjuk hozzá az eredményhez.
- Ha nyugatra kell mozogni (horizontalis_mozgas < 0), akkor a K betűk számát adjuk hozzá.
- Hasonlóan járunk el az észak/dél irányban is az N és D betűkkel.
- Üres eredmény esetén:
- Ha mind a keleti/nyugati, mind az északi/déli mozgások kioltják egymást, akkor az útvonal új parancsszava üres marad.
Példa futtatás:
Bemenet:
Kérem a robot parancsait: EEEKDKEKDKEKDDNN
Kimenet:
E betűk száma: 5
D betűk száma: 4
K betűk száma: 5
N betűk száma: 2
Egy legrövidebb út parancsszava: KKKE
Hogyan működik?
- Példa magyarázata:
- Az E betűk száma: 5 → Kelet.
- A K betűk száma: 5 → Nyugat.
- A D betűk száma: 4 → Dél.
- Az N betűk száma: 2 → Észak.
- Vízszintes irányban kelet és nyugat kioltja egymást.
- Függőlegesen az északi mozgásra nincs elég déli mozgás, így a maradék mozgás déli irányú: D.
# 1. feladat: Robot parancsszó beolvasása
parancs = input("Kérem a robot parancsait: ")
# 2. feladat: Betűk számlálása
e_betu = parancs.count("E")
d_betu = parancs.count("D")
k_betu = parancs.count("K")
n_betu = parancs.count("N")
print(f"E betűk száma: {e_betu}")
print(f"D betűk száma: {d_betu}")
print(f"K betűk száma: {k_betu}")
print(f"N betűk száma: {n_betu}")
# 3. feladat: Új parancsszó (legrövidebb út) meghatározása
horizontalis_mozgas = e_betu - k_betu # Kelet (E) - Nyugat (K)
fuggoleges_mozgas = n_betu - d_betu # Észak (N) - Dél (D)
uj_parancs = ""
# Keleti vagy nyugati irány
if horizontalis_mozgas > 0:
uj_parancs += "E" * horizontalis_mozgas
elif horizontalis_mozgas < 0:
uj_parancs += "K" * abs(horizontalis_mozgas)
# Északi vagy déli irány
if fuggoleges_mozgas > 0:
uj_parancs += "N" * fuggoleges_mozgas
elif fuggoleges_mozgas < 0:
uj_parancs += "D" * abs(fuggoleges_mozgas)
print(f"Egy legrövidebb út parancsszava: {uj_parancs}")