Só complementando: em algumas faculdades isso se estuda na disciplina de 
cálculo numérico (mas integral e diferencial são pre-requisitos, assim como 
álgebra linear). Não deve ser de muito "fácil acesso" para quem não tem base 
matemática (confesso que para mim não foi tão fácil assim), mas dá para 
entender muita coisa se alguém se dispuser a ler um pouco.

Lá você vai estudar: Erro nas aproximações numéricas, Resolução numérica de 
equações diferenciais de grau superior, equações de diferenças finitas, 
diferenciação e integração numérica, técnicas de otimização, métodos 
matemáticos. (este último já faz parte de outra disciplina mas você vê uma 
pequena introdução em CN).

Pra quem se interessar, uma lista de livros sobre o assunto:

-Barroso, Cálculo Numérico, Ed. Harba (eu estudei por este).
-Ruggiero, C.Numérico, Makron (Não gostei muito).
-Martins, Cálculo Numérico Computacional, Atlas
-Lindfield, Metodos Num. usando Matlab, Ellis Horwood
-Teukolsky, Receitas Numéricas usando C-W.Press
-Humes-Noções de cálculo numérico (bom p/iniciantes).
-Barros, Introd. ao CN, Blucher. (muito bom p/iniciantes).

E para os amigos programadores: 2 + 2 tem que ser igual a 4 sim, pelo menos 
nos nossos sistemas, que o processador faça de outra forma tudo bem, mas o 
resultado tem que ser esse. E quando você comparar uma variável que tenha 2 
com outra que tenha 2, o resultado tem que ser true.
Nas novas linguagens, estos problemas estão minimizados, com funções 
específicas.
Mas tudo bem, cada cabeça é um mundo-é assim que nascem as nova idéias.

williams

*-------------------------------------------
Williams Díaz
[EMAIL PROTECTED]
http://www.interban.com.br

----- Original Message ----- 
From: "Delphi" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, November 17, 2004 2:20 PM
Subject: Re: [delphi-br] Re: Cálculo



Caros colegas,

esta última conclusão do Walter esclarece o assunto, o que pode parecer um 
"problema" para nós, não significa um bug do sistema e muito menos da 
liguagem de programação. O fato é que 8.11-8.11 não é igual à Zero, como 2+2 
não é exatamente 4. Pode ser de difícil compreensão ou assimilação para 
programadores que não estudam a área de exatas. Para quem se interesse pelo 
assunto, a disciplina que trata do mesmo chama-se Cálculo Diferencial e 
Integral, e de fácil acesso. O interressante nesta discussão é o fato do que 
parece de difícil compreensão para alguns hoje, mesmo aceitando, e sem 
querer saber o "por quê? " existe hoje  a telefonia celular, e nem 
precisaríamos voltar tanto no tempo, qualquer um de nós que falasse em 
aparelhos de telefone sem fio e com câmera fotográfica digital há 50 anos 
atrás, seria considerado louco. Voltando à informática, grandes empresas 
hoje, tem seu cabeamento todo feito por cabos de fibra óptica. Em qualquer 
livro de Física de 2º grau, encontramos que a luz é uma onda composta pelas 
sete cores do arco-íris, que somandas formam a "luz branca" que conhecemos, 
e ainda que quando nós olhamos um tecido azul, a composição do pigmento do 
tecido absorve a "onda azul" e reflete as outras, ai a sensação da cor azul, 
já a cor preta absorve todas e a branca reflete todas, por isso também ao 
saírmos no sol, uma camiseta preta aquece muito mais do que uma branca, e 
por ai vai... Para que estuda programação ou tem curiosidade procure por 
métodos numérios, dentre eles, "o método de Newton-Raphson" e compreenderá o 
significado do resultado "problemático" apresentado, e entenderá neste 
pequeno exemplo a grandiosidade da matemática.

É importante ressaltar o que o Walter disse " o erro, quem faz, somos nós", 
o que hoje mesmo nos comunicando como estamos agora, via internet, com 
pessoas que nunca sequer imaginariámos existir, parece problema, já não o 
era por volta de 1684, quando Newton e Leibniz "descobriram" ou mais certo 
"decodificaram" o cálculo diferencial integral presente na natureza, que faz 
com que um floco de neve visto ao microscópio apresente uma estrura 
geométrica perfeita, ou ainda que uma abelha construa uma colmeia com 
casulos hexagonais de arestas exatamente iguais, o cálculo, senhores é uma 
maravilha oculta na natureza, e pelo seu estudo, o homem se difere dos 
outros, isso nos faz "homens", a vontade de "descobrir" o por quê das 
coisas, e não aceitar em somente fazer uma comeia com lados de comprimento 
identicos !

Sugestão pessoal: que não viu, assitam o filme " Uma mente brilhante "

abraços

Fabio Torres Takeuchi
Engenheiro Químico
  ----- Original Message ----- 
  From: Walter Alves Chagas Junior
  To: '[EMAIL PROTECTED]'
  Sent: Wednesday, November 17, 2004 3:30 PM
  Subject: RES: [delphi-br] Re: Cálculo


  Williams

  Isto não é erro e nem Bug. É um problema, realmente, pois o Ponto 
flutuante
  é assim e fica complicado usá-lo em aplicações comerciais que exigem
  fechamento de valores exatos (O Ponto flutuante nunca é exato, ele é
  infinito). Ele é um problema pra nós, mas nunca um erro. O erro, quem faz,
  somos nós :)



  []s

  Walter Alves Chagas Junior
  Projeto e desenvolvimento
  Telemont Engenharia de telecomunicações
  [EMAIL PROTECTED]
  Fone: (31) 3389-8215 Fax: (31) 3389-8200



  > -----Mensagem original-----
  > De: Williams Diaz [mailto:[EMAIL PROTECTED]
  > Enviada em: quarta-feira, 17 de novembro de 2004 13:18
  > Para: [EMAIL PROTECTED]
  > Assunto: Re: [delphi-br] Re: Cálculo
  >
  >
  >
  > Pode sim, inclusive é um erro documentado da borland com relação aos
  > processadores (não dá em todos). O problema é quando você
  > compara um com
  > outro (if umo = outro então.... ) eles nunca são iguais,
  > mesmo que sejam.
  > Fiz uma opção de arredonda para isso, ou seja para retirada
  > das sujeiras. A
  > borlando recomenda que ao comparar dois números float
  > subtraia os dois e
  > compare o resultado, se ele for muito, muito pequeno, então
  > são "iguais".
  >
  > Abaixo o que a borland fala sobre isso.
  >
  > Problems comparing floating point numbers. - by Inprise
  > Developer Support
  > Staff
  > Abstract:Floating point numbers cannot be accurately compared for
  > equality.
  >
  > Because of the way floating point numbers are represented by
  > the computer
  > there can be inconsistencies when comparing two numbers that
  > appear to be
  > identical. Unlike integers, IEEE floating point numbers are only
  > approximates, not exact numbers. The need to convert the numbers to a
  > form the computer can store in binary leads to minor precision or
  > round-off deviations. For example 1.3 may really be represented as
  > 1.29999999999.
  >
  > There may particularly be problems when using conversion
  > functions such as
  > StrToFloat, TextToFloat and StrToCurr. Therefore you should
  > never use = or
  > <> to compare two floating point numbers. Instead, subtract
  > the two numbers
  > and compare them against a very small number.
  >
  > Example:
  > procedure TForm1.Button1Click(Sender: TObject);
  > var
  >   f1, f2 : double;
  > begin
  >   f1 := 1.3000000;
  >   f2 := 1.2999999;
  >   if abs(f1-f2) < 0.00001
  >   then ShowMessage('f1 and f2 are equal')
  >   else ShowMessage('f1 and f2 are not equal');
  > end;
  >
  > Add or View comments on this article
  > Products:
  > Borland Delphi 5.x
  > Platforms:
  > Windows 95 1.00B; Windows 98 1.0; Windows NT 4.0
  > Article ID: 22507 Publish Date: July 21, 2000 Last Modified: October
  > 02, 2000
  >
  >
  > *-------------------------------------------
  > Williams Díaz
  > [EMAIL PROTECTED]
  > http://www.interban.com.br
  >
  > ----- Original Message ----- 
  > From: "dom_rr2004" <[EMAIL PROTECTED]>
  > To: <[EMAIL PROTECTED]>
  > Sent: Wednesday, November 17, 2004 12:59 PM
  > Subject: [delphi-br] Re: Cálculo
  >
  >
  >
  >
  > Boa tarde! Desculpem a intromissão mas achei a questão curiosa. Como
  > pode 8,100 - 8,100 = 0,000000000000000035561831257245 ?
  >
  >
  > Antecipadamente agradeço
  >
  > --- Em [EMAIL PROTECTED], "Delphi" <[EMAIL PROTECTED]>
  > escreveu
  > > Na verdade, quanto a matemática isto é apenas um interpretação
  > errada de aproximação decimal. A sobra está sendo apresentada em
  > simbologia científica (potência de base dez) ou seja, (-
  > 3,5561831257245E-16) representa matematimamente -
  > 0,000000000000000035561831257245, o que notóriamente é admitido como
  > sendo Zero. Sendo assim podemos considerar a "distância" entre 0 e 1,
  > ou como 0 e -1, como sendo infinita, ou seja, não como se determinar
  > quantas divisões podem haver no intervalo -1> = 0< =1. O que acontece
  > no cotidiano é a aproximação do resultado numérico através do Cálculo
  > Diferencial e Integral, para que possamos ter a sensação de
  > quantidade, ou seja, 0,1,2,3....
  > >
  > > Qto ao programa, o resultado apresentado está correto, vc deve
  > apenas "arredondar" o resultado a ser exibido.
  > >
  > > Fabio Torres Takeuchi
  > > Engenheiro Químico
  > >   ----- Original Message ----- 
  > >   From: Depto de Informatica
  > >   To: [EMAIL PROTECTED]
  > >   Sent: Wednesday, November 17, 2004 1:31 PM
  > >   Subject: [delphi-br] Cálculo
  > >
  > >
  > >   Caros colegas,
  > >
  > >   Utilizo o Delphi 5, Access e ADO. O que está acontecendo é o
  > seguinte: Tenho um campo do tipo DECIMAL em uma determinada tabela
  > que contém o saldo do produto. Quando eu dou a saída de uma
  > determinada quantidade deste produto o sistema deverá testar se o
  > saldo não fica negativo. Neste campo eu tenho um saldo de 8,100 mas
  > quando vou dar saída destes 8,100 (devería ficar com zero de saldo)
  > ele me diz que o saldo ficará negativo e o valor que o sistema
  > apresenta como sendo o saldo restante é -3,55618312575245E-16.
  > >
  > >   Ou seja o sistema está me mostrando que:  8,100 - 8,100 = -
  > 3,55618312575245E-16
  > >
  > >   Como resolver isso ?
  > >
  > >   Obrigado
  > >
  > >   Luiz Carlos
  > >
  > >
  > >   [As partes desta mensagem que não continham texto foram removidas]
  > >
  > >
  > >
  > >   -- 
  > >   <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
  > >
  > >   Para ver as mensagens antigas, acesse:
  > >   http://br.groups.yahoo.com/group/delphi-br/messages
  > >
  > >   Para falar com o moderador, envie um e-mail para:
  > >   [EMAIL PROTECTED] ou [EMAIL PROTECTED]
  > >
  > >
  > >
  > >         Yahoo! Grupos, um serviço oferecido por:
  > >
  > >                     São Paulo Rio de Janeiro Curitiba Porto Alegre
  > Belo Horizonte Brasília
  > >
  > >
  > >
  > >
  > > --------------------------------------------------------------------
  > ----------
  > >   Links do Yahoo! Grupos
  > >
  > >     a.. Para visitar o site do seu grupo na web, acesse:
  > >     http://br.groups.yahoo.com/group/delphi-br/
  > >
  > >     b.. Para sair deste grupo, envie um e-mail para:
  > >     [EMAIL PROTECTED]
  > >
  > >     c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos
  > do Serviço do Yahoo!.
  > >
  > >
  > >
  > > [As partes desta mensagem que não continham texto foram removidas]
  >
  >
  >
  >
  >
  > -- 
  > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
  >
  > Para ver as mensagens antigas, acesse:
  >  http://br.groups.yahoo.com/group/delphi-br/messages
  >
  > Para falar com o moderador, envie um e-mail para:
  >  [EMAIL PROTECTED] ou [EMAIL PROTECTED]
  >
  > Links do Yahoo! Grupos
  >
  >
  >
  >
  >
  >
  >
  >
  >
  >
  >
  > -- 
  > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
  >
  > Para ver as mensagens antigas, acesse:
  >  http://br.groups.yahoo.com/group/delphi-br/messages
  >
  > Para falar com o moderador, envie um e-mail para:
  >  [EMAIL PROTECTED] ou [EMAIL PROTECTED]
  >
  > Links do Yahoo! Grupos
  >
  >
  >
  >
  >
  >
  >
  >


  [As partes desta mensagem que não continham texto foram removidas]



  -- 
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



        Yahoo! Grupos, um serviço oferecido por:







------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do 
Serviço do Yahoo!.



[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]

Links do Yahoo! Grupos











-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a