- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Magga: PLEX: multimédia az egész lakásban
- Eztis_Aztis: Hogyan tovább....
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- eBay-es kütyük kis pénzért
- gerner1
- Lalikiraly: Astra kalandok @ Harmadik rész
- sziku69: Szólánc.
- Fogkefe: elektromos vagy manuális?
Új hozzászólás Aktív témák
-
Karma
félisten
Nos akkor.
Egy általános észrevétel előre. Úgy látom a közoktatás le van ragadva azon a szinten, hogy korlátozott Pascal programozást tanítanak C# nyelven. (Erről már volt szó korábban, csak bebizonyosodik.)ű
Azt még elfogadom sok szemöldökborzolás mellett, hogy a LINQ 2 Objectset nem tanítják - mert így az összes érettségi feladat megoldható lenne egy-egy sorban -, de tömbök? Komolyan? Mindkettőtöknél nagyon megy ez, ezért hiszem hogy valami központi oka van...
Konkrétan akkor a bajok. A kozmetikai dolgokba, mint kis-nagybetűk, nem megyek bele.
Ott kezdődik, hogy static tagváltozókban van az adat, de mégis minek? A main függvény dolgozik csak vele, simán mehet oda lokális változónak. A static adatmezők, más néven globális változók csak bajt hoznak, ha hozzászoktok, és mondjuk a jövőben programozni is akartok. Más szakmák esetén mindegy; de akkor a hozzászólásom többi része is irreleváns.
Az adat struktúra elmegy szódával, viszont mint mondtam, nem tömbben kéne tárolni. Vannak a C#-ban nagyon jó lista szerkezetek, amik tudják magukról, hogy hány elem van bennük - ezzel az ind változó feleslegessé válik.
A List<T> a legegyszerűbb ezek közül. A Count-on keresztül eléred az aktuális darabszámot, és vannak metódusai elem hozzáadáshoz (Add) és törléshez is (Remove). Meg lehet szögletes zárójellel az akárhanyadik elemet manipulálni.
Tehát így néz ki a program eleje eddig:
...
class Program
{
struct adat
{
public int nap, dik, tav;
}
static void Main(string[] args)
{
var fuvar = new List<adat>();
... folyt köv...
}
}Az első feladatnál is kéne használni usingot a StreamReader köré. Ezen kívül a karakterenként feldolgozás feleslegesen lábbalhajtós. A soronkénti beolvasásig jó, utána kitör a WWIII. A sort fel tudod darabolni a Split metódussal a szóközök mentén, és azonnal kipotyog a három külön szöveg.
// 1. feladat
string sor = sr.ReadLine();
while (sor != null)
{
string[] elemek = sor.Split(' ');
adat f = new adat();
f.nap = int.Parse(elemek[0]);
f.dik = int.Parse(elemek[1]);
f.tav = int.Parse(elemek[2]);
fuvar.Add(f);
sor = sr.ReadLine();
}Egy csöppet rövidebb és olvashatóbb, nem?
Aztán mivel nincs ind, a ciklusokat fuvar.Count-ig kell járatni. Ez több helyen változtat a dolgon.
Na most első körben itt megállnék, mert nem akarom túlterhelni a fórumot. Egy kicsit nehezemre esik LINQ nélkül gondolkodni, mert tényleg egy sorba összeesnének vele a feladatok
De lehet inkább beadom a derekam és bevillantom a szebb világ képét.
Még annyi, hogy az üres else {} ágakat teljesen felesleges kiírni, de legalább olvashatatlan.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5060Ti 16GB GAMER PC termékbeszámítással
- Bomba ár! Lenovo X1 Yoga 1st - i7-6G I 8GB I 256SSD I 14" WQHD I HDMI I W10 I CAM I Garancia!
- GYÖNYÖRŰ iPhone 13 256GB Midnight - 1 ÉV GARANCIA - Kártyafüggetlen, MS2227
- HIBÁTLAN iPhone 12 Pro Max 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3035, 100% Akkumulátor
- Asus ROG Flow Z13 WUXGA 120Hz 2in1 Touch i9-12900H 14mag 16GB 512GB Nvidia RTX 3050Ti Win11 Garancia
Állásajánlatok
Cég: FOTC
Város: Budapest