6 réponses
Voici la traduction :
```html
<aqu hay="" un="" programa="" en="" pascal="" que="" muestra="" todas="" las="" combinaciones="" posibles="" de="" caracteres="" num="" o="" alfab="" una="" cadena="" ch="" sabiendo="" el="" n="" es="" igual="" al="" factorial="" del="" total="" d="" ejemplo="" para="" permutaciones:="" />el programa muestra 213-231-132-312-321-123
Program combinación;
Uses WinCrt;
Var ch:string;
Procedure Llenar (Var ch:string);
begin
writeln('dar el número');
Readln(ch);
End;
procedure permutar(var x,y:char);
var aux:char;
begin
aux:=x;
x:=y;
y:=aux
end;
function fact(x:integer):integer;
var f,i:integer;
begin
f:=1;
for i:= 1 to x do
begin
f:=f*i ;
end;
fact:=f;
end;
procedure muestra_combinaciones(ch:string);
var i,n,np:integer;
begin
n:=length(ch);
np:=0;
repeat
for i:= 1 to n-1 do
begin
permutar(ch[i],ch[i+1]);
np:=np+1;
write(ch,'-');
end;
permutar(ch[1],ch[n]);
write(ch,'-');
np:=np+1;
until np =fact(length(ch));
end;
begin
llenar(ch);
writeln;
muestra_combinaciones(ch);
end. ```
Program combinación;
Uses WinCrt;
Var ch:string;
Procedure Llenar (Var ch:string);
begin
writeln('dar el número');
Readln(ch);
End;
procedure permutar(var x,y:char);
var aux:char;
begin
aux:=x;
x:=y;
y:=aux
end;
function fact(x:integer):integer;
var f,i:integer;
begin
f:=1;
for i:= 1 to x do
begin
f:=f*i ;
end;
fact:=f;
end;
procedure muestra_combinaciones(ch:string);
var i,n,np:integer;
begin
n:=length(ch);
np:=0;
repeat
for i:= 1 to n-1 do
begin
permutar(ch[i],ch[i+1]);
np:=np+1;
write(ch,'-');
end;
permutar(ch[1],ch[n]);
write(ch,'-');
np:=np+1;
until np =fact(length(ch));
end;
begin
llenar(ch);
writeln;
muestra_combinaciones(ch);
end. ```