Escolar Documentos
Profissional Documentos
Cultura Documentos
Tipos Ordinais
Linguagens de Programação
Nas aulas passadas...
▪ Tipos de dados que estão disponíveis por padrão em
máquinas contemporâneas
Byte byte
enum tipoCor{
vermelho = 101,
azul,
verde,
amarelo
type tipoCor = {vermelho, azul, verde, amarelo}; };
var cor : tipoCor; enum tipoCor cor;
Enumeração
▪ Normalmente não é permitido que um literal constante seja
usado em mais de uma enumeração
#include <stdio.h>
enum dias{
seg, ter, qua, qui, sex, sab, dom
};
enum fimDeSemaan{
sab, dom
};
int main(){
...
return 0; error:
error: redeclaration
redeclaration of
of enumerator
enumerator ‘sab’
‘sab’
} error:
error: redeclaration
redeclaration of
of enumerator
enumerator ‘dom’
‘dom’
Enumeração
▪ Normalmente não é permitido que um literal constante seja
usado em mais de uma enumeração
▪ Entretanto…
type LETRAS is ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
'Y', 'Z');
type VOGAIS is ('A', 'E', 'I', 'O', 'U');
enum Dia {
Segunda,
Terça,
Quarta,
Quinta,
Sexta,
Sábado,
Domingo
};
...
for(Dia d : Dia.values()){
System.out.println(d);
}
Enumeração
▪ Vantagens
– Legibilidade
int tema;
...
switch(tema){
case 0: //tema padrão
...
case 1: //tema dark
...
case 2: //tema light
...
case 3: //tema preto e branco
...
}
Enumeração
▪ Vantagens enum TemaCor{
TemaPadrao,
– Legibilidade TemaDark,
TemaLight,
TemaPretoBranco
};
TemaCor tema;
switch(tema){
case TemaPadrao:
...
case TemaDark:
...
case TemaLight:
...
case TemaPretoBranco:
...
}
Enumeração
▪ Vantagens
– Legibilidade
– Confiabilidade
●
Não permite operações aritméticas de inteiros
●
Não se pode definir valores fora da faixa
●
Não faz coerção para inteiros (enumeração ≠ inteiro)
Subfaixa / Intervalo de Inteiros
▪ Subsequência ordenada contínua de um tipo enumerado
▪ Normalmente são implementados da mesma forma que as
enumerações