Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Verificar se numero está entre outros


robinhocne

Question

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......

Edited by robinhocne
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...