Kezdőoldal » Számítástechnika » Programozás » Kellene egy kis segítség egy...

Kellene egy kis segítség egy C#-ban megoldandó feladathoz. Sajnos eddig nem igen tanultam ezen a nyelven programozni. Elvileg, csak 4-5 metódus lenne az egész feladat. Tudna segíteni benne valaki?

Figyelt kérdés
2012. nov. 26. 14:02
 1/4 anonim ***** válasza:
Ha leírod, segítünk.
2012. nov. 26. 14:10
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

Fel kellene töltenem egy 2 dimenziós tömböt számokkal. Aztán végig kellene menni a tömbön és megkeresni azt a két értéket hol a legnagyobb a különbség (de ez lehet felette is és alatta is a tömbben)

Végül pedig rekurzióval el kellene jutni a legkisebb elemtől a legnagyobbig, úgy hogy csak mindig nagyobb értékű helyre léphetek.

2012. nov. 26. 14:17
 3/4 anonim ***** válasza:

Valami ilyesmire gondoltál? Ha igen jössz egy sörrel ;)


class Program

{

static int[,] numbers = new int[5, 5]; //Ebbe vannak a számok

static void Main(string[] args)

{

Random rnd = new Random();

//Számok feltöltése és kiiratása

for (int i = 0; i < 5; i++)

{

for (int j = 0; j < 5; j++)

{

numbers[i, j] = rnd.Next(10, 99);

Console.Write(numbers[i, j] + " ");

}

Console.Write("\n");

}

Console.Write("\n");

int min, max;

min = max = numbers[0, 0];

//Minimum és maximum keresés

for (int i = 0; i < 5; i++)

{

for (int j = 0; j < 5; j++)

{

if (numbers[i, j] < min)

{

min = numbers[i, j];

}

else if (numbers[i, j] > max)

{

max = numbers[i, j];

}

}

}

Console.WriteLine(String.Format("A legkisebb elem: {0}, a legnagyobb elem: {1}", min, max));

Console.WriteLine();

Console.Write("Számok bejárása növekvő sorrendben: ");

//rekurzív bejárás

NextNumber(min, -1, -1);

Console.Read();

}


public static void NextNumber(int currentValue, int currentI, int currentJ)

{

int ii = -1;

int jj = -1;

int nextNumber = -1;

//Végignézem a tömböt, hogy van-e nagyobb vagy egyenlő érték mint az aktuális

for (int i = 0; i < 5; i++)

{

for (int j = 0; j < 5; j++)

{

int act = numbers[i, j];

if (act >= currentValue)

{

//Ha egyenlő

if (act == currentValue)

{

//Ha egyelő, akkor figyelni kell, hogy az indexek csak az aktuális utáni értékeket nézze, hogy egy elemet ne vegyen többször

if ((nextNumber == -1 || act < nextNumber) && (i > currentI || (i == currentI && j > currentJ)))

{

nextNumber = act;

ii = i;

jj = j;

}

}

else

{

if (nextNumber == -1 || nextNumber > act)

{

nextNumber = act;

ii = i;

jj = j;

}

}

}

}

}

//Ha volt nagyobb vagy egyenlő érték, akkor kiírjuk és meghívjuk a fv-t az aktuális értékkel és pozícióval

if (nextNumber != -1)

{

Console.Write(nextNumber + "; ");

NextNumber(nextNumber, ii, jj);

}

}

}

2012. nov. 30. 11:00
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Igen:D Ilyesmit szerettem volna:D Köszönöm szépen!:D Megérdemelsz ezért akár még két dobozzal is:D
2012. dec. 1. 09:56

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!