- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- AMD Catalyst™ driverek topikja
- Vezetékes FEJhallgatók
- Hobby elektronika
- Szünetmentes tápegységek (UPS)
- HiFi műszaki szemmel - sztereó hangrendszerek
- Milyen billentyűzetet vegyek?
- Milyen monitort vegyek?
- Samsung LCD és LED TV-k
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
Új hozzászólás Aktív témák
-
Szmeby
tag
válasz
Victoryus
#9898
üzenetére
Ez a leírás kicsit kaotikus lett számomra. Mi az elvárt eredmény? A "feldolgozni" elég elvont fogalom. A tömb / HashMap vs. típus problémát sem igen értem.
Amúgy meg a szép megoldás olyami lenne, hogy van számla objektumod, ami tételek listáját tartalmazza. Van tétel objektumod, aminek van neve, mennyisége, egységára, nettó összege. A kedvezmény tipikusan külön tételként jelenik meg, de aggregálhatod is az aktuális tétellel, vagy akár bevezethetsz egy kedvezmény típust is (ami kísértetiesen fog hasonlítani a tétel típusra).
Soronként beolvasod a fájlt, létrehozol egy új számla objektumot, minden sornál egy új tétel objektumot, F esetén a számla objektum kész, bedobod egy listába és jöhet a következő friss számla.
Ezt lehet cizellálni, elindulni OOP irányba, hogy nem soronként jön létre tétel, hanem már létező nevű tételnél csak a meglévő mennyiségét növeled eggyel. Vagy elindulhatsz a minimalista irányba, nincs tétel objektum, hanem a számla fenntart egy map-et, a kulcs a tétel neve (String), az érték pedig a darabszám (Integer), és azt növelgeted szükség esetén.
Végül a kedvezményszámítás már könnyen megy, ha előállt a számlán az összes tétel, mennyiségtől függően kiosztasz nekik egy-egy egységárat, és abból már számolható lesz a nettó. Akár on-the-fly, nem nehéz számítás. -
usergefi
csendes tag
válasz
Victoryus
#9896
üzenetére
A szamokDb tömbben az szerepel, hogy az adott számot hányszor húzták ki:
szamokDb[szamok[i][j]-1]++A
szamok[I][j]az egyes számok lesznek, a fájlban elindulva pl. 37, 42, 44, 61, 62, 18, 42 stb...
Kivon még belőle egyet, hogy 0-tól induljon a tömb indexelése (erre mondjuk nem vágom, miért van szükség), így aztán például a legelső esetben a fenti kódrész:szamokDb[37-1]++, a második számnál: szamokDb[47-1]++ és így tovább. Tehát a szamokDb azt fogja tárolni, hogy melyik számot hányszor húzták ki, a tömb indexe lesz a szám-1, amit kihúztak, az értéke pedig hogy hányszor.Aztán a kérdéses résznél 2-esével ugrálunk 0-tól kezdve. Mivel -1-et kivontunk, ezért a 0-ás index igazából az 1-es szám, a 2-es a 3-as, a 4-es az 5-ös és így tovább. Majd az értékeket hozzáadjuk a páratlan szám számlálóhoz. Ha mondjuk 1-esből volt 3, 5-ösből 2, akkor eddig 5 páratlan számod lesz.
A 8-as feladatnál az általad kérdezett 0-e feltételnek is a fentiekben találod meg az értelmét, ha az érték 0, az azt jelenti, hogy egyszer sem húzták ki. Ugyanúgy végigmegyünk a szamokDb tömb prímszámos idexein (megint -1), és megnézzük, hogy kihúzták-e (>0 az értéke), vagy sem (==0).
A te megoldásod is tökéletes lenne, a fenti megvalósítás nekem is túl absztrakt

Amúgy meg ha ezt a nyelvet fogod használni, akkor sosem kell ilyen kódot írnod majd, vagy max nagyon specifikus esetekben. Ez tipikus magyar oktatásbeli hülyeség, hogy egy olyan nyelvet, amiben az objektum orientáltságot, beépített könyvtárakat és függvényeket, skálázhatóságot, több szálúságot kéne használni (mert erre való), arra kényszerítünk, hogy több dimenziós primitív tömbökkel szivassuk a jónépet

-
Victoryus
addikt
válasz
Victoryus
#9895
üzenetére
A 8.feladatot se értem, amikor megnézi, hogy melyik prím számot nem húzták ki. Hogy megy végig a tömbön? Miért az a feltétel, hogy
if( szamokDb[sz-1] == 0 )? A java-t pont ezért nem szerettem sose, mert nem látom át. De hát ez a legkeresettebb nyelv, szóval kénytelen leszek megszeretni.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Táncolni még nem tud, de stabilan áll az Android 17 a lábán
- Arc Raiders
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- Anime filmek és sorozatok
- Hosszú premier előzetest kapott az Arknights: Endfield
- Bittorrent topik
- Villanyszerelés
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- AMD Catalyst™ driverek topikja
- További aktív témák...
- Intel Core Ultra 7 265KF RX9060XT minőségi PC teljes garancia
- Apple iPhone 16 Pro 128GB 94%-os akku
- Lenovo X1 Yoga gen. 6. // i7-1185g7 // 32GB // 512GB // ÚJSZERŰ!!! // ÚJ ÁRA 1.408.990.-Ft!!!!!!
- Lenovo ThinkPad W541,15.6,FHD,i7-4810MQ,32GB DDR3,256GB SSD,K1100 2GB VGA,WIN10
- Samsung Galaxy Tab S10 Ultra 5G 12/256 2028.09.03-ig garancia
- Apple iPhone 11 Pro 64GB, Kártyafüggetlen, 1 Év Garanciával
- iPhone 15 Pro 256GB 88% (1év Garancia)- ÚJ EREDETI AKKUMULÁTOR - AKCIÓ
- Samsung Galaxy A12 64GB, Kártyafüggetlen, 1 Év Garanciával
- 228 - Lenovo LOQ (15IRX10) - Intel Core i7-13650HX, RTX 5060
- Samsung Galaxy S24 / 8/128GB / Kártyafüggetlen /12Hó Garancia / Akku: 100%
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



