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

19
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

Upload: internet

Post on 18-Apr-2015

103 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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

Page 2: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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

Page 3: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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

Page 4: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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

Page 5: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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

Page 6: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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

Page 7: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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?

Page 8: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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

Page 9: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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.

Page 10: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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

Page 11: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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.

Page 12: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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

Page 13: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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.

Page 14: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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

Page 15: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

Universidade Federal de Alagoas – UFAL

Centro de Tecnologia – CTEC

EXERCÍCIOS COMPLEMENTARES

Page 16: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

Exercício 1:

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

16

Page 17: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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

Page 18: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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

Page 19: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas Condicionais ou de Seleção Estruturas Condicionais

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