Fehler irgendwo

endstille

Mitglied
Hallo, ich habe ein kleines Problem bei zwei Aufgaben. Und zwar sind nur ein zwei kleine Fehler drin 🙂

Hier soll die Methode m eine Folge von ganzen Zahlen als Feld erhalten und die größte der Zahlen als Ergebnis zurückgeben

Java:
public static int m(int a[]) {
int max = -1;
for (int i=0; i<a.length; ) {
max = a[i++] > max ? max = a[i] : max;
}
return max;
}

als Fehlermeldung habe ich: "multiple markers at this line" in der ersten zeile
und in der letzten zeile, dass void methods keinen value returnen können... mmh
heißt dass, dass die methode nichts zurückgibt?

ja bei meinem zweiten soll die Methode q eine Folge von ganzen Zahlen als Feld erhalten. Sie berechnet jeweils die Quadrate der Zahlen und gibt diese am Ende wiederum als Feld zurück. Das Eingabefeld soll nach dem Aufruf der Methode die gleichen Werte wie vor dem Aufruf enthalten.

Java:
public static int[] q(int[] x) {
int[] y = x;
for (int i = 0; i < x.length; i++) {
y[i] = x[i] * x[i];
}
return y;
}


Ja bei zweitens habe ich garkine Fehlermeldung. nur passiert iwie nichts xD
Ach man ich hoffe ihr könn tmir helfen. habe noch nicht so lange mit Java zu tun.
Vielen Dank schon mal 😉
 
Hallo, ich habe ein kleines Problem bei zwei Aufgaben. Und zwar sind nur ein zwei kleine Fehler drin 🙂

Hier soll die Methode m eine Folge von ganzen Zahlen als Feld erhalten und die größte der Zahlen als Ergebnis zurückgeben

Java:
public static int m(int a[]) {
int max = -1;
for (int i=0; i<a.length; ) {
max = a[i++] > max ? max = a[i] : max;
}
return max;
}

als Fehlermeldung habe ich: "multiple markers at this line" in der ersten zeile
und in der letzten zeile, dass void methods keinen value returnen können... mmh
heißt dass, dass die methode nichts zurückgibt?

ja bei meinem zweiten soll die Methode q eine Folge von ganzen Zahlen als Feld erhalten. Sie berechnet jeweils die Quadrate der Zahlen und gibt diese am Ende wiederum als Feld zurück. Das Eingabefeld soll nach dem Aufruf der Methode die gleichen Werte wie vor dem Aufruf enthalten.

Java:
public static int[] q(int[] x) {
int[] y = x;
for (int i = 0; i < x.length; i++) {
y[i] = x[i] * x[i];
}
return y;
}


Ja bei zweitens habe ich garkine Fehlermeldung. nur passiert iwie nichts xD
Ach man ich hoffe ihr könn tmir helfen. habe noch nicht so lange mit Java zu tun.
Vielen Dank schon mal 😉
Sollten beide meiner meinung nach richtig sein.
Wie rufst du sie denn auf?
 
Hey vielen Dank für eure schnellen Antworten. Also der Rest ist bei der Aufgabe wirklich Nebensache und völlig egal, da es laut Aufgabenstellung nur um die Methoden geht. Diese sind mir ja schon mehr oder weniger vorgegeben.
Also irgendwas haut nicht hin bei den Methoden, ohne quatsch!
Ich weiß nur auch nicht so recht was :|
 
Java:
public static int m(int a[]) {
int max = -1;
for (int i=0; i<a.length; i++ ) {
  if(a[i]<max){
       max=a[i];
  }
}/* Nach dieser Schleife hat max den kleinsten Wert vom Array, was nützlich sein kann wenn dein Array nur negative Werte enthält und das Maxium kleiner -1 sein sollte.*/
for (int i=0; i<a.length; i++ ) {
  if(a[i]>max){
       max=a[i];
  }
}
return max;
}
Das ist vielleicht unprofessionell dafür aber sicher richtig.
Beim zweiten hat er mir einfach mein Ursprungsarray geändert. Was ich zwar nicht verstehe, aber vielleicht ist es bei dir auch so.
 
Zuletzt bearbeitet:
:/ okay leute, hier nochmal die genaue Aufgabenstellung:

Java:
Betrachten Sie die folgenden Java-Methoden, die nicht das angekündigte (und erwartete) Ergebnis liefern.
1. Die Methode m erhält eine Folge von ganzen Zahlen als Feld und gibt die größte der Zahlen als Ergebnis zurück.

public static int m(int a[]) {
int max = -1;
for (int i=0; i<a.length; ) {
max = a[i++] > max ? max = a[i] : max;
}
return max;
}


2. Die Methode q erhält eine Folge von ganzen Zahlen als Feld. Sie berechnet jeweils die Quadrate der
 Zahlen und gibt diese am Ende wiederum als Feld zurück. Das Eingabefeld soll nach dem Aufruf der 
Methode die gleichen Werte wie vor dem Aufruf enthalten.


public static int[] q(int[] x) {
int[] y = x;
for (int i = 0; i < x.length; i++) {
y[i] = x[i] * x[i];
}
return y;
}


Beantworten Sie nun jeweils die folgenden Fragen zu jeder Methode:
a) (1P) Was ist an der Methode falsch? Bei welchen Eingaben treten welche Ergebnisse auf?
b) (1P) Welche Ursache(n) haben die falschen Ergebnisse?
c) (1P) Wie muss die Methode aussehen, damit die Ergebnisse korrekt

Die Methoden müssen iwo falsch sein, oder iwas falsches machen.. wirklich
ich kann mir nicht vorstellen, dass die methoden richtig sind, sonst würde die aufgabe wenig sinn machen:bahnhof:

aber vielen vielen dank für eure bemühungen echt top:toll:
 
wenn du y = x machst, dann sind die arrays indentisch

wenn du dann y = xi * xi machst, dann änderst du auch x

hier muss stehen y = new int [x.length];

[edit] und für 1. steht oben das Ergebnis [/edit]
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben