Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Skarface en 21 Julio 2010, 06:09 am



Título: Ayudaaaaaa!!! ejercicios de programacion en c
Publicado por: Skarface en 21 Julio 2010, 06:09 am
me pueden ayudar a resolver estos ejercicios porfavor =)


1) Construir un programa en C, usando funciones, que permita crear una matriz A de N x
M, una matriz B de P x Q (con P <= N y Q <= M) y permita determinar si la matriz B se
encuentra contenida en la matriz A.


2) Usando la implementación de pilas y filas que se ha revisado en clases se pide
construir un programa en C, usando funciones, que permita cumplir con los siguientes
requerimientos:
Eliminar de una pila ‘p’ todos los elementos que son múltiplos de un valor ‘k’, la
pila resultante de eliminar los elementos DEBE estar a su capacidad MÁXIMA.
Insertar en una pila, en la posición K, un valor X.
Eliminar de una fila ‘f’ todos los elementos que son múltiplos de un valor ‘k’, la
fila resultante de eliminar los elementos DEBE estar a su capacidad MÁXIMA.
Insertar en una fila, en la posición K, un valor X.
Las signaturas de las funciones DEBERÁN ser las que se indican a continuación:
PILA eliminarPilaMultiplos(PILA p, int k)
PILA insertarPilaUbicacionK(PILA p, int k, int x)
FILA eliminarFilaMultiplos(FILA f, int k)
FILA insertarFilaUbicacionK(FILA f, int k, int x)



Título: Re: Ayudaaaaaa!!! ejercicios de programacion en c
Publicado por: Og. en 21 Julio 2010, 06:17 am
No se hacen tareas, postea lo que llevas y te ayudamos.


Título: Re: Ayudaaaaaa!!! ejercicios de programacion en c
Publicado por: Skarface en 21 Julio 2010, 06:39 am
Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int R [50] [50];
  6. int S [50] [50];
  7. int fr, cr, fs, cs;
  8. printf("Inserte filas de R: ");
  9. scanf("%d",&fr);
  10. printf("Inserte columnas de R: ");
  11. scanf("%d",&cr);
  12. printf("Inserte filas de S: ");
  13. scanf("%d",&fs);
  14. printf("Inserte columnas de S: ");
  15. scanf("%d",&cs);
  16.  
  17. printf("\nLLENANDO MATRIS R: \n");
  18. llenarMatriz(R, fr, cr);
  19. printf("\nLLENANDO MATRIS S: \n");
  20. llenarMatriz(S, fs, cs);
  21. printf("\nLA MATRIS R : ");
  22. mostrarMatriz(R, fr, cr);
  23. printf("\n\nLA MATRIS S : ");
  24. mostrarMatriz(S, fs, cs);
  25.  
  26. void llenarMatriz(int M[50][50], int f, int c)
  27. {
  28. for (int i=1;i<=f;i++)
  29. {
  30.  for (int j=1 ;j<=c;j++)
  31.  {
  32.   printf ("Inserte pos[%d][%d]: ",i,j);
  33.   scanf("%d",&M [i] [j]);
  34.  }
  35. }
  36. }
  37.  
  38. void mostrarMatriz(int M[50][50], int f, int c)
  39. {
  40. for (int i = 1 ; i <= f ; i++)
  41. {
  42.  printf("\n");
  43.  for (int j = 1 ; j <= c ; j++)
  44.  {
  45.   printf ("[%d]",M [i] [j]);
  46.  }
  47. }
  48. }






ahora no se como crear la funcion para ver si una esta contenida en la otra =(


Título: Re: Ayudaaaaaa!!! ejercicios de programacion en c
Publicado por: do-while en 21 Julio 2010, 15:45 pm
¡Buenas!

El algoritmo de resolucion, consta de 4 sencillos pasos:

1- Te pones a pensar hasta que tengas una idea.
2- Intentas pasar la idea a tu lenguaje favorito.
3- Si encuentras algun problema, lo posteas y vemos que se puede hacer.
4- Si no se ha solucionado el ejercicio vuelves al paso 1.

¡Saludos!


Título: Re: Ayudaaaaaa!!! ejercicios de programacion en c
Publicado por: Skarface en 21 Julio 2010, 17:10 pm
la idea es guardar todos los elementos de la matriz b en vectores, una fila en cada vector

for(i=1;i<=p;i++){
    for(j=1;j<=q;j++){
       
       V(i)[i-1]= M[j];
    }
   
 aora no se me ocurre como hacer para ver si ese vector esta dentro de la matriz  :( :( :(


Título: Re: Ayudaaaaaa!!! ejercicios de programacion en c
Publicado por: Gallu en 21 Julio 2010, 18:24 pm
Primero que nada compañero te aconsejaria que entiendas bien el enunciado para poder explicarte bien , si no la verdad aqui no se aclara ni Dios....
Cita de: Skarface
1) Construir un programa en C, usando funciones, que permita crear una matriz A de N x
M, una matriz B de P x Q (con P <= N y Q <= M) y permita determinar si la matriz B se
encuentra contenida en la matriz A.
vamos por partes , te piden un programa que cree dos matrices de n dimensiones , la primera matriz será
Código
  1. matrizA [N][M]
  2.  
la matriz B será menor que la matriz a en todo sentido

Cita de: Skarface
(con P <= N y Q <= M)
con lo cual
Código
  1. matrizB[P][Q]
  2.  

en ningun momento dicen que las matrices deben de ser de 50X50 , una vez que las tenga llenas , tomas el primer elemento de la matriz más pequeña y lo vas comparando con cada uno de los elementos de la más grande , si encuentras coincidencia , pasas al segundo elemento de matrizB y asi , si los elementos de matrizB se encuentran consecutivamente en matrizA , significa que matrizA contiene a matrizB.
No se si esto te ha aclarado las cosas , ya me dirás algo ...
 :huh:


Título: Re: Ayudaaaaaa!!! ejercicios de programacion en c
Publicado por: Skarface en 22 Julio 2010, 00:36 am
si entiendo lo que me dices, pero es como un limite que le doi para ver si compila =)
aora ya tengo casi listo el programa pero no me arroja lo que quiero que es ver que si esta contenida o no, no se donde esta el error   :-(


Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4. void llenar (int M[20][20], int f, int c)
  5. {
  6. for (int i = 1 ; i <= f ; i++)
  7. {
  8.  for (int j = 1 ; j <= c ; j++)
  9.  {
  10.   printf ("Inserte pos[%d][%d]: ",i,j);
  11.   scanf("%d",&M [i] [j]);
  12.  }
  13. }
  14. }
  15.  
  16. void mostrar (int M[20][20], int f, int c)
  17. {
  18. for (int i = 1 ; i <= f ; i++)
  19. {
  20.  printf("\n");
  21.  for (int j = 1 ; j <= c ; j++)
  22.  {
  23.   printf ("[%d]",M [i] [j]);
  24.  }
  25. }
  26. }
  27.  
  28.  
  29. int main()
  30. {
  31. int A [20] [20];
  32. int B [20] [20];
  33. int V[20];
  34. int m, n, p, q,i,j,x,y,s;
  35. printf("Inserte filas de A: ");
  36. scanf("%d",&m);
  37. printf("Inserte columnas de A: ");
  38. scanf("%d",&n);
  39. printf("Inserte filas de B: ");
  40. scanf("%d",&p);
  41. printf("Inserte columnas de B: ");
  42. scanf("%d",&q);
  43.  
  44. if(m<p){
  45.        printf("B no esta contenida en A \n");
  46.        return 0;
  47.    }
  48. if(n<q){
  49.        printf("B no esta contenida en A \n");
  50.        return 0;
  51.    }
  52.  
  53.  
  54. printf("\nLLENANDO MATRIS R: \n");
  55. llenar (A, m, n);
  56. printf("\nLLENANDO MATRIS S: \n");
  57. llenar (B, p, q);
  58. printf("\nLA MATRIS R : ");
  59. mostrar (A, m, n);
  60. printf("\n\nLA MATRIS S : ");
  61. mostrar (B, p, q);
  62. for(j=1;j<=q;j++){
  63.        i=1;
  64.        V[i-j]= B[i][j];
  65.    }
  66. for(i=1;i<=m;i++){
  67.        for(j=1;j<=n;j++){
  68.            if(V[i-1]==A[i][j]){
  69.                x=j;
  70.            }
  71.        }
  72.    }
  73. for(i=1;i<=p;i++){
  74.        for(j=1;j<=q;j++){
  75.            V[i-j]= B[i][j];
  76.        }
  77.    }
  78. for(i=1;i<=m;i++){
  79.        for(j=1;j<=n;j++){
  80.            if(V[i-1]==A[i][j]){
  81.                y=j;
  82.                s=x+q;
  83.                if((s<=n)&&(x==y)){
  84.                       for(j=x;j<=n;j++){
  85.                            if(V[i-1]=! A[i][j]){
  86.                                printf("B no esta contenida en A \n");
  87.                            }
  88.                            else{
  89.                                printf("B esta contenida en A \n");
  90.                            }
  91.                        }
  92.                    }
  93.                }
  94.            }
  95.        }
  96. getch();
  97. }



Título: Re: Ayudaaaaaa!!! ejercicios de programacion en c
Publicado por: Littlehorse en 22 Julio 2010, 00:40 am
Skarface, te he agregado las etiquetas GeSHi a tu ultimo post. Para la próxima que pongas código, hazlo así:

C
[code=c]codigo[/code]

C++
[code=cpp]codigo[/code]


Título: Re: Ayudaaaaaa!!! ejercicios de programacion en c
Publicado por: Skarface en 22 Julio 2010, 01:04 am
perdon es que soy nuevo aca   :(  jejeje  me pueden ayudar a corregir ese codigo porfavor???
 :huh:


Título: Re: Ayudaaaaaa!!! ejercicios de programacion en c
Publicado por: .:BlackCoder:. en 22 Julio 2010, 01:16 am
No vi to el codigo pero ya por aqui estas errado:

Código
  1. for(j=1;j<=q;j++){
  2.        i=1;
  3.        V[i-j]= B[i][j];
  4.    }

i-j te puede dar negativo y pes eso no debe pasar  :xD

Saludos... Luego sigo viendo


Título: Re: Ayudaaaaaa!!! ejercicios de programacion en c
Publicado por: Skarface en 22 Julio 2010, 01:19 am
ohhhhhhh
tienes razon muchas gracias  ;D