allora mi voglio divertire anch'io,
eccone un'altra, sempre ricorsiva
ciaocodice:program permuta; { Questo programma stampa ricorsivamente tutte le permutazione di una stringa di caratteri. Compilare con fpc permuta } uses crt; var str : string; procedure permu (c, str : string); var i, len : integer; c1 : char; begin len := Length(str); case len of 0, 1 : WriteLn(str); 2 : begin WriteLn(c + str[1] + str[2]); WriteLn(c + str[2] + str[1]); end; else for i := 1 to len do begin // swap dei caratteri c1 := str[i]; str[i] := str[1]; str[1] := c1; permu(c + c1, Copy(str, 2, len - 1)); end; end; end; begin WriteLn('Introduci la stringa da permutare :'); ReadLn(str); WriteLn('***'); permu('', str); WriteLn('***'); WriteLn(''); WriteLn('Grazie per aver usato questo programma.'); WriteLn(''); end.
sergio

Rispondi quotando