Actividad N°3 Programación Funcional

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

ACTIVIDAD Nº 3 – 2024

PARADIGMAS Y LENGUAJES DE PROGRAMACIÓN


- LENGUAJE LISP -

Objetivo: Aprender a crear nuestras propias funciones, las que permitirán el ingreso de
datos.

TENER EN CUENTA:
• Las variables nuevas que se definan deben ser locales, tener mensajes descriptivos para su
ingreso y las validaciones correspondientes.
• Las funciones deben ser genéricas. Se deben poder ejecutar para cualquier valor que se
ingresen en las variables.
• Se recomienda leer el documento REGLAS DE ESTILO LISP que se ha dejado en el Aula
dentro de Trabajos Prácticos

Recomendación:
Probar en Xlsip la resolución de cada uno de sus ejercicios, cargando diferentes valores a las
variables.

Actividad 3.1.
Para desarrollar esta actividad puede ayudarse de las resoluciones de la Actividad 1

a. A partir de un determinado monto en pesos, que será ingresado por operador, definir una
función que devuelva la cantidad de dólares que se pueden comprar con el monto ingresado.

b. Recordando la fórmula que permite calcular el volumen de un cilindro, definir una función
que permita el ingreso por teclado de las variables necesarias para ejecutar dicha función y
obtener el valor del volumen.

c. Recordando la fórmula que permite calcular el área del trapecio, definir una función que
permita el ingreso por teclado de las variables necesarias para ejecutar dicha función y
obtener el valor del área.

Actividad 3.2.
Definir una función predicado llamada palíndromo, que indique si una lista ingresada por el
operador, es una lista palíndromo (se lee igual de izquierda a derecha y de derecha a izquierda).
Por ejemplo: ( I T A T I) es una lista palíndromo

Actividad 3.3.
A partir de un determinado valor de temperatura, que será ingresado por el operador, definir una
función llamada clima que me indique el estado del clima, teniendo en cuenta:

Temperatura Clima
<0 Helado
= 0 y < 10 Frio
= 10 y < 20 Templado
= 20 y < 30 Cálido
>30 Abrasador

Página 1 de 4
ACTIVIDAD Nº 3 – 2024

PARADIGMAS Y LENGUAJES DE PROGRAMACIÓN


- LENGUAJE LISP -

Actividad 3.4
Definir una función llamada mi-segundo, la que a partir de una lista y un átomo ingresados por el
operador deberá devolver una nueva lista donde el átomo ocupará la primera posición de la lista.
(Recuerde que las posiciones comienzan a contarse desde la 0)

Actividad 3.5
Definir una función llamada clasifico-triángulos, la que a partir de los valores de los lados de un
triángulo ingresados por el operador, clasifique el mismo en: isósceles, equilátero o escaleno. Tener
en cuenta que todo triangulo debe cumplir que. “Un lado es menor que la suma de los otros dos y
mayor que la diferencia”.

Actividad 3.6
Definir una función llamada mediano¸ la que a partir de tres valores numéricos ingresados por el
operador, devuelva el valor mediano (puede ayudarse con las funciones max y min). El valor
mediano será aquel que no es ni el mayor ni el menor valor.

Actividad 3.7
La máxima temperatura de ayer y las máximas temperaturas de enero y febrero se registran en dos
listas,
• max_enero: que contendrá las máximas temperaturas registradas para cada uno de los días
de enero
• max_febrero: que contendrá las máximas temperaturas registradas para cada uno de los
días de febrero
definir una función predicado que permita determinar si la temperatura máxima de ayer se registró
también en enero o en febrero. (el valor atómico y las dos listas deben ser ingresadas por el
operador)

Actividad 3.8

Las máximas temperaturas para cada uno de los días del mes de Enero se registraron en una lista
que se encuentra contenida en la variable max_temp. Definir una función que permita el ingreso
de la misma y llame a cada una de las funciones desarrolladas en la Actividad 2.2. a,b,c y d
Recordar que cada ítem debe desarrollarse dentro de una función diferente ya que cada función
permite devolver un único elemento.

Actividad 3.9
Definir una función predicado para cada una de los ítems que se detallan a continuación. Cada
función definida debe recibir como parámetro la lista contenida en la variable max_temp.

a. Evaluar si la temperatura registrada el primer día está comprendida entre los 40 y 45 grados.
b. Evaluar si en alguno de los días del mes la máxima fue de 40.
c. Evaluar si la temperatura del primer y último día son IGUALES.

Página 2 de 4
ACTIVIDAD Nº 3 – 2024

PARADIGMAS Y LENGUAJES DE PROGRAMACIÓN


- LENGUAJE LISP -

Actividad 3.10
Las notas de los alumnos se registran en una lista formada por sublistas con el siguiente formato:
((NL1 NOTA1) (NL2 NOTA2) ……)

donde NL.. representa los nros de libreta y NOTA la nota de cada alumno.
Desarrollar una función que permita ingresar la lista por teclado y resolver cada una de las siguientes
consultas

a. ¿Qué cantidad de alumnos que hay?


b. ¿Cuál es el nro. de libreta del primer alumno de la lista?
c. ¿Qué nota sacó el último alumno de la lista?
d. ¿Ha regularizado la materia el primer alumno de la lista? Un alumno regulariza la materia
cuando su nota es >= 6.

Actividad 3.11
Crear las siguientes funciones de rotación:
a. una función llamada derecha que rote a la DERECHA los elementos de una lista ingresada
como parámetro haciendo que su primer elemento pase a ser el último. Por ejemplo:
>> (rotar-derecha '(1 2 3 4)) ==> (2 3 4 1).

b. una función llamada izquierda que rote a la IZQUIERDA los elementos de una lista
ingresada como parámetro haciendo que el último elemento pase a ser el primero. Por
ejemplo,
>> (rotar-izquierda '(1 2 3 4)) ==> (4 1 2 3).

Actividad 3.12
Definir una función llamada posición, que reciba como argumentos un elemento y una lista e
indique la posición que ocupa el elemento en la lista.

Actividad 3.13
Se registran los valores del nivel del rio, cada una en una variable diferente, las que son
ingresadas por el operador. Desarrollar las funciones necesarias para obtener
a. La dispersión del nivel del rio. Siendo la dispersión, la diferencia entre el valor más alto y el
más bajo. Estos valores deben ser ingresados.

b. Determinar si esta dispersión corresponde a días parejos, locos o normales.


• Son días parejos si la dispersión es chica (menos de 30 cm)
• Son días locos si la dispersión es grande (más de un metro)
• Son días normales si no son ni parejos ni locos.

Actividad 3.14:
En una plantación de pinos, de cada árbol se conoce la altura expresada en metros. El peso de un
pino se puede calcular a partir de la altura así:

• 3 kg por cada centímetro hasta 3 metros,


• 2 kg por cada centímetro arriba de los 3 metros

Página 3 de 4
ACTIVIDAD Nº 3 – 2024

PARADIGMAS Y LENGUAJES DE PROGRAMACIÓN


- LENGUAJE LISP -

Por ejemplo:
• 2 metros pesan 600 kg, porque 200 * 3 = 600
• 5 metros pesan 1300 kg, porque los primeros 3 metros pesan 900 kg y los siguientes 2 pesan
los 400 restantes.
Los pinos se usan para llevarlos a una fábrica de muebles, a la que le sirve árboles de entre 400 y
1000 kilos, un pino fuera de este rango no le sirve a la fábrica.

a. Definir la función pesoPino, que recibe la altura de un pino y devuelve su peso.

b. Definir la función predicado esPesoUtil, recibe un peso en kg y responde verdadero si un pino


de ese peso le sirve a la fábrica

c. Definir la función predicado sirvePino, recibe la altura de un pino y responde verdadero si


un pino de ese peso le sirve a la fábrica.

Actividad 3.15
Un grupo de amigos comparten unas pizzas. Se desea saber cuanto tiene que pagar cada uno por
las pizzas que consumen a partir del precio de 1 pizza y la cantidad de amigos que serán ingresadas
a la función como parámetros.
Tener en cuenta que cada persona come 3 porciones y sólo se pueden comprar pizzas enteras (que
tiene cada una 8 porciones).

Por ejemplo:
Son 3 comensales, se necesitan entonces 9 porciones, lo que son dos pizzas, que salen $ 120 cada
una, lo que implica $240 a dividir entre 3 = $80 cada uno. Ayuda: Recuerde la diapositiva Otras
funciones aritméticas.

Página 4 de 4

También podría gustarte