Ferramentas do usuário

Ferramentas do site


prog2:tipos_enumerados

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
prog2:tipos_enumerados [2019/04/25 15:22]
maziero [Tipos enumerados]
prog2:tipos_enumerados [2019/04/25 15:24] (atual)
maziero
Linha 1: Linha 1:
 +====== Tipos enumerados ======
 +
 +Enumerações,​ ou tipos enumerados, são tipos de dados definidos pelo programador. Uma variável de tipo enumerado pode assumir um valor dentre um conjunto fixo de valores possíveis previamente definido.
 +
 +Um tipo enumerado é visto como um caso especial de tipo inteiro. Variáveis de tipos enumerados são implementadas pelo compilador usando valores inteiros, mas isso é transparente para o programador.
 +
 +Um exemplo simples de declaração de tipos enumerados:
 +
 +<code c>
 +// definição do tipo enumerado
 +enum Color_t { BLACK, BLUE, GREEN, RED, YELLOW, WHITE } ;
 +
 +// declaração de variável do tipo enum Color_t
 +enum Color_t c1;
 +</​code>​
 +
 +A definição do tipo enumerado também pode ser feita usando ''​typedef'':​
 +
 +<code c>
 +typedef enum { BLACK, BLUE, GREEN, RED, YELLOW, WHITE } Color_t ;
 +
 +Color_t c1;
 +</​code>​
 +
 +Variáveis enumeradas podem ser usadas como variáveis inteiras:
 +
 +<code c>
 +// atribuição
 +c1 = GREEN ;
 +
 +// uso
 +if (c1 == RED) { ... }
 +
 +// os valores enumerados têm uma ordem definida
 +if (c1 >= BLUE && c1 <= YELLOW) ​ { ... }
 +
 +// variáveis enumeradas podem ser incrementadas
 +c1 = BLACK ;
 +while (c1 <= WHITE)
 +{
 +  ...
 +  c1++ ;
 +}
 +</​code>​
 +
 +Por default, o primeiro valor de um tipo enumerado vale 0 (zero), o segundo valor vale 1 e assim por diante. Esses valores podem ser alterados se isso for conveniente:​
 +
 +<code c>
 +typedef enum {
 +  BLACK = 1,
 +  BLUE,
 +  GREEN,
 +  RED = 10,
 +  YELLOW,
 +  WHITE
 +} Color_t ;
 +</​code>​
 +
 +Os valores inteiros associados à enumeração são:
 +
 +^  valor simbólico ​ ^  valor original ​ ^  valor com atribuição ​ ^
 +|  ''​BLACK'' ​ |  0  |  1  |
 +|  ''​BLUE'' ​ |  1  |  2  |
 +|  ''​GREEN'' ​ |  2  |  3  |
 +|  ''​RED'' ​ |  3  |  10  |
 +|  ''​YELLOW'' ​ |  4  |  11  |
 +|  ''​WHITE'' ​ |  5  |  12  |
 +
 +Tipos enumerados podem ser usados para tornar o código mais legível e também diminuir erros devidos a valores imprevistos em variáveis. Um exemplo clássico de uso de tipos enumerados é a definição de um tipo booleano em C:
 +
 +<code c>
 +typedef enum
 +{
 +  FALSE = 0,
 +  False = 0,
 +  false = 0,
 +  TRUE  = 1,
 +  True  = 1,
 +  true  = 1
 +} bool_t ;
 +
 +bool_t flag ;
 +</​code>​
 +
 +===== Exercícios =====
 +
 +  - Escreva um programa em C capaz de classificar os alunos de uma determinada matéria de acordo com sua situação. O programa deve ser capaz de:
 +    - Ler os dados do aluno referentes a sua nota na disciplina e sua frequência.
 +    - Classificar o aluno pelas enumerações ''​Aprovado'',​ ''​Exame Final''​ ou ''​Reprovado''​ de acordo com os dados obtidos.
 +  - Escreva um programa em C capaz de receber um número e classificá-lo,​ por meio de tipos enumerados, entre número par ou impar; positivo, negativo ou zero; palíndromo ou não-palíndromo;​ múltiplo de 10 ou não múltiplo;
 +  - Escreva um programa em C que leia uma determinada sequência de caracteres, que seja capaz de classificar cada um deles entre ''​letra'',​ ''​pontuação''​ e ''​caractere especial''​ e guarde os dados em uma estrutura. Para o caso de letras, o programa deve ainda classificá-las,​ por meio de enumerações,​ entre ''​maiúsculas''​ e ''​minúsculas'';​ ''​vogais''​ e ''​consoantes''​.
  
prog2/tipos_enumerados.txt · Última modificação: 2019/04/25 15:24 por maziero