Hallo alle zusammen,
ich habe in dem Fach Einführung in die Programmierung Hausaufgaben aufbekommen
und versuche sie gerade zu lösen. Sie lautet:
Schreiben Sie eine Klasse ArrayOperation und implementieren Sie folgende statische Methoden:
• Eine Methode void reverse(int[] a), die die Zahlen innerhalb des Arrays tauscht (der
erste Wert wird der letzte, der letzte Wert der erste usw.).
• Eine Methode int[] replicate(int[] a, int n), die den Eingabe-Array n-mal
hintereinander anfügt.
(Bsp: replicate({1, 4, -2}, 3) erzeugt den Array {1,4,-2,1,4,-2,1,4,-2}
• Eine Methode int plateau(int[] a), die in einem Array von absteigend sortierten
ganzen Zahlen das längste Plateau berechnet und als Ergebnis zurückgibt. Der Array a soll dabei
aber nur einmal durchlaufen werden.
Hinweis: Ein Plateau ist eine Folge von gleichen Werten.
Für den Array a = {8, 8, 7, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1} soll die Methode
das Ergebnis 4 liefern.
• Eine Methode print(int[]a) zur Ausgabe eines Arrays in der Form {a0,a1,a2,…,an-1}
Erweitern Sie die Klasse um die main-Methode und testen Sie die Methoden, indem Sie verschiedene
Testarrays erzeugen und für diese die Methoden aufrufen.
Ich habe schon ein paar ideen und mein quelltext lässt sich sogar compilieren nur wenn ich es ausführen will treten Fehler auf. Ich habe die ersten drei Teilaufgaben verstanden und soweit gelöst denke ich mal nur komm ich jetzt mit dem Zusammenspiel zwischen der main-Methode und den anderen Methoden nicht klar und ich weiß nicht was ich als Rückgabewert(return) verwenden muss! Könnt ihr mir vielleicht weiterhelfen sodass ich die Aufgabe zu ende lösen kann.
Danke im voraus!
Quelltext:
ich habe in dem Fach Einführung in die Programmierung Hausaufgaben aufbekommen
und versuche sie gerade zu lösen. Sie lautet:
Schreiben Sie eine Klasse ArrayOperation und implementieren Sie folgende statische Methoden:
• Eine Methode void reverse(int[] a), die die Zahlen innerhalb des Arrays tauscht (der
erste Wert wird der letzte, der letzte Wert der erste usw.).
• Eine Methode int[] replicate(int[] a, int n), die den Eingabe-Array n-mal
hintereinander anfügt.
(Bsp: replicate({1, 4, -2}, 3) erzeugt den Array {1,4,-2,1,4,-2,1,4,-2}
• Eine Methode int plateau(int[] a), die in einem Array von absteigend sortierten
ganzen Zahlen das längste Plateau berechnet und als Ergebnis zurückgibt. Der Array a soll dabei
aber nur einmal durchlaufen werden.
Hinweis: Ein Plateau ist eine Folge von gleichen Werten.
Für den Array a = {8, 8, 7, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1} soll die Methode
das Ergebnis 4 liefern.
• Eine Methode print(int[]a) zur Ausgabe eines Arrays in der Form {a0,a1,a2,…,an-1}
Erweitern Sie die Klasse um die main-Methode und testen Sie die Methoden, indem Sie verschiedene
Testarrays erzeugen und für diese die Methoden aufrufen.
Ich habe schon ein paar ideen und mein quelltext lässt sich sogar compilieren nur wenn ich es ausführen will treten Fehler auf. Ich habe die ersten drei Teilaufgaben verstanden und soweit gelöst denke ich mal nur komm ich jetzt mit dem Zusammenspiel zwischen der main-Methode und den anderen Methoden nicht klar und ich weiß nicht was ich als Rückgabewert(return) verwenden muss! Könnt ihr mir vielleicht weiterhelfen sodass ich die Aufgabe zu ende lösen kann.
Danke im voraus!
Quelltext:
Java:
class ArrayOperation{
public static void main(String[] arg){
int[] array1 = {1, 2, 3, 4, 5, 6, 7, 8};
reverse(array1);
int[] array2 = {1, 4, -2};
int n2=3;
replicate(array2,n2);
int[] array3 = {8, 8, 7, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1};
plateau(array3);
}
public static void reverse(int[] a){
int k = a.length;
int i = 0;
while(i<k){
int h = a[i];
a[i] = a[k-1];
a[k-1] = h;
i++;
k--;
}
System.out.println("reverse(array1):"+a);
}
public static int[] replicate(int[] a, int n){
int v = a.length;
int t = v*n;
int z = 0;
int[] array = new int[t];
while(z<=n){
int w = 0;
while(w<=v){
array[t]=array[w];
w++;
t++;
}
z++;
}
System.out.println("replicate(array2,n2):"+array);
return a;
}
public static int plateau(int[] a){
int num=1;
int i;
for(i=1; i<=a.length; i++){
if(a[i-1]==a[i]){
num++;
}
else{
num=1;
}
}
System.out.println("laengste Plateau"+num);
return num;
}
/* public static print(int[]a){
}*/
}
Zuletzt bearbeitet von einem Moderator: