Permutaciones
Publicado por Borja (3 intervenciones) el 04/09/2005 13:15:32
wenas llevo dias dandole vueltas a un problema q me an propuesto en clase.. se trata de realizar las !N permutaciones de una cadena y imprimirlas por pantalla (incluida la original) he hecho miles de intentos y problemas.. y ninguno acia lo q pedia.. os pudeo dejar lo ultimo q e realizado por si podeis trabajar sobre ello y acabarlo o algo.. weno aunq nadie lo aga.. muxas gracias de antemano por aber leido esto ;). gracias
weno aqui les dejo el codigo fuente por si alguien puede acerle algun apaño.
{***************************************************************************
Realizado por Borja Gonzalez Martinez- Cabrera
Este programa realiza !N permutaciones a una cadena de N caracteres
****************************************************************************}
program practica1;
var
cadena,resultado:string;
num,numero_per:integer;
{***************************************************************************}
function factorial(numero:integer):integer;
begin {Esta funcion calcula el}
if numero = 0 then {factorial de un numero}
factorial := 1
else
factorial := numero * factorial(numero-1)
end;
{***************************************************************************}
procedure swap(a,b:char);
var
t:char;
begin
a:=t;
a:=b;
b:=t;
End;
{***************************************************************************}
function permutaciones (P:string; N,Num:integer):string; {funcion que realizara
las permutaciones}
var
i,k:integer;
Begin
k:=1;
while k<>Num do
for i:=2 to N do
Begin
Swap(P[1],P[i]);
End;
i:=2;
k:=k+N;
permutaciones:=P;
End; {Funcion permutaciones}
{***************************************************************************}
Begin {Programa}
writeln('Escriba la cadena de caracteres');
readln(cadena);
Num:=Ord(cadena[0]);
Numero_per:=factorial(num);
resultado:=permutaciones(cadena,Num,Numero_per);
writeln(Resultado);
End. {Programa}
weno aqui les dejo el codigo fuente por si alguien puede acerle algun apaño.
{***************************************************************************
Realizado por Borja Gonzalez Martinez- Cabrera
Este programa realiza !N permutaciones a una cadena de N caracteres
****************************************************************************}
program practica1;
var
cadena,resultado:string;
num,numero_per:integer;
{***************************************************************************}
function factorial(numero:integer):integer;
begin {Esta funcion calcula el}
if numero = 0 then {factorial de un numero}
factorial := 1
else
factorial := numero * factorial(numero-1)
end;
{***************************************************************************}
procedure swap(a,b:char);
var
t:char;
begin
a:=t;
a:=b;
b:=t;
End;
{***************************************************************************}
function permutaciones (P:string; N,Num:integer):string; {funcion que realizara
las permutaciones}
var
i,k:integer;
Begin
k:=1;
while k<>Num do
for i:=2 to N do
Begin
Swap(P[1],P[i]);
End;
i:=2;
k:=k+N;
permutaciones:=P;
End; {Funcion permutaciones}
{***************************************************************************}
Begin {Programa}
writeln('Escriba la cadena de caracteres');
readln(cadena);
Num:=Ord(cadena[0]);
Numero_per:=factorial(num);
resultado:=permutaciones(cadena,Num,Numero_per);
writeln(Resultado);
End. {Programa}
Valora esta pregunta


0