1 automata=[]
2 vasarlas=[]
3 ermek=[1,2,5,10,20,50,100]
4 # 1. feladat - adatok beolvasása
5 with open('csoki.txt','r') as fbe:
6 elso_sor=int(fbe.readline().strip()) # ez nekünk nem kell majd semmire
7 for sor in fbe:
8 sor=sor.strip().split()
9 sor=list(map(int,sor)) # minden adat egész szám
10 automata.append(sor)
11 fbe.close()
12 with open('vasarlas.txt','r') as fbe:
13 elso_sor=int(fbe.readline().strip()) # ez nekünk nem kell majd semmire
14 for sor in fbe:
15 sor=sor.strip().split()
16 sor=list(map(int,sor)) # minden adat egész szám
17 vasarlas.append(sor)
18 fbe.close()
19 # 2. feladat - automata összértéke
20 print('2. feladat')
21 ertek=0
22 for rekesz in automata:
23 ertek+=rekesz[1]*rekesz[2] # db * ár
24 print(f'Az automatában {ertek} fabatka értékű csokoládé van.')
25
26 #3. feladat
27 print('3. feladat')
28 rekeszek=set() # halmazba gyűjtjük a rekeszszámokat
29 for vetel in vasarlas:
30 rekeszek.add(vetel[0])
31 print('Ezekből a rekeszekből próbáltak vásárolni:')
32 for rekesz in rekeszek: # halmaz eleminek kiírása
33 print(rekesz,end=' ')
34 print()
35
36 # 4. feladat - 7 db egyforma csokoládé vásárlása valamennyi pénzért
37 print('4. feladat')
38 penz=int(input('Mennyi fabatkád van? '))
39 db=7
40 print('Választható rekeszek:',end=' ')
41 for rekesz in automata: # ha van elég csoki a rekeszben és
42 if rekesz[1]>=db and penz>=(db*rekesz[2]): # elég a pénz is...
43 print(rekesz[0],end=' ')
44 print()
45
46 # 5. feladat -
47 # valamely rekeszből valamennyi csoki vásárlása, optimális címletezéssel
48 print('5.feladat')
49 r=int(input('Kérem a rekesz sorszámát: '))-1 # sorszám, index viszonya
50 db=int(input('Hány darab csokit szeretne: '))
51 print(f'Csoki ára: {automata[r][2]} fabatka')
52 ertek=automata[r][2]*db # ennyi db-ért ennyit fizet
53 print(f'Fizetendő: {ertek} fabatka')
54
55 # címletezes
56 cimletezes=[]
57 for cimlet in reversed(ermek): # a legnagyobb címlettől indulunk
58 c_db=ertek//cimlet # hány egészszer fér bele a címlet
59 ertek=ertek%cimlet # a többi címlet a maradékkal megy majd tovább
60 print(f'{cimlet} fabatkás: {c_db}')
61
62 # 6. feladat - 7. rekeszből történő vásárlások elemzése (képernyőre is)
63 print('6. feladat')
64 r=7
65 indulo_db=automata[r-1][1] # ennyi csoki van kezdetben a rekeszben
66 ar=automata[r-1][2] # ennyibe kerül egy csoki
67 with open('rekesz7.txt','w') as fki:
68 for ssz,vetel in enumerate(vasarlas,start=1):
69 if vetel[0]==r: # 7. rekeszről van szó
70 if vetel[1]<=indulo_db: # van még benne elég csoki
71 indulo_db-=vetel[1] # csökkentjük a darabszámot
72 fizet=0 # fizetendő meghatározása
73 for i in range(2,9):
74 fizet+=vetel[i]*ermek[i-2]
75 if fizet>=ar*vetel[1]: # elég pénzt dobott be
76 print(f'{ssz}\t{vetel[1]}')
77 print(f'{ssz}\t{vetel[1]}',file=fki)
78 else:
79 print(f'{ssz}\tnem volt elég pénz')
80 print(f'{ssz}\tnem volt elég pénz',file=fki)
81 else:
82 print(f'{ssz}\tkevés a csoki')
83 print(f'{ssz}\tkevés a csoki',file=fki)
84 fki.close()
85
86
87
88
89