# Taschenrechner Erweiterung mit Arrays



## Cr0wey (17. Dezember 2012)

Moin leute, ich komme an der Aufgabe unten nicht mehr weiter. 

Das ist die Aufgabe:  
Erweitern Sie Ihren Taschenrechner! 
Wenn der Nutzer den Operator "s" angibt, soll die Anzahl von einzugebenden Zahlen
eingelesen werden, und danach entsprechend viele Zahlen (in ein Array) eingelesen und summiert
werden. Die Summe wird dann auf der Konsole ausgegeben.

Hier ist meine bisherige Taschenrechner, was ohne ein Array funktioniert: 

```
public class Rechner{
	private double zahl1;
	private double zahl2;
	private char operator;
	private double erg; 
	
	public Rechner(){
		zahl1 = 0;
		zahl2 = 0;
		operator = 'a';
		erg = 0;
	}
	
	// Einlesen der Zahlen und des Operatoreratorzeichens
	void einlesen(){									
		IO.println("Erste Zahl eingeben: ");
		zahl1 = IO.readDouble();
		IO.println("operatoreratorzeichen eingeben: ");
		operator = IO.readChar();
		IO.println("Zweite Zahl eingeben: ");
		zahl2 = IO.readDouble();			
	}
	
	// teilen durch "0" 
	boolean berechne(){									
		if(zahl2 == 0 && operator == '/'){
			return false;
		}
		// abhängig vom Operatoreratorzeichen rechenen
		else{											
			switch(operator){
				case '+':
					erg = zahl1 + zahl2;
					break;
				case '-':
					erg = zahl1 - zahl2;
					break;
				case '*':
					erg = zahl1 * zahl2;
					break;
				case '/':
					erg = zahl1 / zahl2;
					break;
				default:
					return false;
			}
		}
		return true;	
	}
	
	// Ergebnisvariable als String abspeichern und ausgeben
	void ausgeben(){									
		String ausg = String.valueOf(erg);
		IO.println(ausg);
	}
	
	// Main - Funktion
	public static void main(String[] args){		
		// abfragevariable zur Wiederholungsüberprüfung
		char abfr = 'y';	
		// neues Klassenobjekt
		Rechner r = new Rechner();						
		do{
			// aufruf der einlesen-funktion
			r.einlesen();	
			// bei korrekter eingabe und erfolgreicher berechnung...
			if (r.berechne()) {	
				// ...ausgeben-funktion aufrufen um das Ergebnis auf dem Bildschirm auszugeben
				r.ausgeben();							
			}
			// ansonsten...
			else {				
				// "Syntaxfehler" ausgeben
				IO.println("Syntaxfehler");		
			}
			// wiederholungs-abfrage als Char speichern
			IO.println("Wiederholen? y/n");					
			abfr = IO.readChar();
		// hat der Benutzer ein 'y' oder 'Y' eingegeben, führe das Programm erneut aus
		}while(abfr == 'y' || abfr == 'Y');				
	}
	
	
}
```


----------



## vfl_freak (18. Dezember 2012)

Moin,

hast Du auch eine konkrete Frage 

Gruß
Klaus


----------



## Bacardi1539 (18. Dezember 2012)

Wenn ich das richtig verstehe willste eine Anzahl von Zahlen addieren die in einem Array eingelesen werden sollen.

Ich würde tippen das du so eine Lösung suchst (kann mich aber auch irren):

```
public static void main(String[] args) {
    Rechner r = new Rechner();
    IO.println("Gebe die Anzahl der Zahlen an:");
    Double summe = r.berechneArraySumme(IO.readInt());
    IO.println("Die Summe des Arrays beträgt "+summe);
    
  }

  public Double berechneArraySumme(int anzahl) {
    Double[] array = new Double[anzahl];
    for(int i = 0;anzahl > i;++i){
      IO.println("Geben Sie nun Zahl "+(i+1)+"an:");
      array[i] = IO.readDouble();
    }
    Double summe = null;
    for (double x : array){
      summe += x;
    }
    return summe;
 
    
    
  }
```


----------

