![]() |
|---|
![]() |
![]() |
![]() |
Una primera aplicación en C++. Estadísticas
En la actividad práctica diaria se realizan mediciones:
la temperatura de una persona o de un objeto
el número de estudiantes
la ventas del día
De esas mediciones normalmente nos interesa conocer como se están comportando los valores y una idea de ello nos lo da el valor medio de la magnitud que hemos medido. Mayor información del comportamiento de las mediciones nos lo brinda su desviación media y su desviación media cuadrática.
Conocer a partir de los valores experimentales su ley de formación es otro elemento de notable importancia, así como saber si existe o no correlación entre dos varibles cualesquiera.
Veamos como obtener esos datos a partir de una serie de valores.
El valor medio viene dado por:
(1)
Esto nos indica que debemos realizar una suma sobre los valores obtenidos y dividir el resultado de esa suma entre el número de datos.
Para ello diseñamos una función que teniendo como datos el conjunto de valores y su número nos devuelva el valor medio de esos valores.
Asumiremos que el tipo de dato de las mediciones realizadas es float. Para obtener la suma debemos ir tomando dato a dato del arreglo de valores y ponerlos en una variable predeclarada, a la que llamaremos en este caso suma. Por último dividimos ese valor entre el número de datos y devolvemos el resultado.
Para tomar los valores uno a uno y realizar la suma utilizamos un for que es una de las opciones que nos brinda C++ para hacer operaciones cíclicas
#include <stdio.h> float
Estadistica :: ValorMedio() |
Al inicio de la clase hemos situado los llamados a las bibliotecas de C++ donde se encuentran las funciones que utilizamos en ellas.
En esta clase podemos apreciar que la función IgualarArreglos() esta en la sección private de manera que solo podrá ser utilizada por las funciones que pertenecen a la propia clase. De esa forma es utilizado por el constructor de la clase para hacer una copia del arreglo que le llega como parametro de manera que no se afecten los datos originales si es necesario modificar algún dato durante el trabajo de la clase.
Como la instrumentación de la función ValorMedio() se realiza fuera de la clase su
nombre va precedido del nombre de la clase float Estadistica :: ValorMedio()
Un programa que hace uso de esa función podría ser:
| #include <estadistica.h> void main() {
float Conjunto[] = {1.5,2.3,1.0,4.4,7.8,5.1,1.7,7.9,9.0,3.3}; Estadistica Datos(Conjunto); printf("El valor medio es:
%.2f",Datos.ValorMedio()); getch(); } |
En el hacemos referencia a la biblioteca Estadistica.h que nosotros mismos hemos creado con la clase Estadistica.
Creamos el arreglo Conjunto con 10 valores. En la misma donde se crea el arreglo se llena situando los valores entre {} y separados por comas.
Creamos un objeto Datos de la clase Estadistica y le transferimos como parametro Conjunto.
Para imprimir el resultado en pantalla usamos la función printf en la que usamos la posibilidad de fijar el número de decimales de la variable a imprimir poniendo .2 detras del simbolo de % y antes de la letra f, lo que nos indica que se va a escribir una variable de tipo flotante con solo dos decimales.
Podemos agregar ahora a la clase las funciones DesviacionMedia y DesviacionCuadratica, en las que igualmente utilizaremos el ciclo for. En el primer caso realizando una resta entre los valores del arreglo y el valor de la media como aparece en la expresión (2) y obteniendo el valor absoluto de esa resta, para que utilizamos la función fabs.
La desviación media como vemos no es más que la relación existente entre la sumatoria del valor absoluto de la diferencia entre cada uno de los valores y el valor medio de la medición dividida entre el número de mediciones.
(2)
float Estadistica ::
DesviacionMedia() |
Por su parte la ecuación de la desviación
cuadratica media es:
(3)
float Estadistica ::
DesviacionCuadratica() |
Mientras en la función DesviacionMedia hacemos la suma del cuadrado de la resta y
hayamos la raiz cuadrada de la división entre ese valor y el nr de datos del arreglo,
utilizando la función sqrt. Ambas funciones están en la biblioteca math.h de C++,
la que debe ser incluida al principio de la clase con su correspondiente #include.
Las referencias a estas funciones se realizarán igual que la que se hizo para el valor
medio.
![]() |
![]() |