Toon posts:

[Java] Probleem met 'simpele' rekensom

Pagina: 1
Acties:
  • 303 views sinds 30-01-2008

Verwijderd

Topicstarter
Hi,

Ik ben bezig met een simpele Java applet waarin ik wil berekenen hoeveel uren, minuten en seconden er in 5454532 seconden (int totaalSeconden) zitten.
Bij het compilen blijk ik nogal wat problemen te hebben met de toekenningsoperatoren.
Java:
1
2
3
4
totaalSeconden = 5454532;
berekenUren = totaalSeconden /= 3600;
berekenMinuten = berekenUren * 60;
berekenSeconden = berekenMinuten * 60;
Kan iemand mij misschien vertellen wat de juiste rekensom is?
Ik neem aan dat ik voor de te berekenen waarden double moet gebruiken?

Edit:

Ik weet al wel wat het antwoord moet zijn: :)

5454532 seconden = 1515 uur, 8 minuten en 52 seconden.

[ Voor 10% gewijzigd door Verwijderd op 09-04-2005 13:15 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Bij jou gaat er informatie verloren... voorbeeld.. aan de hand van het aantal uren kan nooit het exacte aantal seconden worden vastgesteld..

tip: kijk eens naar de mod operator (%)

Verwijderd

Het lijkt me geen probleem met operatoren om eerlijk te zijn. Je rekent eerst het totaal aantal seconden om naar uren en vervolgens ga je het totaal aantal seconden weer uitrekenen, in plaats van de overgebleven (mod) seconden. De laatste waarde is namelijk weer 5454532.

[ Voor 10% gewijzigd door Verwijderd op 09-04-2005 14:05 . Reden: Allarmnummer moest weer sneller zijn ;) ]


  • ScSi
  • Registratie: Oktober 2003
  • Laatst online: 31-03 07:13

ScSi

Belg.

int sec = (totaalSeconden%60);
int min = ((totaalSeconden)/60)%60);
int uur= (((totaalSeconden)/3600)%60);

Verwijderd

Topicstarter
Thx dudes!

Ik had de % operator idd ook al geprobeerd, maar ook hier kreeg ik vage waarden. ;)

  • XKB
  • Registratie: Oktober 1999
  • Laatst online: 05-04-2021

XKB

Anonymous functional

ScSi_009 schreef op zaterdag 09 april 2005 @ 14:09:
int sec = (totaalSeconden%60);
int min = ((totaalSeconden)/60)%60);
int uur= (((totaalSeconden)/3600)%60);
In het kader van eventuele huiswerk opgaven is het beter om tips te geven ipv de complete oplossing. Zo leert de ts er ook nog iets van.

Choose for Choice! Choose Linux! | src van icon


Verwijderd

Topicstarter
Huiswerk of niet, ik krijg het uberhaupt niet eens werkend met dat stuk code. ;)

Misschien een domme vraag, maar waarom zet je haakjes om bijv. (totaalSeconden%60)?

[ Voor 24% gewijzigd door Verwijderd op 09-04-2005 16:02 ]


  • Daspeed
  • Registratie: Maart 2001
  • Laatst online: 10:08
hoeveel haakjes tel je in de 2e regel en welke conclusie kun je daaruit halen?

Verwijderd

Topicstarter
Nee, ook met een extra haakje werkt het niet. ;)
5454532 seconden = 0 uur, 0 minuten en 0 seconden.
Kan toch niet de bedoeling zijn lijkt me zo?

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.awt.*;
import java.applet.*;

public class Rekensom extends Applet {
    int totaalSeconden, berekenUren, berekenMinuten, berekenSeconden;
    
    public void init() {
        berekenSeconden = (totaalSeconden%60);
        berekenMinuten = (((totaalSeconden)/60)%60);
        berekenUren= (((totaalSeconden)/3600)%60);
    }

    public void paint(Graphics g) {
        g.drawString("5454532 seconden = " + berekenUren + " uur, " + berekenMinuten + " minuten en " + berekenSeconden + " seconden.", 20, 30);
    }
}

Uh, wat gaat er fout? :/

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 08-05 19:46

Robtimus

me Robtimus no like you

Je initialiseert totaalSeconden nooit dus die blijft netjes 0.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

je zal wel iets in die totaalSeconden moeten doen, anders is het null...

Woeps... Iemand was me voor :)

[ Voor 23% gewijzigd door Verwijderd op 09-04-2005 16:15 ]


Verwijderd

Topicstarter
Shit, vergeten idd. 8)7

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 08-05 19:46

Robtimus

me Robtimus no like you

Verwijderd schreef op zaterdag 09 april 2005 @ 16:14:
je zal wel iets in die totaalSeconden moeten doen, anders is het null...
technisch gezien kan null alleen met objecten ;)
ints etc worden 0
Woeps... Iemand was me voor :)
>:)

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

Topicstarter
Misschien een stomme vraag, maar waar dienen die haakjes voor bij bijvoorbeeld (totaalSeconden%60);?
Ik bedoel, er staat in dat stukje maar één operator (en dus heb je niet het probleem met welke operator voorgaat) dus waar dienen die haakjes dan voor?

Verwijderd

die hebben inderdaad geen nut, maar ze doen ook niemand kwaad
nie te veel zorgen om maken

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 10:18

Dido

heforshe

berekenUren= (((totaalSeconden)/3600)%60);
Waarom hier %60 :?
%24 zou nog logisch zijn als je vervolgens etmalen berekent...

Wat betekent mijn avatar?


  • Daos
  • Registratie: Oktober 2004
  • Niet online
Verwijderd schreef op zaterdag 09 april 2005 @ 13:13:
Java:
1
2
3
4
totaalSeconden = 5454532;
berekenUren = totaalSeconden /= 3600;
berekenMinuten = berekenUren * 60;
berekenSeconden = berekenMinuten * 60;
/= verandert totaalSeconden. Die heb je nog nodig als je het zonder % wilt doen.

Het kan ook zo:
Java:
1
2
3
4
totaalSeconden = 5454532;
berekenUren = totaalSeconden / 3600;
berekenMinuten = (totaalSeconden - berekenUren * 3600) / 60;
berekenSeconden = totaalSeconden - berekenUren * 3600 - berekenMinuten * 60;
Ik neem aan dat ik voor de te berekenen waarden double moet gebruiken?
Nee alles is in integers.

Kijk ook eens naar de variabele namen. "berekenUren" suggereert dat het een functie is. Beter is "berekendeUren" of gewoon "uren".

Verwijderd

Topicstarter
Misschien een beetje off-topic, maar kan iemand mij misschien vertellen hoe ik tijdens het gebruik van Labels er voor kan zorgen dat er wat newlines tussen komen?
De output ziet er nu namelijk zo uit:

Label1 Tekstvak1 Label2 Tekstvak2 Label3 Tekstvak3

Ik wil het zo hebben:

Label1
Tekstvak1
Label2
Tekstvak2
Label3
Tekstvak3

  • windancer
  • Registratie: Maart 2000
  • Laatst online: 08-05 15:34
Voor de plaatsing van UI items : zoek op java.sun.com maar eens op Layout managers.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-05 18:51

Creepy

Tactical Espionage Splatterer

Ok. Ik krijg nu het idee dat je erg aan het handje gehouden moet worden. De vragen die je nu stelt zijn met enige extra inspanning van jouw kant best op te lossen.

"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

Pagina: 1

Dit topic is gesloten.