C# Hogyan kéne megoldani ezt?
Készítettem egy programot, ami pár adat megadásával kiszámít egy éréket, majd kiírja egy labelbe, ezt most nevezzük eredmény label-nek. (Ez az érték nagyon sok féle lehet, attól függ mit adsz meg neki)
Szóval megszeretném azt csinálni, hogy ha lenyomok egy gombot, nevezzük ezt most összesítés gombnak, akkor azt az értéket amit kiszámított az eredmény label-be, valahogyan eltárolja, és ha új adatokat adok meg a programnak, és egy új éréket kapok az eredmény label-ben, akkor az hozzá adja, a legutóbb kiszámított, majd eltárolt érékhez, és persze ezt írja is ki. Ha pedig újra új adatokat adok meg a programnak, és újra új érték lesz az eredmény label-ben, akkor az összesítés gomb lenyomásával szint úgy hozzáadja az előző kettő értékez, majd szintén kiírja, és ez így folytatódjon.
Igazából az a bajom,hogy ha felveszem egy váltózóba az eredmény label értékét, és új adatokat adok meg a programnak, és ugye megváltozik az eredmény label értéke, akkor a változó értéke is megváltozik, és így nem tudom hozzá adni az előzőhöz.
Hogyan kéne ezt megcsinálni? Kérem segítsetek!
Mondjuk úgy, hogy eltárolod az eredményeket egy listában
Jó, de hogyan tudok eltárolni egy listában úgy elemeket? Hozzáadom az eredmény label-ben kapott eredmény a listához, de utána hogyan tovább? Hogy a következő eredményt a listában egy másik elemként tárolja el? Eddig ezt csináltam, de nem tudom hogyan folytassam hogy jó legyen:
double k = double.Parse(EredmenyLabel.Text);
List<double> eredmenyek = new List<double>();
eredmenyek.Add(k)
És innentől elakadtam. Nem tudom hogy kéne folytatni, kiíratni sem tudom hogy kéne. Amikor rákattintok az összesítés gombra, akkor kéne hogy hozzáadja a listához, és összeadja a lista előző elemeivel, majd kiírja ezt egy labelbe. Igazából ez mellé még a nehezítés, hogy az egyszerúség kedvéért azt mondtam hogy a programom a megadott adatok alapján 1 eredményt számol ki, ami ugye különböző lehet. De igazából 4 eredményt számol ki. És úgy kéne megoldani, hogy az első számításkor az első eredményt ne adja öszze a többi eredménnyel, hanem a második számításkor adja össze szintén az első eredménnyel. Szóval az első számításkor tegyük fel kapunk 4 eredményt, ez legyen most a, b, c, d. a második számításkor is kapunk 4 eredményt ez legyen most a2, b2, c2, d2. És az lenne a lényeg hogy az "a"-t csak az "a2"-vel adom össze, (illetve majd még az a3-al, és az a4-el stb..) a b-t pedig csak a b1-el, a c-t pedig a c1-el, c2-vel c3-mal stb stb.. Kérlek segítsetek! Előre is köszönöm!
Nem értek a C#-hoz, a listákhoz még kevésbé, de gondolom, a lista indexelésével egyszerűen megoldható, már amennyiben egyáltalán sejtem, hogy miről van szó. Én úgy képzelem a szavaid alapján, hogy az eredmenyek lista bejegyzései valahogy így néznének ki:
eredmenyek[0] : a
eredmenyek[1] : b
eredmenyek[2] : c
eredmenyek[3] : d
eredmenyek[4] : eredmenyek[0] + a2
eredmenyek[5] : eredmenyek[1] + b2
eredmenyek[6] : eredmenyek[2] + c2
eredmenyek[7] : eredmenyek[3] + d2
Ez a szerkezet egy efféle elágazással létrehozható (a k-t kihagytam, nem egészen világos, mire kell):
if (lista.Count > 3)
eredmenyek.Add(eredmenyek[eredmenyek.Count - 4] + double.Parse(EredmenyLabel.Text));
else
eredmenyek.Add(double.Parse(EredmenyLabel.Text));
...de meg kell mondjam, mivel úgyis előre ismert számú eredményt akarsz tárolni, nekem kényelmesebbnek tűnik inkább valami vektor/tömb használata.
„kiíratni sem tudom, hogy kéne” <<< Ezt meg nem értem, de például egy TextBoxban.
Vagy ha 4 féle eredményed van, akkor előszöris létrehozol egy struktúrát, amiben eltárolod mind a 4 eredményt, pl:
public struct Results{
    int a;
    int b;
    int c;
    int d;
}
Aztán ebből készítesz egy listát:
List<Results> resultsList;
És ezután ha pl össze akarod adni az 'a' eredményeket, akkor:
int sumValue = 0;
foreach(Results res in resultsList){
    sumValue += res.a;
}
Ilyen egyszerű.
Szia!
Ha jól értem a kérdésedet, akkor nem kell lista.
Felveszel 8 db változót:
szamol_a
szamol_b
szamol_c
szamol_d
ossz_a=0
ossz_b=0
ossz_c=0
ossz_d=0
Kiszámoltatod az értékeket, aztán meg így összegzel:
ossz_a=ossz_a+szamol_a
ossz_b=ossz_b+szamol_b
....
és így tovább, nem írom végig.
Ha nem ez a feladat, akkor bocsi!
Illetve a lista még hagyján, de 4 változó a 4 számnak???
Struktúra? Osztály??
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!