Java
import java.util.*;
public class Calculator {
public static void main (String[] args) {
Scanner s = new Scanner(System.in);
ArrayList<Complex> storage = new ArrayList<Complex>();
char rechenop = '0';
rechenop= s.next().charAt(0);
while ( s.hasNextInt() )
{
try {
Complex b = new Complex(s.nextInt(),s.nextInt());
storage.add(b);
} catch (InputMismatchException e) {
System.out.println("FALSCHE EINGABE1");
} catch (NoSuchElementException e) {
System.out.println("FALSCHE EINGABE2");
}
}
Complex result = new Complex(0,0);
switch (rechenop)
{
case '+':
for (int i = 0; i < storage.size(); i++) {
result.add(storage.get(i));
}
System.out.print(result.getAusgabe());
break;
case '-':
for (int i = 0; i < storage.size(); i++){
result.sub(storage.get(i));
}
System.out.print(result.getAusgabe());
break;
default:
System.out.print("FALSCHE EINGABE3");
}
}
}
Alles anzeigen
Addition funktioniert wunderbar.
Subtraktion nicht.
Wenn ich z.b. - 1 2 3 4 eingebe, sollte rauskommen: -2 -2 bei mir kommt aber: -4 -6 raus
Complex Klasse:
Code
public class Complex
{
private int imag, real;
private int i = 0; //laufvariable
public Complex(int real, int imag)
{
this.real = real;
this.imag = imag;
}
public String getAusgabe()
{
return(this.real + " " + this.imag);
}
public void add(Complex c)
{
real += c.real;
imag += c.imag;
}
public void sub(Complex c)
{
if (i == 0)
{
real = c.real;
imag = c.imag;
}
else
{
real -= c.real;
imag -= c.imag;
}
i++;
}
}
Alles anzeigen