Está en la página 1de 3

Ing.

en Sistemas computacionales Programación lógica y funcional 2023

Práctica No. 2

Nombre: Introducción al uso de Haskell

Introducción:

La programación funcional se basa en funciones del tipo matemático, en esta


práctica se pretende hacer uso de un lenguaje de programación funcional para
transitar de la programación imperativa a la programación declarativa.

Se pretende que se resuelvan pequeños problemas de manipulación de


expresiones, primeras funciones utilizando expresiones.

Materiales y equipos:
1.- Equipo de cómputo con Windows, Linux o algún otro
2.- Haskell platform 8.x https://www.haskell.org/

Metodología

1. - Para cada problema planteado, elabora función y pruébala. Utiliza un


solo archivo donde vayan resolviendo cada función. Si las hacen
separadas al final deben juntarlas en un solo archivo.

a) Elabora función que se le pasa un número que representa los TeraBytes


de memoria y retorne su equivalente en bytes, los terabytes pueden
estar expresados en fracción, por ejemplo 1.56 TeraBytes.
b) Elabora función que se le proporcione un numero que representa el peso
en gramos y retorne su equivalente en kilogramos.
c) Elaborar función que se le proporcione un número que representa la
cantidad en litros de un medicamento que se tiene que consumir en tomas
de x mililitros, retornar la cantidad exacta de tomas que se podrán
suministrar, x también es pasado como argumento.
d) Elaborar función que se le proporcione un número que indica las vueltas
completas que un corredor ha dado a un circuito que tiene la distancia
de n km. La función debe retornar la cantidad de km que recorrió el
corredor, n es un argumento de la función.
e) Elaborar función que dado un entero rote n dígitos a la izquierda, por
ejemplo si se pasa 827738 y 3 el resultado sería 738827, si se pasa
912930012 y 5 daría como resultado 1291293

M.C. Rafael Herrera García


Ing. en Sistemas computacionales Programación lógica y funcional 2023

f) Elabora función que, dado dos números enteros, el segundo número deberá
ser un valor entre 0 y 999999, obtenga el segundo número insertado en
el primero a partir de la tercera posición ocupando 6 dígitos, por
ejemplo, si el primero es 918829 y el segundo 782 el resultado sería
918000782829, si p=902 y el s= 209829 dará como salida 209829902, si
p=12542 y s=83 el resultado= 12000083542.
g) Elabore función que, dado un entero, obtenga 2 números, el segundo se
localiza ocupando 4 dígitos partiendo del tercer digito de izquierda a
derecha, el primero es el resto, por ejemplo, si se pasa 8723913 dará
(813,7239), si se pasa 100982 dará (82,1009)
h) Elabora función que reciba un valor entero n que representa número de
niños y un valor entero m que representa dulces indique cuantos dulces
se comerán entre todos los niños, si estos deberán comer exactamente la
misma cantidad, los dulces no se pueden partir.
i) Elaborar función que dado un entero que representa una clave de acceso,
para poder utilizarse debe transformarse, para esto hace uso de
complemento a 9 del entero que siempre es de 16 dígitos, a este
complemento obtenido se extraen los 8 dígitos de en medio y los 4
dígitos superiores se colocan en la parte superior del entero y los 4
inferiores en la parte inferior del entero. Por ejemplo: Si se pasa
7819 0921 3221 3467, al transformarlo a base 9 daría 2180 9078 6778
6532, extrayendo los 8 dígitos de en medio daría 9078 2180 6532 6778
que sería el resultado final.
j) Elaborar función que dado un número de 16 dígitos los desencripte
siguiendo el proceso inverso anterior (caso i).

Recomendaciones

Ve haciendo ejercicio por ejercicio y donde tengas dudas pregunta.

Observaciones

En este apartado debes poner las observaciones realizadas durante el desarrollo de


la práctica, podrás agregar imágenes, cuadros, tablas y gráficas.

Cuestionario

1.- ¿Si algún ejercicio se te dificulto, explica la razón??

2.- Intenta resolver los ejercicios en Java y explica cuáles los resolviste en un
menor número de líneas qué Haskell
M.C. Rafael Herrera García
Ing. en Sistemas computacionales Programación lógica y funcional 2023

3.- ¿Explica si a la recursión la consideras que tiene un reto para ti en su utilización


en la resolución de problemas?

4.- ¿Qué porcentaje de problemas no requirieron recursión?

Fuentes de información:

En este apartado pondrás referencias que hayas utilizado extra para documentar el
reporte de la práctica.

Conclusiones y reflexiones personales:

En este apartado deben poner en un párrafo una conclusión final del equipo y las
reflexiones personales acerca de lo que aprendieron, como lo aprendieron y para
que les puede ser útil lo aprendido.

M.C. Rafael Herrera García

También podría gustarte