Estruturas de Controlo em Pascal Estrutura de Selecção – “Case Of…”
Estrutura de Selecção – “Case Of…”
A estrutura “Case…Of…” é uma estrutura de selecção ou escolha múltipla com base numa variável de controlo ou selector. A sua sintaxe genérica é a seguinte: Case <variável> Of <valor1>: <Instrução1>; <valor2>: <Instrução2>; … <valorN>: <InstruçãoN>; [Else: <InstruçãoZ>]; End
Irene Maciel
2
Estrutura de Selecção – “Case Of…”
Os termos <valor1>, <valor2>, <valorN> indicam valores possíveis da variável de controlo.
Valores isolados;
1: <instrução1>; 2: <instrução2>;
Conjunto de valores;
Por enumeração
1,2,3,4: <instrução1>; 5,6,7,8,9: <instrução2>;
Por indicação de subconjuntos de valores consecutivos
1..4: <Instrução1>; 5..9: <instrução2>; Irene Maciel
3
Estrutura de Selecção – “Case Of…”
As instruções <instrução1>, <instrução2>, etc., podem ser instruções simples ou instruções compostas.
Caso as instruções sejam compostas devem ser delimitados por pares “ begin… end”.
A cláusula Else pode ser utilizada nas estruturas Case e, tal como nas estruturas IF, é opcional.
Irene Maciel
4
Estrutura de Selecção – “Case…Of…” Exemplos de aplicação da estrutura CASE
1.
Estrutura CASE em que cada caso é indicado por um único valor inteiro
Program case1; var dias :integer ; begin Writeln ('Introduza um valor correspondente a um dia da semana! '); readln(dias); case dias of 1: Writeln ('Segunda'); 2: Writeln ('Terca'); 3: Writeln ('Quarta'); 4: Writeln ('Quinta'); 5: Writeln ('Sexta'); 6: Writeln ('Sabado'); 7: Writeln ('Domingo'); Else writeln('Não existe dia da semana com esse valor'); end; End.
5
Estrutura de Selecção – “Case…Of…” 2.
Estrutura CASE em que cada caso é indicado por numeração de valores Program case2; Var X, Y: Integer; Op: Char; Begin Writeln ('Introduza dois valores'); Readln (X,Y); Writeln ('Introduza uma operação'); Writeln (' A- Soma S- Subtracção M- Multiplicação D - Divisão '); Readln (Op); Case Op Of 'A', 'a': Writeln ('A soma é: ', X+Y); 'S', 's': Writeln ('A diferença é: ', X-Y); 'M', 'm': Writeln ('O produto é: ', X*Y); 'D', 'd': Writeln ('O quociente é: ', X/Y); Else Writeln ('Caracter Inválido'); end End.
6
Estrutura de Selecção – “Case…Of…” 2.
Estrutura CASE em que cada caso é indicado por numeração de valores
Obs: O facto da variável de controlo da estrutura Case ser agora do tipo de carácter (Char), obriga a que os valores dos caracteres sejam incluídos dentro de plicas ou apóstrofes. Em cada caso o utilizador pode introduzir: a letra maiúscula e a letra minúscula, por isso, esses dois valores são indicados por enumeração, juntos no mesmo caso e separados por vírgulas.
Irene Maciel
7
Estrutura de Selecção – “Case…Of…” 3.
Estrutura CASE em que cada caso é indicado por um subconjunto de inteiros
Program Case3; Var Nota: Real; NotaInt: Integer; Nivel: String; Begin Writeln („Escreva uma classificação: 0 a 20‟); Readln(Nota); NotaInt:= Round (Nota); Case NotaInt Of 0..4: Nivel:= „Mau‟; 5..9: Nivel:= „Medíocre‟; 10..13: Nivel:= „Suficiente‟; 14..17: Nivel:= „Bom‟; 18..20: Nivel:= „Muito bom‟; Else Nivel:= „Nivel Inválido‟ End; Writeln („A classificação corresponde a: ‟, Nivel); End.
8
Estrutura de Selecção – “Case…Of…” 3.
Estrutura CASE em que cada caso é indicado por um subconjunto de inteiros
Obs. Neste exemplo, a variável utilizada como selector na estrutura Case não pode ser Nota, porque esta é do tipo Real; assim definimos uma outra variável NotaInt, a que é atribuído o valor inteiro arredondado da variável Nota (através da função Round) Tipos de dados: Char carácter string cadeia de caracteres
Irene Maciel
9
Estrutura de Selecção – “Case…Of…” 4.
Estrutura CASE em que alguns casos contêm instruções compostas
Program Case4; Var N1, N2: Real; Op: Char; soma, subtraccao: Real; Begin Writeln („Introduza 2 números‟); Read (N1,N2); Writeln („Escolha um operação com a letra indicada‟); Writeln („A – calcular a soma dos dois números‟); Writeln („B – calcular a subtracção dos dois números‟); Read (Op); Case Op Of „A‟,‟a‟: begin soma:= N1+N2; Writeln („A Soma é: ‟, soma:0:0); end; „B‟,‟b‟: begin subtraccao:= N1-N2; Writeln („A Subtracção é: ‟, subtraccao :0:0); end; Else Writeln („Escolha inválida‟); End End.
10
Estrutura de Selecção – “Case…Of…” 4.
Estrutura CASE em que alguns casos contêm instruções compostas
Obs. Ao conjunto de instruções deve ser incluído dentro de um par de delimitadores Begin-End, como no exemplo anterior.
Irene Maciel
11