Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Verificar se numero está entre outros


robinhocne

Pergunta

Como faço para verificar se um numero está entre outros....tipo creio que isso seja básico, mas não estou conseguindo....estava.....fazendo assim

if 283 in [279..309] then
        begin
          ShowMessage('SIM!!');
          exit;
        end;

mas não entra nessa condição..... uma ajuda ai......

Editado por robinhocne
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Help do Delphi

Operator__Operation_Operand types_____Result type_____Example

+_______ union_____set_____set_______Set1 + Set2

-________difference__set_____set_______S - T

*________intersection________set_______set___________S * T

<=______subset_____set_____Boolean___Q <= MySet

>=_______superset__set_____Boolean___S1 >= S2

=________equality___set_____Boolean___S2 = MySet

<>_______inequality_set_____Boolean___MySet <> S1

in________membership______ordinal, set_Boolean_______A in Set1

O operador IN só usa operandos do tipo ordinal ou set ...

então para o seu código funcionar deveria se assim:

if 283 in [279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289] then
   begin
      ShowMessage('SIM!!');
      exit;
   end;
uma maneira mais pratica seria dessa forma:
var
  Form1: TForm1;
  Vector: array of Integer;
implementation

{$R *.dfm}

function IntegerInArray(Value: integer; Vector: array of integer): Boolean;
var I: Integer;
begin
   Result := False;
   for I := 1 to Value do
   Result := Result or (Value = Vector[I]);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
    k : integer;
begin
   // definir uma matriz de 10 elementos
   SetLength(Vector, 9);
   // atribuir valores a matriz de 0 a 9
   for k := Low(Vector) to High(Vector) do
       Vector[k] := k;

   // testar se o numero esta dentro da matriz
   if IntegerInArray(10,Vector) then
      showmessage('sim')
   else
      showmessage('não'); // o 10 esta fora dos valores da matriz ( 0..9 )
end;

ou voce pode tentar endender funções mais avançadas em delphi

http://www.rosseeld.be/DRO/PIC/BitUtils.mpas

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Help do Delphi

Operator__Operation_Operand types_____Result type_____Example

+_______ union_____set_____set_______Set1 + Set2

-________difference__set_____set_______S - T

*________intersection________set_______set___________S * T

<=______subset_____set_____Boolean___Q <= MySet

>=_______superset__set_____Boolean___S1 >= S2

=________equality___set_____Boolean___S2 = MySet

<>_______inequality_set_____Boolean___MySet <> S1

in________membership______ordinal, set_Boolean_______A in Set1

O operador IN só usa operandos do tipo ordinal ou set ...

então para o seu código funcionar deveria se assim:

if 283 in [279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289] then
   begin
      ShowMessage('SIM!!');
      exit;
   end;
uma maneira mais pratica seria dessa forma:
var
  Form1: TForm1;
  Vector: array of Integer;
implementation

{$R *.dfm}

function IntegerInArray(Value: integer; Vector: array of integer): Boolean;
var I: Integer;
begin
   Result := False;
   for I := 1 to Value do
   Result := Result or (Value = Vector[I]);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
    k : integer;
begin
   // definir uma matriz de 10 elementos
   SetLength(Vector, 9);
   // atribuir valores a matriz de 0 a 9
   for k := Low(Vector) to High(Vector) do
       Vector[k] := k;

   // testar se o numero esta dentro da matriz
   if IntegerInArray(10,Vector) then
      showmessage('sim')
   else
      showmessage('não'); // o 10 esta fora dos valores da matriz ( 0..9 )
end;
ou voce pode tentar endender funções mais avançadas em delphi http://www.rosseeld.be/DRO/PIC/BitUtils.mpas abraço
Jhonas valeu pela dica....mas consegui resolver utilizando a função InRange
if InRange(283, 279, 309) then 
    begin 
      ShowMessage('SIM!!'); 
      exit; 
    end;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...