• 2 hét telt el az utolsó módosítás óta
  • 3perc
  • 517szó
  • 37olvasás

Szállítás

2023. október – középszint – Digitális kultúra

Adott egy sorrend, adott egy maximális doboztömeg (20 kg), és nem lehet átrendezni a tárgyakat. Sorban pakolunk, ha a következő már nem fér bele, új doboz indul.

Ez egy klasszikus „greedy” (kapzsi) feladat, de vizsgán sokan elrontják apróságokon.

Tipikus buktatók

1. ❌ Átrendezés (súly szerint pakolás)

  • Nem szabad optimalizálni.

  • Nem a lehető legkevesebb doboz kell, hanem a szabályok szerinti.

  • Ha valaki rendez, az automatikusan hibás megoldás.

👉 Javaslat: mindig hangsúlyozd magadban: „sorban érkeznek”.


2. ❌ Rossz pillanatban zárja le a dobozt

Gyakori hiba:

  • előbb hozzáadja a tárgyat,

  • csak utána veszi észre, hogy túllépte a 20 kg-ot.

👉 Javaslat:
Mindig előre gondolkodj:

  • „Ha ezt hozzátenném, beleférne még?”


3. ❌ Az utolsó doboz kimarad

Sokan:

  • csak akkor „mentik el” a dobozt, amikor túlcsordul,

  • az utolsó, még nyitott dobozt elfelejtik hozzáadni az eredményhez.

👉 Javaslat:
A ciklus végén mindig gondold végig, hogy van-e még „félig tele” doboz.


4. ❌ Össztömeg és doboztömeg összekeverése

  • A 2. feladat: összes tárgy tömege

  • A 3. feladat: dobozonkénti tömegek

Sokan:

  • ugyanazt az értéket használják mindkettőre,

  • vagy a dobozok összegét számolják újra feleslegesen.

👉 Javaslat:
Az össztömeg független a dobozolástól — egyszer számold ki, külön.


5. ❌ Nem általános megoldás

A feladat külön kiemeli:

„akkor is helyes megoldást adjon, ha a tömegek értékét módosítjuk”

Buktató:

  • beégetett dobozszám,

  • feltételezés, hogy mindig 15 elem van,

  • „kézzel” számolt határok.

👉 Javaslat:
A program csak a listára és a határértékre támaszkodjon, semmi másra.


6. ❌ Kimeneti forma pontatlansága

Gyakori hibák:

  • hiányzik a „2. feladat”, „3. feladat” felirat,

  • rossz szöveg,

  • rossz sorrend,

  • extra vagy hiányzó szóköz.

👉 Javaslat:
A mintát nem inspirációnak, hanem sablonnak tekintsd.

using System;

class Program
{
static void Main()
{
// 1. feladat: Tömegek tárolása
int[] tomeg = { 16, 8, 9, 4, 3, 2, 4, 7, 7, 12, 3, 5, 4, 3, 2 };
int n = 15;

// 2. feladat: Össztömeg
int ossztomeg = 0;
for (int i = 0; i < n; i++)
{
ossztomeg += tomeg[i];
}
Console.WriteLine("2. feladat");
Console.WriteLine("A targyak tomegenenek osszege: " + ossztomeg + " kg");

// 3. feladat: Dobozolás
int[] dobozok = new int[15]; // Max 15 doboz lehet
int dobozokSzama = 0;
int aktualisDoboztomeg = 0;

for (int i = 0; i < n; i++)
{
// Ha a tárgy belefér az aktuális dobozba
if (aktualisDoboztomeg + tomeg[i] <= 20)
{
aktualisDoboztomeg += tomeg[i];
}
else
{
// Lezárjuk az aktuális dobozt
dobozok[dobozokSzama] = aktualisDoboztomeg;
dobozokSzama++;
// Új dobozt kezdünk
aktualisDoboztomeg = tomeg[i];
}
}
// Az utolsó dobozt is lezárjuk
dobozok[dobozokSzama] = aktualisDoboztomeg;
dobozokSzama++;

// Kiírás
Console.WriteLine("\n3. feladat");
Console.Write("A dobozok tartalmának tomege (kg): ");
for (int i = 0; i < dobozokSzama; i++)
{
Console.Write(dobozok[i]);
if (i < dobozokSzama - 1)
Console.Write(" ");
}
Console.WriteLine();
Console.WriteLine("A szukseges dobozok szama: " + dobozokSzama);
}
}

Hogyan értékeli a posztot?

Kattins a megfelelő csillagra!

Átlagpontszám 0 / 5. Értkelés 0

Még nem értékeltél!

Vélemény, hozzászólás?