Erste Schritte Lösen dieser Aufgabe, Hilfe!

dan1996

Aktives Mitglied
Hallo, ich lerne für meine Klausur doch eine Aufgabe bereitet mir Schwierigkeiten
wie würdet ihr diese Aufgabe per Hand Lösen?
a) Beschreiben Sie den Rückgabewert der Methode wasPassiert in Abhängigkeit vom Parameter a.
b) Wie lautet die Ausgabe des Programmfragments?

Java:
static int wasPassiert(int[] a) {
          int[] b = new int[a.length];
          for (int i=0; i<a.length; i++)
            b[i] = a[i];
          for (int j=1; j<b.length; j++) {
            int k = b[j],
            i = j-1;
            while (i>=0 && b[i]>k) {
                  b[i+1] = b[i];
                  i--;
            }
            b[i+1] = k;
        }
          int c = 0;
          for (int i=0; i<b.length-1; i++)
            if (b[i+1]-b[i]>c) c = b[i+1]-b[i];
      return c;
    }
   
    public static void main(String[] args){
        int[] a = {0,4,6,0,1,8,13};
        System.out.println("("+wasPassiert(a)+")");
    }
 

Tarrew

Top Contributor
Wie sind denn deine Überlegungen dazu? Dann kann man dazu mal konkret Bezug nehmen, ob das passt oder nicht.

Irgendwas musst du dir ja schon überlegt haben ;)
 

mihe7

Top Contributor
wie würdet ihr diese Aufgabe per Hand Lösen?
Im Prinzip kannst Du das natürlich wirklich Anweisung für Anweisung durchgehen. Ich mache das etwas anders: teile und herrsche.

Dazu schaue ich mir zuerst an, welche "Schritte" die Methode ausführt, ggf. gehe ich dabei von inneren Blöcken nach außen. Das ist eine Art Refactoring, so dass ich dann weiß, wofür welcher "Schritt" gut ist. Damit muss ich nicht mehr jede Iteration einzeln durchgehen.

Übertragen auf Dein Beispiel, wird ganz am Anfang das Array kopiert. Folglich muss ich die for-Schleife nicht mehr Iteration für Iteration per Hand durchspielen, sondern weiß sofort, dass b eine Kopie von a ist.
 
X

Xyz1

Gast
B ist eine Kopie von A, aber was danach geschieht, sowie die Programmfragmentlogik, erschließt sich mir noch nicht, weil es ja zum Teil nicht richtig formatiert. :(

Tipp: Mit einer IDE funkt Code Identation automatisch. :D
 
Zuletzt bearbeitet von einem Moderator:

dzim

Top Contributor
Ich würde mal behaupten, dass das Programm nicht mal kompiliert, da das i in i = j-1; vorher nicht initialisiert wurde. (i ist nur die lokale Variable der Kopier-Schleife, in der "Arbeitsschleife" ist der Variablenname dagegen j).
 

VfL_Freak

Top Contributor
hmm, ich würde mich hier auch @dzim anschließen :(

Müsste doch so ausschauen, oder nicht??
Java:
static int wasPassiert(int[] a)
{
    int[] b = new int[a.length];

    for (int i=0; i<a.length; i++)
        b[i] = a[i];

    for( int j=1; j<b.length; j++ )
    {
        int k = b[j], i = j-1;
        while( i>=0 && b[i]>k )
        {
             b[i+1] = b[i];
             i--;
        }
        b[i+1] = k;
    }

    int c = 0;
    for (int i=0; i<b.length-1; i++)
    {
        if( b[i+1] - b[i]>c)
        {
            c = b[i+1]-b[i];
        }
    return c;
}

public static void main(String[] args)
{
    int[] a = {0,4,6,0,1,8,13};
    System.out.println( "(" + wasPassiert(a) + ")" );
}

VG Klaus
 
X

Xyz1

Gast
Why wird eigentlich immer so viel von jedem behauptet? Ich denke, ich weiß vielleicht bis nachher, "wasPassiert". :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Alen123 Wie würdet ihr diese Aufgabenstellung lösen? Java Basics - Anfänger-Themen 18
S GUI-Programmierung Sudoku-Rätsel lösen Java Basics - Anfänger-Themen 1
L Symbo Rätsel lösen lassen Java Basics - Anfänger-Themen 3
J Array eintrag mit möglichst wenig code lösen Java Basics - Anfänger-Themen 16
T Rekursionsaufgabe lösen Java Basics - Anfänger-Themen 6
F Switch Case Problem mit Regex lösen? Java Basics - Anfänger-Themen 6
B Türme von Hanoi mit einer beliebigen aber gültigen Eingabe lösen Java Basics - Anfänger-Themen 5
N Denksportaufgabe durch Algorithmus lösen Java Basics - Anfänger-Themen 2
K Compiler-Fehler NullPointerException lösen Java Basics - Anfänger-Themen 16
B Wie könnte man mit Java diese Matheaufgabe lösen Java Basics - Anfänger-Themen 7
kilopack15 Sin(x) rekursiv lösen Java Basics - Anfänger-Themen 17
S Lineare Gleichung lösen Java Basics - Anfänger-Themen 1
A instanceof-if-else-Anweisungen eleganter lösen Java Basics - Anfänger-Themen 5
N Von Kopf bis Fuss TestArrays lässt sich nicht lösen Java Basics - Anfänger-Themen 5
L NullPointerException lösen Java Basics - Anfänger-Themen 6
R Hanoi rekursiv lösen Problem Java Basics - Anfänger-Themen 1
A Sudoku mit Backtracking lösen Java Basics - Anfänger-Themen 3
C Gleichung mit Potenz mit einer Unbekannten lösen Java Basics - Anfänger-Themen 5
D Sudoku lösen mit Backtracking Java Basics - Anfänger-Themen 20
B Quadratische Gleichung mit JAVA lösen Java Basics - Anfänger-Themen 5
S Bisschen hilfe beim Sudoku Lösen benötigt Java Basics - Anfänger-Themen 7
I Fragen bzw. Aufgabe lösen Java Basics - Anfänger-Themen 4
C Differenz-Methode mit Array lösen Java Basics - Anfänger-Themen 14
M Sudoku Rekursiv lösen Java Basics - Anfänger-Themen 9
M Gibt es eine einfachere Variante diese Aufgabenstellung zu lösen? Java Basics - Anfänger-Themen 11
O Wie kann man das einfach lösen? (dynamisch viele Attribute) Java Basics - Anfänger-Themen 6
G methode lösen Java Basics - Anfänger-Themen 5
G Sudoku rekursiv lösen Java Basics - Anfänger-Themen 10
I Lineare Gleichungssysteme lösen -> Problem Java Basics - Anfänger-Themen 3
G (csv)Datei lesen FindBug findet mgl. NullPointer - wie lösen Java Basics - Anfänger-Themen 3
K Lösen einer Gleichung Java Basics - Anfänger-Themen 12
V wie kann man das lösen ? Java Basics - Anfänger-Themen 3
lumo lösen von: "Type safety"? Java Basics - Anfänger-Themen 4
J Mit welchem LayoutManager Problem lösen? Java Basics - Anfänger-Themen 2
A Übungsaufgabe lösen - Problem mit true und false Java Basics - Anfänger-Themen 6
J Lösen linearer Gleichungen Java Basics - Anfänger-Themen 3
N Ist dieses Problem mit Java zu lösen? Java Basics - Anfänger-Themen 7
P wait und notify oder wie soll ich es lösen Java Basics - Anfänger-Themen 2
H [req] wer kann mir helfen die aufgabe zu lösen? Java Basics - Anfänger-Themen 2
F Kann ein Problem bei Anweisungen nicht lösen Java Basics - Anfänger-Themen 4
G Aufgabe: Kann sie nicht lösen Java Basics - Anfänger-Themen 12
G quadratische Gleichung lösen Java Basics - Anfänger-Themen 2
I gleichung lösen Java Basics - Anfänger-Themen 4
S Gleichungssystem lösen Java Basics - Anfänger-Themen 6
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
K Warum zeigt dieser reguläre Ausdruck true an? Java Basics - Anfänger-Themen 1
N Was bedeutet dieser Fehler Java Basics - Anfänger-Themen 2
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
P Was bedeutet dieser Fehler? Java Basics - Anfänger-Themen 31
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
S Warum dieser Fehler? Java Basics - Anfänger-Themen 1
B Datum in dieser Range SQL? Java Basics - Anfänger-Themen 3
R Dieser Code sagt mir nichts... Java Basics - Anfänger-Themen 4
J Brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 3
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
M Frage, wie dieser Code funktioniert, bzw. weshab er bei mir nicht funktioniert Java Basics - Anfänger-Themen 4
L Hilfe! Was macht dieser Code? Java Basics - Anfänger-Themen 1
S Erste Schritte Was bedeutet dieser Code? Java Basics - Anfänger-Themen 2
D Erste Schritte Was bedeutet dieser Code? Java Basics - Anfänger-Themen 23
V Operatoren Warum kommt nicht das gewünschte Ergebnis dieser Operation? Java Basics - Anfänger-Themen 3
R Gibt es Eine einfache Programierung dieser Methoden Java Basics - Anfänger-Themen 8
G Lastet dieser Code den Arbeitsspeicher eines Handys aus? Java Basics - Anfänger-Themen 7
B Was passiert in dieser Methode? Java Basics - Anfänger-Themen 3
Nicole1989 Was Bewirkt dieser Java Code? Java Basics - Anfänger-Themen 4
B Summe aller Zahlen von 1 bis zu dieser Zahl (ohne while oder for schleife) Java Basics - Anfänger-Themen 4
J Wo liegt nur an dieser einfachen Bedingung mein Fehler? Java Basics - Anfänger-Themen 8
A Wieso funktioniert dieser Timer nicht?? Java Basics - Anfänger-Themen 3
C Warum funktioniert dieser Code nicht? Java Basics - Anfänger-Themen 2
A Lässt sich dieser Ausdruck irgendwie einfacher schreiben? Java Basics - Anfänger-Themen 4
H Geht dieser Code noch einfacher (try catch finally) Java Basics - Anfänger-Themen 7
P Geht dieser Code noch einfacher? Java Basics - Anfänger-Themen 16
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
F OOP Warum funktioniert dieser Regex? Java Basics - Anfänger-Themen 15
S Was bedeutet dieser ausdruck? Java Basics - Anfänger-Themen 9
P Unterschied dieser 2 code Zeilen Java Basics - Anfänger-Themen 12
StrikeTom Was ist an dieser einfachen funktion falsch? Java Basics - Anfänger-Themen 5
M Wieso funktioniert dieser simple Code nicht? Java Basics - Anfänger-Themen 9
M prozess starten und warten bis dieser sich beendet Java Basics - Anfänger-Themen 3
P Was macht dieser Source code? Java Basics - Anfänger-Themen 5
S OOP Wie muss meine Klasse zu dieser main aussehen? Java Basics - Anfänger-Themen 5
0 Was bedeutet dieser Generic-code? Java Basics - Anfänger-Themen 3
H Wie so ein Exception in dieser HashMap? Java Basics - Anfänger-Themen 7
K Was wird in dieser Frage gemeint ? Java Basics - Anfänger-Themen 15
V Wie und wieso geht dieser Methodenaufruf? Java Basics - Anfänger-Themen 2
G Versteh nicht was an dieser If-Anweisung falsch ist Java Basics - Anfänger-Themen 2
S Ursache dieser Fehlermeldung (access dinied) Java Basics - Anfänger-Themen 3
A Was macht dieser Prgrammteil? Java Basics - Anfänger-Themen 2
B Warum hat dieser einfache Algorithmus lineare Laufzeit? Java Basics - Anfänger-Themen 3
B Wieso funktioniert dieser Vergleich nicht? Java Basics - Anfänger-Themen 3
A Welche dieser Schleifen im TableCellRendererist effizienter? Java Basics - Anfänger-Themen 18
A Was ist an dieser Datum-Methode falsch? Java Basics - Anfänger-Themen 5
G Was macht dieser Code? Java Basics - Anfänger-Themen 3
J Was sagt mir dieser Ausdruck? Java Basics - Anfänger-Themen 9
S Brauche hilfe zu dieser AUfgabe Java Basics - Anfänger-Themen 4
M Was ist an dieser case-Anweisung falsch? Java Basics - Anfänger-Themen 2
R Was bewirkt dieser Code? Java Basics - Anfänger-Themen 6
Jere58 Aufgabe zu Mustern Java Basics - Anfänger-Themen 1
M Interfaces Aufgabe Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben