ich verzweifle mittlerweile seit Tagen an einer Aufgabe aus der Uni und ich dachte vielleicht bekomme ich hier Hilfe. Wir haben den folgenden Teil eines Programmcodes bekommen und sollen nun Fehler suchen, berichtigen und sagen, was das Programm eigentlich machen soll.
Meine Lösungsansätze und Probleme:
- v1/v2 etc. sollten in vek1/vek2 umbenannt werden.
- ich schätze das Programm soll die Summe von zwei Arrays ausrechnen und für die Ergebnisse einen neuen Array anlegen.
- ich habe keinerlei Ahnung wofür das "?" in der return-Anweisung steht.
- ich bekomme mannigfaltige Fehlermeldungen die ich leider nicht so wirklich im Stande bin zu interpretieren und einen Lösungsansatz daraus zu schließen.
Hat von Euch vielleicht noch jemand einen Rat wie ich auf die Lösung kommen könnte?
- ich bekomme mannigfaltige Fehlermeldungen die ich leider nicht so wirklich im Stande bin zu interpretieren und einen Lösungsansatz daraus zu schließen.
Die Fehlermeldungen die Eclipse mir ausgibt sind folgende:
Code:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
vek1 cannot be resolved to a variable
vek2 cannot be resolved to a variable
vek1 cannot be resolved to a variable
vek2 cannot be resolved to a variable
at UE8Aufgabe2.summe(UE8Aufgabe2.java:8)
at UE8Aufgabe2.main(UE8Aufgabe2.java:17)
Habe jetzt ein paar Sachen geändert und er kompiliert jetzt, ich versteh allerdings jetzt erst recht nicht was hier passiert..
vek1 und vek2 werden in der main-Methode deklariert, dadurch kennt die Methode "summe" diese Variablen nicht. Man müsste vek1 und vek2 also zu Attributen der Klasse machen oder sie per Parameter der Methode übergeben.
Aber das hast du ja schon selbst geschrieben (Umbenennung v1/v2).
Dabei bekomme ich dann folgende Meldung und die verwirrt mich extrem, da ich ja nirgendwo int angegeben habe..
Code:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from float[] to int
at UE8Aufgabe2.summe(UE8Aufgabe2.java:8)
at UE8Aufgabe2.main(UE8Aufgabe2.java:17)
die min-Methode hab ich so halb verstanden, hilft mir aber leider alles irgendwie nichts.. das programm kompiliert weiterhin nicht und ich bin mittlerweile komplett verwirrt.. nochmal die hier die aufgabe im ganzen, nur um das nochmal zu zeigen..
Naja was macht das Programm: summe() addiert Vektoren, min() ist eine Hilfsmethode, die für summe() verwendet wird und das Minimum von zwei Zahlen zurückgibt.
Warum es nicht kompiliert haben wir ja schon herausgefunden (float[ ] - Rückgabe und v1/v2-Umbenennung). Oder was kommt jetzt noch für eine Fehlermeldung?
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from float to int
at UE8Aufgabe3.summe(UE8Aufgabe3.java:8)
at UE8Aufgabe3.main(UE8Aufgabe3.java:17)
Wie X5-599 schon sagte, ändere die Datentypen der Parameter und des Rückgabewertes de min-Methode in int.
vek1.length und vek2.length geben Integer zurück, woraus dieser Fehler resultiert.
Sieht gut aus. Allerdings, wenn der Aufgabensteller meint es sei nur ein kleiner Fehler, könnte es ja tatsächlich sein, dass die floats der min() Methode so gedacht sind (Parameter und Rückgabe). Vielleicht zur Veranschaulichung, dass man eine Methode die float als Parameter erwartet auch einfach so mit int aufrufen kann, aber wenn int erwartet wird evtl. erst explizit auf int ge-castet werden muss... Wie hier, wenn der Rückgabewert (float) bei einer Array Initialisierung genutzt werden soll.