Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
04.05.11, 16:58
|
#1
|
Machead
Registriert seit: Jul 2010
Beiträge: 855
Bedankt: 631
|
[Java] Nullstelle
Hey, ich wollte in meinen Pircbot einen Nullstellenrechner einbauen.
Zitat:
public class MyBot extends PircBot {
static ArrayList<String> calcvar = new ArrayList<String>();
static ArrayList<Double> calcvarval = new ArrayList<Double>();
static String botName = "Maxorbot";
|
Zitat:
public void onMessage(String channel, String sender,
String login, String hostname, String message) {
if(message.contains("!nullstelle")){
double ersterxwert, zweiterxwert;
String equation[] = message.split(" ");
String value1 = equation[1];
String value2 = equation[2];
String value3 = equation[3];
boolean var1Exists = calcvar.contains(equation[1]);
boolean var2Exists = calcvar.contains(equation[2]);
boolean var3Exists = calcvar.contains(equation[3]);
if(var1Exists == true){
value1 = Double.toString(calcvarval.get(calcvar.indexOf(equ ation[1])));
}
if(var2Exists == true){
value2 = Double.toString(calcvarval.get(calcvar.indexOf(equ ation[2])));
}
if(var3Exists == true){
value3 = Double.toString(calcvarval.get(calcvar.indexOf(equ ation[3])));
}
try{
if (Math.sqrt((Double.parseDouble(value2)*(Double.par seDouble(value2)))-4*(Double.parseDouble(value1))*(Double.parseDouble (value3))) <= 0) {
sendMessage(channel, sender + ": Die Diskriminante wird negativ oder 0.");
}
else
ersterxwert = (double)(-(Double.parseDouble(value2))+Math.sqrt((Double.par seDouble(value2))*(Double.parseDouble(value2)))-4*(Double.parseDouble(value1))*(Double.parseDouble (value3)))/(2*(Double.parseDouble(value1)));
zweiterxwert = (double)(-(Double.parseDouble(value2))-Math.sqrt((Double.parseDouble(value2))*(Double.par seDouble(value2)))-4*(Double.parseDouble(value1))*(Double.parseDouble (value3)))/(2*(Double.parseDouble(value1)));
sendMessage(channel, "X1: " + ersterxwert);
sendMessage(channel, "X2: " + zweiterxwert);
}catch(Exception e){
}
}
|
Ich bekomme bei "sendMessage(channel, "X1: " + ersterxwert);" folgenden Fehler.
Multiple markers at this line
- The local variable ersterxwert may not have been initialized
Kann mir jemand erklären wieso? (Bin nicht wirklich gut in Java  )
Grüße
-Maxor
__________________
Die einfachste Art die Zukunft vorherzusagen, ist sie zu implementieren. (David Heinemeier Hansson)
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
|
|
|
04.05.11, 17:41
|
#2
|
Mitglied
Registriert seit: May 2010
Beiträge: 426
Bedankt: 224
|
läuft das programm den schon, oder kommt der fehler beim kompilieren?
wenns beim compilieren kommt, denke ich mal, dass das problem ist, dass du ersterwert in einer if-bedingung initialisierst, sendmessage aber auf jeden fall aufrufst.
steige jetzt gerade nicht hinter den mathematischen sinn des programms, aber ich denke du möchtest
sendMessage(channel, "X1: " + ersterxwert);
nur aufrufen, wenn
if (Math.sqrt((Double.parseDouble(value2)*(Double.par seDouble(value2)))-4*(Double.parseDouble(value1))*(Double.parseDouble (value3))) <= 0)
nicht erfüllt ist, richtig?
dann hast du hinter dem else einfach die {} vergessen.
oder willst du
sendMessage(channel, "X1: " + ersterxwert);
auf jeden fall ausführen? dann musst du ersterWert noch einen wert zuweisen (am besten da, wo du die variable anlegst)
|
|
|
04.05.11, 18:05
|
#3
|
Machead
Registriert seit: Jul 2010
Beiträge: 855
Bedankt: 631
|
Zitat:
läuft das programm den schon, oder kommt der fehler beim kompilieren?
|
Wird in Eclipse angezeigt
Zitat:
steige jetzt gerade nicht hinter den mathematischen sinn des programms, aber ich denke du möchtest
sendMessage(channel, "X1: " + ersterxwert);
nur aufrufen, wenn
if (Math.sqrt((Double.parseDouble(value2)*(Double.par seDouble(value2)))-4*(Double.parseDouble(value1))*(Double.parseDouble (value3))) <= 0)
nicht erfüllt ist, richtig?
|
Ja genau, sonst ergibt das ja keinen Sinn. Danke da hab ich wohl ne Klammer übersehen  .
__________________
Die einfachste Art die Zukunft vorherzusagen, ist sie zu implementieren. (David Heinemeier Hansson)
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 Uhr.
().
|