Toon posts:

[JAVA] Hulp nodig bij simpel java programmatje

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

Verwijderd

Topicstarter
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.

  • SWfreak
  • Registratie: Juni 2001
  • Niet online
Probleem 1: case 5: (dus zonder quotes)
Probleem 2: Hier moet je zelf maar eens wat langer over nadenken...

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

Alarmnummer

-= Tja =-

Waarom werk je in godsnaam met een switchcase commando?

vb

if(lengte!=5) {
... error
}else{
... hier kan jij de rest van je applicatie bakken.
}

  • Standeman
  • Registratie: November 2000
  • Laatst online: 22:43

Standeman

Prutser 1e klasse

De check van 5 wordt direct uitgevoerd als het programma gestart wordt. (Dus dat schiet niet echt op) aangezien het in de main method staat.

Tip: Events.

(p.s. download een goede IDE zoals Eclipse of Netbeans, dat maakt het allemaal veel makkelijker!)

The ships hung in the sky in much the same way that bricks don’t.


  • Gardocki
  • Registratie: Oktober 2000
  • Niet online
Verwijderd schreef op 11 oktober 2004 @ 15:20:
Probleem 2; de mannier waarop het getal wordt gesplitst in 5 digits door enkel / en % te gebruiken.
Zoiets:

Java:
1
2
3
4
5
6
7
8
9
10
    A = code / 1000;
    code = code % 1000;

    B = code / 100;
    code = code % 100;

    C = code / 10;
    code = code % 10;

    D = code / 1;

Ombouwen voor 5 cijfer kan je zelf wel doen, lijkt mij ;)

They made me do it.


Verwijderd

Topicstarter
Thx het is gelukt!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 01:53

Janoz

Moderator Devschuur®

!litemod

Nou, daar heb je dan mazzel mee. Voor de rest -> Je topic is dicht en het is onterecht? Lees hier!

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.