Introducción

Instrucciones de repetición. Ciclos.

 

En Matlab existen dos maneras de implementar ciclos. La primera con los comandos for/end y la segundo con los comandos while/end, de manera muy similar a los leguajes de alto nivel.

 

Ciclos for/end

 

La sintaxis de este comando es

 

for r=inicio: incremento: fin

   instrucciones_a_repetir

   instrucciones_a_repetir

   instrucciones_a_repetir

   instrucciones_a_repetir

   instrucciones_a_repetir

end;

 

imprimir los números del 1 a 100 se hace :

 

for x=1: 1:100

  x

end;

 

El siguiente conjunto de instrucciones realiza una cuenta de 100 a 80 con decrementos de 0.5.

 

for x=100:-0.5: 80

  x

end;

 

en el caso de decrementos o incrementos unitarios, se puede omitir el valor del incremento.

 

for x=1: 1:100, x, end

 

Ejemplo 1.

 

Utilizando el comando for/end, calcular el volumen de cinco esferas de radio 1, 2, 3, 4 y 5 se hace:

 

for r=1:5

   vol = (4/3)*pi*r^3;

   disp([r, vol])

end;

 

Los ciclos pueden hacerse anidados de la siguiente manera.

 

 

for r=1:5

   for s=1:r

      vol = (4/3)*pi*(r^3-s^3);

      disp([r, s, vol])

   end

end

 

 

Podemos utilizar el comando break para detener la ejecución de un ciclo

 

 

for i=1:6

   for j=1:20

      if j>2*i, break, end

      disp([i, j])

   end

end

 

 

Ciclos while/end

 

La sintaxis de esta comando es

 

while condición

  instrucciones_a_repetir

end

 

Así por ejemplo podemos implementar al igual que con los ciclos for/end, un pequeño programa que imprima los números del 1 al 100.

 

x = 1;

while x <= 100

  x

  x = x + 1;

end

 

El ejemplo para desplegar el volumen de una esfera con radios de 1, 2, 3, 4 y 5 queda.

 

r = 0;

while r<5

   r = r+1;                        

   vol = (4/3)*pi*r^3;

   disp([r, vol])

end;

 

otro ejemplo interesante es:

 

clear;

r = 0

while r<10

   r = input('Teclee el radio (o -1 para terminar): ');

   if  r< 0, break, end

   vol = (4/3)*pi*r*3;

   fprintf('volumen = %7.3f\n', vol)

end

 

Ejemplo 2.

 

Hacer un programa que permita imprimir un triangulo rectángulo formado por asteriscos.

 

% Codigo para imprimir un triangulo

 

fprintf('\ntriangulo\n\n')

 

for k=1:7

   for l=1:k

      fprintf('*')

   end;

   fprintf('\n')

end

 

Ejemplo 3.

 

Hacer un programa para desplegar un rectángulo de base 6 y altura 7.

 

% Codigo para imprimir un rectangulo

 

fprintf('\nrectangulo\n\n')

 

for k=1:7

   for l=1:6

      fprintf('*')

   end;

   fprintf('\n')

end

 

Ejemplo 4.

 

Hacer un programa para imprimir un pino utilizando un solo carácter.

 

a=10; %altura del follaje del pino

n=12; %Posición horizontal del vértice.

t=3;  %altura del tronco del pino

d=4;  %diámetro del tronco del pino

% Dibujar el follaje del pino, de altura 'a'

for i=1:a

   clear cad2 cad1

   num_ast=2*i-1;

   num_esp=n-i;

   cad1(1:num_esp)=' ';

   cad2(1:num_ast)='*';

   fprintf('%s%s\n',cad1,cad2)  

end

% Dibujar el tronco del pino, de altura 't'

   clear cad2 cad1

   num_ast=d;

   num_esp=n-d/2;

   cad1(1:num_esp)=' ';

   cad2(1:num_ast)='I';

 for i=1:t

   fprintf('%s%s\n',cad1,cad2)

 end

 

Ejemplo 5.

 

Hacer un programa para imprimir el triángulo de Pascal.

 

nr=8;   % Numero de renglones del triangulo de Pascal.

n=15;   % Numero de espacios en blanco antes del vértice.

x(1)=1;

cad1(1:n)=' ';

fprintf('%s%3.0f\n\n',cad1,x(1)); % vertice del triangulo

for k=2:nr-1;

    clear cad1 cad2

    num_esp=n-2*k+1;

    cad1(1:num_esp)=' ';

    clear x

    x(1)=1;

    for c=2:k;

    x(c)=x(c-1)*(k-c+1)/(c-1);

    end

    fprintf('%s',cad1)

    for c=1:k

    fprintf(' %3.0f',x(c))

    end

    fprintf('\n\n')

end

 

Regresar.