REPETTIVAS
REPETTIVAS
En este caso el nmero de iteraciones son 4: las instrucciones se ejecutarn mientas el valor de j sea menor o igual que 10. En cada iteracin, el valor de j aumentar en 3 unidades, es decir, tomar los valores: 2, 5, 8, 11. La variable contador es una variable ms y puede ser utilizada en las instrucciones de dentro del bucle. Importante: es muy peligroso modificar el valor de la variable contador dentro del bucle. Bucle while No se indica explcitamente el nmero de iteraciones. El final de bucle est controlado con una condicin (expresin lgica o booleana). La sintaxis es la siguiente: while condicin instrucciones end Si queremos que el bucle se realice por lo menos una vez, la condicin debe ser cierta. Las instrucciones del interior del bucle deben modificar el valor de la condicin pasar a ser falsa para que el bucle finalice. En caso contrario, estaramos ante un bucle infinito. Equivalencia entre estructuras repetitivas En ocasiones, los bucles while y for son equivalentes: for i=inic: inc: fin instrucciones end i= inic; while i <= fin instrucciones; i=i+inc; end
Observar que en el caso del while, se necesita una instruccin antes del bucle que de valor inicial a la variable contador y una instruccin dentro del bucle que modifique dicho valor inicial para que alcance el valor final y la condicin que controla el bucle sea falsa.
Ejercicios 1) Escribir una funcin que calcule la suma de los n primeros nmeros naturales. Razonar si se puede implementar con los dos tipos de bucles. 2) Escribir una funcin que calcule la suma de los cuadrados de los n primeros nmeros naturales: 1 + 22 + 32 + + n2.
3) Escribir una funcin que calcule la suma de los nmeros enteros de n a m (m>n), utilizando la funcin del ejercicio 1. 4) Implementar una funcin que calcule el producto de dos nmeros enteros (n*m) haciendo slo sumas. 5) Disear una funcin que calcule el cociente y resto de la divisin entera de dos nmeros mediante restas y sumas. 6) Los trminos de la serie de Fibonacci se calculan as: a1 = 1 a2 = 2 an = an-1 + an-2 Disear una funcin que calcule el n-simo trmino de la serie de Fibonacci. 7) Escribir una funcin que calcule el cuadrado de un nmero haciendo slo sumas. Ayuda: el cuadrado de un nmero n es la suma de los n primeros nmeros impares. Ejemplo: 32=1+3+5=9. 8) Escribir una funcin que calcule an, ensima potencia de a. 9) Escribir una funcin que calcule el factorial de un nmero natural entero positivo n: n!= n * (n-1) * (n-2) * * 2 * 1 Observar el buen funcionamiento de la funcin para n=0 y para n<0. 10) La exponencial de un nmero real a se puede aproximar con la serie:
an a2 a3 e = =1 + a + + + 2 3! n=0 n!
a
ak + + k!
a) Escribir una funcin que calcule la exponencial de a segn dicha frmula, utilizando k=10 y luego k=20. Se obtiene el mismo resultado? (ayuda: utilizar el comando format) b) Modificar la funcin de manera que el nmero k sea un parmetro elegido por el usuario. c) Modificar la funcin de manera que aproxime el resultado hasta que para algn k se cumpla la condicin ak/k! <= 10-5. d) Modificar de nuevo la funcin de manera que aproxime el resultado hasta que ak/k! sea menor que cierto valor infinitesimal que se pasar como dato a la funcin. Visualizar el nmero de trminos k necesarios para obtener el resultado requerido. 11) Escribir una funcin que convierta un nmero entero en otro nmero entero que ser el primero pero con las cifras que lo forman escritas al revs. Ejemplo: convertir el nmero entero 1842 en el 2481.