Download Proyecto 0151

Document related concepts

Números amigos wikipedia , lookup

Método de factorización de Euler wikipedia , lookup

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