Kezdőoldal » Számítástechnika » Programozás » Euklidészi algoritmusban...

Euklidészi algoritmusban hogyan lehet átírni, ha megvan a pszeudo? (C#)

Figyelt kérdés

Nemrég kezdtem programozni, az egyik érettségiben megakadtam. Ezt az algoritmust kéne átírnom egy függvénybe.

"Függvény lnko(a, b : egész számok) : egész szám

ha a=b akkor lnko := a

ha a<b akkor lnko := lnko(a, b-a)

ha a>b akkor lnko := lnko(a-b, b)

Függvény vége"


Azzal nincs gondom, amikor 1 értékkel kell visszatérni de ilyennel még nem találkoztam, hogy 2-vel kéne. Valaki tudna ebben segíteni?

Előre is köszönöm !



2013. máj. 1. 17:17
 1/5 anonim ***** válasza:

Hogy érted, hogy 2-vel kéne? Itt is csak egy értékkel tér vissza. Csak a<b illetve a>b esetben rekurzívan meghívja saját magát.


Egyébként, ha mindenáron 2 értékkel akarsz visszatérni, akkor hozz létre egy rekord típust vagy osztályt, vagy C#-ban lehet vannak ilyen kidolgozott dolgok, hogy Pair, vagy ilyesmi. Vagy ami a legegyszerűbb: tömb.

2013. máj. 1. 18:21
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:
71%
Azok ott fenn argumentumok. Fogalmam sincs mi a kérdés...
2013. máj. 1. 18:26
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:

A C# szintaxisát kell használnod.

A C# a visszatérési értéket a függvény előtt jelzi. Az egész szám jele: int

Ezután a függvény neve, majd zárójelben a paraméterek.

A függvény törzse kapcsos zárójelben van. Miután kitetted őket, törölheted a függvény-függvény vége szavakat.

Összehasonlításokban = helyett az ==-t használja. Erre később is figyelned kell majd. A := helyett =-t használ.

A feltételeket tedd zárójelbe, különben csak hibaüzeneteket kaphatsz.

A ha szavak helyett írj if-eket, és az akkor-okat törölheted.

A bezáró zárójel elé írd ki, hogy return lnko, különben csak nézel, hogy hol hol a hiba.

Készen is van.

2013. máj. 1. 20:49
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:

Ahogy azt írták előttem is, nincs több visszatérési érték, ez egy rekurzív függvény


class Program

{

static void Main(string[] args)

{

Console.WriteLine(lnko(128, 56));

Console.Read();

}


public static int lnko(int a, int b)

{

if (a == b)

return a;

else if (a < b)

return lnko(a, b - a);

else

return lnko(a - b, b);

}

}

2013. máj. 2. 13:33
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:
Köszönöm a válaszokat! Igen, a szintaxissal volt a probléma...:)
2013. máj. 3. 10:01

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!