Keresés

Új hozzászólás Aktív témák

  • trisztan94

    őstag

    válasz metrion #5012 üzenetére

    Ajánlom figyelmedbe Reiter István C# jegyzetét, abban benne vannak ezek elég érthető módon.

    Azért leírom a maximum kiválasztás és kétdimenziós tömbök lényegét, elméleti alapon:

    Van egy tömböd, legyen most kétdimenziós. Annak van x és y értéke. Az x a sorokat, az y az oszlopokat jelöli. A legcélszerűbb úgy haladni, hogy végigmész egy sor összes oszlopán, majd mész a következő sorra.

    Tehát pl, ha a tömböd [5,5] nagyságú, akkor az azt jelenti, hogy 5 sor és 5 oszlop van benne. Kicsit olyasmi, mint az aknakereső felépítése, ott is sorokra és oszlopokra van felosztva a játéktér.

    Na most azért kell neked 2 for ciklus, mert az egyikkel a sorokat, a másikkal pedig az oszlopokat lépteted. A külső ciklus a sorokat, a belső az oszlopokat.

    for (int i = 0; i< 5; i++)
    {
    //ez a külső ciklusod.
    for (int j = 0; j < 5; j++)
    {
    //ez a belső ciklusod
    }
    }

    Elkezdi a for ciklust, beállítja a sorszámot nullára, majd belép az első oszlopba a belső ciklussal, ott végrehajt egy műveletet, majd növeli a sorszámot egyel.

    Na, így durván ennyi a kétdimenziós tömb lényege. Most vegyük át a maximum kiválasztást, ami baromi egyszerű. Az a lényeg, hogy megnézzük, hogy az oszlop értéke amiben vagyunk nagyobb-e a mi változónknál.

    pl.

    változónk értéke 100

    itt a tömb, ahol tömb = [2,5], tehát 2 sor és 2 oszlop

    1.sor
    1. oszlop érték = 95. kisebb, mint 100, átugorjuk
    2. oszlop érték 150. Nagyobb, mint 100, beálltjuk a változónk értékét erre az értékre (tehát változó = tömb[i,j])
    3. oszlop érték 70. Nem nagyobb, átugorjuk
    4. oszlop 1000. Nagyobb, berakjuk a változó értékének
    5. oszlop 80 és ez így folytatódik tovább
    2. sor
    1. oszlop 50
    2. oszlop 12
    3. oszlop 06
    4. oszlop 343
    5. oszlop 34

    Tényleges kódban:

    int tomb[,] = new int[2,5];
    int max = 0;

    for(int i = 0; i < 2; i++)
    {
    for (int j = 0; j < 5; j++)
    {
    if(max > tomb[i,j])
    {
    max = tomb[i,j];
    }
    }
    }

    lehetnek benne elírások, de valahogy így néz ki.

    Remélem mostmár világosabb :K

Új hozzászólás Aktív témák

Hirdetés