Kezdőoldal » Számítástechnika » Programozás » Hogyan lehetne kivitelezni...

Hogyan lehetne kivitelezni ezt a feladatot?

Figyelt kérdés

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)



2021. okt. 1. 23:01
1 2
 1/12 anonim ***** válasza:
Atalakitod az ora:perc erteket ora*60+percre, ehhez hozzaadod a bejovo erteket, majd maradekos osztassal osztod 60-nal. Ennek az egesz resze lesz az ora, a maradeka meg a perc ertek.
2021. okt. 1. 23:09
Hasznos számodra ez a válasz?
 2/12 A kérdező kommentje:

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

2021. okt. 1. 23:22
 3/12 anonim ***** válasza:
0%

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.

2021. okt. 2. 02:40
Hasznos számodra ez a válasz?
 4/12 anonim ***** válasza:
100%
#3 Pont, hogy ilyen egyszerű. A feladat csak az ábrázolás módját írja le, nem a tárolásét, te nyugodtan tárolhatod az infót percben aztán kiszámolod belőle az óra-percet. Mellesleg nem kereshet kész megdoldást te nagyonhülye, az a feladat lényege, hogy ő oldja meg.
2021. okt. 2. 08:18
Hasznos számodra ez a válasz?
 5/12 anonim ***** válasza:
0%
engem nevezel nagyonhülyének de újra megoldatnád valakivel azt, amit már ezren megcsináltak. biztos nem fognak a kezedre ütni ha a munkahelyen ilyennel próbálkoznál. nagyon rossz gondolkodás, rossz irány, rossz tanácsok. ment a negatív a destruktív hozzászólás miatt
2021. okt. 2. 10:18
Hasznos számodra ez a válasz?
 6/12 anonim ***** válasza:
5: Valszeg nem fognak a kezedre ütni, de munkahelyed sem lesz, mivel nem fogsz tudni programozni, mivel nem tanultad meg, mert kész megoldásokat kerestél folyton.
2021. okt. 2. 10:33
Hasznos számodra ez a válasz?
 7/12 anonim ***** válasza:

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)

2021. okt. 2. 11:39
Hasznos számodra ez a válasz?
 8/12 A kérdező kommentje:

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)

2021. okt. 2. 11:41
 9/12 anonim ***** válasza:

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)

2021. okt. 2. 11:52
Hasznos számodra ez a válasz?
 10/12 anonim ***** válasza:
3: TE állat!!!!!!!!!!!!!!!!!
2021. okt. 2. 12:24
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!