Operaciones estadisticas
De Ejercicios
Contenido |
Enunciado
INTRODUCCIÓN A LA ESTADÍSTICA.
Realiza este ejercicio basándote en el programa maximo.c y guárdalo con el nombre numeros.c. Este programa deberá realizar las siguientes operaciones:
1. Preguntar al usuario con cuántos números desea trabajar.
2. Leer y almacenar los números convenientemente.
3. Hallar su media aritmética utilizando para ello una función a la que llamarás media( ).
4. Hallar el máximo y el mínimo llamando a sendas funciones maximo( ) y minimo( ), cuya programación realizaste en la práctica anterior.
5. Hallar la semisuma de los valores máximo y mínimo mediante la función semisuma( ).
6. Mostrar por pantalla los valores obtenidos: media, máximo, mínimo y semisuma.
Tanto el programa principal como las funciones deberán estar en el mismo fichero numeros.c.
Soluciones
Programa en C por Angel
Solución comentada al Ejercicio:
/* fichero numeros.c */ #include <stdio.h> #define SIZE 20 /* declaracion de funciones */ double media(double*, int); double maximo(double*, int); double minimo(double*, int); double semisuma(double, double); void main(void) { double vector[SIZE]; int n, i; printf("Con cuantos valores deseas trabajar?\n"); printf("(el numero debera ser menor que 20)\n"); printf("Teclea n: "); scanf("%d", &n); printf("\n"); printf("Introduce los %d valores:\n",n); for (i=0 ;i<n; i++) { printf("Valor %d: ", i+1); scanf("%lf", &vector[i]); } printf("\n"); printf("media= %5.2lf \n", media(vector,n)); printf("maximo= %5.2lf \n", maximo(vector,n)); printf("minimo= %5.2lf \n", minimo(vector,n)); printf("semisuma= %5.2lf \n", semisuma(maximo(vector, n), minimo(vector, n))); } double media(double* valores, int num) { double suma=0.0, med; int i; for (i=0; i<num; i++) suma+=valores[i]; med=suma/num; return (med); } double minimo(double* valores, int num) { int i; double min; min=valores[0]; for (i=1; i<num; i++) if (valores[i]<min) min=valores[i]; return (min); } double maximo(double* valores, int num) { int i; double max; max=valores[0]; for (i=1; i<num; i++) if (valores[i]>max) max=valores[i]; return (max); } double semisuma(double max, double min) { return ((max+min)/2.0); }
Comentario
En este fichero se presentan funciones para calcular la media, el máximo, el mínimo, y la semisuma del máximo y el mínimo de los elementos de un conjunto. Cada uno de estos cálculos es muy sencillo. El interés de este ejercicio está en ver cómo se definen, declaran y llaman las distintas funciones que en él aparecen. El resultado de todas estas funciones es un valor único que se devuelve como valor de retorno.