Clipper On Line • Ver Tópico - Duvida em Formula

Duvida em Formula

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

Duvida em Formula

Mensagempor juniorcamilo » 17 Mar 2017 14:47

Amigos..

o que pode ser:
compilado sem a função:
Procedure ErrorSys()
    ErrorBlock( {|e| DefError(e)} )
return .t.
function DefError(e)

return .t.


Function Main()  
  Local nPerDes  := 0.00
  Local nTotal   := 0.00
  Local nAcre    := 0.00
  Local nDesc    := 0.00
  Local nTot1    := (nTotal + (nTotal * ( nAcre/100 )))
  nPerdes  := nTot1 - nDesc
  nPerdes  := nPerdes/nTot1
  nPerdes  := 1 - nPerdes
  nPerdes  := nPerdes * 100
return .t.

O resultado de nPerdes := 0

Mas c compilar com a função da erro (Argument error)!!!!
Avatar de usuário

juniorcamilo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 343
Data de registro: 10 Nov 2006 08:12
Cidade/Estado: Pará
Curtiu: 29 vezes
Mens.Curtidas: 2 vezes

Duvida em Formula

Mensagempor juniorcamilo » 17 Mar 2017 15:22

Avatar de usuário

juniorcamilo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 343
Data de registro: 10 Nov 2006 08:12
Cidade/Estado: Pará
Curtiu: 29 vezes
Mens.Curtidas: 2 vezes

Duvida em Formula

Mensagempor JoséQuintas » 17 Mar 2017 16:50

Pra que complicar?
O problema é dividir por zero.

Function Main() 
Local nPerDes := 0, nTotal := 0, nAcre  := 0, nDesc  := 0, nTot1

nTot1  := ( nTotal + ( nTotal * ( nAcre/100 ) ) )
IF nTot1 == 0
   RETURN .T.
ENDIF
nPerdes := nTot1 - nDesc
nPerdes := nPerdes / nTot1
nPerdes := 1 - nPerdes
nPerdes := nPerdes * 100
RETURN .T.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Duvida em Formula

Mensagempor juniorcamilo » 18 Mar 2017 09:50

JoséQuintas escreveu:Pra que complicar?
O problema é dividir por zero.


sim sabia q era 'divisao por zero'!!, o que eu não sabia q o clipper tratava retornando '0', e a função
proc ErrorSys()
  ErrorBlock( {|e| DefError(e)} )
return
, em si não tratava !!!! ai q aprendi no post como tratar!!!mas infelizmente, primeiro eu postei e depois q achei como tratar(falha minha)!!!
e o exemplo q dei era só para teste(simples entendimento do que eu queria passar aki no fórum)!!
(Obs: quanto mais tempo passo em clipper..., vejo o tanto q essa ferramenta é incrível!!!)
Obrigado !!!
Avatar de usuário

juniorcamilo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 343
Data de registro: 10 Nov 2006 08:12
Cidade/Estado: Pará
Curtiu: 29 vezes
Mens.Curtidas: 2 vezes




Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Google [Bot] e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro