Título: Programa en C de permutaciones Publicado por: JuanJose97ortiz en 28 Junio 2019, 22:57 pm Hola necesito ayuda urgente como puedo hacer este programa en C: Escriba un programa que liste todas las permutaciones de ABCDEF en las que A aparece antes que D.
Resulta que procedí a hacer el análisis del programa, pero no encuentro la forma de empezar a desarrollarlo, las entradas ya están pero no se como puedo empezar a hacer las permutaciones de las letras, cualquier aporte de como puedo ir desarrollándolo me serviría mucho, gracias Título: Re: Programa en C de permutaciones Publicado por: K-YreX en 29 Junio 2019, 12:19 pm En google habrá muchos ejemplos de permutaciones en C.
Y para controlar la condición de que A debe ir antes que D, calcula todas las permutaciones y haz una función que compruebe si eso se cumple o no y utiliza solo las permutaciones que lo cumplan. Título: Re: Programa en C de permutaciones Publicado por: @XSStringManolo en 29 Junio 2019, 15:55 pm Para resolver problemas te aconsejo plantear primero el problema con los pasos que harías para serolverlo con un lapiz y un papel imitando tu pensamiento:
Pongo las letras en el papel. ABCDEF Pongo todas las combinaciones posibles 1 por 1. ACBDEF ADBCEF AEBCDF AFBCDE ABDCEF ABECDF ABFBCD ...... Que estás haciendo? Compara cada cadena con la original: ABCDEF ACBDEF Intercambiaste el elemento con índice [2] por el elemento con índice [1]. En la siguiente cadena? ABCDEF ADBCEF Intercambiaste la cadena anterior ACBDEF moviéndole el índice [3] por el índice [1] En la siguiente cadena? ABCDEF AEBCDF Intercambiaste la cadena anterior ADBCEF moviéndole el índice [4] por [1] AEBCDF .... Ya encontraste un patron para parte del algoritmo. Si llamas al primer índice X = 2, solo tienes que cambiar la letra guardada en el indice [X] por la letra en el índice [1]. Puedes hacer una funcion a la qje le pases dos 2 numeros enteros y te devuelva un array con esas posiciones intercambiadas. El bucle de momento sería: int x = 2; for (int i = 0; i < tamañoArray; ++i; { ArrayConLasLetras = FuncionCambioElementosArray(x, 1); ++x; } Te falta comprobar la posición de los elementos para saber si hacerle printf. Te faltan permutaciones. Puedes ir comprobando paso por paso los resultados del programa e ir modificándolo paso a paso para que siga realizando otras permutaciones. O seguir buscando "con el papel" el siguiente paso que deberías dar para sacar más permutaciones. Cuando las tenga todas observa si encuentras una operación matemática para calcular todas las permutaciones. |