Hogyan lehetne kivitelezni ezt a feladatot?
Az időpontokat rendezett számpárral (óra, perc) fogjuk ábrázolni.
Definiálj egy shift nevű függvényt, mely egy időpontot eltol megadott perccel!
pl: shift (12, 30) 15 == (12, 45)





Eddig eljutottam, de hogyan iratom ki az egész részt és a maradékot és teszem igazzá ?
shift :: (Int,Int) -> Int -> Int -> Bool
shift (x*60+y) `mod` 60





1 ha ez ilyen egyszerű lenne
kérdező: ne magad próbáld megírni, hanem keress egy kész megoldást array methodokkal, egyéb methodokkal, vagy egy külön libraryt ami képes erre. Nem kell újra kisz*rni a spanyol viaszt, ezt már valaki biztos megcsinálta, és jól.




















a függvényed típusa sem jó már, paraméterként vár egy (Int, Int) időpontot és egy Int percet, és a visszatérési értéke is (Int, Int) módosított időpont
nincs Bool visszatérési érték, a "shift (12, 30) 15 == (12, 45)" csak azt jelenti, hogy ha helyesen írtad meg a függvényt, akkor ez a kifejezés igazra fog kiértékelődni, ha kipróbálod
az első válaszban leírták, hogy mit kell csinálni, de akkor leírom kicsit részletesebben is:
átveszed paraméterként az időpontot (amire mintát kell illeszteni, hogy könnyen elérd az órát és a percet) és a percet, amit hozzá kell majd adni
az eredménye szintén egy (Int, Int) pár lesz, tehát ezt egyből le is írhatod:
shift :: (Int, Int) -> Int -> (Int, Int)
shift (x, y) m = (x', y')
tehát most már csak annyi a feladatod, hogy x' és y' helyére írd le azt a számolást, amit az első válaszoló is tanácsolt (ehhez a div, és mod függvényeket célszerű használni)
Köszönöm a segítséget.
Eddig sikerült megcsinálni :
shift :: (Int, Int) -> Int -> (Int, Int)
shift(h, m) dm = divMod (h * 60 + m + dm) 60
De van pár speciális eset amire nem működik:
shift (23, 0) 60 == ( 0, 0)
shift (22, 10) (2 * 24 * 60 + 5) == (22, 15)
shift (22, 10) (3 * 24 * 60 + 65) == (23, 15)





akkor már csak azt kell megoldani, hogy az óra ne legyen több 24-nél, ez megoldható egy modulo-val
(és szerintem ne a divMod-ot használd ehhez, hanem külön a div-et és a mod-ot, egyszerűbb lesz)
További kérdések:
Minden jog fenntartva © 2025, 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!