universidade federal de alagoas – ufal centro de tecnologia – ctec estruturas de controle...

Post on 18-Apr-2015

103 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Universidade Federal de Alagoas – UFAL

Centro de Tecnologia – CTEC

ESTRUTURAS DE CONTROLE

Estruturas Condicionais ou de Seleção Estruturas Condicionais Simples Estruturas Condicionais Compostas Estruturas Condicionais Encadeadas Estruturas Condicionais Aninhadas Estruturas Condicionais de Múltipla

Escolha

Na construção de algoritmos, utilizamos os conceitos de:

Variáveis Constantes Atribuições Operadores e expressões aritméticas, lógicas e relacionais Comandos que traduzem esses conceitos de forma a

representar o conjunto de ações desejadas.

2

Exemplo 02 – Variáveis no MATLAB

a = 5; % variável numéricab = 8.35; % variável numéricas = ‘c’; % caracterel = 1; % variável lógicav = ‘casa’; % seqüência de caracteres

Exemplo 10:2 < 5 | (~(15/3==5))

v | (~v)v | f

v

Estruturas de controle

Para viabilizar essas ações, é necessário estabelecer o fluxo de execução do algoritmo.

Isso é possível a partir do uso das estruturas básicas de controle do fluxo de execução e das combinações entre elas.

Tipos básicos de estruturas de controle: Seqüenciais Condicionais Repetição

3

Estruturas de Controle de Fluxo

As estruturas de controle de fluxo determinam o fluxo de execução dos comandos do programa.

Sem elas só haveria uma maneira do programa ser executado: de cima para baixo comando por comando.

Em função dos dados fornecidos pelo usuário, não haveria como deixar de executar algum comando ou alterar o número de repetições de comandos.

É possível elaborar programas sem utilizar todas elas, mas deve-se notar que a elegância e a facilidade de entendimento de um programa dependem do uso correto das estruturas nos locais certos. 4

Estruturas de Seleção (Condicional)

Essas estruturas condicionam a execução de um comando ou de um bloco de comandos ao atendimento de condições (Se “verdadeiro”, então) definidas pelo programador.

Aqui, são usados os conceitos de expressões lógicas e relacionais vistos anteriormente.

5

Seleção Simples

Usada quando precisamos testar uma certa condição antes de executar uma ação. Seu modelo é descrito abaixo.

6

if ( condição ) comando 1; comando 2;

... comando n;end

Expressão Lógica e/ou relacional

2 < 5 | (~(15/3==5))v | (~v)

v | fv

Bloco de comandos

Exemplo: Cálculo da média com verificação de aprovação.

N1 = input(‘Entre com a nota 1: ’);N2 = input(‘Entre com a nota 2: ’);N3 = input(‘Entre com a nota 3: ’);N4 = input(‘Entre com a nota 4: ’);

MA = (N1+N2+N3+N4)/4;

fprintf(‘A media é %5.2f\n’,MA);

if ( MA >= 7 ) disp(‘Aluno aprovado!’);end

Seleção Simples

7

expressão Lógica ou relacional?

Seleção Composta

Usada quando existem situações em que duas alternativas dependem de uma mesma condição (uma ser verdadeira e outra falsa).

8

if ( condição ) comando a1; comando a2; comando an;else comando b1; comando b2; comando bn;end

Valor lógico: Pode resultar de expressão lógica ou relacional

Falso

Verdadeiro

N1 = input(‘Entre com a nota 1: ’);N2 = input(‘Entre com a nota 2: ’);N3 = input(‘Entre com a nota 3: ’);N4 = input(‘Entre com a nota 4: ’);

MA = (N1+N2+N3+N4)/4;

fprintf(‘A media é %5.2f\n’,MA);

if( MA >= 7 ) disp(‘Aluno aprovado!’);else disp(‘Aluno reprovado!’);end

Seleção Composta

9

Falso

Verdadeiro

Exemplo: cálculo da média com verificação de aprovação e reprovação.

Seleção Encadeada

Usada quando existe a necessidade de agrupar várias seleções de forma encadeada.

10

if ( condição 1) comando a1; comando a2; comando an;elseif ( condição 2) comando b1; comando b2; comando bn;else comando c1; comando c2; comando cn;end

Valor lógico: Pode

resultar de

expressão lógica ou relacional

Falso para 1 e

2

Falso para 1 e Verdadeiro para

2

Verdadeiro para 1

Seleção Encadeada

11

…MA = (N1+N2+N3+N4)/4;

fprintf(‘A media é %5.2f\n’,MA);

if( MA >= 7 ) disp(‘Aluno aprovado!’);elseif( MA < 5 ) disp(‘Aluno reprovado!’);else disp(‘Aluno na final’);end

Exemplo: cálculo da média verificando aprovação, reprovação e final.

Seleção Aninhada

12

if ( condição1 ) comando a1; comando a2; comando an;elseif ( condição 2 ) comando b1; comando b2; comando bn;elseif ( condição 3 ) comando c1; if ( condição 3a ) comando c1a; comando c2a; comando cna; end comando c2;else comando d1; comando d2; comando dn;end

Seleção de Múltipla Escolha

Esse tipo de seleção é uma alternativa ao uso da seleção encadeada if-elseif-else.

13

switch( variavel ) case v1 comandos 1; break; case v2 comandos 2; break; case v3 comandos n; break; otherwise comandos; break;end

Deve-se observar que variável não pode ser uma expressão.

SwitchVerbo – mudar, trocar;Substantivo – interruptor, mudança.

Sai da estrutura de controle, mas não do programa. Uso do comando é facultativo.

14

disp(‘Estudar, dormir, comer’);disp(‘digite 1 se deseja primeira opcao’);disp(‘digite 2 se deseja segunda opcao’);disp(‘digite 3 se deseja terceira opcao’);

x = input(‘’);flag = 0;switch( x) case 1 disp( ‘Você deseja estudar’); flag=1; break; case 2 disp( ‘Você deseja dormir’); flag=2; break; case 3 disp( ‘Você deseja comer’); flag=3; break; otherwise disp( ‘Não quero nenhuma das opções’); break;end

Exemplo:

Variável bandeira

Ao final do programa, o valor da variável bandeira denuncia que opção da estrutura de controle foi satisfeita

Universidade Federal de Alagoas – UFAL

Centro de Tecnologia – CTEC

EXERCÍCIOS COMPLEMENTARES

Exercício 1:

Escrever um algoritmo que leia 3 valores numéricos e mostre-os em ordem crescente.

16

17

A = input(‘Valor 1: ’);

B = input(‘Valor 2: ’);

C = input(‘Valor 3: ’);

disp (‘Os números em ordem ficam: ’);

if( A < B )

if( B < C )

disp(A); disp(B); disp(C);

elseif( A < C )

disp(A); disp(C); disp(B);

else

disp(C); disp(A); disp(B);

end

elseif( A < C)

disp(B); disp(A); disp(C);

elseif( B < C )

disp(B); disp(C); disp(A);

else

disp(C); disp(B); disp(A);

end

Exercício 2:

Ler 3 números, verificar se eles podem ou não ser lados de um triângulo. Se sim, classificar o triângulo quanto os seus lados.

18

Triângulo Eqüilátero Triângulo Isósceles Triângulo Escaleno

3 lados iguais: Eqüilátero2 lados iguais: IsóscelesLados desiguais: Escaleno

19

A = input(‘Entre c/ o primeiro lado: ’);B = input(‘Entre c/ o segundo lado: ’);C = input(‘Entre c/ o terceiro lado: ’);

if( A < B+C & B < A+C & C < A+B ) if( a == b & b == c ) disp(‘Triangulo Eqüilátero!’); elseif( a == b | b == c | a == c ) disp(‘Triangulo Isosceles!’); else disp(‘Triangulo Escaleno!’); end else disp(‘Lados não formam um triangulo!’);end

top related