Array

Guest1

Aktives Mitglied
hallo leute,

Die Methode
public static int[] addiere(int[] a) soll zwei aufeinanderfolgende zahlen addieren und in einem Array speichern

z.B 1,4,5,7,10 ---> 5,9,12,17

Code:
 public static int[] addiere(int [] a){
        
        int[] addierteWerte = new int[a.length];
        
        for(int i =0; i < a.length-1; i++){
            addierteWerte[i] = a[(i + i++)];  //der fehler ist wahrscheinlich hier
        
        }
        for(int i = 0; i < a.length-1; i++) {
            
            a[i]=addierteWerte[i];
            
        }
        
        return addierteWerte;
        
    }
    
    public static void main(String[] args) {
        
        int[]a={1,2,5,7,10};
        int[] addierteWerte= new int[a.length];
        addierteWerte = addiere(a);
        System.out.println(addierteWerte[4]);
        
        
      
    }
 

temi

Top Contributor
Hast du mal versucht, den Ablauf im Kopf (oder auf Papier) durchzuspielen?

Dann wirst du schnell auf den Fehler kommen.
 

temi

Top Contributor
Gleich mal ein Hinweis in anderer Sache, siehe Kommentar:

Java:
public static void main(String[] args) {
       
     int[]a={1,2,5,7,10};
     int[] addierteWerte= new int[a.length]; // der Teil ab und inklusive dem "="  ist überflüssig,
     addierteWerte = addiere(a); // weil die Methode "addiere()" bereits ein Array zurück gibt, dass du innerhalb erzeugst
     System.out.println(addierteWerte[4]);
}
 

Guest1

Aktives Mitglied
Dann mach es noch mal und überlege dir was "i++" bewirkt.

Was ist der Unterschied zu "++i"?

Edit: Besser wäre es innerhalb der Schleife komplett sowohl auf i++ als auch auch ++i zu verzichten und die zweite Schleife in der Methode ist auch unnötig.
i++ entspricht doch i = i+1; jetzt wei? ich was du meinst ,aber trotzdem komme ich nicht draufo_O
 
K

kneitzel

Gast
Also mehrere Dinge:
A) wenn du den i+1 ten Wert eines Array bekommen willst: wieso macht dann i=i+1 als Code Sinn? Wo steckt in 'gib mir den i+1ten Wert' ein 'Erhöhe I um 1' drin?

B) du willst zwei Werte aus einem Array addieren. Dann schau doch einmal, was du machst...

C) du willst ein neues Array zurück geben: wieso schreibst du die Ergebnisse zurück ins original Array?

D) zähl bei deinem Beispiel Mal die Werte. Wie viele Werte sind in dem Original und wie viele Werte sind in dem Ergebnis?

Das einfach einmal von mir als Rückmeldung zu deinem Code ...
 

temi

Top Contributor
i++ entspricht doch i = i+1

Du wirst es für dein Problem nicht benötigen, aber dennoch:

Ja, du hast Recht, i++ entspricht i = i +1, genauso wie auch ++i.

Im ersten Fall wird zuerst i ausgewertet und danach eins addiert.

Im zweiten Fall wird zuerst eins addiert und danach das neue i ausgewertet.

Was bedeutet das nun?

Nehmen wir eine einfache if-Anweisung als Beispiel, i habe den Wert Null:

if (i++ == 1) { // tu was } (

Hier wird zuerst der Wert von i ausgewertet => i = 0, d.h. die Bedingung ist nicht erfüllt und anschließend i um Eins erhöht. Nach der Anweisung hat i den Wert 1.

if (++i == 1) { // tu was } (

Hier wird zuerst Eins addiert und danach der Wert von i ausgewertet. Die Bedingung ist erfüllt und nach der Anweisung hat i ebenfalls den Wert 1.



Edit: Das wichtige für dich ist, dass du innerhalb der Schleife darauf verzichten solltest und die Anmerkungen von @kneitzel
 

Guest1

Aktives Mitglied
vielleicht werde ich langsam nervig, aber ich finde die lösung irgendwie nicht(die Anmerkungen habe ich schon eingearbeitet)
 

Guest1

Aktives Mitglied
Code:
public static int[] addiere(int[] a) {

        int[] addierteWerte = new int[a.length];

        for (int i = 0; i < a.length-1; i++) {

            for (int j = 1; j < a.length; j++) {

                addierteWerte[i] = a[i+j];

            }

        }

        return addierteWerte;

    }

    public static void main(String[] args) {

        int[] a = {1, 2, 5, 7, 10};
        int[] addierteWerte = new int[a.length];
        addierteWerte = addiere(a);
        System.out.println(addierteWerte[0]);
        
        so sieht mein code aus , jetzt bekomme ich eine Fehlermeldung wie "out of bounds"
 

temi

Top Contributor
1. Die Länge des Arrays "addierteWerte" stimmt nicht.
2. Du benötigst nur eine Schleife!
3. Du addierst keine Werte aus dem Array, du addierst nur zwei Variablen und verwendest diese als Index.

Denk noch mal drüber nach, was du machen möchtest: Du willst einen Wert, der im Array an der Stelle "i" steht, mit dem Wert der im Array an der Stelle danach steht, addieren. Was ist die Stelle nach "i"?
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Die Zeile
Java:
addierteWerte[i] = a[(i + i++)];  //der fehler ist wahrscheinlich hier
war von der Grundidee, die ich mal dahinter vermute, schon nicht verkehrt. Du scheinst aber ein kleines Problem beim Verständnis von Array-Indizes zu haben.

Daher mal die Frage, was z. B. a[(i-1)+1] ist?
 

Guest1

Aktives Mitglied
Die Zeile
Java:
addierteWerte[i] = a[(i + i++)];  //der fehler ist wahrscheinlich hier
war von der Grundidee, die ich mal dahinter vermute, schon nicht verkehrt. Du scheinst aber ein kleines Problem beim Verständnis von Array-Indizes zu haben.

Daher mal die Frage, was z. B. a[(i-1)+1] ist?
Ist es nicht das gleiche wie a[i] ?
 
K

kneitzel

Gast
Also Aufgeben ist nicht gut. Ich denke, Du hast es doch fast. Denk jetzt nur erst einmal nicht über den Code nach! Vergiss den Code komplett! Es geht erst einmal um ein paar Verständnisfragen. Dazu brauchen wir den aktuellen Code überhaupt nicht!

Und vorneweg ein paar Regeln: Vergiss ++i, i++ und so. Wenn Du eine Variable erhöhen willst, dann schreib am Anfang explizit i=i+1. Das vermeidet einiges an Fehlern.

Und dann schauen wir uns einzelne Punkte mal ganz in Ruhe an - ganz ohne den Code dieser Aufgabe verändern zu wollen.

Also diese Arrays kann man sich vorstellen wie Schubladen. a ist also ein Schrank mit Schubladen. a[1] ist dann der Inhalt der ersten Schublade. a[2] ist der Inhalt der zweiten Schublade und so weiter ... also immer eins dazu zählen bringt einen zur nächsten Schublade. Also a[2] ist a[1+1]. der Nachfolger der zweiten Schublade ist a[2+1] = a[3], ....

a) a[i] ist der Inhalt der i-ten Schublade.... dann ist die nachfolgende Schublade ist dann?

b) Und nun wollen wir den Inhalt von Zwei Schubladen addieren. Und zwar die i-te und j-te Schublade. Dazu überlegst Du erst einmal: b.1) Was ist der Inhalt der i-ten Schublade? b.2) Was ist der Inhalt der j-ten Schublade? Nach b.1 und b.2 kannst Du jetzt den Inhalt der beiden Schubladen addieren, oder?

c) Ergebnismenge: Du hast direkt im ersten Post ein Beispiel gebracht. Bitte schau einmal: Wie viele Zahlen hatte die Zahlenreihe, die gegeben war? (Einfach einmal zählen!). Und wie viele Zahlen hatte die Zahlenreihe, die als Ergebnis heraus gekommen ist? (Auch einfach einmal zählen!) Wie hängen diese beiden Zahlen zusammen? Evtl. machst Du noch andere Beispiele? Mal für Zahlenreihen mit 2 Zahlen und einmal mit 3 Zahlen? Was für Ergebnisse erhält man da?

Wenn Du diese Punkte a, b und c verstanden hast, kannst Du Dich noch einmal um Deinen Code kümmern und schauen, wo sich die neuen Erkenntnisse da evtl. einbauen lassen.
 

Guest1

Aktives Mitglied
danke @kneitzel den schritt(b) habe ich bereits versucht
Code:
public static int[] addiere(int[] a) {

        int[] addierteWerte = new int[a.length - 1];

        for (int i = 0; i < a.length - 1; i++) {

            for (int j = 1; j < a.length; j++) {

                addierteWerte[i] = a[i + j];
            }
        }
        return addierteWerte;

trotzdem ist es falsch wieso auch immer, und ja die länge ist jetzt length-1 :)
 

temi

Top Contributor
danke @kneitzel den schritt(b) habe ich bereits versucht
Code:
public static int[] addiere(int[] a) {

        int[] addierteWerte = new int[a.length - 1];

        for (int i = 0; i < a.length - 1; i++) {

            for (int j = 1; j < a.length; j++) {

                addierteWerte[i] = a[i + j];
            }
        }
        return addierteWerte;

trotzdem ist es falsch wieso auch immer, und ja die länge ist jetzt length-1 :)

Mit a[i+j] greifst du auf das Arrayelement an der Stelle i+j zu. Du addierst zwar etwas, aber nicht zwei Arrayelemente, sondern nur den Index mit dem du auf ein Arrayelement zugreifen kannst.

Was du suchst sieht ungefähr so aus:

addierteWerte[i] = a[i] + a[nächstes Element nach i];

Jetzt lies noch mal @kneitzels Schritt B durch. Das mit den Schubladen. Wenn i den Wert 1 hat (du schaust also in die erste Schublade), was musst du dann zu i addieren, damit du in die zweite Schublade gucken kannst?

Die Länge passt jetzt ;)
 

Guest1

Aktives Mitglied
Mit a[i+j] greifst du auf das Arrayelement an der Stelle i+j zu. Du addierst zwar etwas, aber nicht zwei Arrayelemente, sondern nur den Index mit dem du auf ein Arrayelement zugreifen kannst.

Was du suchst sieht ungefähr so aus:

addierteWerte[i] = a[i] + a[nächstes Element nach i];

Jetzt lies noch mal @kneitzels Schritt B durch. Das mit den Schubladen. Wenn i den Wert 1 hat (du schaust also in die erste Schublade), was musst du dann zu i addieren, damit du in die zweite Schublade gucken kannst?
Also ohne j?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
L Frage zum Array Java Basics - Anfänger-Themen 1
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
Lion.King Array deklarieren und initialisieren Java Basics - Anfänger-Themen 5
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
AkiJou Zeile in 2d Array löschen Java Basics - Anfänger-Themen 2
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
A Elemente in einem Array Java Basics - Anfänger-Themen 5
A Vorkommende Farben ermittel und als Array zurückgeben Java Basics - Anfänger-Themen 7
AhmadSlack Array Java Basics - Anfänger-Themen 7
Jambolo Kartenhand Array Java Basics - Anfänger-Themen 14
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
1 Array rekursiv durchlaufen Java Basics - Anfänger-Themen 8
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
EykS 3D Druckdatei basierend auf 3D Array? Java Basics - Anfänger-Themen 3
sserio Array funktioniert nicht Java Basics - Anfänger-Themen 2
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
Chris.089 2 Werte im Array tauschen Java Basics - Anfänger-Themen 6
D EinMalEins mithilfe einer for-Schleife und Array Java Basics - Anfänger-Themen 1
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
L Gridmuster in einem Array Java Basics - Anfänger-Themen 2
sgtcoopa Array übergeben Schleife Java Basics - Anfänger-Themen 0
B Compiler-Fehler Array aus Objekten übergeben Java Basics - Anfänger-Themen 7
padde479 Array Multiplikation der ersten n Zahlen Java Basics - Anfänger-Themen 7
G zweidimensionales int Array sortieren Java Basics - Anfänger-Themen 57
W Array ausgeben Java Basics - Anfänger-Themen 29

Ähnliche Java Themen

Neue Themen


Oben