Você está na página 1de 6

Treinamento em MATLAB - Instrues de controle

Lzaro

Comando if
If expresso_de _controle_1
instruo
instruo
....
elseif expresso_de_controle_2
instruo
instruo
.....
else
instruo
.....
end
1) Elabore o programa calculo_salario.m:
% programa para calcular o salrio de um trabalhador
t = input('Digite o numero de horas trabalhadas: ' );
h = input('Digite o valor da hora trabalhada:$ ');
salario = t*h;
if t > 40

% se for maior que 40 horas


% calcula horas extras

salario = salario + (t-40)*0.5*h;


end
fprintf('O salario do trabalhador e R$ %5.2f\n',salario)
2) Execute o programa calculo_salario.m
>> calculo_salario
Digite o numero de horas trabalhadas: 10
Digite o valor da hora trabalhada:$ 50
O salario do trabalhador e R$ 500.00
3) Elabore o programa vol_da_agua.m:
function v = vol_da_agua(h)
% vol_d_agua determina o volume de agua numa caixa dagua
% a entrada e o nivel de agua (em metros)
% a saida e o volume de agua numa caixa dagua (em m3)
if h <= 19
v = pi*12.5^2*h;
else
rh = 12.5 + 10.5 *(h-19)/14;
v = pi*12.5^2*19 + pi*(h-19)*(12.5^2+12.5*rh+rh^2)/3;
end

4) E execute o programa vol_da_agua.m:


>> vol_da_agua(8)
ans =
3.9270e+003
>> vol_da_agua(25.7)
ans =
1.4115e+004
5) Elabore o programa calculo_raizes.m
% Este programa calcula as raizes de uma equacao
% no forma a*x^2 + b*x + c = 0
disp ('Este programa calcula as raizes de uma equacao');
disp ('na forma a*x^2 + b*x + c = 0');
a = input ('Entre com o coeficiente a : ');
b = input ('Entre com o coeficiente b : ');
c = input ('Entre com o coeficiente c : ');
% calcula o

discriminante

discriminante = b^2 - 4 * a * c;
% calcula as raizes, dependendo do valor do discrimante
if discriminante > 0
x1 = ( -b +
x2 = ( -b fprintf('x1
fprintf('x2

sqrt(discriminante)) / (2*a);
sqrt(discriminante)) / (2*a);
= %f\n',x1);
= %f\n',x2);

elseif discriminante == 0
x1 = ( -b ) / (2*a);
disp('Esta equacao tem duas raizes reais iguais;');
fprintf('x1 = x2 = %f\n', x1);

else
parte_real = (-b) / (2*a);
parte_imag = sqrt(abs(discriminante))/(2*a);
fprintf('x1 = %f + i %f\n',parte_real, parte_imag);
fprintf('x1 = %f - i %f\n',parte_real, parte_imag);
end

6) E execute para as seguintes equaes:

Comando switch
switch expresso_do_switch
case valor_1
instruo
instruo
....
case valor_2
instruo
instruo
....
otherwise
instruo
instruo
....
end
7) Elabore o programa teste_valor.m e execute:
valor = input('Entre com um valor entre

1 e 10: ');

switch(valor)
case {1, 3, 5, 7, 9}
disp('O valor impar.');
case {2, 4, 6, 8, 10}
disp('O valor par.');
otherwise
disp('O valor invalido.');
end

Estrutura try/catch
try
instruo
instruo
....
catch
instruo
instruo
....

8) Digite o programa verifica_indice.m e execute:


a = [1 -3 2 5];
try
indice = input('Digite o indice do elemento a ser exibido: ');
disp([ 'a(' int2str(indice) ') = ' num2str(a(indice))]);
catch
disp(['indice ilegal: ' int2str(indice)]);
end
9) Digite o programa tenta_multiplicar.m :
% tenta multiplicar a * b
function x = tenta(a,b)
try
x = a * b;
catch
errordlg('Dimenses incompativeis');
end
10) E execute:
>> tenta_multiplicar([1 2],[3;4])
>> tenta_multiplicar([3 4],[1 2])

Comando for
for indice = expresso
instruo
instruo
....
end
11) Elabore o programa exemplo_for_1.m, e execute:
for k=1:3:10
x = k^2
end
12) Elabore o programa exemplo_for_2.m, e execute:

clf
colormap(gray)
plotnum = 1;
z = peaks(20);
for az = 0:10:350
subplot(6,6,plotnum);
surfl(z),shading flat;
view(az,30);
axis tight;
axis off;
plotnum = plotnum + 1;
end

13) Elabore o programa fator1.m:


for numero = 1:500
fator = 1;
for i = 2:numero
fator = fator * i;
end
y(numero) = fator;
end

14) Elabore o programa fator2.m:


for numero = 1:500
y(numero) = prod(1:numero);
end
15) Elabore o programa fator3.m:
y = zeros(1,500);
for numero = 1:500
y(numero) = prod(1:numero);
end
16) Execute os programas fator1.m , fator2.m e fator3.m e verifique qual executado mais rapido. Para realizar isto,
use os comantos tic e toc:
>> tic;fator1;toc
Elapsed time is 0.001456 seconds.

Comando while
while expresso
instruo
instruo
....
end

17) Digite o programa teste_while_1.m, e execute:


x = 1
while x <= 15
x = 2*x
end

18) Digite o programa multiplo.m:


% R : multiplos de n menores que m
function R = multiplo (n,m)
i = 1;
R=[];
while i*n < m
R = [R i*n];
i = i + 1;
end
19) E execute como indicado:
>> multiplo(2,11)
ans =
2
4
6

10

>> multiplo(5,42)
ans =
5
10
15

20

25

30

35

40

Você também pode gostar