# Array vektoren addieren und reversion bilden



## JayD2008 (23. November 2008)

Hallo,

bin ganz frisch in der javaprogrammierung angekommen und hätte da zwei fragen bezüglich array.

es geht darum das ich zwei vektoren deklariert habe und diese addieren möchte, daraus einen neuen vektor z erstellen möchte und diesen dann ausgeben möchte.

nun ist die frage welche operatoren ich dazu benötige, habe mich schon dumm und dusselig gesucht, scheint aber so einfach das darauf niemand stellung bezieht :suspekt:

meine zu wissen das ich :


```
for(int i=0;i<x.length;i++)
```



dazu benötige nur wie wende ich es richtig an ?
danach

```
z[] = x[i]+y[i]
```
  bleibt erfolglos 


Sofern diese problem gelöst ist würde ich gerne noch die reversive von einem vektor bilden. Sortieren hilft mir(wie ich es schon gefunden habe) leider nicht weiter.




Ganz großen Dank an euch für die Hilfe und eure Aufmerksamkeit 


MfG J.


----------



## xanadoo (23. November 2008)

Also mal ne Frage...
Arbeitest du nun mit Arrays oder mit Vectoren?

Falls du zum Beispiel mit einem Array des Typs int arbeitest müsste:


```
for(int i=0;i<x.length;i++) {
  z[i] = x[i]+y[i];
}
```

gehen.

Voruausgesetzt, alle Arrays sind mit der gleichen Grösse und dem gleichen Typ inizialisiert.


----------



## JayD2008 (23. November 2008)

danke erstmal für die antwort.

also arbeite mit arrays

aber:

```
int[] x = {2, 4, 6};
int[] y = {7, 5, 3};
```

sind ja zwei vektoren, diese sollen nun addiert und die summe als neuer vektor dargestellt werden.  

nachdem ich z [ i ] gemacht habe und nicht z [ ] kommt auch kein fehler.


nun möchte ich aber jeden einzelnen wert von z ausgeben lassen


sprich 

```
System.out.println("Summe = " + z[0] + " " + z[1] + " " + z[2]);
```



nur kommt als fehler irgendwas von "illegal start of type " was bedeutet das ?

wenn ich das nun geschafft habe wie mach ich dann  eine reversearry von z ?



vielen dank für die hilfe


----------



## xanadoo (23. November 2008)

Mir scheint, du bringst hier immer Array und Vector durcheinander.
Das sind jedoch zwei völlig verschiede Klassen.


```
System.out.println("Summe = " + z[0] + " " + z[1] + " " + z[2]);
```

Würde dir das erste Element aus dem Array z, das zweite aus dem Array z und das dritte Element aus dem Array z ausgeben, aber nicht als Summe, sondern einfach die Ziffern aneinander gereiht.

Dies dürfte aber keine Exception werfen...

Könntest du nicht den ganzen Code und auch die ganze Fehlermeldung Posten?
Zudem, was genau meinst du mit: "reversearry von z"?


----------



## JayD2008 (23. November 2008)

```
/**
* Diese Klasse berechnet die Summe von zwei gegebenen Vektoren und
* gibt das Resultat auf der Konsole aus.
*/
class Summe {
public static void main (String[] args) {
/* Deklarationen und Initialisierungen */
int[] x = {2, 4, 6};
int[] y = {7, 5, 3};
int[] z;
/* AUFGABE: Berechnen Sie die Summe der Vektoren x und y und
weisen Sie das Ergebnis dem Array z zu.*/
    for(int i=0;i<x.length;i++) {
  z[i] = x[i]+y[i];
}     
}
        
/* Ausgabe */
System.out.println("Summe = " + z[0] + " " + z[1] + " " + z[2]);
}
}
```


Fehler:


```
C:\Users\Administrator\Desktop\Java\rohmaterial\rohmaterial\Sprechen Sie Java\Datentypen\src\de\ipartner\java\NewClass3.java:19: <identifier> expected
System.out.println("Summe = " + z[0] + " " + z[1] + " " + z[2]);
C:\Users\Administrator\Desktop\Java\rohmaterial\rohmaterial\Sprechen Sie Java\Datentypen\src\de\ipartner\java\NewClass3.java:19: illegal start of type
System.out.println("Summe = " + z[0] + " " + z[1] + " " + z[2]);
C:\Users\Administrator\Desktop\Java\rohmaterial\rohmaterial\Sprechen Sie Java\Datentypen\src\de\ipartner\java\NewClass3.java:19: ')' expected
System.out.println("Summe = " + z[0] + " " + z[1] + " " + z[2]);
C:\Users\Administrator\Desktop\Java\rohmaterial\rohmaterial\Sprechen Sie Java\Datentypen\src\de\ipartner\java\NewClass3.java:19: ';' expected
System.out.println("Summe = " + z[0] + " " + z[1] + " " + z[2]);
```



Will halt jedes einzelne Kästchen des z Arrays ausgeben.


Und mit ReverseArray meine ich.

z.B. :

```
z = { 1, 4, 5}
```


und reverse


```
z = { 5, 4, 1}
```




hoffe wird nun klar


----------



## xanadoo (23. November 2008)

z.B. so:


```
// Arrays inizialisieren
		int[] x = {2, 4, 6};
		int[] y = {7, 5, 3};
		int[] z = new int[3];
		
		// Elemet i von Array x und Element i von Array y addieren und in Array z an der Stelle i speichern
		for(int i = 0; i < x.length; i++) {
			z[i] = x[i] + y[i];
		}

		// Elemente aus Array z addieren und Summe ausgeben
		int summe = 0;
		for(int i = 0; i < z.length; i++) {
			summe += z[i];
		}
		System.out.println("Summe: " + summe);

		// Array z vorwärts ausgeben
		System.out.println("Vorwärts: " + z[0] + ", " + z[1] + ", " + z[2]);

		// Array z rückwärts ausgeben
		System.out.println("Rückwärts: " + z[2] + ", " + z[1] + ", " + z[0]);
```

Der Fehler war, dass du den Array z nicht inizialisiert, sondern nur deklariert hast.


----------



## JayD2008 (23. November 2008)

OK,

danke also klappt mit der Ausgabe etc.


nun zu der reversen: klar kann ich das manuell einfach umdrehen, will aber das java das automatisch macht !

sprich trotzdem :

System.out.println("Vorwärts: " + z[0] + ", " + z[1] + ", " + z[2]);


und das originale ergebnis nur umgekehrt.


----------

