Download Proyecto 0151
Document related concepts
Transcript
1 UNIVERSIDAD NACIONAL ESCUELA DE INFORMÁTICA EIF 200 FUNDAMENTOS DE INFORMÁTICA Actividad: Solución de problemas Objetivo: 1. Que los estudiantes empiecen a familiarizarse con el desarrollo de clases en C++ y la implementación de las mismas. Incluye métodos con estructuras secuenciales, condicionales e iterativas. PARTE I Primera Parte. Identifique y corrija los errores en cada uno de los siguientes fragmentos de código: int c = 0; Posible Corrección: int producto = 0; while ( c <= 5 ) { a) producto *= c; ++c; Descripción del error identificado: int z=0, suma=0; Posible Corrección: while ( z >= 0 ){ b) suma += z; } Descripción del error identificado: int k=100, resta=100; Posible Corrección: while ( k >= 0 ); c) resta -= k; k--; Descripción del error identificado: Proyecto 0151-14 UNA – Mora & Coto, 2015 2 UNIVERSIDAD NACIONAL ESCUELA DE INFORMÁTICA EIF 200 FUNDAMENTOS DE INFORMÁTICA int i=20, multi=1; for(int i=0; i<=20; i--){ d) multi*=i; } Descripción del error identificado: Posible Corrección: Posible Corrección: f) int i=0; do{ i++; } while (i>0) Descripción del error identificado: PARTE II En la clase Numero defina los siguientes métodos: EJERCICIO #1: Un número repunit es todo número natural que está formado solamente por unos, por ejemplo: 1, 11, 111, 1111. Escriba un método esRepunit() que retorne true si N es repunit y false si no. class Numero { private: int num; ….. EJERCICIO #2: Escriba un método que retorne true si el número es primo y false si no. Un número primo es un número natural que tiene exactamente dos divisores distintos: él mismo y el 1. El número 1 no se considera número primo. Ejemplos: 2, 3, 17, 29, 31, 43, 59, 67, 71, 73, 83, 97 EJERCICIO #3: Se denominan números de Armstrong aquellos números que son iguales a la suma de los cubos de las cifras que lo integran, por ejemplo 153 es un número de Armstrong ya que 153= 13+53+33 = 1+ 125 + 27. En la clase Numero escriba un método que retorne true si el número es de Armstrong y false si no. Utilice la función pow(x,y) = xy (incluya la biblioteca math) EJERCICIO #4: Escriba un método que determine y retorne el máximo común divisor de 2 números enteros: N y M, M se recibe como parámetro, con base en el siguiente método: primero divida el número mayor entre el número menor, si la división es exacta, es decir si el residuo es cero entonces el máximo común divisor es el divisor, sino, se deben dividir de Proyecto 0151-14 UNA – Mora & Coto, 2015 3 UNIVERSIDAD NACIONAL ESCUELA DE INFORMÁTICA EIF 200 FUNDAMENTOS DE INFORMÁTICA nuevo los números, pero en este caso el dividendo será el antiguo divisor, y el divisor será el residuo de la división anterior, y este proceso debe repetirse hasta que la división sea exacta. Veamos un ejemplo: EJERCICIO #5: El espejo de un número entero A está formado por sus dígitos en orden inverso, por ejemplo el espejo de 123 es el número 321, y el espejo de 3456 es el número 6544. Escriba un método Espejo() que devuelva el número entero correspondiente al espejo de N. EJERCICIO #6: Escriba un algoritmo equilibrado() que determine el número equilibrado para N. El “número equilibrado” de N es la suma de N más el número formado por los dígitos invertidos, por ejemplo si el número N es 583 el número equilibrado es 968, pues 968= 583+385. EJERCICIO #7: Hace miles de años Nicómano descubrió que podía calcular los cubos de los números naturales, sumando números impares. Por ejemplo, el cubo de 1 es la suma del primer impar (1), el cubo de 2, es la suma de los dos siguientes impares (3 + 5), el cubo de 3 es la suma de los tres siguientes (7+9 +11) y así sucesivamente. Haga un método que determine y devuelva el valor del cubo de valor, según el método de Nicómano. EJERCICIO #8: Leonardo de Pisa, matemático italiano del siglo XIII también conocido como Fibonacci describió el problema de la cría de conejos: "Cierto hombre tenía una pareja de conejos juntos en un lugar cerrado y uno desea saber cuántos son creados a partir de este par en un año cuando es su naturaleza parir otro par en un mes, y en el segundo mes los nacidos parir también".De esta manera Fibonacci presentó la sucesión con la siguiente tabla: Mes Explicación Parejas de conejos Inicio 1 Nace una pareja de conejos (pareja A). 1 pareja en total. Fin 1 La pareja A tiene un mes de edad. Se cruza la pareja A. 2 La pareja A da a luz a la pareja B. Se vuelve a cruzar la pareja A. 3 La pareja A da a luz a la pareja C. La pareja B cumple 1 mes. Se cruzan las parejas A y B. 1+0= 1 pareja en total. 1+1= 2 parejas en total. 2+1= 3 parejas en total. Proyecto 0151-14 UNA – Mora & Coto, 2015 4 UNIVERSIDAD NACIONAL ESCUELA DE INFORMÁTICA EIF 200 FUNDAMENTOS DE INFORMÁTICA 4 5 6 Las parejas A y B dan a luz a D y E. La pareja C cumple 1 mes. Se cruzan las parejas A, B y C. A, B y C dan a luz a F, G y H. D y E cumplen un mes. Se cruzan A, B, C, D y E. A, B, C, D y E dan a luz a I, J, K, L y M. F, G y H cumplen un mes. Se cruzan A, B, C, D, E, F, G y H. 3+2= 5 parejas en total. 5+3= 8 parejas en total. 8+5=13 parejas en total. Haga un método Fibonacci que determine para el mes representado por el numero N, que cantidad de parejas habrá nacido, mediante la sucesión de Fibonacci. Proyecto 0151-14 UNA – Mora & Coto, 2015