Paradigmas

Páginas: 24 (5803 palabras) Publicado: 15 de noviembre de 2014
Concursos (17/02/2007)
Notas previas
Se pueden usar estas funciones del prelude: all / any / map / filter / elem; y la función sumList. Las funciones del punto 1 también pueden ser útiles más adelante.
Para aprobar hay que hacer tres de los cinco puntos; y usar al menos tres de estas cinco características
1. recursividad
2. funciones de orden superior
3. composición
4. aplicaciónparcial
5. listas por comprensión
Obviamente, cuantas más se usen mejor. De las que se usen, indicar un uso de cada uno en algún lugar aparte de la resolución de los ítems.

Contexto (para los ítems 2 a 5)
Se nos pide desarrollar un programa Haskell que analice las calificaciones obtenidas por los aspirantes a distintas becas y concursos. Cada aspirante rinde cuatro exámenes, de materias a suelección. Los aspirantes se reúnen en planillas según en qué mes rindieron sus exámenes. P.ej.:
planillaEnero =
[("pepe", [("fisica",6),("algebra",9),("datos",8),("disenio",7)]),
("lucia", [("historia",8),("filosofia",9),("algebra",10),("poesia",8)]),
("franco",[("algebra",9),("disenio",9),("datos",10),("derecho",8)]),
("ana",[("derecho",7),("algebra",9),("disenio",8),("poesia",9)])
]
 
planillaFebrero =
[("marta", [("fisica",5),("algebra",6),("datos",7),("disenio",8)]),
("pedro", [("historia",8),("derecho",9),("algebra",10),("poesia",8)])
]
(lo que sigue lo van a necesitar solamente para el ítem 4). Los requisitos para acceder a una beca o concurso se describen mediante un par (mínima nota total, exámenes que hay que tener), p.ej. el par(35,["algebra","disenio"])
representa un requerimiento en el que para cumplirlo la suma de las notas tiene que ser al menos 35, y además hay que haber rendido los exámenes de álgebra y de diseño (no importa qué nota te sacaste en esos exámenes). De los de la planilla de enero, solamente Franco lo cumple; Lucía suma más de 35 pero no tiene Diseño; Pepe tiene las dos pero no llega a 35.

Tareasa realizar
1.a) Definir la función maximoF, que dados una función y una lista, devuelve el elemento de la lista que es máximo para la función. P.ej.
maximoF abs [-5..3] devuelve -5
maximoF length ["la", "larga", "paz"] devuelve "larga"
Indicar el tipo de la función.

1.b) Definir la función estaIncluida, que dadas dos listas devuelve True si todos loselementos de la primera son elementos de la segunda, y False en caso contrario. P.ej.
estaIncluida [2,4] [1..5] devuelve True
estaIncluida [4,6] [1..5] devuelve False

2.a) Definir la función sePresento, que dados un nombre de alumno y una planilla, indica si los exámenes del alumno están en la planilla. P.ej.
sePresento "franco" planillaEnerodevuelve True
sePresento "franco" planillaFebrero devuelve False

¿Cómo preguntarían si Franco se presentó en algún mes (o bien en enero o bien en febrero)? Plantéenlo de dos formas:
la consulta es sePresento “franco” …, completar cómo sigue.
usando all.

2.b) Definir la función notas, que que dados un nombre de alumno y una planilla, devuelve la lista de pares con losresultados que obtuvo el alumno. P.ej. notas “franco” planillaEnero devuelve [(“algebra”,9),(“disenio”,9),(“datos”,10),(“derecho”,8)].

3.a) Definir la función mejorTema, que dados los resultados de un aspirante devuelve la materia en que obtuvo la mejor nota. P.ej.
mejorTema [("algebra",9),("datos",10),("derecho",8)] devuelve "datos".
Escribir la consulta que responde el mejor tema de Lucíaen la planilla de enero, sin necesidad de repetir los resultados de Lucía en la consulta (ayuda: usar notas además de mejorTema).

3.b) Definir la función aproboTodo, que dados los resultados de un aspirante devuelve True si todas las notas son 7 o más, y False en caso contrario. P.ej.
aproboTodo [("algebra",9),("datos",10),("derecho",8)]
aproboTodo [("algebra",9),("datos",5),("derecho",8)]...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • ¿Qué es un paradigma?
  • Paradigma
  • Paradigmas
  • Paradigmas
  • Paradigmas
  • Paradigmas
  • Paradigmas
  • Paradigmas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS