Hallo!
Es geht um ein Pascal-Programm, das die Permutationen von 1-4 ausgeben soll. Dabei ist mir nicht ganz klar, wie das Ganze funktioniert. Es wäre nett, wenn mir jemand das Programm erklären könnte.
Insbesondere kann ich nicht nachvollziehen, warum die Variablendeklaration (die der Prozedur von I und H) nicht im Prozedurkopf sondern darunter stehen (wann muss ich sie in den kopf schreiben, wann nicht?).
Desweiteren sind mir die Schleifen nicht ganz klar, sowie der Dreieckstausch:
program permutation;
uses crt;
const n=4;
type bereich=1..N;
feldtyp=array[bereich] of bereich;
var i:bereich;
pm:feldtyp;
procedure permu(p:feldtyp; k:bereich);
var i,h:bereich;
begin
if k=n then
begin for i:=1 to n do write(' ',P[i]);
writeln;
end
else
for i:=k to n do
begin
h:=P[i];
P[i]:=p[k];
P[k]:=h;
permu(P,k+1);
end;
end;
begin
clrscr;
for i:=1 to n do pm[i]:=i;
permu(Pm,1);
readln;
end.
Also wie gesagt, wäre nett wenn mir jemand das Ganze möglichst bald erklären könnte.