Aantal graden tussen de wijzers van de klok.

Moderators: dirkwb, Xilvo

Forumregels
(Middelbare) school-achtige vragen naar het forum "Huiswerk en Practica" a.u.b.
Zie eerst de Huiswerkbijsluiter
Reageer
Gebruikersavatar
Berichten: 289

Aantal graden tussen de wijzers van de klok.

Hallo iedereen,
 
sinds kort ben ik begonnen met programmeren in python en kreeg ik de volgende vraagstelling:
 
Invoer:
16

37

 
Uitvoer:
Om 16:37 maken beide wijzers een hoek van 83.5°.
 
 
De bedoeling is dus om het aantal graden weer te geven tussen de wijzers van de klok.
Na even te denken kwam ik op het volgende:
 
360° is 12h, dus 1h stelt 30° voor
360° is 60min, dus 1 min stelt 6° voor
 
Mijn idee is dus om de de uren en minuten om te zetten naar graden en deze dan van elkaar af te trekken om zo de hoek hiertussen te vinden. Na wat prutsen aan mijn script kreeg ik toch al wat juiste antwoorden:
 
21
45
Om 21:45 maken beide wijzers een hoek van 0.0°.
 

12
30
Om 12:30 maken beide wijzers een hoek van 180.0
 

3
30
Om 03:30 maken beide wijzers een hoek van 90.0°.
 
Oké lijkt me te kloppen dus. Na indienen van de oefeningen op een online platform worden deze gecontroleerd door met een tiental voorbeelden te controleren (mijn script wordt dus 10x getest en gecontroleerd en het moet 10x correct zijn om als correct te worden ingediend).
 
En wat blijkt, verschillende keren is mijn script foutief.
 
vb. mijn antwoord:


  • Om 00:45 maken beide wijzers een hoek van 90.0°
 
correct antwoord:
  • Om 00:45 maken beide wijzers een hoek van 112.5°.
 
Zit ik ergens met een redenatie fout? Mijn script lijkt te kloppen, ik voeg het even toe in een bijlage maar hier lijkt het me niet aan te liggen...
 
wijzers.txt
(700 Bytes) 248 keer gedownload
 

 
Great minds discuss ideas, small minds discuss people.

Gebruikersavatar
Berichten: 11.177

Re: Aantal graden tussen de wijzers van de klok.

Heb jij weleens een analoge klok gezien? Om 12.30 maken de wijzers een hoek van 180-15=165°. Dit komt omdat de kleine wijzer die 30°/uur niet ineens aflegt, maar afhankelijk is van de positie van de kleine wijzer. Jouw voorbeeld van 00.45: in 45 minuten heeft de kleine wijzer 75% van die 30° afgelegd = 22.5°. 22.5° + de oorspronkelijke 90° geeft 112.5°.

Berichten: 12.262

Re: Aantal graden tussen de wijzers van de klok.

Klopt inderdaad, voor die urenwijzer moet je de minuten ook meerekenen. 
 
Het wordt iets als:
 
(uren%12 + (minuten/60)) * 30 graden voor de urenwijzer (uren modulo 12 zodat het ook werkt bij bijv 12:30 of 23:00 etc). 
 
en
 
minuten * 6 voor de minutenwijzer
Victory through technology

Gebruikersavatar
Berichten: 649

Re: Aantal graden tussen de wijzers van de klok.

De fout zit in de berekening van de uren wjzer,
 
De uren wijzer heeft per omwenteling bij gebruik van minuten 720 stappen (12 uur maal 60)
en de minuten wijzer 60 stappen
 
de uren wijzer maakt derhalve per minuut een stap van 360/720 is 0,5 graad
en de minuten 360/60 is 6 graden per minuut.
 
dus 16:37,  
is 4 *60 + 37 is 277 stappen van 0,5 graad is 138,5
en de 37 minuten is 37 * 6 graden is 222   en dan is 222-138,5 is 83,5
 
bij een tijd van 00:45,
is 45 maal stappen van 0,5 graad is 22,5 en de minuten wijzer 45*6 is 270,
22,5 graad  en 90 graden de andere kant op geeft 112,5
 
De hoek wordt dan 270-22,5= 247,5 of 360-247,5 is 112,5
 
in je prograam moet je dus wel de kwadranten waar de wijzers staan meenemen
om de kleinste hoek te bepalen, als je dat wilt, je kan ook de ander hoek nemen.
Sinds de uitvinding van tijd, hebben we het niet meer, en kunnen we het ook niet meer vinden.
En wie haast heeft moet langzamer lopen.

Gebruikersavatar
Berichten: 4.320

Re: Aantal graden tussen de wijzers van de klok.

Ik heb de oplossing al eens ergens ander gegeven.
 
Dit soort sommetjes gaan het gemakkelijkst door met de hoeksnelheden van de wijzers te werken en t=0 te nemen als op de klok op 12u staat.
In de wiskunde zijn er geen Koninklijke wegen Majesteit.

Berichten: 7.068

Re: Aantal graden tussen de wijzers van de klok.

In het kader van lol met Python:

Code: Selecteer alles

uur = int(input())
minuten = int(input())
hoek = (5.5 * (uur * 60 + minuten)) % 360
hoek = 360.0 - hoek if hoek > 180.0 else hoek
print('Ingevoerde tijd = {}:{}'.format(uur,minuten))
print('hoek = {} graden'.format(hoek))

Berichten: 635

Re: Aantal graden tussen de wijzers van de klok.

In 12 uren tijd gaat de minutenwijzer 11 keer over de uurwijzer heen. De periode is dus 12/11de uur.

Reageer