Foros del Web » Programación para mayores de 30 ;) » C/C++ »

analizar programa

Estas en el tema de analizar programa en el foro de C/C++ en Foros del Web. Hola, tengo unas cuantas dudas, allá van.... en el siguiente codigo: Código: #include<stdio.h> #include<conio.h> void leer(int m[10][10],int f, int c); void escribir(const int m[10][10], int ...
  #1 (permalink)  
Antiguo 01/10/2009, 13:03
ost
Invitado
 
Mensajes: n/a
Puntos:
analizar programa

Hola, tengo unas cuantas dudas, allá van....

en el siguiente codigo:
Código:
#include<stdio.h>
#include<conio.h>

void leer(int m[10][10],int f, int c);
void escribir(const int m[10][10], int f, int c);
void sumar(const int m1[10][10], const int m2[10][10], int res[10][10], 
           int f, int c);

void leer(int m[10][10],int f, int c)
{
     int i;
     int j;
     for(i=0;i<f;i++)
     {
         for(j=0;j<c;j++)
         {
             printf("Introduzca valor: ");
             scanf("%d",&m[i][j]);
         }
     }
}
void escribir(const int m[10][10], int f, int c)
{
     int i;
     int j;
     for(i=0;i<f;i++)
     {
         for(j=0;j<c;j++)
         {
             printf("%d\n",m[i][j]);
         }
     }
}
void sumar(const int m1[10][10], const int m2[10][10], int res[10][10], 
           int f, int c)
{
     int i;
     int j;
     for(i=0;i<f;i++)
     {
         for(j=0;j<c;j++)
         {
             res[i][j] = m1[i][j] + m2[i][j];
         }
     }
}
main(void)
{
     int m1[10][10];
     int m2[10][10];
     int res[10][10]; 
     int f; 
     int c;
     
     printf("FILAS Y COLUMNAS\n");
     printf("----- - --------\n");
     
     printf("Fila: ");
     scanf("%d",&f);
     printf("Columna: ");
     scanf("%d",&c);
     
     leer(m1,f,c);
     leer(m2,f,c);
     sumar(m1,m2,res,f,c);
     escribir(res,f,c);
     
     getch();
}
No entiendo el motivo por el cual es necesario insertar estas lineas:
Código:
void leer(int m[10][10],int f, int c);
void escribir(const int m[10][10], int f, int c);
void sumar(const int m1[10][10], const int m2[10][10], int res[10][10], 
           int f, int c);
puesto que la llamada la hago desde el main y la definicion esta mas abajo ¿no?

---

el nombre dado a cualquiera de las 3 matrices me daría igual mientras sea el que use dentro de la función, por ejemplo si al llamar leer() le digo que hay un parámetro que es una matriz con nombre m1 y en la función leer le digo que va a usar 3 parámetros y que uno de ellos es una matriz que se llama m y es el nombre que tengo que usar dentro de ésta.
¿por qué motivo le paso m1 al llamarla?


Código:
     leer(m1,f,c);
Código:
void leer(int m[10][10],int f, int c)
{
...
Código:
             printf("Introduzca valor: ");
             scanf("%d",&m[i][j]);
  #2 (permalink)  
Antiguo 01/10/2009, 15:50
 
Fecha de Ingreso: septiembre-2009
Mensajes: 56
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: analizar programa

Cita:
No entiendo el motivo por el cual es necesario insertar estas lineas:
Código:
void leer(int m[10][10],int f, int c);
void escribir(const int m[10][10], int f, int c);
void sumar(const int m1[10][10], const int m2[10][10], int res[10][10], 
           int f, int c);
No son necesarias.
Cuando un programa se comienza a compilar, todas las funciones que se usan en el main() ya deben estar definidas o declaradas, por eso el #include va arriba del main. De igual forma estas funciones leer, escribir y sumar deben estar escritas antes del main(). Pero en este caso, el main() está después de haberlas definido, entonces no es necesario declararlas.

Cita:
el nombre dado a cualquiera de las 3 matrices me daría igual mientras sea el que use dentro de la función, por ejemplo si al llamar leer() le digo que hay un parámetro que es una matriz con nombre m1 y en la función leer le digo que va a usar 3 parámetros y que uno de ellos es una matriz que se llama m y es el nombre que tengo que usar dentro de ésta.
¿por qué motivo le paso m1 al llamarla?
No entiendo muy bien la pregunta, lo que puedo decirle es que:
La "m" que está en la definición de la función leer(int m[10][10],int f, int c), es la misma "m1" cuando se dice leer(m1,f,c). Es decir, todo lo que se le haga a "m" es como si se lo hicieran a "m1".
Lo mismo pasa cuando se dice leer(m2,f,c), todo lo que le haga a "m" es como si se lo estuvieran haciendo a "m2". No sé si eso responda la pregunta.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:17.