# Feldeinträge/Feldinhalt eines Arrays



## ndwho (19. Feb 2016)

Hallo Leute,

hoffentlich bin ich hier richtig. Folgende Aufgabe konnte ich nicht lösen, da ich hier das Prinzip noch nicht verstanden konnte. Ich hoffe hier kann mir jemand helfen das Prinzip bzw. den Weg zu erklären wie man zu der Lösung kommt.

Geben Sie die Werte der Feldeinträge von a an, um durch den gegebenen Code den unten angegebenen Feldinhalt zu erzeugen.

```
int[][] a = {{ /*Wert*/,  /*Wert*/}, { /*Wert*/}, {/*Wert*/,  /*Wert*/}};
int[] b = a[0];
b[0] += a[2][0];
a[2][0] = b[0] - a[2][0];
b[0] -= a[2][0];
int[] c = a[0];
c[0] += a[2][1];
a[2][1] = c[0] - a[2][1];
c[0] -= a[2][1];
int[] d = {a[0][1], 7};
d[0] = a[2][0];
```

*Lösung:*

```
int[][] a = {{5, 9}, {3}, {8, 6}}   // a = {{5, 9}, {3}, {8, 6}}
int[] b = a[0];                     // b = {5, 9}    a = {{5, 9}, {3}, {8, 6}}
b[0] += a[2][0];                    // b[0] = 13     a = {{13, 9}, {3}, {8, 6}}
a[2][0] = b[0] - a[2][0];           // a[2][0] = 5   a = {{13, 9}, {3}, {5, 6}}
b[0] -= a[2][0];                    // b[0] = 8       a = {{8, 9}, {3}, {5, 6}}
int[] c = a[0];                     // c = {8, 9}     a = {{8, 9}, {3}, {5, 6}}
c[0] += a[2][1];                    // c[0] = 14      a = {{14, 9}, {3}, {5, 6}}
a[2][1] = c[0] - a[2][1];           // a[2][1] = 8    a = {{14, 9}, {3}, {5, 8}}
c[0] -= a[2][1];                    // c[0] = 6      a = {{6, 9}, {3}, {5, 8}}
int[] d = {a[0][1], 7};             // d = {9, 7}    a = {{6, 9}, {3}, {5, 8}}
d[0] = a[2][0];                     // d[0] = 5      a = {{6, 9}, {3}, {5, 8}}
```


----------



## Joose (19. Feb 2016)

Die Lösung scheint zu stimmen. Da ich die Aufgabenstellung aber nicht ganz verstehe bin ich mir auch nicht so sicher was du genau von uns brauchst


----------



## ndwho (19. Feb 2016)

Naja dann sind wir schonmal zwei. Das ist die Aufgabestellung unseres Profs. und die Lösung bekommen wir am Ende eines Testats.. mehr zur Aufgabestellung gibt es nicht. Falls jemand eine Idee hat wie diese Zeile:

int[][] a = {{ /*Wert*/,  /*Wert*/}, { /*Wert*/}, {/*Wert*/,  /*Wert*/}};

gefüllt werden soll (siehe auch Lösung) bzw. wie man zu den Werten in den Lösung kommt und mir das erklären kann, dann bitte melden


----------



## Joose (19. Feb 2016)

Was genau hast du vom Prof bekommen?

Für mich wäre das die Aufgabenstellung:

Geben Sie die Werte der Feldeinträge von a an, um durch den gegebenen Code den unten angegebenen Feldinhalt zu erzeugen.

```
int[][] a = {{ /*Wert*/,  /*Wert*/}, { /*Wert*/}, {/*Wert*/,  /*Wert*/}};
int[] b = a[0];
b[0] += a[2][0];
a[2][0] = b[0] - a[2][0];
b[0] -= a[2][0];
int[] c = a[0];
c[0] += a[2][1];
a[2][1] = c[0] - a[2][1];
c[0] -= a[2][1];
int[] d = {a[0][1], 7};
d[0] = a[2][0];
```

Hier würde aber noch "der unten angegeben Feldinhalt" fehlen.

-----------------------

Um was genau handelt es sich bei folgenden Code? Für mich schaut das schon nach der Lösung zu der Aufgabe auf.
Und wenn es die Lösung ist sollt dir doch klar sein was in die entsprechende Platzhalter /*Wert*/ eingesetzt werden sollte.

*Lösung:*

```
int[][] a = {{5, 9}, {3}, {8, 6}}   // a = {{5, 9}, {3}, {8, 6}}
int[] b = a[0];                     // b = {5, 9}    a = {{5, 9}, {3}, {8, 6}}
b[0] += a[2][0];                    // b[0] = 13     a = {{13, 9}, {3}, {8, 6}}
a[2][0] = b[0] - a[2][0];           // a[2][0] = 5   a = {{13, 9}, {3}, {5, 6}}
b[0] -= a[2][0];                    // b[0] = 8       a = {{8, 9}, {3}, {5, 6}}
int[] c = a[0];                     // c = {8, 9}     a = {{8, 9}, {3}, {5, 6}}
c[0] += a[2][1];                    // c[0] = 14      a = {{14, 9}, {3}, {5, 6}}
a[2][1] = c[0] - a[2][1];           // a[2][1] = 8    a = {{14, 9}, {3}, {5, 8}}
c[0] -= a[2][1];                    // c[0] = 6      a = {{6, 9}, {3}, {5, 8}}
int[] d = {a[0][1], 7};             // d = {9, 7}    a = {{6, 9}, {3}, {5, 8}}
d[0] = a[2][0];                     // d[0] = 5      a = {{6, 9}, {3}, {5, 8}}
```


----------



## ndwho (19. Feb 2016)

Joose hat gesagt.:


> Was genau hast du vom Prof bekommen?



Das habe ich zu Anfang bekommen. Die Lösung erst DANACH, also die Lösung gehört NICHT zur Aufgabe.

```
Geben Sie die Werte der Feldeinträge von a an, um durch den gegebenen Code den unten angegebenen Feldinhalt zu erzeugen.
Code (Text):

int[][] a = {{ /*Wert*/,  /*Wert*/}, { /*Wert*/}, {/*Wert*/,  /*Wert*/}};
int[] b = a[0];
b[0] += a[2][0];
a[2][0] = b[0] - a[2][0];
b[0] -= a[2][0];
int[] c = a[0];
c[0] += a[2][1];
a[2][1] = c[0] - a[2][1];
c[0] -= a[2][1];
int[] d = {a[0][1], 7};
d[0] = a[2][0];
```


Was in die Platzhalter eingesetzt wird sieht man ja in der Lösung. Ich weiß nur nicht *wie* man auf die Werte {{5, 9}, {3}, {8, 6}} kommt.

Man soll meines erachtens an den anderen Zeilen:


```
int[] b = a[0];
b[0] += a[2][0];
a[2][0] = b[0] - a[2][0];
b[0] -= a[2][0];
int[] c = a[0];
c[0] += a[2][1];
a[2][1] = c[0] - a[2][1];
c[0] -= a[2][1];
int[] d = {a[0][1], 7};
d[0] = a[2][0];
```

erkennen wie die Werte in der ersten Zeile

```
int[][] a = {{5, 9}, {3}, {8, 6}}
```
entstehen.


----------



## Joose (19. Feb 2016)

ndwho hat gesagt.:


> Was in die Platzhalter eingesetzt wird sieht man ja in der Lösung. Ich weiß nur nicht *wie* man auf die Werte {{5, 9}, {3}, {8, 6}} kommt.



Deswegen oben ja meine Frage. Was hast du vom Prof bekommen? Nur die Aufgabenstellung oder auch diese Lösung?
In der Aufgabenstellung steht etwas von "den unten angegebenen Feldinhalt zu erzeugen" was ist mit diesem unten angegebenen Feldinhalt gemeint? Die Lösung oder etwas anderes oder nur ein Teil der Lösung (letzte Zeile)?


----------



## ndwho (19. Feb 2016)

Habe mein letzten Beitrag bearbeitet


----------



## Joose (19. Feb 2016)

Nein ich wüsste keinen Weg wie man nur anhand des Codes auf die Anfangswerte kommen sollte. Man könnte zwar kontrollieren von welchem Array und Index stammt der Wert, wo wurde der Wert gesetzt.
Aber es fehlt irgendwo eine Konstante von welcher man aus die Berechnungen starten könnte


----------



## ndwho (19. Feb 2016)

Joose hat gesagt.:


> Nein ich wüsste keinen Weg wie man nur anhand des Codes auf die Anfangswerte kommen sollte. Man könnte zwar kontrollieren von welchem Array und Index stammt der Wert, wo wurde der Wert gesetzt.
> Aber es fehlt irgendwo eine Konstante von welcher man aus die Berechnungen starten könnte



Naja dann traut der Prof uns wohl zuviel zu?! Kann doch nicht sein  Aber du scheinst auch kein Laie zu sein. Wenn du es schon nicht verstehst... schade


----------



## Joose (19. Feb 2016)

Naja warte noch das Wochenende ab ... vielleicht hat jemand anderes eine Idee dazu


----------



## Saheeda (19. Feb 2016)

Könnte man nicht ein Gleichungssystem aufstellen? Jeder Wert im Array bekommt ne Variable und mithilfe der Codezeilen stellt man lineare Gleichungen auf (nur ne Idee, keine Ahnung, ob das klappt).


----------



## Joose (19. Feb 2016)

Die Idee wäre mir auch gekommen. Aber einerseits muss man die Reihenfolge beachten und außerdem weiß ich dann nur woher die Werte kommen. Aber ich kann immer noch nicht sagen welche Werte man eintragen sollt.
Es fehlen eben irgendwo irgendwelche Konstanten


----------



## JStein52 (20. Feb 2016)

ndwho hat gesagt.:


> den unten angegebenen Feldinhalt zu erzeugen.


Irgendwo fehlt was !!! nämlich der ominöse unten angegebene Feldinhalt. Ich vermute mal es gab irgendwo eine Angabe wie z.B. das Array b,c und d  am Ende des ganzen Kladderadatsches aussehen soll. Ansonsten könnte man ja alle möglichen Werte für diese Platzhalter einsetzen. Das funktioniert immer. Du kannst genausogut das hier schreiben:


```
int[][] a = {{3, 4}, {5}, {6, 7}};
        int[] b = a[0];
        b[0] += a[2][0];
        a[2][0] = b[0] - a[2][0];
        b[0] -= a[2][0];
        int[] c = a[0];
        c[0] += a[2][1];
        a[2][1] = c[0] - a[2][1];
        c[0] -= a[2][1];
        int[] d = {a[0][1], 7};
        d[0] = a[2][0];
```

warum auch nicht. Du solltest nochmal in dich gehen ob du nicht irgendwo einen Zettel verloren hast. Oder mal auf der Rückseite des Zettels gucken


----------



## ndwho (20. Feb 2016)

Findet bei uns Online statt, Zettel leider nicht vorhanden 
Ach ich seh grade, steht noch ein Ergebnis! Mein Fehler tut mir leid 

Gut, jedoch bräuchte ich hier dann ebenfalls eine Erklärung wie man auf die Werte in der ersten Zeile kommt


----------



## JStein52 (20. Feb 2016)

Na da stehts doch:

Die Zeile "Ergebnis: usw"    damit kriegst du doch gesagt was am Ende in a drinstehen soll !!!!!
Und jetzt rechnest du rückwärts.


----------

