Advertisement
raerek

2008. október - Robot

Feb 3rd, 2013
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.00 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. ###1. feladat
  4. programok = [ sor.strip() for sor in open('program.txt') ]
  5. programok = programok[1:]
  6. ###2. feladat
  7. print('2. feladat')
  8. utasításszám = int(input('Kérem az utasítássor sorszámát! ')) - 1
  9. ###2a. feladat
  10. ellentétek = [ 'DE', 'ED', 'KN', 'NK' ]
  11. előző_betű = programok[utasításszám][0]
  12. for sorszám in range(1, len(programok[utasításszám])):
  13.     if (előző_betű + programok[utasításszám][sorszám]) in ellentétek:
  14.         print('egyszerűsíthető')
  15.         break
  16.     előző_betű = programok[utasításszám][sorszám]
  17. else:
  18.     print('nem egyszerűsíthető')
  19. ###2b. feladat
  20. irányok = { 'E': 0, 'D': 0, 'K': 0, 'N': 0 }
  21. for betű in programok[utasításszám]:
  22.     irányok[betű] += 1
  23. print(abs(irányok['E']-irányok['D']), 'lépést kell tenni az ED,', abs(irányok['K']-irányok['N']), 'lépést a KN tengely mentén.')
  24. ###2c. feladat
  25. irányok = { 'E': 0, 'D': 0, 'K': 0, 'N': 0 }
  26. távolságok = []
  27. for betű in programok[utasításszám]:
  28.     irányok[betű] += 1
  29.     y = irányok['E']-irányok['D']
  30.     x = irányok['K']-irányok['N']
  31.     távolságok += [ (y**2 + x**2)**.5 ]
  32. print('{0:.3f}'.format(max(távolságok)))
  33. ###3. feladat
  34. print('3. feladat')
  35. for program in programok:
  36.     felhasznált_energia = 3 #nem 0, mert induláshoz úgyis 2-t elhasználunk, és első utasítás is van, az még 1.
  37.     előző_irány = program[0]
  38.     for betű in program[1:]:
  39.         felhasznált_energia += 1
  40.         if betű != előző_irány: felhasznált_energia += 2
  41.         előző_irány = betű
  42.     if felhasznált_energia <= 100:
  43.         print(programok.index(program)+1, felhasznált_energia)
  44. ###4. feladat
  45. célfájl = open('ujprog.txt', 'w')
  46. for program in programok:
  47.     új_program = ''
  48.     előző_irány = program[0]
  49.     egyezésszámláló = 1
  50.     for betű in program[1:]:
  51.         if betű != előző_irány:
  52.             if egyezésszámláló == 1:
  53.                 új_program += előző_irány
  54.             else:
  55.                 új_program += str(egyezésszámláló) + előző_irány
  56.             előző_irány = betű
  57.             egyezésszámláló = 1
  58.         else:
  59.             egyezésszámláló += 1
  60.     új_program += program[-1]
  61.     print(új_program, file=célfájl)
  62. célfájl.close()
  63. ###5. feladat
  64. print('5. feladat')
  65. új_formátumú_utasítás = input('Kérek egy új formátumú utasítást! ')
  66. régi_formátumú_utasítás = ''
  67. számstring = ''
  68. előző_szám_volt = False
  69. for betű in új_formátumú_utasítás:
  70.     if betű.isdecimal():
  71.         számstring += betű
  72.         előző_szám_volt = True
  73.     elif előző_szám_volt: #de a mostani már betű, különben ráfutottunk volna az előző ágra
  74.         for szám in range(int(számstring)):
  75.             régi_formátumú_utasítás += betű
  76.         előző_szám_volt = False
  77.         számstring = ''
  78.     else: #ha az előző is betű volt, meg a mostani is
  79.         régi_formátumú_utasítás += betű
  80. print(régi_formátumú_utasítás)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement