Toon posts:

[java] probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik moet voor school het volgende programma schrijven :

Een wisselprogramma. Er kan in de applet een bedrag worden ingetypt in een tekstvak. Er wordt gesignaleerd als dit geen geldig getal is. Anders wordt het netjes in een zo klein mogelijk aantal bankbiljetten en munten
omgerekend.

Ik heb tot nu toe het volgende gemaakt en ik kom er echt niet meer uit iemand een oplossing of een gelijkwaardig programma wat ik kan gebruiken ? :

import java.applet.*;
import java.awt.*;
public class wissel extends Applet {

Button knopje = new Button ("Klik");
TextField vakje = new TextField (10);
int telarray[]= {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
String bedragen[]=
{"500.00","200.00","100.00","50.00","20.00","10.00","5.00","2.00","1.00","0.50","0.20","0.10","0.05","0.02","0.01"};
double dubbel;
String tekst=" ",tempwoord;
boolean fout;

public void init () {
add (vakje);
add (knopje);
}
public void paint (Graphics g) {
g.drawString (tekst,10,100);
}


public boolean action (Event e, Object o){
if (e.target == knopje){
//dubbel = null;
tempwoord = vakje.getText();
try {
Double tempa = Double.valueOf(tempwoord);
dubbel = tempa.doubleValue();
}
catch (java.lang.NumberFormatException exc) {
tekst= " Geen Getal ";
fout = true;
}
if (!fout){
tekst= "het getal is " + dubbel;
for (int a=0; a<bedragen.length; a++) {
Double tempb = Double.valueOf(bedragen[a]);
double b = tempb.doubleValue();
do{
if (dubbel > b){
dubbel = dubbel - b;
telarray[a]++ ;
}
}while (dubbel>b);
}

Iemand die me kan helpen ?? ben echt radeloos , moet vanuit het niets dit maken ..... :'(



}



repaint();
return true;

}
return false;
}


}

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

zet er svp ff [code] en [./code] (zonder .) omheen svp

Doet iets met Cloud (MS/IBM)


Verwijderd

Move: [forum=13] -> [forum=14]

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Wat werkt er niet?

waarom alloceer je een array met de briefjes/munten in strings?

Verwijderd

komt me bekend voor, projectje voor eerstejaars HvU'ers ?

moet if (dubbel > b) niet >= zijn ???

dubbel = dubbel - b; is trouwens hetzelfde als dubbel -= b;

verder ziet het er dacht ik toch wel goed uit ?

Verwijderd

Heb net zo'n programmatje gemaakt in Turbo pascal 7.0.
misschien voor de programmastructuur...
roep maar...

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

Alarmnummer

-= Tja =-

We doen hier niet aan 'wil je mijn huiswerk aub even maken'. Ik zal je een tip geven waarin je de oplossing van je probleem kan vinden.
Stel ik heb de volgende briefjes.
50,20,10,5
en de volgende munten:
2,1

en het volgende bredrag:
fl 97,-

dan zou ik eerst kunnen bepalen hoeveel keer 50 erin past, das 1 keer.. en ik hou over 97-50=47

nu bepaal ik hoeveel keer 20 erin past (het briefje na 50) en dat wil dus 2 keer, en dan hou je over 47-2x20=7

nu kijk ik naar het volgende briefje (10) en 7 is niet deelbaar door 10, dus deze kan ik skippen, nu ga ik naar de 2 gulden munt en nu kan ik dat 3 keer doen.
dus 7-3x2=1 hou ik over.. en dat is precies 1 gulden munt..

dus totaal
50x1
20x2
2x3
1x1

Hiermee moet je je opgave op kunnen lossen.

Je moet er wel voorzorgen dat je routines een stuk netter worden, want dit is echt 3x niets. Probeer eens wat minder cryptische variable namen te gebruiken en waarom sla je die bedragen op in strings?????? Dit kan je net zo goed in reals doen. Je hoeft dan en niet te converteren en het risco lopen dat de conversie mislukt. Daarnaast is het ook erug lelijk.
Pagina: 1