{"id":1276,"date":"2011-03-14T19:02:33","date_gmt":"2011-03-14T19:02:33","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/?p=1276"},"modified":"2011-03-15T19:04:02","modified_gmt":"2011-03-15T19:04:02","slug":"i1m2010-5%c2%ba-examen-de-la-evaluacion-continua","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/i1m2010-5%c2%ba-examen-de-la-evaluacion-continua\/","title":{"rendered":"I1M2010: 5\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-10\">Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas<\/a> se ha realizado el 5\u00ba examen de la evaluaci\u00f3n continua.<\/p>\n<p>Las notas se han publicado en la <a href=\"https:\/\/ev2.us.es\/webct\/logon\/804142662041\">WebCT<\/a>.<\/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-- 5\u00ba examen (14 de marzo de 2011)\r\n-- ---------------------------------------------------------------------\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 1. [2.5 puntos] Se consideran las funciones\r\n--    duplica  :: [a] -> [a]\r\n--    longitud :: [a] -> Int\r\n-- tales que\r\n--    (duplica xs) es la lista obtenida duplicando los elementos de xs y\r\n--    (longitud xs) es el n\u00famero de elementos de xs.\r\n-- Por ejemplo,\r\n--    duplica  [7,2,5]  ==  [7,7,2,2,5,5]\r\n--    longitud [7,2,5]  ==  3\r\n-- \r\n-- Las definiciones correspondientes son\r\n--    duplica [] = []                     -- duplica.1\r\n--    duplica (x:xs) = x:x:duplica xs     -- duplica.2\r\n--    \r\n--    longitud [] = 0                     -- longitud.1\r\n--    longitud (x:xs) = 1 + longitud xs   -- longitud.2\r\n-- Demostrar por inducci\u00f3n que \r\n--    longitud (duplica xs) = 2 * longitud xs\r\n-- ---------------------------------------------------------------------\r\n\r\n{-\r\n Demostraci\u00f3n: Hay que demostrar que\r\n    longitud (duplica xs) = 2 * longitud xs\r\n Lo haremos por inducci\u00f3n en xs.\r\n\r\n Caso base: Hay que demostrar que\r\n    longitud (duplica []) = 2 * longitud []\r\n En efecto\r\n    longitud (duplica xs) \r\n    = longitud []            [por duplica.1]\r\n    = 0                      [por longitud.1]\r\n    = 2 * 0                  [por aritm\u00e9tica]\r\n    = longitud []            [por longitud.1]\r\n\r\n Paso de inducci\u00f3n: Se supone la hip\u00f3tesis de inducci\u00f3n\r\n    longitud (duplica xs) = 2 * longitud xs\r\n Hay que demostrar que\r\n    longitud (duplica (x:xs)) = 2 * longitud (x:xs)\r\n En efecto,\r\n    longitud (duplica (x:xs))\r\n    = longitud (x:x:duplica xs)       [por duplica.2]\r\n    = 1 + longitud (x:duplica xs)     [por longitud.2]\r\n    = 1 + 1 + longitud (duplica xs)   [por longitud.2]\r\n    = 1 + 1 + 2*(longitud xs)         [por hip. de inducci\u00f3n]\r\n    = 2 * (1 + longitud xs)           [por aritm\u00e9tica]\r\n    = 2 * longitud (x:xs)             [por longitud.2]\r\n-}\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 2. [2.5 puntos] Las expresiones aritm\u00e9ticas pueden\r\n-- representarse usando el siguiente tipo de datos\r\n--    data Expr = N Int | S Expr Expr | P Expr Expr  \r\n--              deriving Show\r\n-- Por ejemplo, la expresi\u00f3n 2*(3+7) se representa por\r\n--    P (N 2) (S (N 3) (N 7))\r\n-- Definir la funci\u00f3n\r\n--    valor :: Expr -> Int                   \r\n-- tal que (valor e) es el valor de la expresi\u00f3n aritm\u00e9tica e. Por\r\n-- ejemplo, \r\n--    valor (P (N 2) (S (N 3) (N 7)))  ==  20\r\n-- ---------------------------------------------------------------------\r\n\r\ndata Expr = N Int | S Expr Expr | P Expr Expr  \r\n          deriving Show\r\n                   \r\nvalor :: Expr -> Int                   \r\nvalor (N x)   = x \r\nvalor (S x y) = (valor x) + (valor y)\r\nvalor (P x y) = (valor x) * (valor y)\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 3. [2.5 puntos] Definir la funci\u00f3n \r\n--    esFib :: Int -> Bool\r\n-- tal que (esFib x) se verifica si existe un n\u00famero n tal que x es el\r\n-- n-\u00e9simo t\u00e9rmino de la sucesi\u00f3n de Fibonacci. Por ejemplo, \r\n--    esFib 89  ==  True\r\n--    esFib 69  ==  False\r\n-- ---------------------------------------------------------------------\r\n\r\nesFib :: Int -> Bool\r\nesFib n = n == head (dropWhile (<n) fibs)\r\n\r\n-- fibs es la sucesi\u00f3n de Fibonacci. Por ejemplo,\r\n--    take 10 fibs  ==  [0,1,1,2,3,5,8,13,21,34]\r\nfibs :: [Int]\r\nfibs = 0:1:[x+y | (x,y) <- zip fibs (tail fibs)]\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 4 [2.5 puntos] El ejercicio 4 de la Olimpiada Matem\u00e1ticas\r\n-- de 1993 es el siguiente:\r\n--    Demostrar que para todo n\u00famero primo p distinto de 2 y de 5,\r\n--    existen infinitos m\u00faltiplos de p de la forma 1111......1 (escrito\r\n--    s\u00f3lo con unos).  \r\n-- Definir la funci\u00f3n\r\n--    multiplosEspeciales :: Integer -> Int -> [Integer]\r\n-- tal que (multiplosEspeciales p n) es una lista de n m\u00faltiplos p de la\r\n-- forma 1111...1 (escrito s\u00f3lo con unos), donde p es un n\u00famero primo\r\n-- distinto de 2 y 5. Por ejemplo,\r\n--    multiplosEspeciales 7 2  ==  [111111,111111111111]\r\n-- ---------------------------------------------------------------------\r\n\r\n-- unos es la lista de los n\u00fameros de la forma 111...1 (escrito s\u00f3lo con\r\n-- unos). Por ejemplo,\r\n--    take 5 unos  ==  [1,11,111,1111,11111]\r\nunos :: [Integer]\r\nunos = 1 : [10*x+1 | x <- unos]\r\n\r\n-- Otra definici\u00f3n no recursiva de unos es\r\nunos' :: [Integer]\r\nunos' = [div (10^n-1) 9 | n <- [1..]]\r\n\r\nmultiplosEspeciales :: Integer -> Int -> [Integer]\r\nmultiplosEspeciales p n = take n [x | x <- unos, mod x p == 0]\r\n\r\n-- Otra definici\u00f3n sin usar unos es\r\nmultiplosEspeciales' :: Integer -> Int -> [Integer]\r\nmultiplosEspeciales' p n = \r\n    [div (10^((p-1)*x)-1) 9 | x <- [1..fromIntegral n]]\r\n<\/pre>\n<p>El resumen estad\u00edstico de las del examen es el siguiente<\/p>\n<table border=\"1\">\n<tr>\n<td>Presentados  <\/td>\n<td> 18 de 38 <\/td>\n<\/tr>\n<tr>\n<td>Suspensos       <\/td>\n<td>  5 <\/td>\n<td> 27.8% <\/td>\n<\/tr>\n<tr>\n<td>Aprobados       <\/td>\n<td>  7 <\/td>\n<td> 38.9% <\/td>\n<\/tr>\n<tr>\n<td>Notables        <\/td>\n<td>  3 <\/td>\n<td> 16.7% <\/td>\n<\/tr>\n<tr>\n<td>Sobresalientes  <\/td>\n<td>  3 <\/td>\n<td> 16.7% <\/td>\n<\/table>\n<p>El porcentaje de aprobados (sobre presentados) es 72.2% y la nota media es 6.<\/p>\n<p>El resumen estad\u00edstico de las notas por curso despu\u00e9s del examen es el siguiente<\/p>\n<table border=\"1\">\n<tr>\n<td>Presentados  <\/td>\n<td> 18 de 38 <\/td>\n<\/tr>\n<tr>\n<td>Suspensos       <\/td>\n<td>  3 <\/td>\n<td> 16.7% <\/td>\n<\/tr>\n<tr>\n<td>Aprobados       <\/td>\n<td>  8 <\/td>\n<td> 44.4% <\/td>\n<\/tr>\n<tr>\n<td>Notables        <\/td>\n<td>  4 <\/td>\n<td> 22.2% <\/td>\n<\/tr>\n<tr>\n<td>Sobresalientes  <\/td>\n<td>  3 <\/td>\n<td> 16.7% <\/td>\n<\/tr>\n<\/table>\n<p>El porcentaje de aprobados (sobre presentados) es 83.3% y la nota media es 6.<\/p>\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 5\u00ba examen de la evaluaci\u00f3n continua. Las notas se han publicado en la WebCT. A continuaci\u00f3n se muestra el examen junto con su soluci\u00f3n:<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","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":[133],"tags":[287],"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\/1276"}],"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=1276"}],"version-history":[{"count":2,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/1276\/revisions"}],"predecessor-version":[{"id":1278,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/1276\/revisions\/1278"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/media?parent=1276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/categories?post=1276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/tags?post=1276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}