szallitas202310_DK_KSZ.py
1    from random import randint,choice
2    # tesztelési célokra használható az alábbi lista
3    
4    tomegek=[]
5    for i in range(15):
6        felsohatar=20 if choice([1,2,3])==1 else 10
7        tomegek.append(randint(1,felsohatar))
8        
9    # tomegek=[16, 8, 9, 4, 3, 2, 4, 7, 7, 12, 3, 5, 4, 3, 2]   # ez volt a forrásban
10   targyak_szama=len(tomegek)
11   print('Tömegek:',end=' ')
12   [print(tomeg,end=' ') for tomeg in tomegek]
13   
14   print('\n2. feladat')
15   print(f'A tárgyak tömegének összege: {sum(tomegek)} kg')
16   
17   print('3. feladat')
18   dobozok=[]
19   egy_doboz=0     # egy doboz üres állapottal "indul"
20   for tsz,tomeg in enumerate(tomegek,start=1):
21       if egy_doboz+tomeg<=20: # ha az aktuális tárgy beletehető egy dobozba,
22           egy_doboz+=tomeg    # akkor beletesszük (+)
23       else:                   # ha nem, akkor
24           dobozok.append(egy_doboz)   # előző dobozt a dobozokba helyezzük és
25           egy_doboz=tomeg             # az aktuális tárggyal új dobozt kezdünk
26           
27       # ez a részprobléma sokféleképpen megoldható
28       if tsz==targyak_szama:          # ha utolsó tárgyról van szó
29           dobozok.append(egy_doboz)   # akkor az ő dobozát is tegyük a dobozokba
30   
31   print('A dobozok tartalmának tömege (kg):',end=' ')
32   [print(doboz,end=' ') for doboz in dobozok]
33   print(f'\nA szükséges dobozok száma: {len(dobozok)}')
34           
35       
36