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