Tudnátok segíteni, a beadandómmal? Elakadtam benne.
bszolút kezdő vagyok és ezt péntek estig meg kellene csinálnom. De engem nem izgat a programozás csak kötelező tantárgy. Adott a feladat:
Egy N résztvevőjű kutya-szépségverseny M különböző szempont szerint pontoznak, a az eredményt a kutya[n,m] mátrix tartalmazza. Minden szempont alapján maximum MAX(i) pontot adhatnak( nem negatív egész számok 1<=i<=M). A versenyből automatikusan kiesik az a kutya, amelyik valamely kategóriában nem éri el a kategóriánként megadott alsó ponthatárt (also(i)).
N tetszőleges érték 5 és 10 között.
M = 3 és 5 között
A szempontonkénti maximum (MAX) értékek tetszőleges egész számok 10 és 100 között
A kategóriák alsó ponthatárai a MAX értékek függvényében adandóak meg.
A feladatnak része a szükséges tesztadatok kialakítása (txt formátumú fájlokban). Kérem a forráskód mellett ezeket is adják be.
Készítsen algoritmust és programot a következő feladat elvégzésére:
Adjuk meg azoka ta kutyákat amelyik egy kategóriába sem nyertek, de elérték az alsó pontszámot mindenhol.
Eddig meg van a mátrixom, de a also,MAX-al nem tudok mit kezdeni.
Így állok eddig:
Én még életemben nem láttam ékezetes függvényneveket kódban :)
Szerintem ez egy szükségtelenül túlbonyolított feladat. Na mindegy...
Az első dolog, hogy megértsd, hogy miről van szó. (Enélkül biztosan nem fogod tudni leprogramozni.)
Vannak kutyák, és vannak szempontok. Egy adott kutya minden egyes szempont szerint kap valahány pontot.
Pl: 10 kutya van és 3 szempont. Ebben az esetben az első kutya pontjai:
Kutya(1): szempont(1)=3, szempont(2)=15, szempont(3)=0
Kutya(2): szempont(1)=7, szempont(2)=0, szempont(3)=4
és így tovább az összes kutyára
Nehezíti a megértést, hogy nincs egyértelműen megadva, hogy az egyes szempontokra adható minimum és maximum pontszám honnan ered. Felteszem, hogy többek között ezt kéne a "tesztadatokat" tartalmazó file-ból kinyerni.
Szerintem egyszerűsíts a feladaton. Előbb oldd meg az egyszerűbb, érthetőbb feladatot, azután bonyolítsd a különböző kritériumoknak megfelelően.
Pl:
int Minimumok[] = { 3, 10, 2}; /* itt most 3 szempont van */
int Maximumok[] = { 10, 100, 20}; /* a maximumoknak 10 és 100 között kell lenniük */
public int MAX(int i)
{
/* ide rakhatsz majd hibakezelést, ha i nem megfelelő */
return Maximumok[i]; /* a maximumokat tartalmazó tömböt később majd lehet a teszt file-ból feltölteni */
}
public int also(int i)
{
/* hibakezeles... */
return Minimumok[i]; /* azt írja a feladat, hogy az alsó ponthatár a MAX adható ponttól függ, de azt nem írja, hogyan. Később lehet pl: return MAX(i) / 10; */
}
Szerintem a kutyák eredményeit tartalmazó mátrixot is érdemes az elején fix értékekkel feltölteni a véletlen számok helyett, hogy könnyebben tudj hibát keresni majd a kódodban.
Van még egy olyan feladat, hogy össze kell gyűjteni egy listába azokat a kutyákat, akik nem nyertek egyik kategóriában sem, de mindenhol elérték a minimumot.
Ehhez végig kell menni egy ciklussal az összes kutyán, és egy listába (hívjuk eredménylistának) kigyűjteni azokat, akik minden kategóriában elérték a minimum ponthatárt. Ezután a listából ki kell dobálni az adott kategória győzteseit (ehhez kategóriánként végig kell menni a kutyákon, és megkeresni, hogy kié a legnagyobb pontszám).
Nem illik "menet közben" törölni elemeket abból a listából, amin éppen iterál az ember, ezért célszerű a nyertes kutyák azonosítóját (sorszámát) egy újabb listában gyűjtögetni. Ha ez megvan, csak végig kell menni (hátulról előre!!!) a győztesek listáján, és a győztes sorszámú kutyákat törölni az eredménylistából.
Azért kell hátulról végigmenni a győztesek listáján, mert amikor törölsz egy elemet az eredménylistából, akkor a mögötte lévő elemek indexe (sorszáma) megváltozik (csökken eggyel), így a győzteseket tartalmazó listád innentől kezdve hibás sorszámokat tartalmazna.
Remélem, segítettem.
Szerintem ha jól megoldasz egy egyszerűsített feladatot, az többet ér, mint ha a bonyolult feladatot egyáltalán nem tudod megoldani. Ha az egyszerű már kész, akkor (biztonsági másolat készítése után!) ha marad időd tovább bonyolíthatod az eddig kihagyott dolgokkal.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!