Ajuda - Busca - Membros - Calendário
Versão Completa: Resto de divisao PONTO FLUTUANTE
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
jhonantan_soad
Em um programa eu preciso saber se un numero é positivo e inteiro.
Intao o unico geito q eu conheço para saber se um numero é ou não inteiro é dividir o numero por 1, e se o resto for maior que zero intao o numero não é inteiro, mas como que eu obtenho esse resto sem o "mod" ,porque o "mod" é somente para numeros inteiros. Intão se alguém puder me ajudar agradeço.
Obrigado
Jhonas
QUOTE
Em um programa eu preciso saber se un numero é positivo e inteiro.
Intao o unico geito q eu conheço para saber se um numero é ou não inteiro é dividir o numero por 1, e se o resto for maior que zero intao o numero não é inteiro, mas como que eu obtenho esse resto sem o "mod" ,porque o "mod" é somente para numeros inteiros. Intão se alguém puder me ajudar agradeço.
Obrigado


Pelo visto está perecendo um execício que o professor pediu.... rs

Os números inteiros são constituídos dos números naturais {0, 1, 2, ...} e dos seus
opostos {0, -1, -2, ...}. Dois números são opostos se, e somente se, sua soma é zero.
Por vezes, no ensino pré-universitário, chamam-se a estes números inteiros relativos.

Um número natural é um número inteiro não-negativo (0, 1, 2, 3, ...).
Em alguns contextos, número natural é definido como um número inteiro positivo,
i.e., o zero não é considerado como um número natural.

INTEIRO: qualquer número inteiro, negativo, nulo ou positivo
Ex.: -15, 0, 101

REAL: qualquer número real, negativo, nulo ou positivo
Ex.: -1, -0.5, 0, 5, 9.5


O operador MOD retorna o Resto de uma divisão com numeros inteiros
EX: 7 mod 2 = 1

O operador DIV retorna o Resto de uma divisão com numeros inteiros
EX: 7 div 2 = 3

O operador / retorna o Resto de uma divisão com numeros inteiros e reais
EX: 7 / 2.5 = 2.8

Em um programa eu preciso saber se un numero é positivo e inteiro.

Então o programa ficaria assim:

CODE
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var i,n : real;
begin
   if not (key in ['0'..'9',',','-',#8,#13]) then
      key := #0;

   if key = #13 then
      begin
         i := strtofloat(Edit1.Text);

         if i = 0 then
            begin
               showmessage(' O numero ' + floattostr(i) + ' é um numero inteiro nulo.');
               exit;
            end
         else
            n := i / int(i);

         //showmessage(floattostr(n));

         if (n > 1) and (i > 0) then
            showmessage(' O numero ' + floattostr(i) + ' não é um numero inteiro positivo.');

         if (n = 1) and (i > 0) then
            showmessage(' O numero ' + floattostr(i) + ' é um numero inteiro positivo.');

         if (n > 1) and (i < 0) then
            showmessage(' O numero ' + floattostr(i) + ' não é um numero inteiro negativo.');

         if (n = 1) and (i < 0) then
            showmessage(' O numero ' + floattostr(i) + ' é um numero inteiro negativo.');
      end;
end;


OBS: Voce precisa estudar mais sobre o delphi

abraço
jhonantan_soad
Jhonas, olha eu sei q preciso aprender muita coisa sobre o delphi ainda, estou começando aprender delphi agora no meu curso e por isso tem algumas coisas q você usou na estrutura do codigo que eu não conheço ainda sera que dava pra você me explicar direito. Tipo "key" , "#" na frente de um numero.
Obrigado pela paciencia.
Jhonas
QUOTE
estou começando aprender delphi agora no meu curso e por isso tem algumas coisas q você usou na estrutura do codigo que eu não conheço ainda sera que dava pra você me explicar direito. Tipo "key" , "#" na frente de um numero.


CODE
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var i,n : real;
begin
   if not (key in ['0'..'9',',','-',#8,#13]) then
      key := #0;

   if key = #13 then



o evento de OnKeyPress registra o caracter ASCII da tecla apertada, onde Key é uma variavel do tipo Char ( caracter )

EX: quando voce tecla o caracter "A" do teclado, a variavel Key receberá o caracter ASCII correpondente a ele

A = #65 ou chr(65)

Um controle de string ( # ) é uma sucessão de um ou mais caráter de controle em cada qual consistem o ( # ) símbolo seguido por uma constante sem sinal de 0 a 255 (decimal ou hexadecimal) e denota o caráter ASCII correspondente.

Exemplo:

#89#79#85

é equivalente a string

' You'

seguindo este raciocínio temos então:

#8 correponde a tecla "TAB"
#13 correponde a tecla "Enter"
#89 correponde a tecla "Y"
#79 correponde a tecla "o"
#85 correponde a recla "u"

e por ai vai ....

Descobrir o código ASCII de uma tecla:

- Coloque um Label no form (Label1);

- Mude a propriedade KeyPreview do form para true;

- Altere o evento OnKeyDown do form como abaixo:

CODE
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Label1.Caption :=  Format('O código da tecla pressionada é: %d', [Key]);
end;



Observações

Para testar execute e observe o Label enquanto pressiona as teclas desejadas.

abraço


Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.