Ik heb wat hulp nodig bij het programmeren van een (simpel) programmatje in JAVA.
De opdracht is als volgt:
Schrijf een programma dat:
(1) een getal van de gebruiker vraagt van precies vijf cijfers,
(2) het ingetikte getal weergeeft,
(3) het getal uit elkaar trekt in vijf aparte digits, met behulp van de rekenkundige operatoren / en %,
(4) het resultaat in de uitvoer laat zien met drie spaties tussen elk digit,
(5) een duidelijke foutmelding geeft, met behulp van het ERROR_MESSAGE dialoog type, wanneer te veel of te weinig tekens ingetikt worden.
Een screenshot van mogelijke uitvoer: http://temp.watzer.nl/java.gif
Aanwijzingen
De lengtetelling van een tekst-string uit oefening 4 kan gebruikt worden om alleen die 'getallen' te ontleden die precies 5 tekens bevatten en de andere niet te ontleden, maar er een foutmelding op te geven.
Er hoeft geen rekening gehouden te worden met andere invoer dan de cijfers 0 t/m 9.
Met de operatoren / en % kan men rekenen in gehelen, het zgn. 'geheeld-delen' met gehele getallen (integers). Als uitkomst van x / y krijgt men het aantal gehele keren dat y in x is te vinden, als uitkomst van x % y krijgt men het restgetal na deling. Dus 10 / 3 = 3 en 10 % 3 = 1. Met deze operatoren is een geheel getal te ontleden in de aparte digits die er deel van uitmaken.
Vraag: hoe vangt het programma ingetikte 'voorloop' nullen (als bv 00003 ingetikt) of spaties op?
Het gaat mij vooral om het gedeelte waarin het getal uitelkaar wordt gehaald en de 5 verschillende
digits worden weergegeven. Hoe doe ik dit met enkel behulp van / (geheeld delen) en % (modulus - rest).
Kan iemand een voorbeeld maken? Ik heb hier nouwelijks ervaring mee.
Ik gebruik de compiler Eclipse, maar dit is denk ik niet van belang.
Ik heb nu de volgende code:
import javax.swing.*;
class prog
{
public static void main(String[] args)
{
int getal;
JOptionPane myGUI = new JOptionPane();
String getalString, uitkomst, error;
getalString = myGUI.showInputDialog("Tik een getal van precies 5 cijfers in:");
int lengte = getalString.length();
error = "Ingevoerde getal = " + getalString + "\n getal is groter dan 5 tekens";
switch (lengte)
{
case '5': getal = Integer.parseInt(getalString); break;
default: myGUI.showMessageDialog(null, error);
}
myGUI.showMessageDialog(null, getalString);
}
}
Probleem 1; om de een of andere reden werkt mijn methode om te controleren of het ingevoerde getal wel voldoet aan de eis van 5 getallen niet. de default optie van de switch wordt altijd weergegeven, ook als er 5 getallen zijn ingevoerd.
Probleem 2; de mannier waarop het getal wordt gesplitst in 5 digits door enkel / en % te gebruiken.
De opdracht is als volgt:
Schrijf een programma dat:
(1) een getal van de gebruiker vraagt van precies vijf cijfers,
(2) het ingetikte getal weergeeft,
(3) het getal uit elkaar trekt in vijf aparte digits, met behulp van de rekenkundige operatoren / en %,
(4) het resultaat in de uitvoer laat zien met drie spaties tussen elk digit,
(5) een duidelijke foutmelding geeft, met behulp van het ERROR_MESSAGE dialoog type, wanneer te veel of te weinig tekens ingetikt worden.
Een screenshot van mogelijke uitvoer: http://temp.watzer.nl/java.gif
Aanwijzingen
De lengtetelling van een tekst-string uit oefening 4 kan gebruikt worden om alleen die 'getallen' te ontleden die precies 5 tekens bevatten en de andere niet te ontleden, maar er een foutmelding op te geven.
Er hoeft geen rekening gehouden te worden met andere invoer dan de cijfers 0 t/m 9.
Met de operatoren / en % kan men rekenen in gehelen, het zgn. 'geheeld-delen' met gehele getallen (integers). Als uitkomst van x / y krijgt men het aantal gehele keren dat y in x is te vinden, als uitkomst van x % y krijgt men het restgetal na deling. Dus 10 / 3 = 3 en 10 % 3 = 1. Met deze operatoren is een geheel getal te ontleden in de aparte digits die er deel van uitmaken.
Vraag: hoe vangt het programma ingetikte 'voorloop' nullen (als bv 00003 ingetikt) of spaties op?
Het gaat mij vooral om het gedeelte waarin het getal uitelkaar wordt gehaald en de 5 verschillende
digits worden weergegeven. Hoe doe ik dit met enkel behulp van / (geheeld delen) en % (modulus - rest).
Kan iemand een voorbeeld maken? Ik heb hier nouwelijks ervaring mee.
Ik gebruik de compiler Eclipse, maar dit is denk ik niet van belang.
Ik heb nu de volgende code:
import javax.swing.*;
class prog
{
public static void main(String[] args)
{
int getal;
JOptionPane myGUI = new JOptionPane();
String getalString, uitkomst, error;
getalString = myGUI.showInputDialog("Tik een getal van precies 5 cijfers in:");
int lengte = getalString.length();
error = "Ingevoerde getal = " + getalString + "\n getal is groter dan 5 tekens";
switch (lengte)
{
case '5': getal = Integer.parseInt(getalString); break;
default: myGUI.showMessageDialog(null, error);
}
myGUI.showMessageDialog(null, getalString);
}
}
Probleem 1; om de een of andere reden werkt mijn methode om te controleren of het ingevoerde getal wel voldoet aan de eis van 5 getallen niet. de default optie van de switch wordt altijd weergegeven, ook als er 5 getallen zijn ingevoerd.
Probleem 2; de mannier waarop het getal wordt gesplitst in 5 digits door enkel / en % te gebruiken.