Faller Skrevet 8. september 2010 Del Skrevet 8. september 2010 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
quantum Skrevet 8. september 2010 Del Skrevet 8. september 2010 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
etse Skrevet 8. september 2010 Del Skrevet 8. september 2010 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. 1 Lenke til kommentar
Faller Skrevet 8. september 2010 Forfatter Del Skrevet 8. september 2010 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 Du svarte på det jeg lurte på 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå