INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ
EJERCICIOS DE PROGRAMACION CON LISTAS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
ALUMNO: JORGE LUIS DÍAZ SUÁREZ
PROFESOR: GALDINO BELIZARIO NANGO SOLÍS
MATERIA: PROGRAMACIÓN LÓGICA Y FUNCIONAL
GRUPO: S8A
Tuxtla Gutiérrez, Chiapas, México; 5 de Marzo de 2016
Programación Lógica Y Funcional Jorge Luis Díaz Suarez – S8A Ejercicio 1: Rellene una lista con los 100 primeros números enteros y los muestre en pantalla en orden ascendente. Tal como dice el ejercicio, debemos programar en lenguaje haskell para que en pantalla podamos ver los números del 1 al 100 y que estén en orden ascendentes, como los ejercicios anteriores, los realice en sublime text, lo cual quedo de la siguiente manera:
La función que realiza tales acciones se llama “lista Ascendente” en el cual solo tendremos una lista de salida en la definición de la función, ya que este, hará la creación de la lista internamente y no tendremos que mandarle un parámetro.
Lo siguiente fue entrar a la terminal e ir al directorio en donde se encuentra el programa, en este caso se encuentra el escritorio, luego de entrar, vamos a teclear “ghci” para entrar al compilador de haskell, luego cargaremos el programa y luego de haberlo cargado y compilado podremos probar la funcionalidad del programa, tal como se muestra en la imagen.
Programación Lógica Y Funcional Jorge Luis Díaz Suarez – S8A
Ejercicio 2: Lea una lista por teclado, los almacene en una lista y muestre la suma, resta, multiplicación y división de todos. Para este ejercicio lo realice mediante módulos, es decir, realice un módulo, el cual este contiene las funciones que harán la suma, resta, multiplicación y división de los números ingresados. Cada función se codifico debajo de la declaración del módulo, tal como se muestra en la imagen.
Programación Lógica Y Funcional Jorge Luis Díaz Suarez – S8A Lo siguiente fue entrar a la terminal e ir al directorio en donde se encuentra el programa, en este caso se encuentra el escritorio, luego de entrar, vamos a teclear “ghci” para entrar al compilador de haskell, luego cargaremos el programa y luego de haberlo cargado y compilado podremos probar la funcionalidad del programa, tal como se muestra en la imagen.
Ejercicio 3: Lea 5 por teclado, los copie a otra lista multiplicados por 2 y muestre la segunda lista. Como dice el ejercicio, el usuario ingresara una lista de 5 números y el programa los mostrara en otra lista como resultado pero multiplicados por 2. El programa se realizó en sublime text, el cual quedo de la siguiente manera:
La función se llama “listaCuadrados” en cual recibe una lista como parámetro y tendrá como salida otra lista. Lo que hace la función es multiplicar el mismo valor que lee (el primero) y manda como parámetro el resto de la lista, en donde la descompone y realiza la misma operación hasta que este vacía.
Programación Lógica Y Funcional Jorge Luis Díaz Suarez – S8A Lo que siguió es probar el programa, para ello entramos a la terminal de nuevo e ir al directorio en donde se encuentra el programa y teclear “ghci”, luego, cargar y compilar e programa y luego lo probamos, tal como se muestra en la imagen.
Ejercicio 4: Mediante una lista almacene números tanto positivos como negativos y los muestre ordenados. El ejercicio nos dice que en una lista que usuario dará, no importando números negativos como positivos este los devuelva ordenados. Este ejercicio se realizó en lenguaje haskell y en sublime text. Para este ejercicio se realizó mediante dos métodos, el primero fue mediante el método de ordenación quicksort y el segundo con un método que descompone la lista en dos mitades y luego los ordena mediante un método llamado de mezcla.
A continuación se muestra el método de quicksort:
Programación Lógica Y Funcional Jorge Luis Díaz Suarez – S8A
Lo que siguió es probar el programa, para ello entramos a la terminal de nuevo e ir al directorio en donde se encuentra el programa y teclear “ghci”, luego, cargar y compilar e programa y luego lo probamos, tal como se muestra en la imagen.
El siguiente método fue el de mezcla:
Programación Lógica Y Funcional Jorge Luis Díaz Suarez – S8A
Se utilizó unas librerías para poder dividir la lista y para saber su longitud, las cuales se declararon en las tres primeras líneas de código.
Lo que siguió es probar el programa, para ello entramos a la terminal de nuevo e ir al directorio en donde se encuentra el programa y teclear “ghci”, luego, cargar y compilar e programa y luego lo probamos, tal como se muestra en la imagen.
Programación Lógica Y Funcional Jorge Luis Díaz Suarez – S8A Ejercicio 5: Rellene una lista con 20 números y luego busque un número correcto. Tal como dice el ejercicio, el usuario dará una lista de 20 números y también un número que este será buscado en la lista y si lo encuentra dirá que si está en la lista, de caso contrario este nos dirá que no lo está. Este ejercicio se realizó en lenguaje haskell y en sublime text. En programa quedo de la siguiente manera:
En la declaración de la función, se convierte en valor de la lista en un número y este tendrá como salida una cadena.
Lo que siguió es probar el programa, para ello entramos a la terminal de nuevo e ir al directorio en donde se encuentra el programa y teclear “ghci”, luego, cargar y compilar e programa y luego lo probamos, tal como se muestra en la imagen.
Programación Lógica Y Funcional Jorge Luis Díaz Suarez – S8A