boolean, was passiert hier?

Hallo ihr Lieben,

ich habe ein kleines Problem. Ich studiere nebenberuflich BWL an der FH und dazu gehört auch Informatik (JAVA). Leider ist es fast unmöglich während eines Semesters, die JAVA Programmierung zu lernen, wenn man keine Vorkenntnisse hat.
Nun steht die Klausur bevor. Die Aufgaben laufen meist nach dem gleichen Schema.
Wir bekommen einen Quelltext mit Fragen.
Ich würde mich freuen, wenn ihr mir helfen könntet:

Java:
public class klausuraufgabe{

	public static void main (String[] args) {
Z1		int[] liste = {12,9,4,6,2,0,5,1,7,3};
Z2		bearbeite(liste);
Z3		for (int pos=liste.length-1; pos>=0; pos--)
Z4			System.out.println(liste[pos]);
	}
	public static void bearbeite(int[] x) {
		boolean fertig=false;
		int hilf;

		while (!fertig) {
			fertig = true;
Z5				for (int i=0; i < x.length-1; i++)
Z6					if (x[i] > x[i+1]) {
Z7						hilf = x[i];
Z8						x[i] = x[i+1];
Z9						x[i+1] = hilf;
Z10						fertig = false;
				}
		}
	}
}

Die Fragen dazu:
Erläugern Sie jede nummerierte Zeile mit den korrekten Begriffen, was dort genau in der Ausführung passiert.
Ich habe mal so angefangen:
Z1 : Array Variablendeklaration, in der die einzelnen Zahlen in dem Array Liste als integer deklariert werden.
Z3: Hier wir eine for-Schleife verwendet. Der erste Ausdruck gibt die Startbedingung an, hier nämlich dass die Position der Listenlänge-1 entspricht.
Der zweite Ausdruck gibt an, welche Bedingung erfüllt sein muss, damit eine weitere Wiederholung durchgeführt wird, die Pos. muss hier größer gleich null sein.
Der dritte Ausdruck gibt an, welche Opertaion in jedem Schleifendurchgang ausgeführt wird, hier wird die Pos um 1 verringert.
Z 4: Das System gibt die entsprechende Postition aus.

Mein Problem sind jetzt Z2, und Z 5 - 10. Hier kann ich leider gar nichts sagen, was dort passiert.
Könntet ihr mir hier bitte helfen?

Außerdem wird noch gefragt, welches Problem mit der Prozedur bearbeite(...) gelöst wird.
Habt ihr hier eine Atwort?
Eine weitere Frage: Welchen Wert nimmt der Ausdruck liste.lenth an. Das müsste hier 9 sein oder? Meines Wissens beginnt man bei Platz 1 mit der 0 zu zählen oder?

Ich danke euch jetzt schon für eure Hilfe.
 
z2: Es wird die methode "bearbeite" mit dem Parameter "liste" aufgerufen
z5-z10: Ist ein Sortieralgorithmus 😉


liste.length ist in deinem Fall 10. Da es 10 Elemente sind. Weil aber bei einem Array mit 0 zu zählen begonnen wird hat dein 10. Wert den Index 9
 
Hallo,

vielen Dank für die Hilfe.
Das in Z2 verstehe ich nicht so ganz. Was genau bringt mir das? Wozu wird dies benötigt?

Ja das es sich um einen Sortieralgorithmus handelt, sehe ich noch ein.
Leider möchte unser Dozent für jede einzelne Zeile eine kurze konkrete Beschreibung.
Kann hier wer noch helfen? Das würde mir echt weiterhelfen.

Ich habe hier mal das Programm ausgeführt. Es werden ja die Zahlen absteigend sortiert.
Es gab aber auch mal ein anderes Programm, in dem alles anders herum lief und das hat dann aufsteigend sortiert.
Leider weiß ich nicht genau, weshalb und warum absteigend und wann aufsteigend sortiert wird.
Hier wäre noch eine kurze Erklärung hilfreich.
Vielen Dank.
 
Überleg dir mal wie der Sortieralgorithmus funktioniert. Dann sollte sich das ganze von selbst erklären. Schreib es dir am besten auf ein Blatt Papier was gerade statt findet und löse den Algorithmus. Es wird dann einiges schnell klar. Es ist besser du kommst selbst darauf so verstehst du es dann auch wirklich.

Zu z2: Die Methode muss irgendwo aufgerufen werden. Wenn diese Zeile nicht wäre würde der Sortieralgorithmus nie ausgeführt werden da er ja nicht im Hauptprogramm läuft
 

Zurück
Oben