ich bin gerade dabei mich auf meine mündliche Informatikprüfung vorzubereiten. Als Thema wurde unter anderem Selectionsort genannt (denke mal, ihr wisst damit was anzufangen :
Das Prinzip hab ich total verstanden und auch die Prinzipielle Umsetzung.
Meine Frage ist jetzt nur:
Welcher Quelltext wäre richtig?
Es geht um folgende drei Zeilen:
Code: Alles auswählen
Temp:=Feld[min];
Feld[min]:=Feld[i];
Feld[i]:=Temp;
Gehören diese 1) in die 1. For-Schleife 2) in die 2. For-Schleife oder 3) in die IF-Struktur der 2. For-Schleife?
1)
Code: Alles auswählen
Procedure SelectionSort(var Feld :Array of Integer);
var i, j, Temp, Min: integer;
Begin
For i:=Low(Feld) to High(Feld) do
Begin
Min:=i;
For j:=i+1 to High(Feld) do
begin
IF Feld[j] < Feld[min] then
Min:=j;
end;
Temp:=Feld[min];
Feld[min]:=Feld[i];
Feld[i]:=Temp;
End;
End;
2)
Code: Alles auswählen
Procedure SelectionSort(var Feld :Array of Integer);
var i, j, Temp, Min: integer;
Begin
For i:=Low(Feld) to High(Feld) do
Begin
Min:=i;
For j:=i+1 to High(Feld) do
begin
IF Feld[j] < Feld[min] then
Min:=j;
Temp:=Feld[min];
Feld[min]:=Feld[i];
Feld[i]:=Temp;
end;
End;
End;
3)
Code: Alles auswählen
Procedure SelectionSort(var Feld :Array of Integer);
var i, j, Temp, Min: integer;
Begin
For i:=Low(Feld) to High(Feld) do
Begin
Min:=i;
For j:=i+1 to High(Feld) do
IF Feld[j] < Feld[min] then
begin
Min:=j;
Temp:=Feld[min];
Feld[min]:=Feld[i];
Feld[i]:=Temp;
end;
End;
End;
Und die letzte Frage: Müsste in der 1. For-Schleife (wie in 1.) um die IF-Struktur ein begin/end gesetzt werden oder kann das weggelassen werden, weil die IF-Anweisung als "eine Anweisung" zählt?
Code: Alles auswählen
For j:=i+1 to High(Feld) do
begin
IF Feld[j] < Feld[min] then
Min:=j;
end;
Code: Alles auswählen
For j:=i+1 to High(Feld) do
IF Feld[j] < Feld[min] then
Min:=j;
Vielen Dank für eure Antworten, ich hoffe ich hab mich verständlich ausgedrückt, wenn nicht einfach nachfragen
Grüße
Tim