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}")

Vissza