Está en la página 1de 10

Contenido de la práctica

¿Qué es HASKELL?............................................................................................................. 3
Unidad III: Practica (Calculadora estadística) ............................................................ 4
Funciones que contendrá la práctica ........................................................................ 4
Descripción del funcionamiento del programa .........................................................5
Descripción del funcionamiento del código ................................................................ 6
Archivo .hs....................................................................................................................... 6
Funcionamiento del programa en consola.................................................................. 9
¿Qué es HASKELL?

Haskell es perezoso. Es decir, a menos que le


indiquemos lo contrario, Haskell no ejecutará
funciones ni calculará resultados hasta que se vea
realmente forzado a hacerlo. Esto funciona muy
bien junto con la transparencia referencial y
permite que veamos los programas como una serie
de transformaciones de datos.

Haskell es elegante
y conciso.

Los programas en Haskell Haskell es un lenguaje de


son normalmente más programación
cortos puramente funcional.

Es un lenguaje tipificado estáticamente.


Cuando compilamos un programa, el
compilador sabe que trozos del código son
enteros, cuales son cadenas de texto, etc.
Unidad III: Practica (Calculadora estadística)
Funciones que contendrá la práctica
Realizar una calculadora estadística que realice las siguientes funciones

Valor de “n” Valor máximo

Vmax
Número total de elementos
Valor máximo de todo el conjunto de datos

Sumatoria total Valor mínimo

Vmin
Valor mínimo de todo el conjunto de datos
Sumatoria total de todos los elementos del
conjunto de datos dados
Media
Mediana

Promedio del conjunto de valores dado

Es el número del medio en un grupo de datos.


Sin embargo, los datos deben estar ordenados Desviación Estándar
numéricamente (de mayor a menor o de
menor a mayor)

Varianza Raíz cuadrada de la varianza

Cuartil 1 y 3

Promedio de los cuadrados de las desviaciones


medidas alrededor de la media
Descripción del funcionamiento del programa

El programa es una calculadora estadística hecha en el lenguaje de programación haskell,


que se encarga de obtener por medio de funciones las operaciones estadísticas que
nosotros normalmente realizamos en una calculadora como son:

• N (número de datos que se tienen)


• Media
• Mediana
• Varianza
• Desviación estándar
• Cuartil 1
• Cuartil 3
• Sumatoria de los datos

Para realizar estas operaciones el programa obtiene estos datos de un archivo de texto
que nosotros creamos, este archivo contiene una lista de números.
En la programación de este ejercicio esta lista se ocupa en cada una de las funciones que
nosotros realizamos.
Descripción del funcionamiento del código
Archivo .hs
Calculadora.hs

La función media recibe una lista, se realiza


la suma de dicha lista y la divide entre el
total de elementos de la lista, obteniendo el
promedio de tipo Flotante.

La función longitud recibe una lista, recorre


dicha lista sumando 1 a cada elemento que
tiene la lista, al terminar de recorrer la lista
devuelve un valor Integer, debido a que no
se utiliza una restricción de tipo.

La función maximum’ tiene una restricción


de clase de tipo Ord (Ordenamiento), recibe
una lista y devuelve un número, realiza
estas operaciones en un patrón, evaluando
las posibilidades, en caso de recibir una lista
vacía, manda un mensaje de error, evitando
así una colisión. Se manda la cabeza y se
evalúa si es menor que el siguiente valor,
usando para ello la recursividad, enviándole
la cola de la lista
La función minimum’ tiene la restricción de
clase Ord (Ordenamiento) la cual recibe una
lista y devuelve un número, esta función se
hace por medio de patrones primero
evitamos la colisión por si la lista está vacía
mandando un mensaje de error, después si
la lista tiene un único elemento se manda
ese elemento. Por último, a la función se le
manda la cabeza y los demás números de la
lista y aplicamos la función min (devuelve el
número más pequeño) y le pasamos como
parámetros a la cabeza de la lista y la misma
función con minimum’ con lo que sigue de
la lista

La función sumatoria recibe a la lista xs


como parámetro y a dicha lista se le aplica
la función sum la cual suma los números
que conforman la lista

La función varianza tiene una restricción de


clase de tipo Floating la cual soporta los
números de tipo Float y Double, esta recibe
una lista y devuelve un número del tipo
float, a la lista se le aplica un mapeo y la
función $ evitamos los paréntesis, con una
lambda indicamos una función que restara
la media a cada número de la lista y el
resultado lo elevara al cuadrado

La función divestandar también maneja la


restricción Floating que recibe la lista y
devuelve el número. Aplicando la función
sqrt (raíz cuadrada) a la función varianza tal
y como indica la fórmula de la desviación
estándar.
La función Ordenación tiene restricción de clase Ord (Ordenación) recibe una lista, evalúa si la
lista esta vacía, si lo está envía un mensaje de error. Si la lista contiene elementos filtra los
valores que son mayores al primer elemento y los que son menores, creando dos listas, una que
almacena los valores mayores y otra los menores, y por ultimo concatena la lista con los valores
menores, después el valor que comparo y por último la lista con los valores mayores

La función cuartil1 recibe una lista y le aplica la formula (1/4)*n, tomando en cuenta que n
representa la longitud de la lista, devuelve un valor de tipo Double, este valor se redondeara en
la función quartil, la cual recibe una lista y en base al valor recibido devolverá el valor que
pertenece a esa posición en la lista.

La función cuartil3 recibe una lista y le aplica la formula (3(1/4))*n, tomando en cuenta que n
representa la longitud de la lista, devuelve un valor de tipo Float, este valor se redondeara en la
función buscar, la cual recibe una lista y en base al valor recibido devolverá el valor que
pertenece a esa posición en la lista.

La función mediana realiza una comparación con un if, si la longitud de la lista es impar manda
a llamar a la función dividir, esta función divide la longitud entre 2 y el valor que devuelve es un
Entero, ese valor representara la posición en el que se encontrara el valor que pertenece a la
mediana. Mientras que si es un número par, llama a la función dividir para obtener el valor
medio redondeado y suma el valor de la posición obtenida con el valor de la posición siguiente,
la suma se divide después entre dos y ese valor será la mediana de la lista.
Se extraen los datos del archivó de texto, se convertirán en una cadena, para convertir esta
cadena en una lista de número se utiliza la función clear, esta información se almacena en una
lista, esta lista será la que se mandara a las funciones para realizar todas las operaciones.

De la misma manera se crea una lista ordenada, mandando a llamar la función quicksort, por
ello devuelve la lista ordenada.

Esta lista es la que se usara en las otras funciones que necesitan recibir una lista ordenada, como
la mediana.
Funcionamiento del programa en consola
En esta captura se muestra el funcionamiento en consola

También podría gustarte