Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: kofu en 23 Septiembre 2016, 15:48 pm



Título: [AYUDA] Modelo de Parcial en C
Publicado por: kofu en 23 Septiembre 2016, 15:48 pm
En mi facultad estan dando el siguiente modelo de parcial para progamacion en C, yo pude resolver el primer ejercicio pero no de la forma adecuada. Me dijo el profesor que tenia que usar un while en vez de un for pero no logro hacer el tema de los espacios. Ayuda por favor para resolver los 2 ejercicios correctamente !

Simulacro de Parcial
1)   Escribir un programa que utilice una función para devolver un valor de verdad indicando si una frase es palindromica (capicúa) o no. El análisis de la frase debe ignorar los espacios que puede contener, es decir que estos no afectaran el resultado. Ejemplos:
espalindomo (“luz azul”);    devuelve verdadero
espalindormo (“yo hago yoga hoy”); devuelve verdadero

2)   Escribir un programa para generar una matriz NxN con números enteros 1 a N respetando el patrón adjunto. Imprimir la matriz obtenida. El programa debe funcionar para cualquier valor positivo de N, el que se declara mediante una directiva #define. Ejemplo para N=6:

1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6


RESOLUCION EJERCICIO 1:

Código
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #define MAX 50
  5.  
  6. int main(int argc, char *argv[])
  7. {
  8.  char N[MAX];
  9.  int cont;
  10.  int cont2;
  11.  char C[MAX];
  12.  int suma=0;
  13.  int lon;
  14.  int cont3=0;
  15.  
  16.  cont=0;
  17.  printf("Escribir una cadena de caracteres: ");
  18.  gets(N);
  19.  lon=strlen(N);
  20.  cont2=lon-1;
  21.  while(cont<MAX){
  22.                  C[cont]=N[cont2];
  23.                  cont=cont+1;
  24.                  cont2=cont2-1;}
  25.  
  26.  C[lon]='\0';
  27.                  cont=0;
  28.  
  29.  
  30.  cont=0;
  31.  while(cont<lon){
  32.                  cont2=cont;cont3=0;
  33.                  if(N[cont]==' '){
  34.                                while(cont2<lon){
  35.                                        N[cont+cont3]=N[cont+cont3+1];
  36.                                        cont2=cont2+1;
  37.                                        cont3=cont3+1;
  38.                                        }}
  39.  cont=cont+1;}
  40.  
  41.  
  42.  cont=0;
  43.  while(cont<lon){
  44.                  cont2=cont;cont3=0;
  45.                  if(C[cont]==' '){
  46.                                while(cont2<lon){
  47.                                        C[cont+cont3]=C[cont+cont3+1];
  48.                                        cont2=cont2+1;
  49.                                        cont3=cont3+1;
  50.                                        }}
  51.  cont=cont+1;}
  52.  
  53.  
  54.  cont=0;
  55.  while(cont<lon){
  56.                  if(N[cont]!=C[cont]){
  57.                                       suma=suma+1;}
  58.                  cont=cont+1;}
  59.  printf("\n");
  60.  if(suma!=0){printf("No es palindromo\n");}
  61.  else{printf("Es palindromo\n");}
  62.  
  63.  system("PAUSE");  
  64.  return 0;
  65. }

Desde ya muchas gracias :)!

Saludos[/i]


Título: Re: [AYUDA] Modelo de Parcial en C
Publicado por: dato000 en 23 Septiembre 2016, 16:35 pm
Y que has hecho hasta el momento del 2do ejercicio?? porque mencionas un patrón define y no dejas nada.


Título: Re: [AYUDA] Modelo de Parcial en C
Publicado por: kofu en 23 Septiembre 2016, 16:38 pm
Y que has hecho hasta el momento del 2do ejercicio?? porque mencionas un patrón define y no dejas nada.

El segundo ejercicio no hice nada hasta el momento, por eso estoy buscando ayuda aca. Asi si lo pueden hacer me re ayudarian, mas tarde edito de lo que hice del ejercicio 1.

Me podrias ayudar con los 2 ejercicios por fa :)?


Título: Re: [AYUDA] Modelo de Parcial en C
Publicado por: engel lex en 23 Septiembre 2016, 17:53 pm
no se hacen tareas... di tus dudas sobre lo que te evita terminarlo y podremos ayudarte


Título: Re: [AYUDA] Modelo de Parcial en C
Publicado por: kofu en 23 Septiembre 2016, 18:18 pm
no se hacen tareas... di tus dudas sobre lo que te evita terminarlo y podremos ayudarte

Okey, entiendo. Ahora edito mi post de las formas que intente resolver los problemas y ahi espero que me ayuden...

Saludos


Título: Re: [AYUDA] Modelo de Parcial en C
Publicado por: dato000 en 23 Septiembre 2016, 19:08 pm
Bueno, al menos se tiene interes, no tengo el compilador aqui, y tampoco me voy a quemar haciendo las tareas gratis...

pero al menos dejare algo para no desanimar al muchacho:

Supongo que la cosa es:

generar una matriz NxN en donde N sea un número definido desde código, es decir, un valor constante, y llenarlo con números que por cada fila, cada valor de sus columnas sea desde el 1 al N.
Entendi bien??

vamos a ver, no creo que funcione en el compilador, lo estoy haciendo todo desde memoria, pero no deberia resultar dificil hacerle el soporte y mejorarlo.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h> //incluye srand() y rand()
  3.  
  4. #define tamanyoMatriz 5
  5.  
  6.  
  7. int main()
  8. {
  9.  int matriz[tamanyoMatriz][tamanyoMatriz]
  10.  
  11.   //srand(time(0));//numeros Aleatorios en funcion del tiempo
  12.   for (int i=0; i<tamanyoMatriz; i++)//para desplazarse por las columnas
  13.   {
  14.        for (int j=0 ;j<tamanyoMatriz; j++)//para desplazarse por las filas
  15.        {
  16.            //matriz[i][j]=rand();//Agrega numero aleatorio a la posicion ij de la matriz
  17.            matriz[i][j] = j+1;
  18.            printf("\t%d",mat[i][j]);//imprime elemento de la matriz en pantalla
  19.         }
  20.         printf("\n\n");//para dejar espacios entre filas.
  21.   }
  22.   return 0;
  23. }
  24.  

Deje un par de cosas más para usar una semilla srand para generar números aleatorios.

Me comentas si funciono, debe tener errores de sintaxis y cosas, pero en general ahi tiene la lógica necesaria para que el resultado.


Título: Re: [AYUDA] Modelo de Parcial en C
Publicado por: kofu en 23 Septiembre 2016, 21:35 pm
Bueno, al menos se tiene interes, no tengo el compilador aqui, y tampoco me voy a quemar haciendo las tareas gratis...

pero al menos dejare algo para no desanimar al muchacho:

Supongo que la cosa es:

generar una matriz NxN en donde N sea un número definido desde código, es decir, un valor constante, y llenarlo con números que por cada fila, cada valor de sus columnas sea desde el 1 al N.
Entendi bien??

vamos a ver, no creo que funcione en el compilador, lo estoy haciendo todo desde memoria, pero no deberia resultar dificil hacerle el soporte y mejorarlo.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h> //incluye srand() y rand()
  3.  
  4. #define tamanyoMatriz 5
  5.  
  6.  
  7. int main()
  8. {
  9.  int matriz[tamanyoMatriz][tamanyoMatriz]
  10.  
  11.   //srand(time(0));//numeros Aleatorios en funcion del tiempo
  12.   for (int i=0; i<tamanyoMatriz; i++)//para desplazarse por las columnas
  13.   {
  14.        for (int j=0 ;j<tamanyoMatriz; j++)//para desplazarse por las filas
  15.        {
  16.            //matriz[i][j]=rand();//Agrega numero aleatorio a la posicion ij de la matriz
  17.            matriz[i][j] = j+1;
  18.            printf("\t%d",mat[i][j]);//imprime elemento de la matriz en pantalla
  19.         }
  20.         printf("\n\n");//para dejar espacios entre filas.
  21.   }
  22.   return 0;
  23. }
  24.  

Deje un par de cosas más para usar una semilla srand para generar números aleatorios.

Me comentas si funciono, debe tener errores de sintaxis y cosas, pero en general ahi tiene la lógica necesaria para que el resultado.


Lo probé y no funciona... Me da muchos errores, mas que nada me marca errores en el primer for.

PD: Fijate que subi la solucion incorrecta del ejercicio 1.

Saludos


Título: Re: [AYUDA] Modelo de Parcial en C
Publicado por: dato000 en 23 Septiembre 2016, 21:44 pm
codeblocks.


Título: Re: [AYUDA] Modelo de Parcial en C
Publicado por: kofu en 23 Septiembre 2016, 22:10 pm
codeblocks.

Ahi ya lo probé y no anda. Marca varios errores pero mas que nada en el for (dice que le falta un ; pero nada q ver jaja).

Podrias revisarlo?

Y fijate lo que puse yo arriba del ejercicio 1.

saludos


Título: Re: [AYUDA] Modelo de Parcial en C
Publicado por: dato000 en 24 Septiembre 2016, 00:16 am
Ahi ya lo probé y no anda. Marca varios errores pero mas que nada en el for (dice que le falta un ; pero nada q ver jaja).

Podrias revisarlo?

Y fijate lo que puse yo arriba del ejercicio 1.

saludos

por eso dije, que como lo saque a pura memoria habria que pulirlo, ya teniendo una base puede revisarse y pulirse el código, hombre, un poco de esfuerzo ni que fuera tan dificil. Sería en un par de horas hasta que llegue a mi casa para comprobar el funcionamiento del algoritmo.

Echale más ganas y revisa los errores. El mismo compilador indica que debe corregirse, y da pistas probables de como solucionarlo (en algunos casos).
---EDITADO---

Muy bien ya mire el código, y salvo un punto y coma ( ; ) y renombrar correctamente la matriz, el código corre sin problemas.

(http://thumbs.subefotos.com/88681b7e1f7f55b7609d13a9259c3051o.jpg) (http://subefotos.com/ver/?88681b7e1f7f55b7609d13a9259c3051o.png)
Matriz con el patrón de 1 a N

(http://thumbs.subefotos.com/31aa0d22c360eb976eea36ef42908a63o.jpg) (http://subefotos.com/ver/?31aa0d22c360eb976eea36ef42908a63o.png)
Matriz con el patrón de números aleatorios

voy a dejar el código corregido:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h> //incluye srand() y rand()
  3.  
  4. #define tamanyoMatriz 6
  5.  
  6.  
  7. int main()
  8. {
  9.  
  10.  int matriz[tamanyoMatriz][tamanyoMatriz];
  11.  srand (time(NULL));
  12.  
  13.   //srand(time(0));//numeros Aleatorios en funcion del tiempo
  14.   for (int i=0; i<tamanyoMatriz; i++)//para desplazarse por las columnas
  15.   {
  16.        for (int j=0 ;j<tamanyoMatriz; j++)//para desplazarse por las filas
  17.        {
  18.            matriz[i][j]=rand() % 11;//Agrega numero aleatorio a la posicion ij de la matriz de 1 a 10
  19.            //matriz[i][j] = j+1;
  20.            printf("\t%d", matriz[i][j]);//imprime elemento de la matriz en pantalla
  21.         }
  22.         printf("\n\n");//para dejar espacios entre filas.
  23.   }
  24.   return 0;
  25. }
  26.  


Título: Re: [AYUDA] Modelo de Parcial en C
Publicado por: kofu en 24 Septiembre 2016, 22:34 pm
por eso dije, que como lo saque a pura memoria habria que pulirlo, ya teniendo una base puede revisarse y pulirse el código, hombre, un poco de esfuerzo ni que fuera tan dificil. Sería en un par de horas hasta que llegue a mi casa para comprobar el funcionamiento del algoritmo.

Echale más ganas y revisa los errores. El mismo compilador indica que debe corregirse, y da pistas probables de como solucionarlo (en algunos casos).
---EDITADO---

Muy bien ya mire el código, y salvo un punto y coma ( ; ) y renombrar correctamente la matriz, el código corre sin problemas.

(http://thumbs.subefotos.com/88681b7e1f7f55b7609d13a9259c3051o.jpg) (http://subefotos.com/ver/?88681b7e1f7f55b7609d13a9259c3051o.png)
Matriz con el patrón de 1 a N

(http://thumbs.subefotos.com/31aa0d22c360eb976eea36ef42908a63o.jpg) (http://subefotos.com/ver/?31aa0d22c360eb976eea36ef42908a63o.png)
Matriz con el patrón de números aleatorios

voy a dejar el código corregido:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h> //incluye srand() y rand()
  3.  
  4. #define tamanyoMatriz 6
  5.  
  6.  
  7. int main()
  8. {
  9.  
  10.  int matriz[tamanyoMatriz][tamanyoMatriz];
  11.  srand (time(NULL));
  12.  
  13.   //srand(time(0));//numeros Aleatorios en funcion del tiempo
  14.   for (int i=0; i<tamanyoMatriz; i++)//para desplazarse por las columnas
  15.   {
  16.        for (int j=0 ;j<tamanyoMatriz; j++)//para desplazarse por las filas
  17.        {
  18.            matriz[i][j]=rand() % 11;//Agrega numero aleatorio a la posicion ij de la matriz de 1 a 10
  19.            //matriz[i][j] = j+1;
  20.            printf("\t%d", matriz[i][j]);//imprime elemento de la matriz en pantalla
  21.         }
  22.         printf("\n\n");//para dejar espacios entre filas.
  23.   }
  24.   return 0;
  25. }
  26.  



No entiendo porque ami no me compila...

(http://thumbs.subefotos.com/e75937f5a69626e8d46da480437bbd20o.jpg) (http://subefotos.com/ver/?e75937f5a69626e8d46da480437bbd20o.png)


El archivo lo tengo guardado como ejercicio2.c y tengo el visual studio configurado para lenguaje C...

Me podrias ayudar si no es mucha molestia?

Saludos



Título: Re: [AYUDA] Modelo de Parcial en C
Publicado por: dato000 en 25 Septiembre 2016, 02:13 am
No compila porque no esta hecho en visual studio sino en codeblocks, los cuales utilizar compiladores diferentes, por lo tanto, utilizan comandos de ejecución diferentes.

Mi consejo es que uses otro IDE con otro compilador, estan codeblocks, dev-c++, WxDev-C++, Adjunta...los cuales vienen distintos compiladores, visual studio no esta hecho para trabajar a la medida con C/C++, ahora si tienes tantas ganas de usar VS, pues averiguate los comandos correctos para ejecutar el código en ese ambiente.


Título: Re: [AYUDA] Modelo de Parcial en C
Publicado por: MAFUS en 25 Septiembre 2016, 02:28 am
Te falta #include <time.h> al principio de código, sino no conocerá la función time.