Sziasztok!
Nemrég kezdtem el java programozással foglalkozni és magával a programozással is. Kicsit nehézkesen megy a dolog, mert magyarul nem nagyon találok kezdőknek szánt anyagokat és szeretném az alapokat jól megtanulni, hogy stabilan tudjak rá építkezni.
Egy olyan programot kaptam feladatként, aminek azt kéne csinálnia, hogy a felhasználótól bekért számokat összeadja a program, majd ezek összegét átlagolja és ha nullát ír be a felhasználó, akkor a program futása befejeződik. Mivel nincs laptopom, így az iskolai gépen kezdtem el ezt a programot írni, de nem mentettem el, szóval itthon is újra elkezdem majd. Addig eljutottam, hogy bekérjem a számokat, ha nullát nyom a felhasználó, akkor hagyja abba a program a futást, de sajnos sehogy se jöttem rá arra, hogy hogyan kéne megvalósítani azt az algoritmust, ami összeadja majd átlagolja az összeget.
Ebben kérném a segítségetek és abban is, ha esetleg valaki tud egy jó kis kezdőknek szánt az alapoktól kezdődő tanítóanyagot, akkor az kérem ossza meg itt kommentben!
Segítségeteket előre is köszönöm!
11 Comments
Auth Gábor
Hova tároltad le a számokat? Listába vagy tömbbe?
Erdei Gábor
Tömbbe tároltam őket, ez tűnt nekem egyszerűbbnek. Pont aznap vettük a 2 dimenziós tömböket és a listát is.
Auth Gábor
A tömb elemeinek száma tükrözi azt, hogy mennyi szám van benne? Vagy lefoglaltál előre egy jó nagy tömböt és ha belefér, akkor öröm van, ha meg nem, akkor megáll a program?
Egy pár soros forráskódot írhatnál ilyenkor, sokat könnyít a helyzeten.
Erdei Gábor
Szia, Gábor!
Kicsit megmásítottam a programot és az lenne a kérdésem, hogy tömb használata nélkül eltudná e végezni a feladatát? Köszi a segítséget!
Auth Gábor
Ez azért kevés lesz... ebben nincs ciklus, ami megállna, ha a beolvasott szám értéke nulla... egyébként lehet átlagot számolni tömb használata nélkül, mert ugye csak össze kell adni, illetve meg kell számolni a beolvasott számokat a két értékből számolható az átlag...
Erdei Gábor
Értem.
És tudnál segíteni a program elkészítésében?
Mert én még nem sokat konyítok hozzá.
Te hogy csinálnád?
Auth Gábor
Segíteni tudok, helyetted megírni nem.
Futó Tamás
Egy dolog az algoritmus megfogalmazása, egy másik dolog, hogy lekódold java nyelven.
Először találd ki az algoritmust és írd le, akár szövegesen, magyarul.
Ha az megvan és helyes is, onnan már sokkal könnyebb lesz a programot is megírni, vagy legalább konkrét kérdést tudsz majd feltenni.
Algoritmus nélkül nem sokra mész a tömbökkel vagy listákkal, és úgy látom, még nem találtad ki.
Ha az algoritmus megfogalmazásában akadtál el, abban is tudunk segíteni, de mutasd meg, merre indultál, hol akadtál el!
Erdei Gábor
Sziasztok!
Előzől postban már megmutattam az eddigi kódot, amit beírtam.
if
(szamok ==
0
){
System.out.println(
"Ha nullát írsz be a program befejezi a futást és elvégzi a számolást!"
);
System.exit(
0
);
}
else
{
}
Futó Tamás
Szándékosan írtam, hogy előbb az algoritmust fogalmazd meg és írd le és amíg ez nincs meg, addig ne foglalkozz a java forráskóddal.
A hozzászólásodból arra következtettem, hogy az algoritmus sincs egyben a fejedben, így szerintem azt sem tudod biztosan, a problémádat mi jelenti. A java szintaxisa, vagy az algoritmus megfogalmazása. Először csak egy problémával foglalkozz. Ha megoldottad, lépj tovább!
Két egyszerű megközelítéssel élhetsz az algoritmust illetően.
Az algoritmus tehát:
Na ez egy algoritmus. Nincs benne java kód, sem semmilyen programnyelv. Magyar mondatok.
Ha ezt érted, akkor már nekiláthatsz ezt az algoritmust lekódolni java nyelven. Mivel tudod lépésről-lépésre, mit kell csinálnod, így már jobb kérdéseket is tudsz feltenni a szintaxist illetően. Egyébként a fenti algoritmus minden egyes sora egy java programsor lesz (kivéve a 8., mert nincs szükség kilépési parancsra).
Erdei Gábor
Aha. Így már írtam mi az algoritmus.
Köszi szépen. Szerintem a ciklust hittem az algoritmusnak és ez volt a gond. Azért írtam azt a hsz-t is, mert nem tudtam, hogy ez az algoritmus, de így már világos.
Köszi szépen mégegyszer!