EJEMPLO DE TRATAMIENTO DE VECTORES EN C #include <stdio.h> #include <math.h> #define TAM 3 /* PROTOTIPOS (sólo necesarios si la definición de función aparece después de la llamada */ /* Sintaxis, incluir tipos recibidos/devueltos, sin nombres de var. float norma_vector(int [],int); float media_vector(int v[],int); void lee_vector(int v[],int); /* Función que calcula la norma de un vector de tamaño dimension */ float norma_vector(int v[],int dimension) { int sp=0; int i; float norma; for(i=0;i<dimension;i++) { sp=sp+v[i]*v[i]; /* Actualizamos la suma parcial */ } norma=sqrt(sp); / Raíz cuadrada */ return norma; } /* Función que calcula la media de los elementos de un vector de tamaño dimension */ float media_vector(int v[],int dimension) { int sp=0; int i; float media; for(i=0;i<dimension;i++) { sp=sp+v[i]; } media=sp/((float)dimension); return media; } /* Función que lee por teclado los elementos de un vector de tamaño dimension */ void lee_vector(int v[],int dimension) { int i; for (i=0;i<dimension;i++) { scanf("%d",&v[i]); } } /* Función main: programa principal */ void main(void) { /* Declaraciones */ int vector[TAM]; /* TAM es una constante definida arriba */ int i; /* Borrado de la pantalla */ clrscr(); /* Lectura de vector por teclado (paso por referencia) */ lee_vector(vector,TAM); /* Salida por pantalla: hay que hacerla elemento a elemento */ for (i=0;i<TAM;i++) { printf("%d\n",vector[i]); } /* Cálculo y salida por pantalla de la media y la norma del vector */ printf("La media es %f\n",media_vector(vector,TAM)); printf("La norma es %f\n",norma_vector(vector,TAM)); /* Congela la pantalla de MS-DOS hasta que se pulse una tecla */ system("pause"); }