Domingo 22 de Diciembre de 2024, 12:05
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Uso De Listas
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Uso De Listas (Leído 2324 veces)
sirespi
Miembro activo
Mensajes: 64
Uso De Listas
«
en:
Domingo 14 de Noviembre de 2004, 21:48 »
0
Buenas a todos.
Aver os comento una cosilla. Tengo una aplicacion que lela un contador cada que recibo datos por elpuerto serie. COmo esta aplicacion , en teoria, se debe de tirar funcionando hasta varios dias, tengo el siguiente problema.
El contador es una variable tipo long, y cada vez qeu recibo un dato por el puerto serie, lo aumento en uno. El problema esta en que llegara un momento en qeu supere el valor tope (2147483647) y entonces me dara un mensaje de desbordamiento. Me han dicho que hay algo llamado lista (nunca llegue a verlas en c++) que me puede solucionar el tema
Alguien sabe com ova esto. Es facil o requiere mucho codigo???
Un saludo y gracias
Tweet
scorpion25acv
Miembro activo
Mensajes: 30
Re: Uso De Listas
«
Respuesta #1 en:
Lunes 15 de Noviembre de 2004, 04:07 »
0
Salu2 sirespi,
se me ocurre una idea, talves puedas usar otro contador, para q en el caso de q el primero llegue al tope , lo reinicies, y aumentes el segundo, por ejem ..
Código: Text
Dim Contador1, Contador2 as Long
' y en alguna parte del codigo preguntas
IF Contador1 >= 2147483647 Then
Contador1 = 0
Contador2 = Contador2 + 1
End If
Entonces, talves si el segundo se desborda puedes usar un tercero y lugo calculas o cuentas el total a partir del primero segun cantidad de reinicios del contador.
Para el caso de listas ason estructuras de datos, hya hay de varios tipos Listas enlazadas, doblemente enlazadas, listas circulares, asi como tambien hay de otros tipos de estructuras como las pilas, pero la verdad en VB no las he usado, las vi alguna vez en pascal, de maner muy basicas , pero si quieres, te paso ese codigo de ejmplo...
Espero te sirva de ayuda...
sirespi
Miembro activo
Mensajes: 64
Re: Uso De Listas
«
Respuesta #2 en:
Jueves 18 de Noviembre de 2004, 07:52 »
0
Gracias scorpion.
El problema que le veo a usar otra variable, que ya lo pense, es qeu tengo que seguir lelvando la cuenta. POr lo tanto, si empiezo con otra variable, le tengo qeu sumar lo que llevaba del primer contador, y automaticamente la vuelvo a desbordar.
Estoy mirando, porque he hecho unos calculos e igual a la velocidad que recibo datos por el puerto serie puedo con la variable long puedo tener para almacenar datos durante mas de 50 dias seguidos, espero que eso les valga, sino te pregunto los de las listas o las pilas esas
Sagutxo
Miembro MUY activo
Mensajes: 320
Re: Uso De Listas
«
Respuesta #3 en:
Jueves 18 de Noviembre de 2004, 11:41 »
0
Salu2. Solo un comentario.
No te es posible usar un double como contador, porque solo con los decimales que tiene creo que tendrás de sobras.
Dudo que no hayas pensado en esto, pero por si acaso
Agur.
Mi mujer tiene un físico bárbaro!!!. Einstein.
sirespi
Miembro activo
Mensajes: 64
Re: Uso De Listas
«
Respuesta #4 en:
Viernes 19 de Noviembre de 2004, 07:43 »
0
Hola SAgutxo.
No me es posibl eusar una variable double, ya qu elo que tengo qeu contar son ciclos. Cada vez qeu entro en el evento de recepcion del puerto serie, cuento 1, no puedo contar 0.9, porque sino, al final del muestreo, diria que he entrado, por ejemplo, 89,4 veces en el evento. Tiene que ser variable enteras.
Pero bueno, muchas gracias, yo creo que la final no va a hacer falta, pero nunca viene mal aprender algo para futuras cosas.
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Uso De Listas
«
Respuesta #5 en:
Viernes 19 de Noviembre de 2004, 09:43 »
0
Hola Sirespi.
Sagutxo da una opción adecuada...
Con un tipo double puedes almacenar números desde 1,79769313486232E308 a
-4,94065645841247E-324 para valores negativos y desde 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos.
En una variable double ocupa en almacenamiento 8 bytes, un long tan sólo 4.
A una variable double le puedes asignar tranquilamente el valor 1
.
Además de esto, sería muy buena idea utilizar como incremento para el contador un valor decimal. Para hayar la cuenta final, tan sólo habría que multiplicar el contador por la unidad seguida de tantos ceros como decimales tenga el incremento:
Código: Text
Private dContador As double
Private Sub SumaUno()
dContador = dContador + 0.001
End Sub
Private Sub Resultado
MsgBox "Cuenta: " & dContador * 1000
End Sub
Ten en cuenta que aunque utilizaras más variables, al querer sumar el contenido de una con el valor de la siguiente multiplicado por su valor máximo podrías obtener un desbordamiento de igual forma. Tendrías que usar variables (una matriz dinámica sería lo tal) de tipos más pequeños y luego mediante una función operar entre cada una para ir 'montando' el número en un string.
Chao.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Uso De Listas