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

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

Algoritmos com Seleção

Apresentações semelhantes


Apresentação em tema: "Algoritmos com Seleção"— Transcrição da apresentação:

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

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

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

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

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

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

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

8 {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; Aula 4 - V. 2 - Cida Livi

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

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

11 Aula 4 - V. 2 - Cida Livi

12 Aula 4 - V. 2 - Cida Livi

13 Aula 4 - V. 2 - Cida Livi

14 Classificado : boolean; Case Classificado of
Var Classificado : boolean; Case Classificado of true : writeln (´Candidato ´, Inscricao , classificado!´); false: writeln (´Candidato ´, Inscricao, ´desclassificado!´) end; Aula 4 - V. 2 - Cida Livi

15 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. Aula 4 - V. 2 - Cida Livi

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

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

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

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

20 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; Aula 4 - V. 2 - Cida Livi

21 Valores nas listas de constantes devem pertencer ao mesmo tipo ordinal do valor da expressão.
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; Aula 4 - V. 2 - Cida Livi

22 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; Aula 4 - V. 2 - Cida Livi

23 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; Aula 4 - V. 2 - Cida Livi

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

25 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. Aula 4 - V. 2 - Cida Livi


Carregar ppt "Algoritmos com Seleção"

Apresentações semelhantes


Anúncios Google