Kezdőoldal » Számítástechnika » Programozás » Hogyan kellene megoldani a...

Hogyan kellene megoldani a 7-es illetve 8-as feladatot? (c#)

Figyelt kérdés

Magán az egész feladatsoron sokat gondolkoztam, hogy össze tudjam egyáltalán ezt hozni, de a 7-es/8-asra csak if-es megoldás jut eszembe, viszont gondolom biztos meg lehet rövidebben is oldani. Neten az aggregate függvényt találtam esetleges megoldásra, viszont nem tudtam rájönni, hogy jelen esetben hogyan is kéne használnom. Tudnátok esetleg segíteni?


[link]


(ui.:Tudom, hogy a kódom tele van felesleggel és sallanggal/túlbonyolítással nem mellesleg átláthatatlan lehet másoknak, de jelenleg ez az amire egyedül képes vagyok, viszont az építő kritikát szívesen fogadom, ha van)


[link]


2019. máj. 15. 21:33
1 2
 1/12 A kérdező kommentje:
*az első 2 feladatot már átjívítottam és elvileg jók is a megoldások, csak már nem tudom módosítani a kódot, újrafeltölteni meg csak emiatt nem akarom, ah úgyse azokon a feladatokon van a hangsúly
2019. máj. 16. 00:25
 2/12 anonim ***** válasza:
Ilyenkor amit használni szoktunk, az a switch.
2019. máj. 16. 04:08
Hasznos számodra ez a válasz?
 3/12 A kérdező kommentje:
Arra is gondoltam igen, de itt az a baj intervallumok kellenének a switch-hez, nem konkrét számok
2019. máj. 16. 09:57
 4/12 anonim ***** válasza:
100%

7: Az if teljesen jó az intervallumokhoz.

8: Ez meg egy for ciklus, de előtte a tömbödet sorba kell rendezni, nap és azon belül fuvarszám szerint.

Az aggregate függvényt egyiknél se tudod használni, nem is ártem hogy jutott eszedben.

Elég lenne egyszer beolvasni a fájlt.

A beolvasas osztály nekem teljesen feleslegesnek tűnik.

2019. máj. 16. 14:55
Hasznos számodra ez a válasz?
 5/12 A kérdező kommentje:

? hol látod, hogy 2x olvastam volna be?


Egyébként a 7-est azt sikerült megoldanom végül egy switchel ahol egy case pl így néz ki


case var tav when (uthossz >= 1 && uthossz <= 2):

fizetes = 500;

break;



A 8-ast így utólag én már úgy próbálkoztam egcsinálni, hogy az eddigi feladatokkat is, azaz linq-val. Előszőr létrehozok egy var-t ami meghatározza a legkisebb napot ami előfordul a szövegállományban majd indítok egy forciklust "i"-vel ami a minimum naptól indul és a maximumig tart. Ezután csinálok még 2 var-t ahol meghatározom az adott naphoz a minimum és a maximum var-t is.


var minnap = t.Min(x => x.nap);


for (int i = minnap; i <= maxnap; i++)

{

var maxfuv = t.Where(x => x.nap == i).Select(x => x.fuvarszam).Max();

var minfuv = t.Where(x => x.nap == i).Select(x => x.fuvarszam).Min();

for (int j = minfuv; j < maxfuv; j++)

{

fizetes = t[j].megtettut * 500;

Console.WriteLine(t[i].nap + "nap" + fizetes);

Console.WriteLine("{0} .nap {1} .fuvaránál {2} Ft volt a fizetés",t[i].nap,t[i].fuvarszam,fizetes);

}

}



Azonban ez jelenleg nem jó ugyanis a maxfuv/minfuv-hoz azt írja ki hibának, hogy a sorozat nem tartalmaz elemeket.

2019. máj. 16. 18:24
 6/12 A kérdező kommentje:
*ui.:a fizetéses rész kiszámolása se lett még megoldva, ugyanis látszik, hogy mindig 500-al számolna, ezért arra gondoltam, hogy oda egy olyan változót kéne megadni ami a kilométertől függően változik, amit pedig az előző feladatból talán le lehet kérdni (nem tudom hogy le elhet-e csak gondolom, hogy igen). Ezért talán egy get-set-tel lehetne megvalósítani SZERINTEM
2019. máj. 16. 18:26
 7/12 A kérdező kommentje:
Végül megoldottam az egészet,úgy hogy ahol eredetileg 7-es feladat lett volna oda csak switchet írtam és ez a függvény fogadott egy int értéket így mind a 7-esnél, mind a 8-casnál csak átadtam a megfelelő paramatétert ennek a switches fgv-nek+raktam bele hibakezelés révén if-eket (a try-catch-el még nem próbálkozok, bár az inkább kivétel kezelésre jó HA jól tudom)
2019. máj. 19. 18:47
 8/12 A kérdező kommentje:

ui.:egyedül a 2 szempont szerinti rendezés nem akar valamért jó lenni, esetleg még ha azt emgnézné valaki, hogy mért azt megköszönném


[link]

2019. máj. 19. 19:55
 9/12 A kérdező kommentje:

Elfejtettem írni, hogy a probléma főleg a fuvar résszel van.

Minden naphoz jó fuvar és kilométer tartozik(látszólag legalábbis), a sorrend viszont csak hellyel-közzel stimmel, mivel ugyan a napok jó jorrendben (növekvőben vannak), ezzel szemben a fuvarnál van olyan, hogy pl így jön


1 nap 20 fuvar 15 km

1 nap 1 fuvar 3 km

1 nap 2 fuvar 4 km

1 nap 3 fuvar 5 km

1 nap 12 fuvar 6 km

1 nap 4 fuvar 7 km

1 nap 5 fuvar 8 km

2019. máj. 19. 20:26
 10/12 anonim ***** válasza:
Nem csak az egyes adattagokat kellne cserélned, hanem az egész tömbelemeket. Azonkívül a csere feltétele se jó.
2019. máj. 19. 21:28
Hasznos számodra ez a válasz?
1 2

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!