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 = k_betu - n_betu # Kelet (K) - Nyugat (N)

fuggoleges = e_betu - d_betu # Észak (E) - Dél (D)

uj_parancs = ""

# Keleti vagy nyugati irány

if horizontalis > 0:

     uj_parancs += "K" * horizontalis

elif horizontalis < 0:

     uj_parancs += "N" * abs(horizontalis)

# Északi vagy déli irány

if fuggoleges > 0:

      uj_parancs += "E" * fuggoleges

elif fuggoleges< 0:

      uj_parancs += "D" * abs(fuggoleges)

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 (K) mozgás mínusz nyugati (N) mozgás.

fuggoleges_mozgas: Északi (E) 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 K betűk számát adjuk hozzá az eredményhez.

Ha nyugatra kell mozogni (horizontalis_mozgas < 0), akkor a N betűk számát adjuk hozzá.

Hasonlóan járunk el az észak/dél irányban is az E é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 → Észak .

A K betűk száma: 5 → Kelet .

A D betűk száma: 4 → Dél.

Az N betűk száma: 2 → Nyugat .

Vízszintes irányban kelet és nyugat, nincs elég nyugati mozgás, így a maradék mozgás keleti irányú KKK.

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 = n_betu - k_betu # Kelet (E) - Nyugat (K)

fuggoleges_mozgas = e_betu - d_betu # Észak (N) - Dél (D)

uj_parancs = ""

# Keleti vagy nyugati irány

if horizontalis_mozgas > 0:

     uj_parancs += "K" * horizontalis_mozgas

elif horizontalis_mozgas < 0:

     uj_parancs += "N" * abs(horizontalis_mozgas)

# Északi vagy déli irány

if fuggoleges_mozgas > 0:

     uj_parancs += "E" * fuggoleges_mozgas

elif fuggoleges_mozgas < 0:

     uj_parancs += "D" * abs(fuggoleges_mozgas)

print(f"Egy legrövidebb út parancsszava: {uj_parancs}")

Vissza