Centimeter naar pixels omrekenen en andersom

Status
Niet open voor verdere reacties.

Axysnake

Gebruiker
Lid geworden
9 jan 2008
Berichten
10
ik moet voor informatica een applet maken waarmee je cm naar pixels kan omrekenen en andersom

kheb nu

Code:
double pixel = Integer.parseInt (px640horizontaalVeld.getText());
         do {
            double cm = pixel*0.026458333;
         }
         while (pixel < 480 );
       cm640horizontaalVeld.setText(String.valueOf(cm));

wat is er fout ?
 
Laatst bewerkt door een moderator:
Als het goed eens krijg je dus een melding. Daar staat meestal in wat er fout is.

Er hoort in ieder geval geen spatie tussen double pixel = Integer.parseInt en (px640horizontaalVeld.getText());
 
daar ligt het niet aan , als ik dat do en while stukje weghaal dus dit heb :
int pixel = Integer.parseInt(px640horizontaalVeld.getText());

double cm = pixel*0.026458333;


cm640horizontaalVeld.setText(String.valueOf(cm));

Doet hij het wel , maar ik wil dus instellen dat je het aantal pixels maar maximaal tot 480 kan invoeren.
 
Po.java:157:45: cannot resolve symbol
symbol : variable cm
location: class PO
cm640horizontaalVeld.setText(String.valueOf(cm) ) ;
en dan bij (String.valueOf(cm) ) ; zon pijltje die naar de c van cm wijst
1 error
 
Sowieso hetgene wat niet goed is aan je While-lus is dat er geen verhoging/verlaging van de voorwaarde in staat.

Je hebt nu:
Code:
do {
double cm = pixel*0.026458333;
}
while (pixel < 480 );

Deze gaat oneindig door omdat pixel 1x ingesteld is en nergens in de while-lus wordt aangepast.
Daardoor krijg je een stack-overflow

Daarnaast maak je de variabele cm aan in de while-lus.
Doe het eens zo om het probleem met de variabele op te lossen:

Code:
double cm;
do {
cm = pixel*0.026458333;
}
while (pixel < 480 );

Als je een variabele aanmaakt in een lus, dan kan je die niet gebruiken buiten die lus.
Je mag deze wel even doorlezen. Daarin staat aangegeven hoe je een class en de variabelen welke je wil gebruiken het beste aan kan maken.
http://www.ivobrugge.be/Cursusweb/Java/object.asp
 
Welkom op Helpmij.:)

Ik heb de titel even aangepast "Probleempje" zegt niets over je vraag/probleem. Tevens code tag toegevoegd in je eerste bericht.
 
dat klopt..
Omdat hij een stackoverflow krijgt zoals ik al uitlegde
Je zal de variabele pixels moeten verhogen(binnen de while loop) om deze een einde te geven.
 
hij loopt nu vast

Klopt, het zit hem dus in die "< 480".
Probeer hem eens uit door een waarde in te typen groter dan 480... dan doe 'tie het wel! (bij mij dan). Met die code tips van killermenace doet hij het dus boven de 480. Ik kan je wel vertellen waar de fout zit, hoe je die nu moet oplossen weet ik niet. Misschien killermenace wel :).


PS: Liever niet meteen mailen als je na 6 minuten nog geen oplossing hebt.

edit: killermenace was eerder
 
Laatst bewerkt:
Nja nog niet hoor :S kheb 600 800 1200 ingevoerd maar nog doe hij het niet:(
 
Vreemd,
In mijn kleine testje doet hij het wel:

 
1 ding vraag ik mij af.
Waarom wil je hier een while-loop gebruiken?

Je doet maar 1 berekening.
Als je steeds een verhoging nodig hebt.. dan is een for of een while loop handig.. anders is het niet nodig.

Btw, heb je de link ook al doorgelezen welke ik je gegeven heb?
 
Laatst bewerkt:
O , Ik heb hem al :D

public void pc640KnopActionPerformed(ActionEvent evt)
{
int pixel = Integer.parseInt (px640horizontaalVeld.getText());
double cm = pixel*0.026458333;
if(pixel>480)
{
cm640horizontaalVeld.setText("Te hoog aantal pixels");
}
if(pixel <= 480)
{
cm640horizontaalVeld.setText(String.valueOf(cm));
}
[/quotes]


Tog bedankt :thumb::o
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan