A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Aula 4 - V. 2 - Cida Livi Algoritmos com Seleção Comando CASE.

Apresentações semelhantes


Apresentação em tema: "Aula 4 - V. 2 - Cida Livi Algoritmos com Seleção Comando CASE."— Transcrição da apresentação:

1 Aula 4 - V. 2 - Cida Livi Algoritmos com Seleção Comando CASE

2 Aula 4 - V. 2 - Cida Livi Sejam os seguintes códigos e expressões para cálculo da variável Resultado

3 Aula 4 - V. 2 - Cida Livi Código = 1 Código = 3 ou 5 Código = 6 Código > 7 e < 11 Resultado <- Resultado + 5 Resultado <- Resultado -2 Resultado <- 2 * (Resultado + 1) Resultado <- 0 S S S S N N N N {uso de seleção simples}

4 Aula 4 - V. 2 - Cida Livi (…) Código = 1 Código = 3 ou Código = 5 Código > 7 e < 11 Resultado <- Resultado + 5 Resultado <- Resultado -2 Resultado <- 0 S S S N N N {uso de seleção simples}

5 Aula 4 - V. 2 - Cida Livi {uso de seleção simples} if (Codigo = 1) then Resultado := Resultado + 5; if (Codigo = 3) or (Codigo = 5) then Resultado := Resultado - 2; if (Codigo = 6) then Resultado := 2 * (Resultado + 1); if (Codigo > 7) and (Codigo < 11) then Resultado := 0;

6 Aula 4 - V. 2 - Cida Livi Código = 1 Código =3 ou 5 Código = 6 Resultado <- Resultado + 5 Resultado <- Resultado +-2 Resultado <- 2* (Resultado + 1) Código >= 8 e <= 10 Resultado <- 0 SS S NN N N S {uso de seleção composta}

7 Aula 4 - V. 2 - Cida Livi {uso de seleção composta} if (Codigo = 1) then Resultado := Resultado + 5 else if (Codigo = 3) or (Codigo = 5) then Resultado := Resultado - 2 else if Codigo = 6 then Resultado := 2 * (Resultado + 1) else if (Codigo >= 8) and (Codigo <= 10) then Resultado := 0;

8 Aula 4 - V. 2 - Cida Livi {uso de seleção múltipla} case Codigo of 1: Resultado := Resultado + 5; 3, 5: Resultado := Resultado - 2; 6: Resultado := 2 * (Resultado + 1); 8..10: Resultado := 0; else if (Codigo <> 2) and (Codigo <> 4) and (Codigo <> 7) then writeln(´Codigo invalido´) end;

9 Aula 4 - V. 2 - Cida Livi Case Código 1 3 ou a 10 <> 2, 4 ou 7 Resultad o <- Resultad o + 5 Resultad o <- Resultad o - 2 Resultado <- 2* (Resultad o + 1) Resultad o <- 0 ´Código inválido!´ CASE: funciona como uma condição composta

10 Aula 4 - V. 2 - Cida Livi Código = 1 Resultado <- Resultado + 5 Código >= 8 e <= 10 Resultado <- 0 S N N CASE: funciona como uma condição composta S... Código<> 2 4 ou 7 Código Inválido S N

11 Aula 4 - V. 2 - Cida Livi

12

13

14 Var Classificado : boolean; Case Classificado of true : writeln (´Candidato ´, Inscricao, classificado!´); false: writeln (´Candidato ´, Inscricao, ´desclassificado!´) end;

15 Aula 4 - V. 2 - Cida Livi Comando CASE Estrutura de controle condicional. Permite que grupos particulares de instruções sejam escolhidos entre grupos possíveis. Escolha é baseada no valor correspondente de uma expressão.

16 Aula 4 - V. 2 - Cida Livi Expressão De qualquer tipo ordinal Tipo ordinal: Tipo onde os elementos aparecem em uma determinada ordem e são distintos e descontínuos.

17 Aula 4 - V. 2 - Cida Livi Tipos ordinais simples padrão char ; boolean; byte; shortint ; integer

18 Aula 4 - V. 2 - Cida Livi Instrução Simples ou Composta (duas ou mais instruções simples delimitadas por begin end)

19 Aula 4 - V. 2 - Cida Livi Funcionamento do CASE

20 Aula 4 - V. 2 - Cida Livi As seqüências de constantes não precisam aparecer numa ordem específica, mas devem ser únicas (ou seja, mesmo valor não pode aparecer implícita ou explicitamente em mais de uma seqüência!) Ex.: case ValorInteiro of 9: writeln(´Valor 9´); 4..8: writeln(´Entre 4 e 8´´); { 7: writeln(´valor 7´); ERRADO! O valor 7 está implícito no rótulo anterior.} end;

21 Aula 4 - V. 2 - Cida Livi Valores nas listas de constantes devem pertencer ao mesmo tipo ordinal do valor da expressão. Ex.: case ValorChar of ´A´: writeln(´A maiusculo´); a : writeln(´Vai dar erro´); { a deveria ser uma constante caractere, logo deveria estar entre apostrofos} 1: writeln(´Tambem vai dar erro!´); {idem acima, o um tambem deveria estar entre apostofros} end;

22 Aula 4 - V. 2 - Cida Livi Uma instrução será executada sempre que uma das constantes de uma seqüência coincidir com o valor corrente da expressão. Ex.: SoNumeros := 5; case SoNumeros of 1..3: (…); 7: (…); 5: (…); {a instrução do rotulo acima sera executada, já que a constante 5 vai coincidir com o valor corrente da expressao (SoNumeros) que eh 5 no momento} 4:(…); end;

23 Aula 4 - V. 2 - Cida Livi Se valor corrente da expressão não coincidir com qualquer valor de uma seqüência, nada será executado (o Turbo Pascal possibilita o tratamento de valores não previstos através do Else). Ex.: Valor := 10 Case Valor of 1..9: Somatorio := Somatorio + Valor; {observar que antes de ELSE de CASE pode ponto e vírgula} else writeln(´Valor não valido!´) end;

24 Aula 4 - V. 2 - Cida Livi case expressão of Sintaxe., : constante Comando* ; else Comando* end * Comando simples ou composto

25 Aula 4 - V. 2 - Cida Livi Vantagens e Desvantagens do CASE Desvantagem Serve como alternativa apenas para estruturas aninhadas IF-THEN-ELSE que testam igualdades valendo-se de variáveis ordinais. Não pode ser usada com strings ou reais, por exemplo!!! (IF-THEN-ELSE é mais abrangente!!) Vantagem O código produzido é mais claro. A lógica fica mais evidente.


Carregar ppt "Aula 4 - V. 2 - Cida Livi Algoritmos com Seleção Comando CASE."

Apresentações semelhantes


Anúncios Google