USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Ler lista de números
Kayowa
SÃO GONÇALO
RJ - BRASIL
Postada em 11/04/2006 23:52 hs         
Bom Noite. Referênte à programação abaixo tenho a soma correta. A subtração não subtrai, mas soma dando o resultado na negativa. A multiplcação dá erro 6 overflow (no baco da dados são 8 dezenas somente). Com isso já me perco na divisão que nem fiz ainda. Alquém pode me ajudar a identificar os erros.
Muito obrigado


Option Explicit
Dim Areadados As Database
Dim Lista As Recordset
Dim soma, subtracao, multiplicacao As Integer
Dim divisao As Currency
Dim total As Currency

Public Sub Abrir_Bancodados()
Set Areadados = DBEngine.Workspaces(0).OpenDatabase(App.Path & "MSF.mdb")
Set Lista = Areadados.OpenRecordset("Lista", dbOpenTable)
Lista.Index = "PrimaryKey"
End Sub


Private Sub cmdokmultiplicao_Click()
Call Abrir_Bancodados
multiplicacao = 0
While Not Lista.EOF
total = total * Lista("numeros")
Lista.MoveNext
Wend
Lbrespostac.Caption = total
End Sub

Private Sub cmdoksoma_Click()
Call Abrir_Bancodados
soma = 0
While Not Lista.EOF
total = total + Lista("numeros")
Lista.MoveNext
Wend
LbrespostaA.Caption = total
End Sub
Private Sub cmdoksubtracao_Click()
        Call Abrir_Bancodados
        subtracao = 0
    While Not Lista.EOF
        total = total - Lista("numeros")
        Lista.MoveNext
    Wend
    LbrespostaB.Caption = total
          
End Sub

TÓPICO EDITADO
   
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 12/04/2006 09:50 hs            
Multiplicação:
O erro Overflow é pq vc definiu a variavel como INTEGER, que é limitada a 2x10^16... isso pouco mais q 30000... toca por LONG...
se continuar dando esse erro, troca por DOUBLE

Subtração:
Nesse caso, o erro é de logica... vamso fazer uma simulação com valores:
inicialmente vc tem a variavel com 0. Ai subtrai o primeiro valor (2, por exemplo), entao fica com -2... Ai subtrai o segundo valor (4, por exemplo), entao fica com -6... assim por diante...
Sinceramete nao entendi o q vc quer fazer com essa subtração... para subtrair, vc precisa subtrair de ALGO... vc ta iniciando com ZERO... esse é o erro.

Divisao:
Bem, vou adiantar já o q vai dar erro na sua subtração... vc vai precisar de algo do que dividir... vai acontecer o mesmo q na subtração...

Posso fazer uma pergunta: PRA Q VC QUER ISSO TUDO ?????


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

     
Alê35
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 12/04/2006 10:03 hs         
Olá Kayowa, bom dia.
 
Aparentemente são erros simples e distintos:
 
1 - Na Sub cmdokmultiplicao_Click() você inicializa a variável "multiplicacao" com zero mas não a utiliza, pelo contrário você está utilizando a variável "total" que a cada loop na sua lista, agrega a multiplicação do campo "numeros". Isto está gerando um resultado exponencial que está excedendo o limite que a memória suporta.

2 - Na Sub cmdoksoma_Click() você inicializa a variável "soma" com zero mas não a utiliza, pelo contrário você está utilizando a variável "total" que a cada loop na sua lista, agrega a soma do campo "numeros". Você obtem o resultado esperado por que é exatamente isso que a rotina está fazendo. Acumulando valores numa variável.
 
3 - Na Sub cmdoksubtracao_Click() você inicializa a variável "subtracao" com zero mas não a utiliza, pelo contrário você está utilizando a variável "total" que a cada loop na sua lista, subtrai o valor do campo "numeros". Como a variavel "Total" começa com zero, você obtem o resultado negativo por que é exatamente isso que a rotina está fazendo. Acumulando valores numa variável com o sinal negativo.
 
Minha sugestão é que você reveja suas fórmulas.
 
Espero ter colaborado.
 
Boa sorte!
   
Kayowa
SÃO GONÇALO
RJ - BRASIL
ENUNCIADA !
Postada em 12/04/2006 18:09 hs         
Muito obrigado em responderem. Comecei a pouco tempo, três meses, num curso de VB e logo de cara tive esse  exercício de casa para fazer e estou tentando resolver para entregar esta semana. Estou ainda com muita dúvida e só vou estar com o professor, na seg, e não poderi tirar as dúvidas. Novamente agradeço. 
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página