|
Usuários |
|
114 Usuários Online
|
|
[Artigos]
Definindo conjuntos de dados em Delphi |
Publicado por rboaro : Terça, Janeiro 22, 2013 - 08:16 GMT-3 (491 leituras)
4 Comentários Enviar para um amigo Versão para impressão
|
Vamos ver agora os conjuntos de tipos de dados usando Set Of. O set of permite você definir uma especie de range de algum tipo de dado (caracter, inteiro ou enumeration), por exemplo, um conjunto de 1 até 50 poderia ser declarado da seguinte maneira:
var
MeuConjunto : Set of 1..50;
Com esta declaração estamos criando uma variável de conjunto que pode receber até 256 valores que estejam dentro do intervalo pré-definido. Desta forma seria possível validar se um determinado numero está dentro deste conjunto:
MeuConjunto := [1..10,15,30..50];
if 6 in MeuConjunto then
ShowMessage('Está no conjunto')
else
ShowMessage('Não está no conjunto');
Este comando apresentaria a mensagem Está no conjunto, caso a validação fosse com um valor que está fora deste range, como por exemplo o numero 20, a mensagem seria Não está no conjunto.
Outra forma bem interessante de usar o Set Of é com tipos enumerados (enumerations):
type
TDiasSemana = (Domingo, Segunda, Terca, Quarta, Quinta, Sexta, Sabado);
var
DiasExpediente : Set of TDiasSemana;
begin
DiasExpediente := [Segunda..Sexta];
if Domingo in DiasExpediente then
ShowMessage('É dia de trabalhar')
else
ShowMessage('Folga!');
Com o código acima, basicamente determinamos um intervalo de valores compatíveis com o nosso tipo enumerado e validamos se um determinado valor estava dentro deste intervalo, é claro este valor deve ser de um tipo compatível com os valores do conjunto. Como Domingo não está dentro do intervalo da variável DiasExpediente, será apresentada a mensagem Folga!. Esta validação também poderia ser feita desta forma:
const
FIM_DE_SEMANA : Set of TDiasSemana = [Sabado, Domingo];
begin
if Segunda in FIM_DE_SEMANA then
ShowMessage('Folga!')
else
ShowMessage('Dia de trabalhar');
Como Segunda não esta no conjunto FIM_DE_SEMANA, será apresentada a mensagem Dia de trabalhar.
Existem algumas operações que podem ser feitas com conjuntos definidos com o Set Of, como por exemplo:
+ : Retorna a união entre dois conjuntos.
- : Retorna todos os dados do primeiro conjunto menos os dados do segundo conjunto.
* : Retorna os dados que forem comum entre os dois conjuntos.
=, <> : Valida se os dois conjuntos contenham os mesmo elementos ou não.
<= : Valida se o primeiro conjunto é um subconjunto do segundo.
>= : Valida se o segundo conjunto é um subconjunto do primeiro.
Vale a pena se aprofundar no assunto.
|
|
Comentários | |
| | Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos. |
por: marcoantoneo (marco@pgm.com.br)
: Jan 22, 2013 - 06:06 (Informações sobre o membro | Enviar uma mensagem)
|
boa tarde. parabéns pelo artigo esclareceu mtas formas q eu via de declaração de conjuntos mas q eu não compreendia mto beim.
Mas no inicio vc cita:
'MeuConjunto : Set of 1..50;
Com esta declaração estamos criando uma variável de conjunto que pode receber até 256 valores que estejam '
pergunto: Como vai aceitar até 256 valores se o período informado eh de 1 a 50?
obg pela atenção
|
|
|
Edição 112 |
|
|
50 Programas Fontes |
|
|
Produtos |
|
|