Página 1 de 1

índice ou número

Enviado: 09 Mai 2012 13:37
por MARCELOG
Olá pessoal,
estou criando uma caixa de seleção onde o usuário pode marcar uma ou várias opções.
Cada opção deve fazer referencia a um valor que será somado ou diminuído de um valor "x".
No final, em face do valor "x" devo verificar quais as opções foram selecionadas.
Exemplo:
opção A - 2
opção B - 4
opção C - 8
opção D - 16
opção E - 32

Se todas opções forem marcadas, o resultado é 64.
Logo, se "x" for 64, sei que o usuário marcou todas as opções.
Da mesma forma, se "x" for 6, sei que o usuário marcou as opções A e B.
Igualmente, se "x" for 24, sei que o usuário marcou as opções C e D.
Também, se o usuário selecionar as opções B e E, o valor de "x" será 36.
Contudo, devo "prever" e armazenar todas as opções possíveis.
Há alguma maneira prática do fazer o serviço?
Sei que o Windows usa a técnica em face dos múltiplos indicados.
Obrigado.

MarceloG

índice ou número

Enviado: 09 Mai 2012 14:05
por alxsts
Olá!
MARCELOG escreveu:Se todas opções forem marcadas, o resultado é 64
O resultado será 62.

Não seria melhor seguir o modo tradicional, analisando opção por opção?

Não conheço a "a técnica em face dos múltiplos indicados". Fiquei interessado.

índice ou número

Enviado: 09 Mai 2012 15:46
por rochinha
Amiguinho,

Geralmente esta técnica é interessante para o caso de economia de memória para variáveis.

Entendo que para fins prática seria interessante voce usar um vetor para armazenar o resultados:

- Selecionou adiciona letra no vetor. nVetor := AADD( cLetra, aVetor )
- Selecionou adiciona letra no vetor. nVetor := ADEL( aVetor, ASCAN( cLetra, aVetor ) )

Algo assim.

Inclusive se procurar aqui no forum por MARCELOG verá que ele deu uma aula de vetores.