Problema programa en C

Iniciado por kukucha, 30 Agosto 2012, 11:54 AM

0 Miembros y 1 Visitante están viendo este tema.

kukucha


Estoy haciendo un ejercicio de C en el cual tengo que leer un archivo en el cual me dan una figura de caracteres del siguiente tipo:

4 7
* *
** **
** **
** **

4 filas y 7 columnas, en el cual tengo que ver sí la figura es simétrica de forma horizontal, simétrica vertical o simétrica en contenido horizontal y simétrica en sentido vertical y que el programa me realice dos archivos diferentes de salida en los cuales salga lo siguiente:

Salida para Simetría de Forma

El fichero de salida debe contener:
1. Repetición de la figura original en su totalidad
2. Tipo de simetría: forma
3. Orientación: vertical u horizontal.
4. Cuál es el tamaño de cada mitad en que se ha dividido la figura
5. Cuál es el carácter ASCII predominante que se ha utilizado para
crear la figura. Debe observarse que una figura puede tener
simetría de forma, a pesar de usar más de un carácter ASCII en
su realización. En caso que más de un carácter ASCII aparezcan
el mismo número de veces, puede indicarse cualquiera de ellos
(solo con uno sería suficiente)
6. Cual es el número de veces que aparece este carácter en cada
mitad de la figura

1r archivo:

* *
** **
** **
*** ***
Simetria: forma
Orientacion: vertical
Tamanio: 4 4
Caracter: *
Apariciones: 8

2do archivo:
El fichero de entrada sería el siguiente (ejemplo):

6 6
** ***
** *+
** *
** *
* +***
****

El fichero de salida debe contener:

1. Repetición de la figura original en su totalidad
2. Tipo de simetría: contenido
3. Orientación: vertical u horizontal.
4. Cuál es el tamaño de cada mitad en que se ha dividido la figura
5. Cuál es el carácter ASCII predominante que se ha utilizado para
crear la figura. En caso que más de un carácter ASCII
aparezcan el mismo número de veces, puede indicarse
cualquiera de ellos (solo con uno sería suficiente)
6. Cual es número de veces que aparece este carácter en cada
mitad de la figura
7. El 'vector de valores' ordenado descendentemente
8. Reproducir la figura 'equivalente a la original' que muestra
simetría de forma
En el ejemplo de esta sección, la salida sería la siguiente(es un ejemplo):


salida :

** ***
** *+
** *
** *
* +***
****
Simetria: contenido
Orientacion: horizontal
Tamanio: 3 6
Caracter: *
Apariciones: 11
Valores: 5 4 3
*****
****
***
***
****
*****

Bueno y mi problema es el siguiente he conseguido hacer el archivo de salida 1 hasta el punto que me lee todos los caracteres de entrada me copia la matriz en la salida me calcula perfectamente la simetría de forma horizontal y vertical, el carácter ASCII no me lo copia bien, las apariciones si que me las hace bien, pero creo que solo consiguo contar el número de caracteres que hay y no si son diferentes.

Entrada ejemplo:

4 7
* *
** **
** **
** **
Aquí una copia de lo que consigo en el primer archivo:

* *
** **
** **
** **
Simetria: Forma
Orientacio: Vertical
Tamanio: 4,3
Caracter: 
Apariciones 7

Copia de lo que consigo en el segundo archivo:

* *
** **
** **
** **
Simetria: Contingut
Orientacion: Vertical
Tamanio: 4,3
Caracter: 
Apariciones 7

En resumen, busco alguien que me pueda ayudar a resolver los fallos de mi programa para conseguir acabarlo, mis fallos son sobretodo a la hora de contar cada tipo de ASCII para ver cual es el dominante y imprimir bien el carácter dominante, creo que a partir de ahí podré acabar con lo demás como la ultima parte del segundo archivo de salida.

Veo que las figuras no salen simétricas aquí en mi mensaje pero bueno imaginaros que lo son.

PD: si alguien me puede ayudar puede contactar conmigo por privado, tomasrk@hotmail.com, gracias