zfoxatis

2008-es emelt szintű érettségi lineáris programozással

Jan 26th, 2012
84
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/python3
  2. #-*-coding:utf-8-*-
  3.  
  4. print('\n1. feladat megoldása:')
  5. smsek=[]
  6. telefon_memóriája=10
  7. lista=open('/home/zfoxatis/Dokumentumok/sms.txt','r',).readlines()
  8. smsek_száma=int(lista[0])
  9. for sorok in range(0,smsek_száma):
  10.     óra,perc,telefonszám=lista[sorok*2+1].split()
  11.     smsszöveg=lista[sorok*2+2][:-1]
  12.     smsek+=[[sorok+1,int(óra),int(perc),telefonszám,smsszöveg]]
  13. print('Eltárolva: ',smsek)
  14.  
  15.  
  16. print('\n2.feladat  megoldása:')
  17. sms=[0,0,0,'','']
  18. memória=0
  19. for i in smsek:
  20.     if sms[1]*60+sms[2]<i[1]*60+i[2]:
  21.         sms=i
  22.         memória+=1
  23.         if memória==10:
  24.             break
  25. print('A telefonban a legfrissebb sms:\n {0}. {1:0>2}:{2:0>2} {3} {4}\n'.format(*sms))
  26.  
  27.  
  28. print('\n3.feladat megoldása:')
  29. leghosszabb_sms=smsek[0]
  30. legrövidebb_sms=smsek[0]
  31. for i in smsek:
  32.     if len(leghosszabb_sms[4])<len(i[4]):
  33.         leghosszabb_sms=i
  34.     if len(legrövidebb_sms[4])>len(i[4]):
  35.         legrövidebb_sms=i
  36. print('Leghosszabb sms:\n {0}. {1:0>2}:{2:0>2} {3} {4}\n'.format(*leghosszabb_sms))
  37. print('Legrövidebb sms:\n {0}. {1:0>2}:{2:0>2} {3} {4}\n'.format(*legrövidebb_sms))
  38.  
  39.  
  40. print('\n4.feladat megoldása:')
  41. for mettől,meddig in (1,20),(21,40),(41,60),(61,80),(81,100):
  42.     számoló=0
  43.     for i in smsek:
  44.         if mettől-1<len(i[4]) and meddig+1>len(i[4]):
  45.             számoló+=1
  46.     print('{0:>3}-{1:>3} := {2:>3}'.format(mettől,meddig,számoló))
  47.  
  48.  
  49. print('\n5.feladat megoldása:')
  50. eredmény=0
  51. for i in range(1,24):
  52.     számoló=0
  53.     for j in smsek:
  54.         if (j[1]==i and j[2]!=0) or (j[1]==i-1 and j[2]==0):
  55.             számoló+=1
  56.     if számoló>telefon_memóriája:
  57.         eredmény+=számoló-telefon_memóriája
  58. print('\n{0} sms miatt kellene hívni a szolgáltatót \n'.format(eredmény))
  59.  
  60.  
  61. print('\n6.feladat megoldása:')
  62. leghosszabb_idő=0
  63. érkező_smsek_ideje_percben=[]
  64. telefonszám='123456789'
  65. for i in smsek:
  66.     if i[3]==telefonszám:
  67.         érkező_smsek_ideje_percben.append(i[1]*60+i[2])
  68. if len(érkező_smsek_ideje_percben)<2:
  69.     print('\nNincs elegendő üzenet \n')
  70. else:
  71.     for i in range(1,len(érkező_smsek_ideje_percben)):
  72.         aktuális_különbség=érkező_smsek_ideje_percben[i]-érkező_smsek_ideje_percben[i-1]
  73.         if leghosszabb_idő<aktuális_különbség:
  74.             leghosszabb_idő=aktuális_különbség                    
  75. print('\n{0} óra {1} perc volt a leghosszabb idő két sms között ami a {2} telefonszámról jött \n'.
  76.       format(int(leghosszabb_idő/60),leghosszabb_idő%60,telefonszám))
  77.  
  78.  
  79. print('\n7.feladat megoldása:\n')
  80. adatok=('óra: ','perc: ','telefonszám: ','sms szövege: ')
  81. sms=[]
  82. for i in adatok:
  83.     sms.append(input(i))
  84. elem=[len(smsek)+1,sms[0],sms[1],sms[2],sms[3]]
  85. smsek.append(elem)
  86. print('Eltárolva: {0}, '.format(elem))
  87.  
  88.  
  89. print('\n8.feladat megoldása:\n')
  90. kiírni=open('smski.txt','w')
  91. telefonszámok=[]
  92. for i in smsek:
  93.     if telefonszámok.count(i[3])==0:
  94.         telefonszámok.append(i[3])
  95. telefonszámok=sorted(telefonszámok)
  96. for i in telefonszámok:
  97.     sor='{0}\n'.format(i)
  98.     kiírni.write(sor)
  99.     print(sor[:-1])
  100.     for j in smsek:
  101.         if j[3]==i:
  102.             sor='  {0:0>2}:{1:0>2} {2}\n'.format(j[1],j[2],j[4])
  103.             kiírni.write(sor)
  104.             print(sor[:-1])
  105. kiírni.close()
RAW Paste Data