Advertisement
MrBlaise

Emelt informatika érettségi 2008 október - Robot

Oct 17th, 2013
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.09 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. # Rostás Balázs - Emelt informatika érettségi 2008 október - Robot
  4.  
  5. def egyszerusitheto(szoveg):      
  6.     karakterek = szoveg[:2]
  7.     if karakterek == "ED" or karakterek == "DE" or karakterek == "KN" or karakterek == "NK":
  8.         return True
  9.     if len(szoveg) <= 2:
  10.         return False
  11.     else:
  12.         return egyszerusitheto(szoveg[2:])
  13.  
  14. # 1. feladat:
  15. fajlBe = open("program.txt", "r")
  16. programSzam = int(fajlBe.readline())
  17. programok = [ program.strip() for program in fajlBe ]
  18. programok = [ list(program) for program in programok]
  19. fajlBe.close()
  20. print("1. feladat - program.txt beolvasása - KÉSZ!")
  21.  
  22. # 2. feladat:
  23. # a.)
  24. utSzam = int(input("\n2. feladat - Kérem az utasítássor sorszámát: "))
  25. egyszProgram = ""
  26. for char in programok[utSzam-1]:
  27.     egyszProgram += char    
  28. if egyszerusitheto(egyszProgram):
  29.     print("egyszerűsíthető")
  30. else:
  31.     print("nem egyszerűsíthető")
  32.    
  33. # b.)
  34. y = 0
  35. x = 0
  36.  
  37. for utasitas in programok[utSzam-1]:
  38.     if utasitas == "E":
  39.         y += 1
  40.     elif utasitas == "D":
  41.         y -= 1
  42.     elif utasitas == "N":
  43.         x -= 1
  44.     else:
  45.         x += 1
  46.        
  47. print(abs(y),"lépést kell tenni az ED,", abs(x), "lépést a KN tengely mentén.")
  48.  
  49. # c.)
  50. y = 0
  51. x = 0
  52. tavok = []
  53.  
  54. for utasitas in programok[utSzam-1]:
  55.     if utasitas == "E":
  56.         y += 1
  57.     elif utasitas == "D":
  58.         y -= 1
  59.     elif utasitas == "N":
  60.         x -= 1
  61.     else:
  62.         x += 1
  63.     tav = (abs(y)**2 + abs(x)**2)**0.5
  64.     tavok.append(tav)
  65.  
  66. tav = max(tavok)
  67. sorszam = tavok.index(tav) + 1
  68. print(sorszam, "{0:.3f}cm".format(tav))
  69.  
  70. # 3. feladat:
  71. print("\n3. feladat:")
  72. energia = 0
  73.  
  74. for sorszam, program in enumerate(programok):
  75.     for index in range(len(program)):
  76.         energia += 1
  77.         if index == 0:
  78.             energia += 2
  79.             elozoBetu = program[index]
  80.         elif program[index] != elozoBetu:
  81.             energia += 2
  82.             elozoBetu = program[index]
  83.     if energia <= 100:
  84.         print(sorszam+1, energia)
  85.     energia = 0
  86.  
  87. # 4. feladat:
  88. fajlKi = open("ujprog.txt", "w")
  89.  
  90. for program in programok:
  91.     elozoBetu = program[0]
  92.     tavolsag = 0
  93.     program.append("0")
  94.     for utasitas in program[1:]:
  95.         tavolsag += 1
  96.         if utasitas != elozoBetu:
  97.             if tavolsag == 1:
  98.                 print(elozoBetu, end="", file=fajlKi)                
  99.             else:
  100.                 print(tavolsag, elozoBetu, sep="", end="", file=fajlKi)                
  101.             tavolsag = 0            
  102.         elozoBetu = utasitas
  103.     print("\n", end="",file=fajlKi)
  104.  
  105. fajlKi.close()
  106. print("\n4. feladat - ujprog.txt létrehozása - KÉSZ!")
  107.  
  108. # 5. feladat:
  109. ujKod = input("\n5.feladat - Kérem adjon meg egy új formátumú utasítást, az átalakításhoz: ")
  110. kiirando = ""
  111. szam = ""
  112. szamVolt = False
  113.  
  114. for char in ujKod:
  115.     if char.isdecimal():
  116.         szam += char
  117.         szamVolt = True
  118.     elif szamVolt:
  119.         kiirando += int(szam)*char
  120.         szam = ""
  121.         szamVolt = False
  122.     else:
  123.         kiirando += char
  124. print(kiirando)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement