<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/WIKIS/I1M2021G2/index.php?action=history&amp;feed=atom&amp;title=Parcial_1</id>
	<title>Parcial 1 - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/WIKIS/I1M2021G2/index.php?action=history&amp;feed=atom&amp;title=Parcial_1"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/WIKIS/I1M2021G2/index.php?title=Parcial_1&amp;action=history"/>
	<updated>2026-07-18T20:51:46Z</updated>
	<subtitle>Historial de revisiones de esta página en el wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://www.glc.us.es/WIKIS/I1M2021G2/index.php?title=Parcial_1&amp;diff=406&amp;oldid=prev</id>
		<title>Mdelamor: Página creada con «&lt;source lang=&#039;haskell&#039;&gt;  -- ----------------------------------------------------------------------------- -- Informática de 1º de Grado en Matemáticas. Grupo 2. -- Exame…»</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/WIKIS/I1M2021G2/index.php?title=Parcial_1&amp;diff=406&amp;oldid=prev"/>
		<updated>2021-11-12T14:58:31Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «&amp;lt;source lang=&amp;#039;haskell&amp;#039;&amp;gt;  -- ----------------------------------------------------------------------------- -- Informática de 1º de Grado en Matemáticas. Grupo 2. -- Exame…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=&amp;#039;haskell&amp;#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
-- Informática de 1º de Grado en Matemáticas. Grupo 2.&lt;br /&gt;
-- Examen 1 de evaluación alternativa (12 de noviembre 2021).&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import Test.QuickCheck&lt;br /&gt;
import Data.Char&lt;br /&gt;
&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1.1. Un número imparitario es aquel que tiene una cantidad impar&lt;br /&gt;
-- de cifras pares y una cantidad par de cifras impares. Por ejemplo, 235 es&lt;br /&gt;
-- imparitario porque tiene 1 par (el 2) y 2 impares (el 3 y 5). De igual forma,&lt;br /&gt;
-- 101, 103, 105, 107, 291, 14238 y 1106871 son imparitarios, mientras que 21,&lt;br /&gt;
-- 2468 y 11258 no lo son.&lt;br /&gt;
--&lt;br /&gt;
-- Define la función (numeroImparitario n), tal que indique si un número n&lt;br /&gt;
-- es imparitario. Por ejemplo,&lt;br /&gt;
--   λ&amp;gt; numeroImparitario 103      == True&lt;br /&gt;
--   λ&amp;gt; numeroImparitario 291      == True&lt;br /&gt;
--   λ&amp;gt; numeroImparitario 1106871  == True&lt;br /&gt;
--   λ&amp;gt; numeroImparitario 21       == False&lt;br /&gt;
--   λ&amp;gt; numeroImparitario 2468     == False&lt;br /&gt;
--   λ&amp;gt; numeroImparitario 11358    == True&lt;br /&gt;
--   λ&amp;gt; numeroImparitario 11258    == False&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
numeroImparitario :: Integer -&amp;gt; Bool&lt;br /&gt;
numeroImparitario n = undefined&lt;br /&gt;
&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1.2. Comprueba con QuickCheck que si n es un número positivo&lt;br /&gt;
-- de más de tres cifras e imparitario, m también es imparitario, donde&lt;br /&gt;
-- m es n+3, si la última cifra de n es 8 o 9, o n+2, en otro caso. Por ejemplo,&lt;br /&gt;
-- son imparitarios 291 y 291+2=293, 299 y 299+3=301, y 358 y 358+3=361.&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
prop_imparitario :: Integer -&amp;gt; Property&lt;br /&gt;
prop_imparitario n = undefined&lt;br /&gt;
&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2. Representaremos la agenda de nuestras asignaturas como sigue:&lt;br /&gt;
-- una lista de tuplas con primera componente el nombre abreviado de la&lt;br /&gt;
-- asignatura, y segunda componente una lista de ternas, donde cada&lt;br /&gt;
-- terna indica un día y un rago de horario representado como un entero (por&lt;br /&gt;
-- ejemplo, 900 es 9:00, 1130 es 11:30, etc.)&lt;br /&gt;
&lt;br /&gt;
agenda :: [(String,[(String,Int,Int)])]&lt;br /&gt;
agenda = [ (&amp;quot;Inf&amp;quot;,[(&amp;quot;Mie&amp;quot;,900,1100),(&amp;quot;Vie&amp;quot;,900,1100)]),&lt;br /&gt;
           (&amp;quot;Alg&amp;quot;,[(&amp;quot;Mie&amp;quot;,1130,1330),(&amp;quot;Ju&amp;quot;,1130,1330)]),&lt;br /&gt;
           (&amp;quot;Fis&amp;quot;,[(&amp;quot;Lu&amp;quot;,900,1100),(&amp;quot;Mar&amp;quot;,900,1100)]),&lt;br /&gt;
           (&amp;quot;Cal&amp;quot;,[(&amp;quot;Lu&amp;quot;,1130,1330),(&amp;quot;Ju&amp;quot;,900,1100)]),&lt;br /&gt;
           (&amp;quot;Est&amp;quot;,[(&amp;quot;Mar&amp;quot;,1130,1330),(&amp;quot;Vie&amp;quot;,900,1100)]) ]&lt;br /&gt;
&lt;br /&gt;
-- Define la función (asignatura ds h as), tal que devuelva la lista de&lt;br /&gt;
-- asignaturas donde debemos estar el día ds a las h horas, según la agenda&lt;br /&gt;
-- as. Si estamos en el descanso o no hay asignaturas, devolver la lista&lt;br /&gt;
-- vacía. El nombre abreviado del día a buscar no debe diferenciar entre&lt;br /&gt;
-- minúsculas y mayúsculas (es decir, &amp;quot;lu&amp;quot; es igual que &amp;quot;Lu&amp;quot;). Por ejemplo,&lt;br /&gt;
--    λ&amp;gt; asignatura &amp;quot;Lu&amp;quot; 930 agenda&lt;br /&gt;
--       [&amp;quot;Fis&amp;quot;]&lt;br /&gt;
--    λ&amp;gt; asignatura &amp;quot;lu&amp;quot; 945 agenda&lt;br /&gt;
--       [&amp;quot;Fis&amp;quot;]&lt;br /&gt;
--    λ&amp;gt; asignatura &amp;quot;Vie&amp;quot; 930 agenda&lt;br /&gt;
--       [&amp;quot;Inf&amp;quot;,&amp;quot;Est&amp;quot;]&lt;br /&gt;
--    λ&amp;gt; asignatura &amp;quot;Mar&amp;quot; 1115 agenda&lt;br /&gt;
--       []&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
asignatura :: String -&amp;gt; Int -&amp;gt; [(String,[(String,Int,Int)])] -&amp;gt; [String]&lt;br /&gt;
asignatura ds h as = undefined&lt;br /&gt;
&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3. Dos vectores son más compatibles cuanto mayor sea su producto&lt;br /&gt;
-- escalar (hasta llegar a ser paralelos). Representaremos los vectores como&lt;br /&gt;
-- listas de números. Define la función (masCompatibles xs yss), tal que dado&lt;br /&gt;
-- un vector xs y una lista de vectores yss, devuelva la lista de los vectores&lt;br /&gt;
-- más compatibles de yss respecto de xs. Por ejemplo&lt;br /&gt;
--   λ&amp;gt; masCompatibles [1,0,1] [[0,1,0], [2,3,1], [-1,7,1],[3,1,0]]&lt;br /&gt;
--      [[2,3,1],[3,1,0]]&lt;br /&gt;
--   λ&amp;gt; masCompatibles [1,0,1] [[0,1,0], [2,3,1], [-1,7,1],[4,-1,4]]&lt;br /&gt;
--      [[4,-1,4]]&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
masCompatibles :: (Ord a,Num a) =&amp;gt; [a] -&amp;gt; [[a]] -&amp;gt; [[a]]&lt;br /&gt;
masCompatibles xs yss = undefined&lt;br /&gt;
&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4.1 Definir, por comprensión, la función (coincidenciasC k xs ys),&lt;br /&gt;
-- tal que verifique si las listas xs e ys coinciden en, al menos, k de sus&lt;br /&gt;
-- posiciones. Por ejemplo,&lt;br /&gt;
--    λ&amp;gt; coincidenciasC 7 &amp;quot;salamanca&amp;quot; &amp;quot;salamandra&amp;quot;  ==  True&lt;br /&gt;
--    λ&amp;gt; coincidenciasC 2 [1,2,3,4,5] [1,3,3,8,1]   ==  True&lt;br /&gt;
--    λ&amp;gt; coincidenciasC 4 &amp;quot;almendra&amp;quot; &amp;quot;almazara&amp;quot;     ==  True&lt;br /&gt;
--    λ&amp;gt; coincidenciasC 6 &amp;quot;almendra&amp;quot; &amp;quot;almazara&amp;quot;     ==  False&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
coincidenciasC :: Eq a =&amp;gt; Int -&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
coincidenciasC = undefined&lt;br /&gt;
&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4.2 Definir, por recursión, la función (coincidencias k xs ys),&lt;br /&gt;
-- tal que verifique si las listas xs e ys coinciden en, al menos, k de sus&lt;br /&gt;
-- posiciones. Por ejemplo,&lt;br /&gt;
--    λ&amp;gt; coincidenciasR 7 &amp;quot;salamanca&amp;quot; &amp;quot;salamandra&amp;quot;  ==  True&lt;br /&gt;
--    λ&amp;gt; coincidenciasR 2 [1,2,3,4,5] [1,3,3,8,1]   ==  True&lt;br /&gt;
--    λ&amp;gt; coincidenciasR 4 &amp;quot;almendra&amp;quot; &amp;quot;almazara&amp;quot;     ==  True&lt;br /&gt;
--    λ&amp;gt; coincidenciasR 6 &amp;quot;almendra&amp;quot; &amp;quot;almazara&amp;quot;     ==  False&lt;br /&gt;
-- -----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
coincidenciasR :: Eq a =&amp;gt; Int -&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
coincidenciasR = undefined&lt;br /&gt;
&lt;br /&gt;
-- -----------------------------------------------------------------------------                               &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mdelamor</name></author>
	</entry>
</feed>