Erste Schritte Berechnung der Summe zweier Arrays

K

kuschipe

Mitglied
Guten Tag,

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.

Java:
public class UE8Aufgabe2
{
    public static float[] min(float v1, float v2) {
        return v1 <= v2 ? v1 : v2;
    }
 
    public static float[] summe(float[] v1, float[] v2) {
        float[] summe = new float[min(vek1.length,vek2.length)];
        for (int i=0; i<summe.length; i++)
        summe[i] = vek1[i] + vek2[i];
        return summe;
    }
 
    public static void main(String[] args) {
        float[] vek1 = {2.3F, 3.4F, -3.4F};
        float[] vek2 = {4.5F, 2.0F, 0.0F, 8.4F};
        float[] res = summe(vek1, vek2);
    }
}

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?

Beste Grüße!
 
Zuletzt bearbeitet:
S

SchwarzWeiß

Bekanntes Mitglied
- ich habe keinerlei Ahnung wofür das "?" in der return-Anweisung steht.
Also das Fragezeichen ist Teil des ternären Operators
https://javabeginners.de/Schleifen_und_Verzweigungen/Ternaerer_Operator.php

- ich bekomme mannigfaltige Fehlermeldungen die ich leider nicht so wirklich im Stande bin zu interpretieren und einen Lösungsansatz daraus zu schließen.

Am besten du postest auch die Fehlermeldungen.
 
K

kuschipe

Mitglied
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..

Java:
public class UE8Aufgabe2
{
    public static int min(float vek1, float vek2) {
        return (int) (vek1 <= vek2 ? vek1 : vek2);
    }
   
    public static float[] summe(float[] vek1, float[] vek2) {
        float[] summe = new float[min(vek1.length,vek2.length)];
        for (int i=0; i<summe.length; i++) {
        summe[i] = vek1[i] + vek2[i];}
        return summe;
    }
   
    public static void main(String[] args) {
        float[] vek1 = {2.3F, 3.4F, -3.4F};
        float[] vek2 = {4.5F, 2.0F, 0.0F, 8.4F};
        float[] res = summe(vek1, vek2);
    }
}
 
Zuletzt bearbeitet:
S

SchwarzWeiß

Bekanntes Mitglied
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).
 
K

kuschipe

Mitglied
Ja genau.. Ich hab das jetzt nochmal umgeschrieben auf:
Java:
public class UE8Aufgabe2
{
    public static float[] min(float vek1, float vek2) {
        return vek1 <= vek2 ? vek1 : vek2;
    }
    public static float[] summe(float[] vek1, float[] vek2) {
        float[] summe = new float[min(vek1.length,vek2.length)];
        for (int i=0; i<summe.length; i++)
        summe[i] = vek1[i] + vek2[i];
        return summe;
    }
    public static void main(String[] args) {
        float[] vek1 = {2.3F, 3.4F, -3.4F};
        float[] vek2 = {4.5F, 2.0F, 0.0F, 8.4F};
        float[] res = summe(vek1, vek2);
    }
}
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)
 
X

X5-599

Top Contributor
dein Rückgabetype von min() muss
Code:
float
lauten.
nicht
Code:
float[]
 
X

X5-599

Top Contributor
Wobei ich float hier auch nicht richtig finde. Es sollte
Code:
int
sein... So wie du es in Post#3 schon hattest.

EDIT: Nicht genau so wie du es schon hattest. einfach alle "float" in int ändern.
 
K

kuschipe

Mitglied
ja daran hatte ich auch schon gedacht, aber da die aufgabe ja so lautete.. laut unseres dozenten soll es angeblich auch nur ein kleiner fehler sein
 
S

SchwarzWeiß

Bekanntes Mitglied
Hast du die min-Methode mittlerweile verstanden oder können wir noch irgendwo helfen?
 
K

kuschipe

Mitglied
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..
Code:
AUFGABE 2
Gegeben sind folgende Programmteile:
Java:
public static float[] min(float v1, float v2) {
        return v1 <= v2 ? v1 : v2;
    }
 
    public static float[] summe(float[] v1, float[] v2) {
        float[] summe = new float[min(vek1.length,vek2.length)];
        for (int i=0; i<summe.length; i++)
        summe[i] = vek1[i] + vek2[i];
        return summe;
    }
 
    public static void main (String[] args) {
        float[] vek1 = {2.3F, 3.4F, -3.4F};
        float[] vek2 = {4.5F, 2.0F, 0.0F, 8.4F};
        float[] res = summe(vek1, vek2);
    }
}
Code:
a) Compiliert das Programm? Wenn nein, finden, erklären und beheben Sie die Fehler.
b) Was macht das Programm?
 
S

SchwarzWeiß

Bekanntes Mitglied
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?
 
K

kuschipe

Mitglied
Der code sieht jetzt folgendermaßen aus:
Java:
public class UE8Aufgabe3
{
    public static float min(float vek1, float vek2) {
        return vek1 <= vek2 ? vek1 : vek2;
    }
    public static float[] summe(float[] vek1, float[] vek2) {
        float[] summe = new float[min(vek1.length,vek2.length)];
        for (int i=0; i<summe.length; i++)
        summe[i] = vek1[i] + vek2[i];
        return summe;
    }
    public static void main(String[] args) {
        float[] vek1 = {2.3F, 3.4F, -3.4F};
        float[] vek2 = {4.5F, 2.0F, 0.0F, 8.4F};
        float[] res = summe(vek1, vek2);
    }
}
Und gibt diesen Fehler aus:
Code:
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)
 
S

SchwarzWeiß

Bekanntes Mitglied
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.
 
K

kuschipe

Mitglied
Java:
public class UE8Aufgabe2
{
    public static int min(int vek1, int vek2) {
        return vek1 <= vek2 ? vek1 : vek2;
    }
    public static float[] summe(float[] vek1, float[] vek2) {
        float[] summe = new float[min(vek1.length,vek2.length)];
        for (int i=0; i<summe.length; i++)
        summe[i] = vek1[i] + vek2[i];
        return summe;
    }
    public static void main(String[] args) {
        float[] vek1 = {2.3F, 3.4F, -3.4F};
        float[] vek2 = {4.5F, 2.0F, 0.0F, 8.4F};
        float[] res = summe(vek1, vek2);
    }
}

Habs jetzt so aufgeschrieben und es kompiliert. War das so gemeint? dann versteh ich das jetzt zumindest halbwegs :D Vielen Dank!
 
X

X5-599

Top Contributor
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.

Dann könnte das ganze so aussehen:

Code:
public static float min(float v1, float v2) {
        return v1 <= v2 ? v1 : v2;
}

public static float[] summe(float[] vek1, float[] vek2) {
        float[] summe = new float[(int)min(vek1.length,vek2.length)];
// ...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Schleife zur Berechnung von einer Summe Java Basics - Anfänger-Themen 16
L Berechnung Summe Java Basics - Anfänger-Themen 3
S Hashcode-Berechnung + ^ Java Basics - Anfänger-Themen 2
J Median-Berechnung von 2D-Teilarrays Java Basics - Anfänger-Themen 56
F Tabelle - Berechnung Rang Java Basics - Anfänger-Themen 2
B Berechnung der Position von Kinderelemente von einem Elternknoten Java Basics - Anfänger-Themen 23
S Berechnung der sleep time ist falsch Java Basics - Anfänger-Themen 46
S Switch-Case zur Berechnung der Einkommensteuer Java Basics - Anfänger-Themen 15
F Berechnung der Rektaszension und Deklination eines Sterns Java Basics - Anfänger-Themen 7
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
V Erste Schritte Pi Berechnung Java Basics - Anfänger-Themen 47
M Berechnung der Reststrecke bei Graphen Java Basics - Anfänger-Themen 1
V Algorithmus zur fortlaufenden Berechnung des duechscjnt Java Basics - Anfänger-Themen 1
B Berechnung zu einer Schleife formen Java Basics - Anfänger-Themen 6
B Berechnung Median mit Methode Java Basics - Anfänger-Themen 7
UnknownInnocent Methoden Berechnung von Anfangsgeschwindigkeit und Winkel Java Basics - Anfänger-Themen 27
S Erste Schritte Berechnung des Paketportos - Problem/Frage Java Basics - Anfänger-Themen 52
J Gleitkommazahlen, Berechnung von pi Java Basics - Anfänger-Themen 4
J Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
kilopack15 Verzweiflung wegen Berechnung mit Multithreading Java Basics - Anfänger-Themen 1
A Die Werte zur Berechnung müssen als Parameter übergeben werden? Java Basics - Anfänger-Themen 7
Salo Berechnung von Winkeln Java Basics - Anfänger-Themen 28
M Restbuchwert Berechnung geht nicht Java Basics - Anfänger-Themen 45
Ghostman1711 Pi berechnung Methode aufrufen Java Basics - Anfänger-Themen 2
L Rekursive Methode zur Berechnung der Potenz q hoch p Java Basics - Anfänger-Themen 17
beatles Operatoren Operatoren - Berechnung Java Basics - Anfänger-Themen 40
K Best Practice Algorithmus für Berechnung von Zahlenreihenfolge Java Basics - Anfänger-Themen 12
N Verzögerte Berechnung "Lazy" Java Basics - Anfänger-Themen 8
J Erste Schritte Rundungsproblem - Berechnung Notendurchschnitt Java Basics - Anfänger-Themen 13
S Variablen Vektor zur Berechnung verwenden Java Basics - Anfänger-Themen 4
T Java double berechnung fehler Java Basics - Anfänger-Themen 2
M Berechnung in Java Java Basics - Anfänger-Themen 4
S Berechnung der Arbeitstage in einem Zeitraum Java Basics - Anfänger-Themen 9
E Problem bei rekursiver Berechnung des Binomialkoeffizienten Java Basics - Anfänger-Themen 5
T Iterative Pi Berechnung in Rekursive Java Basics - Anfänger-Themen 2
S Double, int, Berechnung Java Basics - Anfänger-Themen 3
C Nach Berechnung runden und Wert ausgeben Java Basics - Anfänger-Themen 7
E Berechnung für Shop einbinden Java Basics - Anfänger-Themen 8
S Klassen Formel zur Berechnung .... Bitte um Hilfe Java Basics - Anfänger-Themen 7
S Euklid Algorithmus zur Berechnung des GGTs Java Basics - Anfänger-Themen 2
NicoDeluxe Berechnung in die start und paint Methode eines Applets Java Basics - Anfänger-Themen 28
F Berechnung einer linearen Abschreibung Java Basics - Anfänger-Themen 5
E Berechnung von Punkten Java Basics - Anfänger-Themen 4
D Berechnung des Abstandes von zwei Punkten in einem Koordinatensystem Java Basics - Anfänger-Themen 14
A Methoden PI-Berechnung Java Basics - Anfänger-Themen 22
S Erste Schritte Berechnung mit Daten aus CSV und Date Objekt Java Basics - Anfänger-Themen 2
C Programm zur Berechnung der Spur einer Matrix Java Basics - Anfänger-Themen 4
P Pythagoras Baum - Berechnung der Punkte Java Basics - Anfänger-Themen 9
A Erste Schritte Steuer Berechnung, Alters Abhängig Java Basics - Anfänger-Themen 5
T Erste Schritte Berechnung von gerade und ungerade Zahlen Java Basics - Anfänger-Themen 10
J Erste Schritte Berechnung Ratten vermehrung Java Basics - Anfänger-Themen 4
P falsches ergebnis bei einfacher berechnung Java Basics - Anfänger-Themen 3
T Iterative Berechnung einer Satellitenbahn Java Basics - Anfänger-Themen 20
M Java Berechnung mit mehreren Lösungen? Java Basics - Anfänger-Themen 9
D Nullstellen-Berechnung Java Basics - Anfänger-Themen 10
L Fehlermeldung bei falscher Berechnung anzeigen Java Basics - Anfänger-Themen 31
A berechnung multiplikatives inverses Java Basics - Anfänger-Themen 5
J Berechnung des aktuellen Alters auf Basis des Geburtstags Java Basics - Anfänger-Themen 45
J Datentypen Fehler bei Berechnung mit Double und Int-Werten Java Basics - Anfänger-Themen 22
G Berechnung von Winkeln mit Cosinussatz Java Basics - Anfänger-Themen 2
B Arrays verwenden für Berechnung Java Basics - Anfänger-Themen 3
R Merkwürdige Modulo Berechnung Java Basics - Anfänger-Themen 7
B Hausaufgabe Berechnung quadratischer Funktion Java Basics - Anfänger-Themen 16
U Alter Berechnung + sortierung Java Basics - Anfänger-Themen 6
P Berechnung wird nicht durchgeführt Java Basics - Anfänger-Themen 2
D Berechnung von Ostern und Ramadan! Java Basics - Anfänger-Themen 24
N Algorithmus für Berechnung einer Quersumme Java Basics - Anfänger-Themen 9
D Berechnung von Geldausgabe Java Basics - Anfänger-Themen 22
F Berechnung von Kugeln! Java Basics - Anfänger-Themen 9
M rekursive Funktion zur Berechnung der Spiegelzahl Java Basics - Anfänger-Themen 7
S Hausaufgabe: Java-Programm schreiben zur Berechnung von x und y Java Basics - Anfänger-Themen 9
Y Ergebnis einer Berechnung an die Main Methode übergeben Java Basics - Anfänger-Themen 11
Semox Ersten Wert eines Intervalls bei Berechnung einschließen Java Basics - Anfänger-Themen 8
J Logarithmische Berechnung und Arrays Java Basics - Anfänger-Themen 2
B LinkedList - Berechnung des Produkts Java Basics - Anfänger-Themen 6
B Berechnung von Preisen per Java-Programm Java Basics - Anfänger-Themen 27
M Alters berechnung aus Geburtsjahr aus dem Buch Java Basics - Anfänger-Themen 5
O Fehler in der String-Distanz-Berechnung Java Basics - Anfänger-Themen 5
-horn- "Berechnung vorwärts, Optimierung rückwärts?" - Wie würdet ihr das machen? Java Basics - Anfänger-Themen 8
P iterative Berechnung Java Basics - Anfänger-Themen 9
1 Berechnung von PI mithilfe von Buffons Nadelproblem Java Basics - Anfänger-Themen 2
G Berechnung zwei Komplexen Zahlen Java Basics - Anfänger-Themen 34
N Rekursive Berechnung der Höhe eines binären Baumes Java Basics - Anfänger-Themen 4
J Programm für interaktive Berechnung von Temperaturverläufen Java Basics - Anfänger-Themen 9
K Annährende ganzzahlige Berechnung der Wurzel Java Basics - Anfänger-Themen 8
L Berechnung von Perioden Java Basics - Anfänger-Themen 4
D einfach berechnung einer onlinezeit Java Basics - Anfänger-Themen 25
S Euklid Klasse mit Methoden zur Berechnung des ggT Java Basics - Anfänger-Themen 23
G Frage zur Primzahlen berechnung Java Basics - Anfänger-Themen 11
G Berechnung von N-Tageslinien von Aktienkursen Java Basics - Anfänger-Themen 13
G Rekursive Berechnung von n über k schlägt fehl Java Basics - Anfänger-Themen 5
G Einfache Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
W Schaltjahr Berechnung Java Basics - Anfänger-Themen 24
A Probleme mit Programm zur Pi-Berechnung Java Basics - Anfänger-Themen 6
X Temperatur-Berechnung /Array(?) Java Basics - Anfänger-Themen 5
P Entropie Berechnung Java Basics - Anfänger-Themen 18
H Berechnung im Array Java Basics - Anfänger-Themen 10
M Problem mit Berechnung der Fakultät Java Basics - Anfänger-Themen 3
M Berechnung in Label ausgeben? Java Basics - Anfänger-Themen 3
N Berechnung Rechnungsbetrag Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben