- Rejtett csatlakozós VGA MSI módra
- Milyen videókártyát?
- Androidos tablet topic
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Milyen egeret válasszak?
- Sofabaton (logitech harmony alternatíva)
- OLED TV topic
- Asztrofotózás
Új hozzászólás Aktív témák
-
Karma
félisten
válasz
zsambek #5511 üzenetére
Üdv újra. Már készültem rákérdezni, hogy mi újság a gyakorlással.
1) Túlkomplikáltad ezt az árszámítást matek és C# oldalon is. C# oldalon azért, mert a Convert.ToDouble hívás felesleges, matek oldalon meg azért, mert ha jó képletet választasz a kerekítés előtti árhoz, nem kell ifelned meg kézzel +71-et hozzáadni.
Van a Math.Ceiling függvény, ami visszaadja a double számhoz legközelebbi, annál nem kisebb egészt. Azaz például 4 -> 4, 4.1 -> 5, 4.9 -> 5, stb.
Ezt kihasználva az árszámítás (57-68. sorod) ennyire alakul át:
jegyek[j].fizetnivalo = (int)(Math.Ceiling((jegyek[j].le - jegyek[j].fel) / 10.0) * 71);A 10.0 nagyon fontos, mert enélkül maradékos osztást csinál a fordító!
A magyar ötforintos kerekítésre sajnos nem alkalmas a Math.Round. De még egy teljesen naív switches megoldás is teljesen kielégítő:
int diff = 0;
switch (fizetendo % 10) {
case 0:
case 1:
case 2:
diff = 0;
break;
case 3:
case 4:
case 5:
case 6:
case 7:
diff = 5;
break;
case 8:
case 9:
diff = 10;
break;
}
fizetendo = fizetendo / 10 * 10 + diff;A /10*10 maradékos osztással levágja az utolsó számjegyet, a diff meg az a szám, amit a kerekítés miatt hozzá kellett csapni.
2) Ez a megközelítés nem biztos, hogy jó eredményre vezet, ha az első megállónál senki se szállt fel, vagy mindenki leszállt már az utolsó előtt. Biztonságosabb, ha a vizsgáló ciklusodat úgy futtatod, hogy a másodiktól az utolsó előtti megállóig fusson (így a szélsőkkel nem foglalkozol).
3) Úgy látom két hiba biztosan van a hetedik feladatodban: egyrészt 48 ülés helyett 49-cel operálsz (a félreindexelés halálfejes hiba); másrészt a 183. sorban lévő belső ciklus teljesen felesleges. Nem is használod a ciklusváltozóját.
De egyébként az elvben nem látok hibát.
A futás közbeni állapotot úgy tudod követni, hogy egy breakpointot raksz a programodba a forráskód bal szélén lévő sávra kattintva. Ekkor ott egy piros kör jelenik meg, és a futás leszünetelődik amikor odaér.
Ekkor a Locals fülön, alapból bal lenn látod a változóid aktuális értékét.
Ú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!
- Bestbuy játékok
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Hat Galaxy elindította, egy leállította a One UI 8 frissítést
- Rejtett csatlakozós VGA MSI módra
- Milyen videókártyát?
- PlayStation 5
- iPhone topik
- Androidos tablet topic
- Nintendo Switch
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- További aktív témák...
- RedMagic 10 Air Twilight Gamer kijelző, nagy teljesítmény, 16/512 GB,3 hó gari!
- WD SN8000S 2TB NVMe Gen4 SSD! 7300-6800MB/s
- MSI Thin GF63 15.6" FHD IPS i5-12450H RTX 4050 16GB 512GB NVMe gar
- Samsung Galaxy S23 Ultra Black 200 MP Pro kamera, S Pen, 120 Hz QHD+ 8/256 GB
- X1 Yoga 6th 14" FHD+ IPS érintő i7-1185G7 32GB 512GB NVMe ujjlolv IR kam aktív toll gar
- Garmin USB ANT Stick jeladó eladó
- BESZÁMÍTÁS! Apple Macbook Pro 16" 2019 i9 64GB 1TB 5500M 8GB garanciával hibátlan működéssel
- Apple iPhone 13 Pro Max Graphite ProMotion 120 Hz, Pro kamerák 128 GB-100%-3hó gari!
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- Apple iPhone 14 Pro Max Gold Dynamic Island, 120 Hz ProMotion, 48 MP kamera-128 GB-100%
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest