Você está na página 1de 6

Curso MATLAB - Instruções de controle Lázaro

Comando if

If expressão_de _controle_1

instrução
instrução
....

elseif expressão_de_controle_2

instrução
instrução
.....

else
instrução
.....

end

1) Elabore o programa “calculo_salario.m”:

% programa para calcular o salário 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

1
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 + sqrt(discriminante)) / (2*a);
x2 = ( -b - sqrt(discriminante)) / (2*a);
fprintf('x1 = %f\n',x1);
fprintf('x2 = %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

2
6) E execute para as seguintes equações:

Comando switch

switch expressão_do_switch

case valor_1

instrução
instrução
....

case valor_2

instrução
instrução
....

otherwise

instrução
instrução
....
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

instrução
instrução
....

catch

instrução
instrução
....

3
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('Dimensões incompativeis');

end

10) E execute:

>> tenta_multiplicar([1 2],[3;4])

>> tenta_multiplicar([3 4],[1 2])

Comando for

for indice = expressão

instrução
instrução
....

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

4
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 expressão

instrução
instrução
....

end

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

x = 1

while x <= 15

x = 2*x

end

5
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 8 10

>> multiplo(5,42)
ans =
5 10 15 20 25 30 35 40

20) Qual é o maior valor de n, que pode ser usado na soma:


2 2 2
1 + 2 + ..... + n

para se obter um valor menor que 100?

Digite o programa soma1.m e verique a resposta:

s = 1; n = 1;

while (s + (n+1)^2) < 100

n = n+1;
s = s + n^2;
end

[n, s]

21) Modifique o programa soma1.m, para se obter uma soma menor que 10;

Você também pode gostar