Kezdőoldal » Számítástechnika » Programozás » Mivel rosszabb az én megoldáso...

Mivel rosszabb az én megoldásom mint a tanáré?

Figyelt kérdés

Kíváncsi vagyok, mivel rosszabb az én megoldásom, mert nem fogadta el, pedig tökéletesen működik:

Tanár verzió:

listBox1.Items.Clear();

string[] metszet = new string[100];

int l = 0;

int o = 0;

int mdb = 0;

while (l < kal && o < mag)

{

if (kalium[l].CompareTo(magnezium[o]) < 0)

{

l++;

}

else if (kalium[l].CompareTo(magnezium[o]) > 0)

{

o++;

}

else

{

metszet[mdb] = kalium[l];

mdb = mdb + 1;

l++;

o++;

}

}

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

{

listBox1.Items.Add(metszet[i]);

}

}



Az én verzióm:


listBox1.Items.Clear();

string[] metszet = kalium.Intersect(kalcium).ToArray();

Array.Sort(metszet);

for (int i = 0; i < metszet.Length-1; i++)

{

if (metszet[i]!=null)

{

listBox1.Items.Add(metszet[i]);

}


}



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



2015. márc. 8. 14:40
 1/9 Szirty ***** válasza:
77%

Attól is függ mi volt a feladat amire ez a megoldás :-D


Egyébként gyakori hogy a tanár csak olyan megoldást fogad el amilyet előre elvár. Alternatív megoldást pedig nem, hiába felel meg megoldásaként.

2015. márc. 8. 15:09
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:

Annyi volt, hogy be kellett olvasni négy fájlból tömbökbe az adatokat, és 2 tömbnek a metszetét rendezve ki kellett írni.


Ő előre rendezi a tömböket azért nincs benne a bemásolt kódban, én meg csak a metszetet rendezem.

2015. márc. 8. 15:15
 3/9 anonim ***** válasza:
69%
ahogy az első is írta sokszor ok nélkül nem fogadják el.. nekem is volt már hogy egy fél programot átíratott velem mert ő nem úgy gondolta
2015. márc. 8. 15:39
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:
100%
Gondolom azért, mert implementálni kellett volna a metszetet és a rendezést, nem meghívni a beépített metódusokat, mert ezutóbbi módon semmit nem gyakorolsz, nem forognak az agykerekeid.
2015. márc. 8. 16:37
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:
100%

A megoldásod jó: C#-ban, vagy olyan környezetben, ahol van Intersect művelet implementálva az adott adatszerkezetnek, amit használsz. De eleinte, amikor elkezdesz programozni az a fontos, hogy a legelemibb utasításokból tudd felépíteni a dolgokat, hogy később más nyelveken, adatszerkezetekkel is könnyen boldogulj. Majd ha már kisujjból tudod implementálni magadtól is, akkor nyugodtan használhatod.

De amúgy ha nagyon kötekedni akarunk még, akkor a tanárod verziójának kisebb a művelet/memóriaigénye, mert amikor azt mondod, hogy kalium.Intersect(kalcium).ToArray();, akkor lefoglal egy külön memóriaterületet a metszetnek és ebben gyűjti bele az elemeket, ez valamilyen IEnumerable típus lesz, majd, amikor a ToArray-el ezt tömbbé alakítod, akkor megint átmásolja az adatokat valahova máshova egy tömbbe.

Aztán amit még tökéletesíteni lehetne a kódban az a tabulálás, illetve a változónevek elnevezése sem az igazi, de ezek mindkét kódra igazak.

2015. márc. 8. 18:09
Hasznos számodra ez a válasz?
 6/9 A kérdező kommentje:

Tabulálva volt, csak a gyk kitörölte őket, és így rakta ki.


Egyébként mitől lesz egy változó név jó? Persze, hogy nem magyarul írjuk, de ezen kívül?

2015. márc. 8. 18:31
 7/9 anonim ***** válasza:
100%

Ebben a könyvben részletesen leírja:

[link]

Egyébként igen, célszerűen angolul van, illetve ránézve egyből látja az is, aki nem ismeri a kódot, hogy mit tárolsz benne, ergo az l, o, i stb. változónevek nem igazán célszerűek

2015. márc. 8. 18:43
Hasznos számodra ez a válasz?
 8/9 A kérdező kommentje:

Igen, azokat az o,l indexeket en is néztem, de mint mondtam az nem az én kódom.

Köszönöm a linket!

2015. márc. 8. 19:16
 9/9 anonim ***** válasza:
sztem is azzal van a baj h te csak meghívtad a sort fv-t és nem magadtól rendezed(igazából melóban sem fogtok ilyen ciklusos szarokkal foglalkozni, array.sort és mehetsz)
2015. márc. 12. 01:34
Hasznos számodra ez a válasz?

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!