tranceftw
Gebruiker
- Lid geworden
- 6 apr 2009
- Berichten
- 149
De klasse Program:
De klasse Vkv_v2
Ok, allebei de klassen compileren, maar als ik het uitvoert, geef hij een hele reeks foutmeldingen nadat ik de vkv in gegeven heb en op 'Bereken' heb geklikt.
Ik weet dat de code van Vkv_v2 niet zo goed is en dat er een paar dezelfde stukken code in zitten, maar daar nu even niet op letten aub. Kben nog maar een beginnend programmeur en het is de eerste keer dat ik een programma uitvoer zonder Bluej. (Op een paar simpele programmatjes na natuurlijk.)
Het boek waarmee ik leer programmeren is programmeren in Java met Bluej, een boek dat jullie waarschijnlijk wel kennen.
Ik hoop dat jullie mij kunnen helpen zodat het programma wel uitgevoerd kan worden.
Alvast bedankt voor alle hulp die misschien komt.
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JPanel;
public class Program
{
private JFormattedTextField tekstveld;
private JFrame frame;
private JMenuBar menubalk;
private String text;
private String uitkomst;
public Program()
{
setFrame();
}
public void setFrame()
{
frame = new JFrame();
JPanel p = new JPanel();
JTextField tekstveld = new JTextField(20);
p.add(tekstveld);
frame.setContentPane(p);
frame.setVisible(true);
menubalk = new JMenuBar();
frame.setJMenuBar(menubalk);
JMenuItem berekenen = new JMenuItem("Berekenen VKV!");
berekenen.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
BerekenVkv();
}
});
menubalk.add(berekenen);
text = tekstveld.getText();
}
public void BerekenVkv()
{
text.trim();
Vkv_v2 vkv = new Vkv_v2(text);
uitkomst = vkv.zoekNulpunten();
System.out.println(text);
}
private String getText()
{
return text;
}
}
De klasse Vkv_v2
Code:
public class Vkv_v2
{
private String vergelijking;
private String[] splittedAvgl;
private String[] splittedBvgl;
private String a;
private String b;
private String c;
private int a2;
private int b2;
private int c2;
private String split2;
private int discriminant;
public Vkv_v2(String geefVergelijking)
{
vergelijking = geefVergelijking;
splittedAvgl = new String[10];
splittedBvgl = new String[10];
splitVkv();
makeStringInt();
zoekDiscriminant();
zoekNulpunten();
}
public void splitVkv()
{
String[] splittedAvgl = vergelijking.split("x²");
a = splittedAvgl[0];
split2 = splittedAvgl[1];
String splittedBvgl[] = split2.split("x");
b = splittedBvgl[0];
c = splittedBvgl[1];
}
public void makeStringInt()
{
if(a.length() == 0 || b.length() == 0 || c.length() == 0)
{
checkVoorGeenGetal();
}
if(a.substring(0,1).equals("+") || b.substring(0,1).equals("+") || c.substring(0,1).equals("+"))
{
checkVoorPlus();
}
if(a.substring(0,1).equals("-") || b.substring(0,1).equals("-") || c.substring(0,1).equals("-"))
{
checkVoorGeenNegGetal();
}
if(a.length() == 0 || b.length() == 0 || c.length() == 0)
{
checkVoorGeenGetal();
}
a2 = Integer.parseInt(a);
b2 = Integer.parseInt(b);
c2 = Integer.parseInt(c);
}
public void zoekDiscriminant()
{
int bKwadraat = b2 * b2;
discriminant = bKwadraat - (4 * a2 * c2);
}
public String zoekNulpunten()
{
if(discriminant < 0)
{
return "Er is zijn geen nulpunten want de discriminant is negatief(" + discriminant + ")!";
}
else if(discriminant == 0)
{
int x1;
int x2;
x1 = (-b2 + discriminant) / (2*a2);
return "Er is één nulpunt: " + x1 + ".";
}
else
{
double dVierkantswortel = Math.sqrt(discriminant);
double x1;
double x2;
x1 = (-b2 + dVierkantswortel) / (2*a2);
x2 = (-b2 - dVierkantswortel) / (2*a2);
return "Er zijn twee nulpunten: " +x1 + " en " + x2 + "!";
}
}
public void checkVoorPlus()
{
if(a.substring(0,1).equals("+"))
{
a = a.substring(1);
}
if(b.substring(0,1).equals("+"))
{
b = b.substring(1);
}
if(c.substring(0,1).equals("+"))
{
c = c.substring(1);
}
}
public void checkVoorGeenGetal()
{
if(a.length() == 0)
{
a = "1";
}
if(b.length() == 0)
{
b = "1";
}
if(c.length() == 0)
{
c = "1";
}
}
public void checkVoorGeenNegGetal()
{
if(a.substring(0,1).equals("-"))
{
a = "-1";
}
if(b.substring(0,1).equals("-"))
{
b = "-1";
}
if(c.substring(0,1).equals("-"))
{
c = "-1";
}
}
}
Ok, allebei de klassen compileren, maar als ik het uitvoert, geef hij een hele reeks foutmeldingen nadat ik de vkv in gegeven heb en op 'Bereken' heb geklikt.
Ik weet dat de code van Vkv_v2 niet zo goed is en dat er een paar dezelfde stukken code in zitten, maar daar nu even niet op letten aub. Kben nog maar een beginnend programmeur en het is de eerste keer dat ik een programma uitvoer zonder Bluej. (Op een paar simpele programmatjes na natuurlijk.)
Het boek waarmee ik leer programmeren is programmeren in Java met Bluej, een boek dat jullie waarschijnlijk wel kennen.
Ik hoop dat jullie mij kunnen helpen zodat het programma wel uitgevoerd kan worden.
Alvast bedankt voor alle hulp die misschien komt.