Ir para conteúdo
Fórum Script Brasil
  • 0

números no vb6


danielprince

Pergunta

Bem, estou preparando o visual basic para fazer cálculos com números REALMENTE grandes, então gostaria de umas dicas.

1 - Eu não poderia tratá-los como nenhuma dos tipos de variáveis, pois cada uma tem um tamanho limite, e mesmo sendo gigantesco o tamanho limite de, por exemplo, uma string, existe esse tamanho limite e não queria essa limitação. Estou pensando de criar um arquivo ou várias partes de arquivos e carregá-lo em cada nova operação. ou talvez dividir em várias strings, o que compensa mais? de qualquer maneira, eu vou ter que salvar e depois carregar então acho arquivos mais interessante, o que vocês acham?

2 - Eu teria que "ensinar" o VB a fazer contas, certo? pois acho que o vb não conseguirá fazer contas desse tamanho, tipo, milhões até bilhões de dígitos. Então teria que criar uma função soma, uma multiplicação e assim vai indo...

3 - Existe alguma outra linguagem de programação - na qual eu não teria essa limitação - que eu possa usar?

obs: não me importa se as contas seriam demoradas para fazer, eu apenas as quero feitas, mesmo que demore uma hora cada operação

Então, estou aberto a dicas^^ me digam o que acham melhor

Editado por quintelab
Removido Dúvida
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

você pode usar alguma biblioteca preparada pra trabalhar com numeros grandes assim. mas desconheco alguma pra vb6, já q nunca precisei usar.

sei q existe essa pra c: http://gmplib.org/

não sei se da pra usa-la no visual basic, mas você pode tentar ver isso. ela pode trabalhar com numeros de qualquer tamanho desde q caiba na memoria.

agora, quanto a tentar usar string e mandar o visual basic fazer conta, é uma opcao. mas agora se você quer usar numeros com bilhoes de digitos, é complicado usar string... 1 bilhao de caracteres ocuparia 1 giga na memoria num sistema de 32 bits. ou seja, primero de tudo, você tem q ver se tem condicoes fisicas pra isso.

fora isso, o visual basic não seria indicado pra isso, já q se você for tentar usar funcoes mid() ou coisa assim pra ler a string, seu esforco sera em vao, já q as funcoes de string do visual basic, todas recebem parametros by value (por copia). ou seja, se você tem uma string de 1 giga na memoria, quando você chamar o mid(), ele vai querer copiar esse 1 giga inteiro pra outra posicao.

o melhor q você poderia tentar fazer seria uma dll em c, assim você poderia criar funcoes q recebam a string by ref (por referencia).

usar arquivos como você comentou, seria uma opcao pra driblar o limite de memoria. o problema é q pra ler os dados do arquivo você teria q trazer os dados pra memoria. trazer tudo de uma vez ia dar no mesmo problema acima. então, você teria q tentar dar um jeito de dividir os dados acessados aos poucos. você teria q fazer um algoritmo muito muito bem estudado.

mas eu acho q você ta otimista se espera q uma operacao com numeros desse tamanho leve so uma hora. principalmente se você for usar hd.

de qualquer modo, se você não conseguir implementar nenhuma biblioteca pronta, e for tentar fazer na mao, o visual basic não é o mais recomendado pra algoritmos q exijam muito processamento assim. se você quer fazer isso num programa em visual basic, o melhor mesmo seria fazer essa parte do calculo numa dll numa outra linguagem como c/c++, e acessa-la pelo visual basic.

uma string, existe esse tamanho limite e não queria essa limitação.

a e nunca tentei ficar preenchendo uma string pra tentar encontrar um limite, nem nunca li nd sobre isso, mas acho q em visual basic as strings não tem limite, cabe o quanto couber na memoria.

Link para o comentário
Compartilhar em outros sites

  • 0

olá boa tarde!

Você já tentou utilizar formulas binarias para chegar neste resultados?

eu trabalho com memórias de micro-controladores e para atender meus resultados eu utilizo funcções binarias para alocar numeros grandes no qual não caberia neste tipo de memoria.

Mais acredito que se for continuar tentando esse tipo de aplicação no VB começaria a pensar nisso que falei.

Abraços

Leandro

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...