Tutorial de Lenguaje C                                                                                               Dr. Roberto Gómez


PASO DE ARREGLOS COMO PARAMETROS

                          int tab[10];
                        float prom;
                      1. int funcion(float p; int tabla[]);
                    2. int funcion(float p; int tabla[10]);

independientemente de la declaración los arreglos se pueden pasar de algunas de las dos siguientes formas:

                    (a) x = funcion(prom; tabla);
                    (b) x = funcion(prom; &tabla[0]);
 

prog27.c Ejemplo paso arreglos como parámetros

/* Cálculo de la variancia de 10 números

#include <stdio.h>

/* Definición función promedio(t) */

float promedio(t)
          float t[ ];
{
 
          int i;
          float s;
 
          for (s=0, i=0; i < 10; i=i+1)
                  s=s+t[i];
          return(s/10);
}

/* Función que eleva los elementos del arreglo al cuadrado */

void potencia(t,res)
            float t[10],res[];
{

            int i;
            for (i=0; i < 10; i=i+1)
                    res[i]=t[i]*t[i];
}

int main()
{

                    float t[10], t2[10];
                    float m1, m2;
                    int i;

                    for (i=0; i!10; i=i+1)
                    {
                          printf(''De valor de t[%d]:'',i);
                          scanf(''%f'',&t[i]);
                    }
                    m1=promedio(t);
                    potencia(t,t2);
                    m2=promedio(&t2[0]);
                    printf(''varianza:%dnn'',m2-(m1*m1));
}


prog28.c Ejemplo uso arreglos de dos dimensiones

/* Suma de matrices */

/* Función que captura los valores de una matriz */

void captura(a)
                float a[3][3];
{

                int i,j;
                for (i=0; i<3; i++)
                   for (j=0; j<3; j++) {
                            printf(''Valor a[%d,%d]:''i,j);
                            scanf(''%f'',&a[i][j]);
                        }
}

/* Sumando dos matrices */

void suma(a,b,c);
                float a[3][3], b[3][3], c[3][3];
{

                int i,j;
                for (i=0; i<3; i++)
                        for (j=0; j < 3; j++)
                           c[i][j]= a[i][j] + b[i][j];
}

/* Desplegando el contenido de una matriz */

void despliega(a)
                float a[3][3];
{

                int i,j;
                for (i=0;  i < 3; i++)  {
                            for (j=0;  j < 3; j++)
                                printf(''  %.2f   ",a[i][j]);
                            printf(''\n'');
                        }
}

#include <stdio.h>

int main()
{

                        float a[3][3], b[3][3], c[3][3];

                        printf("Captura de la primera matriz:  \n");
                        captura(a);
                        printf("\n\nCaptura de la segunda matriz: \n");

                        captura(b);
                        suma(a,b,c);
                        printf
("\n\nEl resultado de la suma de las matrices es: \n");
                        imprime(c);

}


Ejercicios arreglos

  1. Escriba un programa que capture todos los elementos de un arreglo de tipo entero sin signo. La longitud del arreglo es de 20 elementos. Una vez capturados el programa debe despliegar un menu con las siguientes opciones:  Busqueda, Modificación, Listado, Fin. Cada opción debe mandar llamar una función que recibe como parámetro el arreglo capturado. La función de  busqueda debe preguntar por un número y buscarlo dentro del arreglo; si lo encuentra debe regresar el lugar donde se encuentra, en caso contrario debe regresar un -1. Se debe desplegar esta informacion o un mensaje indicando que el numero no existe. La función de modificación va a preguntar por un número de ubicación (0 a 19), desplegara el contenido de esta ubicación y preguntara por un nuevo valor  para substituir el que ahi se encontraba. La función de listado desplegara el contenido del arreglo.  La opción de Fin termina el programa.
  2. Escriba un programa que lea un arreglo de 10 números flotantes. El programa debe contar con tres funciones. Una función de nombre mayor() debe regresar el número más grande del arreglo. Otra función de nombre menor() debe regresar el valor más pequeño del arreglo.  La tercera función de nombre promedio debe regresar el promedio de los 10 números. Se deben mandar llamar dichas fucniones y desplegar su resulktado.


MENÚ PRINCIPAL