Hallo ich habe ein Problem mit meinem Java Programm. Ich kann mir nicht erklären wo genau hier der Fehler liegt.
es wäre nett, wenn sich das mal jemand ansehen könnte. das konkrete problem habe ich im spript vermerkt und markiert.
groß lola
es wäre nett, wenn sich das mal jemand ansehen könnte. das konkrete problem habe ich im spript vermerkt und markiert.
groß lola
Code:
import IOulm.*;
public class calculator {
public calculator() {}
public static String eingabe() {
String mystring;
if (Urc.readString());
mystring = Urc.getString();
return mystring;
}
public static void main( String[] args) {
ADTDeluxeStruct DeluxeStruct = new DeluxeStruct(150);
int zeichen;
Object zahlen;
calculate Add = new Add();
//Eingelesene Ziele wird an angegebenen Zeichen getrennt
String[] OperandenundOpereatoren = eingabe().split("[ ,;]");
for (int i=0; i<OperandenundOpereatoren.length; i++) {
if(OperandenundOpereatoren[i]=="+") {
Add.calc(DeluxeStruct);
} else if(OperandenundOpereatoren[i] =="-") {
//Methode für die Subtraction;
} else if(OperandenundOpereatoren[i] =="*") {
//Methode für die Multiplikation;
} else if(OperandenundOpereatoren[i] =="/") {
//Methode für die Division;
} else if(OperandenundOpereatoren[i]=="!") {
//Methode für die Fakultät;
} else {
zahlen = new Integer(OperandenundOpereatoren[i]);
/* irgend wo hier muss der fehler liegen, egal, was ich mache, der stack bleibt leer, d.h die zahlen die draufgeschrieben werden sollten werden nicht draufgeschrieben. wie muss ich diese methode korrekt aufrufen???*/
DeluxeStruct.push(zahlen);
}
}
/* wie muss ich die elemente vom stack naher wieder korrekt aufrufen*/
zahlen = DeluxeStruct.pop();
System.out.print(zahlen);
}
}
Code:
public interface calculate {
public int calc(ADTDeluxeStruct DeluxeStruct);
}
Code:
public class Add implements calculate{
//Konstruktor
public Add() {
}
public int calc(ADTDeluxeStruct DeluxeStuct) {
Object A = DeluxeStuct.pop();
if(A==null) {
System.out.println("Nicht genug Elemente auf dem Stack!");
return 0;
}
Object B = DeluxeStuct.pop();
if(B==null) {
System.out.println("Nicht genug Elemente auf dem Stack!");
DeluxeStuct.add(A);
return 0;
}
int a = ((Integer)A).intValue();
int b = ((Integer)B).intValue();
DeluxeStuct.add(new Integer(a+b));
return (a+b);
}
}
Code:
public interface ADTDeluxeStruct {
public boolean isEmpty();
public boolean isFull();
public Object top();
public boolean push(Object element);
public Object pop();
public Object remove();
public boolean add(Object element);
public Object shift(); // neue Methode
public boolean unshift(Object element); // neue Methode
}