Hogyan kellene megoldani a 7-es illetve 8-as feladatot? (c#)
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?
(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)
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.
? 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.
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
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
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!