Vous êtes sur la page 1sur 4

Sentencias iterativas

Tan importantes como las sentencias condiciones son las sentencias iterativas o repetitivas. Normalmente, las sentencias de un programa son ejecutadas en el orden en el que aparecen. Cada sentencia es ejecutada una y solamente una vez. MATLAB como en la mayora de los lenguajes de programacin, proporciona sentencias denominadas iterativas que permiten realizar una tarea una y otra vez hasta que se cumpla una determinada condicin, dicha tarea viene definida por un conjunto de sentencias agrupadas en un bloque. Las sentencias iterativas son for, while. Estas sentencias son muy bsicas en los lenguajes de programacin de propsito general como C++ o Java, pero escasamente utilizadas en MATLAB la razn estriba en su capacidad para crear vectores y las operaciones elemento a elemento.

La sentencia for
El bucle for se emplear cuando conocemos el nmero de veces que se ejecutar una sentencia o un bloque de sentencias, tal como se indica en la figura. La forma general que adopta la sentencia for es
for x=xi:x:xf sentencias end

El primer trmino xi es el valor inicial de la variable x, que controla el nmero de veces que se ejecutar el bucle. El incremento x representa la cantidad que se incrementa la variable x en cada repeticin Cuando la variable xsobrepasa el lmite xf el bucle termina su ejecucin. En la parte derecha de la igualdad tenemos un vector cuyos elementos estn igualmente espaciados, sin embargo, esto no tiene que ser siempre as. Despus del signo igual se puede poner cualquier vector, como veremos

ms adelante, x va tomando los valores de los elementos del vector en orden consecutivo. Escribir un programa que imprima los 10 primeros nmeros enteros empezando por el cero.
for k = 0:10 disp(k) end

Probamos el script en la ventana de comandos


>> prueba 0 1 2... 10

En MATLAB se hace lo mismo creando el vector x del siguiente modo


>> x=0:10 x = 0 10 1 2 3 4 5 6 7 8 9

Escribir un bucle for que imprima los nmeros pares positivos mayores o iguales que 4 y menores o iguales que 20
for k=4:2:20 disp(k) end

En MATLAB se hace lo mismo creando el vector x del siguiente modo


>> x=4:2:20 x = 4 6 8 10 12 14 16 18 20

Escribir un bucle for que imprima los nmeros pares positivos menores o iguales que 20 en orden decreciente
for k=20:-2:0 disp(k) end

Factorial de un nmero Escribir un programa que calcule el factorial de un nmero empleando la sentencia iterativa for. Definicin: el factorial de un nmero n, n! es el resultado del producto 123 .... (n-1)n. Para calcular el factorial del nmero 4, escribimos el script
n=4; resultado=1; for k=1:n

resultado=k*resultado; end fprintf('El factorial de %i es %i\n',n,resultado)

Podemos convertir este conjunto de sentencias en una funcin. MATLAB dispone de una funcin denominada factorialque calcula el factorial de un nmero entero n!, por lo que denominaremos a nuestra funcin factorial_
>> factorial(4) ans = 24

Creamos la funcin factorial_ que toma un nmero entero y devuelve el resultado, el factorial de dicho nmero entero. Guardamos dicha funcin en un fichero factorial_.m.
function resultado=factorial_(n) resultado=1; for k=1:n resultado=k*resultado; end end

La llamada a la funcin factorial_ en la ventana de comandos para calcular el factorial de 4, 4!, ser
>> factorial_(4) ans = 24

MATLAB nos proporciona una forma ms rpida de calcular el factorial de un nmero, utilizando la funcin productoprod(u) de los elementos de un vector u. Vase al final de la pgina Vectores
>> n=4; >> prod(1:n) ans = 24

Vous aimerez peut-être aussi