{"id":3155,"date":"2013-03-21T17:33:57","date_gmt":"2013-03-21T17:33:57","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/?p=3155"},"modified":"2013-04-01T05:56:52","modified_gmt":"2013-04-01T05:56:52","slug":"i1m2012-4%c2%ba-examen-de-la-evaluacion-continua","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/i1m2012-4%c2%ba-examen-de-la-evaluacion-continua\/","title":{"rendered":"I1M2012: 4\u00ba examen de la evaluaci\u00f3n continua"},"content":{"rendered":"<p>En la clase de hoy de <a href=\"http:\/\/www.cs.us.es\/~jalonso\/cursos\/i1m-12\">Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas<\/a> se ha realizado el 4\u00ba examen de la evaluaci\u00f3n continua.<\/p>\n<p>\nA continuaci\u00f3n se muestra el examen junto con su soluci\u00f3n:<br \/>\n<!--more--><\/p>\n<pre lang=\"haskell\">\r\n-- Inform\u00e1tica (1\u00ba del Grado en Matem\u00e1ticas)\r\n-- 4\u00ba examen de evaluaci\u00f3n continua (21 de marzo de 2013)\r\n-- ---------------------------------------------------------------------\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 1. [2.5 puntos] Los pares de n\u00fameros impares se pueden\r\n-- ordenar seg\u00fan su suma y, entre los de la misma suma, su primer\r\n-- elemento como sigue:  \r\n--    (1,1),(1,3),(3,1),(1,5),(3,3),(5,1),(1,7),(3,5),(5,3),(7,1),...\r\n-- Definir la funci\u00f3n\r\n--     paresDeImpares :: [(Int,Int)]\r\n-- tal que paresDeImpares es la lista de pares de n\u00fameros impares con\r\n-- dicha ordenaci\u00f3n. Por ejemplo,  \r\n--    ghci> take 10 paresDeImpares\r\n--    [(1,1),(1,3),(3,1),(1,5),(3,3),(5,1),(1,7),(3,5),(5,3),(7,1)]\r\n-- Bas\u00e1ndose en paresDeImpares, definir la funci\u00f3n\r\n--    posicion\r\n-- tal que (posicion p) es la posici\u00f3n del par p en la sucesi\u00f3n. Por\r\n-- ejemplo, \r\n--    posicion (3,5)  ==  7\r\n-- ---------------------------------------------------------------------\r\n \r\nparesDeImpares :: [(Int,Int)]\r\nparesDeImpares = \r\n  [(x,n-x) | n <- [2,4..], x <- [1,3..n]]\r\n \r\nposicion :: (Int,Int) -> Int    \r\nposicion (x,y) = \r\n  length (takeWhile (\/=(x,y)) paresDeImpares)\r\n    \r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 2. [2.5 puntos] Definir la constante \r\n--    cuadradosConcatenados :: [(Integer,Integer,Integer)]\r\n-- de forma que su valor es la lista de ternas (x,y,z) de tres cuadrados\r\n-- perfectos tales que z es la concatenaci\u00f3n de x e y. Por ejemplo,\r\n--   ghci> take 5 cuadradosConcatenados\r\n--   [(4,9,49),(16,81,1681),(36,100,36100),(1,225,1225),(4,225,4225)]\r\n-- ---------------------------------------------------------------------\r\n \r\ncuadradosConcatenados :: [(Integer,Integer,Integer)]\r\ncuadradosConcatenados =\r\n  [(x,y,concatenacion x y) | y <- cuadrados, \r\n                             x <- [1..y], \r\n                             esCuadrado x,     \r\n                             esCuadrado (concatenacion x y)]\r\n    \r\n-- cuadrados es la lista de los n\u00fameros que son cuadrados perfectos. Por\r\n-- ejemplo,  \r\n--    take 5 cuadrados  ==  [1,4,9,16,25]\r\ncuadrados :: [Integer]\r\ncuadrados = [x^2 | x <- [1..]]\r\n \r\n-- (concatenacion x y) es el n\u00famero obtenido concatenando los n\u00fameros x\r\n-- e y. Por ejemplo, \r\n--    concatenacion 3252 476  ==  3252476\r\nconcatenacion :: Integer -> Integer -> Integer\r\nconcatenacion x y = read (show x ++ show y)\r\n \r\n-- (esCuadrado x) se verifica si  x es un cuadrado perfecto; es decir,\r\n-- si existe un y tal que y^2 es igual a x. Por ejemplo,  \r\n--    esCuadrado 16  ==  True\r\n--    esCuadrado 17  ==  False\r\nesCuadrado :: Integer -> Bool\r\nesCuadrado x = y^2 == x\r\n  where y = round (sqrt (fromIntegral x))\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 3. [2.5 puntos] La expresiones aritm\u00e9ticas se pueden\r\n-- representar mediante el siguiente tipo \r\n--    data Expr = V Char \r\n--              | N Int \r\n--              | S Expr Expr\r\n--              | P Expr Expr\r\n-- por ejemplo, la expresi\u00f3n \"z*(3+x)\" se representa por \r\n-- (P (V 'z') (S (N 3) (V 'x'))). \r\n--\r\n-- Definir la funci\u00f3n\r\n--    sumas :: Expr -> Int\r\n-- tal que (sumas e) es el n\u00famero de sumas en la expresi\u00f3n e. Por \r\n-- ejemplo, \r\n--    sumas (P (V 'z') (S (N 3) (V 'x')))  ==  1\r\n--    sumas (S (V 'z') (S (N 3) (V 'x')))  ==  2\r\n--    sumas (P (V 'z') (P (N 3) (V 'x')))  ==  0\r\n-- ---------------------------------------------------------------------\r\n                   \r\ndata Expr = V Char \r\n          | N Int \r\n          | S Expr Expr\r\n          | P Expr Expr\r\n\r\nsumas :: Expr -> Int\r\nsumas (V _)   = 0\r\nsumas (N _)   = 0\r\nsumas (S x y) = 1 + sumas x + sumas y\r\nsumas (P x y) = sumas x + sumas y\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 4. [2.5 puntos]  Los \u00e1rboles binarios se pueden representar\r\n-- mediante el tipo Arbol definido por\r\n--    data Arbol = H2 Int \r\n--               | N2 Int Arbol Arbol\r\n-- Por ejemplo, el \u00e1rbol\r\n--         1\r\n--        \/ \\ \r\n--       \/   \\\r\n--      2     5\r\n--     \/ \\   \/ \\\r\n--    3   4 6   7\r\n-- se puede representar por \r\n--    N2 1 (N2 2 (H2 3) (H2 4)) (N2 5 (H2 6) (H2 7))\r\n--\r\n-- Definir la funci\u00f3n\r\n--    ramas :: Arbol -> [[Int]]              \r\n-- tal que (ramas a) es la lista de las ramas del \u00e1rbol. Por ejemplo, \r\n--    ghci> ramas (N2 1 (N2 2 (H2 3) (H2 4)) (N2 5 (H2 6) (H2 7)))\r\n--    [[1,2,3],[1,2,4],[1,5,6],[1,5,7]]\r\n-- ---------------------------------------------------------------------\r\n\r\ndata Arbol = H2 Int \r\n           | N2 Int Arbol Arbol\r\n              \r\nramas :: Arbol -> [[Int]]              \r\nramas (H2 x)     = [[x]]\r\nramas (N2 x i d) = [x:r | r <- ramas i ++  ramas d]\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>En la clase de hoy de Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas se ha realizado el 4\u00ba examen de la evaluaci\u00f3n continua. A continuaci\u00f3n se muestra el examen junto con su soluci\u00f3n:<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false},"categories":[1],"tags":[65,270,298],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/3155"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/comments?post=3155"}],"version-history":[{"count":2,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/3155\/revisions"}],"predecessor-version":[{"id":3165,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/3155\/revisions\/3165"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/media?parent=3155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/categories?post=3155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/tags?post=3155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}