Sentencias iterativas

5
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 mayoría de los lenguajes de programación, proporciona sentencias denominadas iterativas que permiten realizar una tarea una y otra vez hasta que se cumpla una determinada condición, dicha tarea viene definida por un conjunto de sentencias agrupadas en un bloque. Las sentencias iterativas son for, while. Estas sentencias son muy básicas en los lenguajes de programación de propósito general como C++ o Java, pero escasamente utilizadas en MATLAB la razón estriba en su capacidad para crear vectores y las operaciones elemento a elemento. La sentencia for El bucle for se empleará cuando conocemos el número 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

Transcript of Sentencias iterativas

Page 1: Sentencias iterativas

Sentencias iterativasTan 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 mayoría de los lenguajes de programación, proporciona sentencias denominadas iterativas que permiten realizar una tarea una y otra vez hasta que se cumpla una determinada condición, dicha tarea viene definida por un conjunto de sentencias agrupadas en un bloque. Las sentencias iterativas son for, while. Estas sentencias son muy básicas en los lenguajes de programación de propósito general como C++ o Java, pero escasamente utilizadas en MATLAB la razón estriba en su capacidad para crear vectores y las operaciones elemento a elemento.

La sentencia for

El bucle for se empleará cuando conocemos el número 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 sentenciasend

El primer término xi es el valor inicial de la variable x, que controla el número de veces que se ejecutará el bucle. El incremento Δx representa la cantidad que se incrementa la variable x en cada repetición Cuando la variable xsobrepasa el límite xf el bucle termina su ejecución. En la parte derecha de la igualdad tenemos un vector cuyos elementos están igualmente espaciados, sin embargo, esto no tiene que ser siempre así. Después del signo igual se puede poner cualquier vector, como veremos

Page 2: Sentencias iterativas

más adelante, x va tomando los valores de los elementos del vector en orden consecutivo.

Escribir un programa que imprima los 10 primeros números 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:10x = 0 1 2 3 4 5 6 7 8 9 10

Escribir un bucle for que imprima los números 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:20x = 4 6 8 10 12 14 16 18 20

Escribir un bucle for que imprima los números pares positivos menores o iguales que 20 en orden decreciente

for k=20:-2:0 disp(k)end

Factorial de un número

Escribir un programa que calcule el factorial de un número empleando la sentencia iterativa for. Definición: el factorial de un número n, n! es el resultado del producto 1·2·3· .... ·(n-1)·n.

Para calcular el factorial del número 4, escribimos el script

n=4;resultado=1;

Page 3: Sentencias iterativas

for k=1:n resultado=k*resultado;endfprintf('El factorial de %i es %i\n',n,resultado)

Podemos convertir este conjunto de sentencias en una función. MATLAB dispone de una función denominada factorialque calcula el factorial de un número entero n!, por lo que denominaremos a nuestra función factorial_

>> factorial(4)ans = 24

Creamos la función factorial_ que toma un número entero y devuelve el resultado, el factorial de dicho número entero. Guardamos dicha función en un fichero factorial_.m.

function resultado=factorial_(n) resultado=1; for k=1:n resultado=k*resultado; endend

La llamada a la función factorial_ en la ventana de comandos para calcular el factorial de 4, 4!, será

>> factorial_(4)ans = 24

MATLAB nos proporciona una forma más rápida de calcular el factorial de un número, utilizando la función productoprod(u) de los elementos de un vector u. Véase al final de la página Vectores

>> n=4;>> prod(1:n)ans = 24

Page 4: Sentencias iterativas