14.1.-
La serie de Fibonacci
0,
1, 1, 2, 3, 5, 8, 13, 21, ...
empiza
con los términos 0 y 1 y tiene la propiedad de que cada término
siguiente es la suma de los dos términos precedentes.
-
Escriba
una función no recursiva Fibonacci(n) que calcule el
número Fibonacci de orden n.
-
Determine
el número fibonacci más grande que puede ser impreso
en su sistema. Modifique el programa de la parte 1) para utilizar
double en vez de int, a fin de calcular y regresar números
fibonacci. Deje que el programa cicle hasta que falle debido
a valores en exceso altos.
14.2.-
¿Es posible llamar recursivamente a main? Escriba un programa
que contenga una función main. Incluya la variable local
count de tipo static inicializada a 1.Postincremente e imprima el
valor de count cada vez que main es llamada . Ejecute su programa
¿qué ocurre?
14.3.-
El máximo común divisor de los enteros x e y es el
entero más grande que divide en forma completa tanto a x
como a y. Escriba una función recursiva gcd que regrese el
máximo común divisor de x y de y. El gcd de x y de
y se define en forma recursiva como sigue: si y es igual a 0, entonces
gcd (de x, y) es x; de lo contrario gcd (de x, y) es igual a gcd(y,
x%y) donde % es el operador de módulo.
14.4.-
Escriba la función distance que calcule la distancia entre
dos puntos (x1, y1) y (x2, y2) Todos los valores de los números
y valores de regreso deberán de ser de tipo float.
14.5.-
Escriba un programa que indique qué monedas hay que entregar
para dar cualquier cantidad de cambio entre 1 y 99 centavos de dolar.
Por ejemplo, si la cantidad es 80 centavos, la salida sería
parecida a ésto:
86
centavos pueden entregarse como
3
cuarto(s)
1 dime(s) y 1 penny(s)
Utilice
denominaciones de monedas de 25 centavos (cuartos), 10 centavos
(dimes) y 1 centavo (penny). No use monedas de 5 centavos (nickel)
ni de medio dólar. Su programa usará la siguiente
función entre otras:
void
calocular_moneda(int valor_moneda, int& numero, int&
restante);
//Precondición:
0 < valor_moneda < 1000; 0 <= restante < 100.
//Postcondición:
número se ha establecido al número máximo
de monedas con
//denominación
valor_moneda que caben en restante centavos.
//
se le ha restado a restante el valor de las monedas, es decir,
//
se le ha restado número * valor_moneda.
Por
ejemplo, supongamos que el valor de la variable restante es 86.
Entonces, después de la siguiente llamada, el valor de número
será 3 y el valor restante será 11 (porque si quitamos
tres cuartos de 86 centavos nos quedan 11 centavos):
calcular_monedas(25,
numero,restante);
Incluya
un ciclo que permita que el usuario repita este cálculo con
otros valores de entrada hasta que diga que quiere terminar el programa.
Sugerencia: Use división entera y el operador % para implementar
esta función.
14.6.-
Escriba un programa que lea una longitud en pies y pulgadas y despliegue
la longitud equivalente en metros y centímetros. Utilice
al menos tres funciones: una para la entrada, una para calcular
y una para la salida. Incluya un ciclo que permita que el usuario
repita este cálculo con otros valores de entrada hasta que
diga que quiere terminar el programa. Un pie equivale a 0.3048 metros,
hay 100 centímetros en un metro y 12 pulgadas en un pie.
14.7.-
Escriba un programa como el del ejercicio anterior, pero que convierta
metros y centímetros a pies y pulgadas. Use funciones para
las subtareas.
14.8.-
(Deberá hacer los dos proyectos de programación anteriores
antes de intentar éste). Escriba un programa que combine
las funciones de los dos proyectos de programación anteriores.
Dicho programa pregunta al usuario si quiere convertir de pies y
pulgadas a metros y centímetros o de metros y centímetros
a pies y pulgadas, y luego efectúa la conversión deseada.
Haga que el usuario responda tecleando el entero 1 si desea un tipo
de conversión, o 2 si desea el otro. El programa lee la respuesta
del usuario y luego ejecuta una instrucción if-else. Cada
bifurcación de la instrucción if-else será
una llamada de función. Las dos funciones que se invocan
en la instrucción if-else tendrán definiciones muy
similares a los programas de los dos proyectos de programación
anteriores, por lo tanto, serán definiciones de función
relativamente complicadas que invocan otras funciones dentro de
su cuerpo. Incluya un ciclo que permita que el usuariorepita este
cálculo con otros valores de entrada hasta que diga que quiere
terminar el programa.
14.9.-
Escriba una función que calcule la media y la desviación
estándar de cuatro puntajes. La desviación estándar
se define como la raíz cuadrada de la media de los cuatro
valores (si-a)^2, donde a es la media de los cuatro puntajes s1,
s2, s3, s4.La función tendrá seis parámetros
e invocará otras dos funciones. Incruste la función
en un programa controlador que permita probar la función
una y otra vez hasta que usted indique que desea terminar.
14.10.-
Escriba una función recursiva power (base, exponente) que
al ser invocada regrese (base^exponete).
Por
ejemplo, power(3, 4) = 3 * 3 * 3 * 3. Suponga que exponente es un
entero mayor o igual a 1. Sugerencia: el paso de recursión
deberá de utilizar la relación
base^exponente
= base * base ^(exponente-1)
y
la condición de terminación ocurrirá cuando
exponente es igual a 1 porque
base^1
= base
|