Capítulo Anterior

Sumário

Capítulo 2


7 CONTROLE DE FLUXO

Os comandos que controlam o fluxo especificam a ordem em que a computação é feita. No MATLAB estes comandos são semelhantes aos usados na linguagem C, mas com uma estrutura diferente.

7.1 Laço for

O laço for é o controlador de fluxo mais simples e usado na progração MATLAB. Analisando a expressão

>> for i=1:5,
X(i)=i^2;
end

pode-se notar que o laço for é dividido em três partes:

A terceira parte acontece quando a condição se torna falsa e o laço termina.

O comando end é usado como limite inferior do corpo do laço.

É comum construções em que conjuntos de laços for são usados principalmente com matrizes:

for i=

1:8
for j= 1:8,
A(i,j)= i+j;
B(i,j)= i-j;
end

end

+B;
C=A

 

7.2 Laço while

No laço while apenas a condição é testada. Por exemplo na expressão

a = l; b = 15;
while a<b,
    clc
    a = a+l
    b = b-l
    pause(l)
end
disp(‘fim do loop’)

a condição a<b é testada. Se ela for verdadeira o corpo do laço, será executado.

Então a condição é retestada, e se verdadeira o corpo será executado novamente. Quando o teste se tornar falso o laço terminará, e a execução continuará no comando que segue o laço após o end.

 

7.3 Declarações if e break

A seguir, é apresentado um exemplo do uso da declaração if no MATLAB.

for i = l:5,
    for j = l:5,
        if i = = j
            A(i,j) = 2;
        else if abs(i-j) = = 1
            A(i,j) = -1;
        else
            A(i,j) = 0;
        end
    end
end

Os valores de i e j variam de 1 a 5, varrendo toda a matriz A. Se (if) i for igual a j, A(i,j)=2, ou se (elseif) o valor absoluto de i-j for igual a 1, A(i,j)=-1, ou (else) A(i,j)=0, se nenhuma das condições anteriores forem satisfeitas.

É conveniente, às vezes, controlarmos a saída deu m laço de outro modo além do teste, no início ou no fim do mesmo. O comando break permite uma saída antecipada de um for ou while. Um comando break faz com que o laço mais interno seja terminado imediatamente. Por exemplo,

%modifica a matriz A
clc
x = ’s’;
for i = l:5,
    if x = = ‘q’,
        break
    end
    j = l;
    while j<=5,
        [‘A(‘num2str(i) ‘,’ num2str(j)’) = ‘num2str(A(i,j))]
        x = input(‘Modifica? (s-sim, n-não, p-próxima linha, q-sair) =>’);
        if x = = ’s’,
            A(i,j) = input(‘Entre com o novo valor de A(i,j) = = >’);
            j=j+l;
            clc
        end
        if x = = ‘n’,
            j=j+l;
            clc
        end
        if x = = ‘p’,
            clc
            break
        end
        if x = = ‘q’,
            clc
            break
        end
    end
end


Capítulo Anterior

Sumário

Capítulo 2


Dúvidas ou sugestões, envie um e-mail para pet@del.ufms.br