Gå til innhold

Kan noen forklare en nybegynner hvordan modulusoperatoren fungerer?


Anbefalte innlegg

Har noen oppgaver på skolen hvor vi skal bruke modulusoperatoren til å lage et program som regner om antall sekunder til timer, minutter, og sekunder.

 

Oppgavetekst:

Lag et program som ber om antall sekunder og som regner dette om til antall timer, minutter og sekunder.

Eksempel på kjøring av program:

 

Skriv inn antall sekunder: 3667

3667 sekunder tilsvarer 1 timer, 1 minutter og 7 sekunder.

 

Det jeg trenger hjelp til er utregningsformlene hvor man bruker modulus/restdivisjon. Hvordan disse skal settes opp.

 

På forhånd takk for svar.

 

 

Mvh Faller

Lenke til kommentar
Videoannonse
Annonse

http://en.wikipedia.org/wiki/Modulo_operation

 

Du må tenke i to omganger her, eks. 7 % 3: Regn først ut 7 / 3 = 2,333333. Ta så og «skrell vekk» desimalene, så sitter du igjen med 2, kjør regnestykket baklengs, altså 2 * 3 = 6, og differeransen fra 6 til 7 er 1, nemlig svaret du ser etter. Altså er 7 % 3 = 1.

 

Tilsvarende 5 % 2 ... 5/2 = 2,5 og 2 * 2 = 4, resten opp til 5 er 1 (4+1=5), altså er 5 % 2 = 1.

 

Siden ingen gidder å gjøre leksene dine foreslår jeg at du googler litt, da finner du f.eks. noe sånt som:

 

 

Et enkelt eksempel: Du har 72 sekunder og skal finne ut hvor mange minutter og sekunder dette blir(i et program fex.).

 

Først finner du ut hvor mange hele minutter du har, 1 min.

For å finne sekundene du har "til overs": MOD(72;60) = 12

 

Resultatet er altså 1 min. 12 sek.

 

Da er du jo «pretty close» ... lykke til med resten.

Lenke til kommentar

du vet det er 60-sekunder i et minutt, og 60 minutter i en time:

 

Siden input er i sekunder, og vi vet det er 60 sekunderi en time, vil hvilket sekund vi er i denne timen bli gitt med "total_sekunder % 60"

 

Vi lurer på så hvilket minutt det er, hhvis vi gjør om input-verdien til totalt antall minutter. (Altså tar en integer-divisjon, og ikke med desimaler) så får vi totalt antall minutter. Siden det er 60 minutter i en time, så kan vi dermed vite at totalt_minutter % 60 vil gi oss hvilket minutt i timen

 

For timer kan du bare ta integer-divisjon og regne deg enkelt ut til det uten modulo, men om du også vil ta med dager må du hiske å ta modulo 24, siden det er 24 timer per dag.

 

Python-eksempel:

>>> tall = 3667
>>> sekunder = tall % 60
>>> minutt = (tall/60) % 60
>>> time = (tall/(60*60)) % 24
>>> dag = (tall/(60*60*24))
>>> print "%d dager, %d timer, %d minutter og %d sekunder." % (dag, time, minutt, sekunder)
0 dager, 1 timer, 1 minutter og 7 sekunder.

  • Liker 1
Lenke til kommentar

Hehe, skjønner at ingen gidde å gjøre leksene mine, og det forventer jeg heller ikke ;)

 

Men takk for et knallgodt innlegg som forklarer problemet på en enkel og god måte :new_woot: Du svarte på det jeg lurte på :D

 

Grunnen til at jeg poster som jeg gjør er at folk lettere skal kunne sette seg inn i situasjonen, og på den måten gi et godt svar (som du har gjort)

 

 

Mvh Faller

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...