Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

converteren decimale tijd naar UU:MM:SS?

Pagina: 1
Acties:
  • 474 views sinds 30-01-2008
  • Reageer

  • !GN!T!ON
  • Registratie: September 2006
  • Laatst online: 21-11 18:04
hey all,

ik heb op school de opdracht gekregen in quickbasic een programmatje te schrijven dat een decimale tijd (zoals 3,14 uur) omrekend/converteerd naar een UU:MM:SS formaat.

op papier / uit het hoofd weet ik wel hoe dit moet, maar ik heb GEEN idee hoe ik dit door qbasic moet laten doen, vooral omdat ik niet weet hoe ik quickbasic een deel van mijn berekening apprat moet laten zetten, bijvoorbeeld ik pak getal 3,14, dit doe ik gedeelt door 60 x100=5,23

nou moet ik dus quickbasic de 5 apart laten zetten en daarna 5,23 weer delen door 60 en x 100

maar ik weet dus niet hoe

is er iemand die mij hints / tips kan geven? want ik kom er echt niet uit :(

mijn dank is alvast groot _/-\o_

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 29-11 16:13

Sebazzz

3dp

Dit is meer een SEA geval.
Ik zou zoiets doen (pseudocode):
C++:
1
2
3
4
5
6
7
8
9
10
getal = 3,14;
getalpre = 0;
getalpost = 0;
getalpostpost = 0;

getalpre = rondafnaarbeneden(getal);
getalpost = 60 * (getal - getalpre);
getalpostpost = rondaf( 60 * (getal - rondafnaarbeneden(getalpost) ) );

echo (getalpre + ":" + getalpost + ":" + getalpostpost);

[ Voor 4% gewijzigd door Sebazzz op 16-12-2007 20:15 ]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Verwijderd

Nee 3,14 uur is natuurlijk niet 3 uur en 14 minuten 8)7

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 29-11 16:13

Sebazzz

3dp

Verwijderd schreef op zondag 16 december 2007 @ 20:12:
Nee 3,14 uur is natuurlijk niet 3 uur en 14 minuten 8)7
Nee ik weet het ik had het in mijn pseudocode al het juiste gedaan alleen de post nog niet aangepast :P

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Verwijderd

Sebazzz schreef op zondag 16 december 2007 @ 20:16:
[...]
Nee ik weet het ik had het in mijn pseudocode al het juiste gedaan alleen de post nog niet aangepast :P
Ja ja smoesjes :+

Maar @TS: ik denk dat je de opdracht gekregen hebt zodat je iets leert, als wij jouw huiswerk doen dan leer je er niet veel van he?

Zie ook de policy.

  • Mr1ncr3d1bl3
  • Registratie: Januari 2005
  • Laatst online: 22:17
De basis van programmeren is niet de taal waarin je programmeert, maar hoe je een probleem logisch benaderd.

Je kan het probleem als volgt aanpakken:

code:
1
2
3
4
5
6
7
decimaal_uur = 3,14;
klok_uren = afronden(decimaal_uur);
decimaal_minuten = rest(decimaal_uur)*60;
klok_minuten = afronden(decimaal_minuten);
klok_seconden = rest(decimaal_minuten)*60;

weergave = klok_uren +":"+ klok_minuten +":"+ klok_seconden


Wat je code dan doet is:

code:
1
2
3
4
5
6
7
decimaal_uur = 3,14;
klok_uren = 3;                     (afronden 3,14)
decimaal_minuten = 8,4             (0,14*60)
klok_minuten = 8;                  (afronden 8,4)
klok_seconden = 24;                (rest(8,4) * 60)  (0,4 * 60)

weergave = 3:8:24

  • !GN!T!ON
  • Registratie: September 2006
  • Laatst online: 21-11 18:04
Verwijderd schreef op zondag 16 december 2007 @ 20:18:
[...]

Maar @TS: ik denk dat je de opdracht gekregen hebt zodat je iets leert, als wij jouw huiswerk doen dan leer je er niet veel van he?

Zie ook de policy.
ja dat snap ik, ik vraag hier ook niemand om mijn huiswerk te doen 8)7
ik post hier omdat ik een opdracht heb gekregen, ik er mee bezig ben geweest en er niet uit kom.
nu vraag ik hier om hints c.q. tips en niet of iemand mij even de hele opdracht in qbasic taal even kan mailen/hier neergooien.

@Sebazzz

bedankt, dat maakt het al wat duidelijker voor me :)

  • lennartkocken
  • Registratie: September 2004
  • Laatst online: 25-11 14:07
Het valt me op dat jullie in de oorspronkelijk tijd (3,14) in de code de komma laten staan, dit wordt volgens mij door geen enkele programmeertaal ondersteund. Zorg dus dat het een . (punt) wordt.

3.14 dus.

[ Voor 3% gewijzigd door lennartkocken op 16-12-2007 20:35 ]


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 27-11 09:24
Het opslaan van het resultaat van een berekening doe je in een variabele.
Daarmee zou je een stuk verder moeten komen.

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Een manier om er zonder afronden bij te komen:
code:
1
2
3
4
5
6
7
8
9
10
11
time = 3.14

timesecs = time * 60^2
hours = (timesecs - (timesecs % 60^2)) / 60^2
seconds = (timesecs % 60^2)%60
minutes = (timesecs - (hours * 60^2) - seconds) / 60

hours; minutes; seconds
3
8
24.00


(Di's in bc, een unix rekenmachine. geen programmeertaal)
Om 't nog net iets simpeler te houden zou je 60^2 nog kunnen vervangen door 3600.

[ Voor 30% gewijzigd door CyBeR op 16-12-2007 21:11 ]

All my posts are provided as-is. They come with NO WARRANTY at all.


  • !GN!T!ON
  • Registratie: September 2006
  • Laatst online: 21-11 18:04
Mr1ncr3d1bl3 schreef op zondag 16 december 2007 @ 20:30:
De basis van programmeren is niet de taal waarin je programmeert, maar hoe je een probleem logisch benaderd.

Je kan het probleem als volgt aanpakken:

code:
1
2
3
4
5
6
7
decimaal_uur = 3,14;
klok_uren = afronden(decimaal_uur);
decimaal_minuten = rest(decimaal_uur)*60;
klok_minuten = afronden(decimaal_minuten);
klok_seconden = rest(decimaal_minuten)*60;

weergave = klok_uren +":"+ klok_minuten +":"+ klok_seconden


Wat je code dan doet is:

code:
1
2
3
4
5
6
7
decimaal_uur = 3,14;
klok_uren = 3;                     (afronden 3,14)
decimaal_minuten = 8,4             (0,14*60)
klok_minuten = 8;                  (afronden 8,4)
klok_seconden = 24;                (rest(8,4) * 60)  (0,4 * 60)

weergave = 3:8:24
dit is inderdaad zoals ik op papier had opgeschreven hoe dit zou moeten, een v/d problemen waar ik tegen aan loop is, dat voor zover ik weet is het command om af te ronden in QB is :
code:
1
CINT (getal)

bij 3,14 gaat dit goed, komt nl. 3 uit, maar als je 3,55 pakt komt daar 4 uit en dat is fout. en ik weet nu niet hoe ik QB zover krijg dat hij het getal als het ware splitst, of altijd naar beneden afrond :(

tot zover bedankt iedereen, dit helpt me enorm! :)

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 29-11 16:13

Sebazzz

3dp

Heeft QuickBasic geen docu?

@CyBeR: Dat is ook een hele leuke oplossing voor probleem :)

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


  • Mr1ncr3d1bl3
  • Registratie: Januari 2005
  • Laatst online: 22:17
In plaats van CINT kan je FIX gebruiken:

FIX(3.89) erase digits after decimal point 3

Meer handige dingen vind je hier :
http://www.secretguide.net/read/index.php?filename=qbasic_1

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 23:35

Creepy

Tactical Espionage Splatterer

Een algoritme als dit bedenken wil ik nu niet echt bestempelen als SEA werk.. maar dat ff terzijde.
maar ik weet dus niet hoe

is er iemand die mij hints / tips kan geven? want ik kom er echt niet uit
Ja, je leraar in eerste instantie.

Een huiswerk opdracht mag in principe, maar dan wel op zo'n manier dat we kunnen zien wat je nu zelf al hebt geprobeerd en wat daar niet mee lukte. Juist omdat het een huiswerk opdracht is verwachten we dat je zeker al wat zelf al hebt geprobeerd omdat je tijdens de les al genoeg informatie gehad zou moeten hebben.

Zeker als je al blijkbaar wat op papier hebt geschreven, meldt dat dan ook en geef dan ook aan wat je zelf al bedacht hebt.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • !GN!T!ON
  • Registratie: September 2006
  • Laatst online: 21-11 18:04
Mr1ncr3d1bl3 schreef op zondag 16 december 2007 @ 21:12:
In plaats van CINT kan je FIX gebruiken:

FIX(3.89) erase digits after decimal point 3

Meer handige dingen vind je hier :
http://www.secretguide.net/read/index.php?filename=qbasic_1
kijk dat was precies wat ik nodig had, Bedankt!!! _/-\o_

mooie website ook, ik heb hem al helemaal doorgelezen en is *bookmarked* >:)
Creepy schreef op zondag 16 december 2007 @ 21:22:
[...]
Ja, je leraar in eerste instantie.

Een huiswerk opdracht mag in principe, maar dan wel op zo'n manier dat we kunnen zien wat je nu zelf al hebt geprobeerd en wat daar niet mee lukte. Juist omdat het een huiswerk opdracht is verwachten we dat je zeker al wat zelf al hebt geprobeerd omdat je tijdens de les al genoeg informatie gehad zou moeten hebben.
ik snap wat je bedoelt, ik ben hier al een paar daagjes mee aan het ravotten, en ben vooral dit weekend, de eerst volgende wiskunde les is over 3 dagen en ik wou toch wel graag verder komen, dus na een aantal daagjes zelf bezich te zijn geweest dacht ik, kom ik vraag eens wat
nu begrijp ik ook dat het niet de bedoeling is om hier mn huiswerk neer te gooien en te roepen, jongens "help" me even en dat ik vervolgens de antwoorden hier weer vandaan kan ctrl +c ctrl +v 'en. dit was mijn bedoeling ook absoluut niet, ik zat werkelijk vast, heb werkelijk mijn best gedaan het zelf op te lossen, ook begrijp ik dat ik eigenlijk eerst naar mijn leraar had moeten gaan, maar die is in het weekend natuurlijk niet bereikbaar (en ik geef toe dat i kgeen zijn had om te wachten tot de volgende les :P )
Zeker als je al blijkbaar wat op papier hebt geschreven, meldt dat dan ook en geef dan ook aan wat je zelf al bedacht hebt.
dat probeerde ik ook in de TS, maar ik kon het een beetje moeilijk beschrijven, en daardoor is het er mischien een beetje vaag uitgekomen, mijn excuses daarvoor.




inmiddels ben ik na wat klooien tot een werkend eindproduct gekomen, dankzij de goede en profi hulp van jullie bedankt _/-\o_

code:
1
2
3
4
5
6
7
8
9
10
CLS
PRINT "Hallo, Met dit programma kun je Decimale tijden omrekenen naar UU:MM:SS"
INPUT "Voer een decimaal getal in alstublieft", getal!

uren = FIX(getal!)
switch1 = (60 * (getal - uren))
minuten = FIX(switch1)
switch2 = switch1 - minuten
seconden = FIX((switch2 * 60))
PRINT uren; ":"; minuten; ":"; seconden


ik moet het programma nu alleen nog even wat verder "opmaken" (niet dat dat in de opdracht staat, maar dat vind ik wel zo netjes en leuk :P ) mischien wat kleurtjes, boel centreren enz.

iig iedereen nogmaals bedankt echt top d:)b
Pagina: 1