
Szállítás
Szállítás
szallitas.py
digitális kultúra középszint
1. feladat: Tárgyak tömegének tárolása
Kód:
tomegek = [16, 8, 9, 4, 3, 2, 4, 7, 7, 12, 3, 5, 4, 3, 2]
Magyarázat:
- A tárgyak tömegét egy listában (tomegek) tároljuk. Minden elem egy tárgy tömegét jelöli.
- Azért választunk listát, mert így egyszerűen, sorrendben feldolgozhatjuk az adatokat, és számtani műveleteket végezhetünk rajtuk.
- Például:
- Az első tárgy tömege: 16 kg.
- Az utolsó tárgy tömege: 2 kg.
2. feladat: Össztömeg kiszámítása
Kód:
ossztomeg = sum(tomegek)
print(f"A tárgyak tömegének összege: {ossztomeg} kg")
Magyarázat:
- Az össztömeget a sum() beépített függvénnyel számoljuk ki. Ez a függvény végigmegy a lista elemein, és összeadja őket.
- Példa számítás:
- 16 + 8 + 9 + 4 + 3 + 2 + 4 + 7 + 7 + 12 + 3 + 5 + 4 + 3 + 2 = 89
- Az eredményt egy szöveges üzenettel kiírjuk a képernyőre:
- "A tárgyak tömegének összege: 89 kg."
3. feladat: Dobozok tartalmának meghatározása
Kód:
dobozok = []
aktualis_doboz = 0
for tomeg in tomegek:
if aktualis_doboz + tomeg <= 20: # Ha még belefér az aktuális dobozba
aktualis_doboz += tomeg
else:
dobozok.append(aktualis_doboz) # Lezárjuk az aktuális dobozt
aktualis_doboz = tomeg # Új dobozt kezdünk az aktuális tömeggel
if aktualis_doboz > 0:
dobozok.append(aktualis_doboz) # Hozzáadjuk az utolsó dobozt
Magyarázat:
- dobozok: Egy üres listát hozunk létre, amelybe az egyes dobozok össztömegét tároljuk.
- aktualis_doboz: Egy változó, amely az éppen csomagolt doboz össztömegét tartja nyilván.
- Algoritmus:
- Végigmegyünk a tárgyak listáján.
- Ha az aktuális tárgy befér az aktuális dobozba (össztömeg ≤ 20 kg):
- Hozzáadjuk a tömegét az aktuális dobozhoz.
- Ha nem fér be:
- Lezárjuk az aktuális dobozt (hozzáadjuk a dobozok listához).
- Új dobozt kezdünk a tárgy tömegével.
- Utolsó doboz hozzáadása:
- A ciklus végén ellenőrizzük, hogy van-e még megmaradt tömeg az utolsó dobozban. Ha igen, azt is hozzáadjuk a dobozok listához.
Kimenet formázása:
print(f"A dobozok tartalmának tömege (kg): {' '.join(map(str, dobozok))}")
print(f"A szükséges dobozok száma: {len(dobozok)}")
- Dobozok tartalma:
- A map(str, dobozok) függvény a számokat szöveggé alakítja, hogy kiírhassuk őket.
- A ' '.join(...) összefűzi a szövegeket egy szóközzel elválasztva.
- Dobozok száma:
- A len(dobozok) a listában lévő elemek (dobozok) számát adja meg.
- Példa kimenet:
- "A dobozok tartalmának tömege (kg): 16 17 20 19 17"
- "A szükséges dobozok száma: 5"
Példa:
Input:
Tárgyak tömege:
[16, 8, 9, 4, 3, 2, 4, 7, 7, 12, 3, 5, 4, 3, 2]
Output:
2. feladat
A tárgyak tömegének összege: 89 kg
3. feladat
A dobozok tartalmának tömege (kg): 16 17 20 19 17
A szükséges dobozok száma: 5
tomegek = [16, 8, 9, 4, 3, 2, 4, 7, 7, 12, 3, 5, 4, 3, 2]
print("2. feladat")
ossztomeg = sum(tomegek)
print(f"A tárgyak tömegének összege: {ossztomeg} kg")
print("3. feladat")
dobozok = []
aktualis_doboz = 0
for tomeg in tomegek:
if aktualis_doboz + tomeg <= 20:
aktualis_doboz += tomeg
else:
dobozok.append(aktualis_doboz)
aktualis_doboz = tomeg
if aktualis_doboz > 0:
dobozok.append(aktualis_doboz)
print(f"A dobozok tartalmának tömege (kg): {' '.join(map(str, dobozok))}")
print(f"A szükséges dobozok száma: {len(dobozok)}")