Visual Basic - Ayudarme con las variables

Life is soft - evento anual de software empresarial
 
Vista:

Ayudarme con las variables

Publicado por nachito (26 intervenciones) el 13/01/2006 11:50:02
hola amiguetes. mirar, tengo 20 variables cada una con un integer. lo que kiero hacer es compararlas y sacar la mayor de todas. como podria hacer esto??? lo que se me ocurre es ir comparandolas una a una, pero podria estar la tira escribiendo siempre lo mismo.

hay alguna otra forma de hacerlo??

thx
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayudarme con las variables

Publicado por Blaine (6 intervenciones) el 13/01/2006 11:57:40
Puedes utilizar un Array de Enteros en vez de 20 varialbes, guardar los valores y después recorrerlos con un bucle for.

Esto es una pista, si no sabes lo que es un array busca e intenta hacerlo y si no te sale nos pones el código que has escrito y te ayudamos.

Saludos,
-Blaine-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Dejo el codigo

Publicado por nachito (26 intervenciones) el 13/01/2006 12:22:27
haber os dejo una parte del codigo:

cont0 = 0
cont1 = 0
cont2 = 0
cont3 = 0
cont4 = 0
cont5 = 0
cont6 = 0
cont7 = 0
cont8 = 0
cont9 = 0
cont10 = 0
cont11 = 0
cont12 = 0
cont13 = 0
cont14 = 0
cont15 = 0
cont16 = 0
cont17 = 0
cont18 = 0
cont19 = 0
cont20 = 0

resul.MoveFirst
Do Until resul.EOF

If 1 = resul.Fields("resultados") Then


cont1 = cont1 + 1
End If
resul.MoveNext
Loop

y eso se repite con to2 los numeros hasta el 20. luego lo que kiero es comparar las variables para saber cual es la mayor, o sea, cual es el numero que mas veces esta repetido.

me dijeron que se podia hacer facilmente con una consulta, pero yo no se usarlas asi que opto por lo xungo. ademas de saber el numero que mas se repite necesito saber cuantas veces lo ha hecho

thx
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Qué es una Matriz? Lee esto.

Publicado por Zoto (55 intervenciones) el 14/01/2006 18:32:53
Hola nachito.

Como muy bien ha dicho Blaine en su anterior respuesta en este mismo hilo, en el planteamiento que propones resulta imprescindible usar un Array o también llamada Matriz de datos.
Si no sabes lo que es una Matriz aquí te lo cuento brevemente:

En programación, una Matriz vendría a ser un conjunto de un mismo tipo de datos diferenciado cada uno de esos datos por un índice que los identifica y los separa del resto. Un claro ejemplo sería tomar la analogía de una enciclopedia.

Como ya sabes, una enciclopedia está formada por varios volúmenes distintos, los cuales de identifican por un número, para tenerlos ordenados en nuestra estantería. Así el volumen 1, que forma parte de la enciclopedia, trataría sobre matemáticas e informática. El 2, por ejemplo, trataría sobre Física. El 3 sobre Química y así succesivamente, tratando cada volumen sobre un tema distinto.

Aplicado esto a un Array o Matriz:

Tenemos una Matriz a la que llamamos Enciclopedia. Esta Matriz está formada por datos de tipo Volumen, cada uno de los cuales posee un número que determina el contenido enfrente del cual nos encontramos. Si seleccionamos el Volumen con índice 1, encontraremos todo tipo de información sobre Matemáticas e Informática. Si seleccionamos, por otra parte, el Volumen con índice 2, nos submergiremos en el mundo de la Física.
Como ves, el concepto es bastante simple.

Ahora veremos la sintaxi de un Array o Matriz aplicada a Visual Basic.

Declarar una Matriz en Visual Basic es casi idéntico a declarar una variable convencional, con la diferencia que al declarar una Matriz, debemos especificar el número total de variables que la forman. Por ejemplo:

Dim ListaDePrecios(9) As Double

Esto sería una Matriz que contendría 10 variables distintas, identificadas por un índice consecutivo.
Y te preguntarás: ¿pero qué dice éste de 10? ¡Si en la declaración ha escrito 9!
Pues muy simple: el índice de una Matriz tiene base en 0, es decir, empieza desde el 0. Así, si declaramos una variable con un índice máximo de 9, estamos declarando una variable con un rango de índices del 0 al 9, con lo cual obtenemos 10 índices en total.
Así que estamos hablando de 10 variables Double agrupadas formando un conjunto (Matriz) llamado ListaDePrecios.
Si al declarar una Matriz especificamos el índice máximo, estamos haciendo que el número máximo de elementos de la matriz sea estático, es decir, que no se podrá modificar.
El ejemplo lo tenemos en la Matriz que hemos declarado. Al especificar el número 9 entre los paréntesis, diciendo que ése queríamos que fuera el índice máximo, hemos hecho que el número de variables que forman la matriz ya no pueda variar.
Esta Matriz seguirá estando constituida por 10 variables Double y no podremos modificar esa propiedad desde código, puesto que se le ha atribuido al declararla.
Si queremos, contrariamente, disponer de una Matriz o Array que esté formada por un número de elementos indefinido, es decir, que podamos atorgarle en cualquier momento el número máximo de elementos que la forman, bastará con no escribir ningún número entre los paréntesis:

Dim ListaDePrecios() As Double

Ahora que ya tenemos una Matriz con un número de elementos indefinido, podemos establecer el rango de índices desde cualquier lugar del código (siempre y cuando la Matriz se haya declarado como Pública en un Módulo).
La sentencia es la misma que la que escribiríamos al declararla, pero cambiando Dim por ReDim:

ReDim ListaDePrecios(9) As Double

Aquí establecemos la Matriz con un máximo de 10 elementos.
Si probáramos de hacer lo mismo con una Matriz con un número de elementos estático, el compilador nos devolvería un error diciendo que la Matriz ya tiene dimensiones.
ReDim, lo que hace es eliminar todos los datos contenidos en cada una de las variables de la Matriz, redimensionando la Matriz (de ahí ReDim) y dejándo todos sus elementos en blanco. ¿Pero qué pasa si yo quiero volver a dimensionar la Matriz sin perder los datos que contenía cada uno de sus elementos? Pues, simplemente, añadimos la palabra Preserve después de ReDim, para que al "ReDimensionar" la Matriz, se "Preserven" los datos, es decir, continuen como estaban.
Aquí muestro un ejemplo del caso comentado:

Dim Nombres() As String 'Declaro una Matriz llamada Nombres con un número de elementos indefinido en la parte General del código de un Formulario.

'EN ALGUNA PARTE DEL CÓDIGO DEL FORM...

ReDim Nombres(4) As String 'Redimensiono la variable (en realidad la estoy dimensionando por primera vez) para que pueda contener un máximo de 5 elementos (variables String)

'Asigno un valor a cada uno de los elementos.
Nombres(0) = "Nachito"
Nombres(1) = "Zoto"
Nombres(2) = "Ivan"
Nombres(3) = "Cecilia"
Nombres(4) = "Raúl"

'Ahora la vuelvo a ReDimensionar, pero manteniendo los datos de cada una de las variables. En este caso hago la Matriz más pequeña, dejándola con 3 elementos de máximo (2 como índice del elemento máximo):

ReDim Preserve Nombres(2) As String

'Los valores que ahora contiene la Matriz son: "Nachito" en el elemento 1, "Zoto" en el elemento 2 e "Ivan" en el elemento 3. Los otros han desaparecido puesto que la Matriz se ha dimensionado a reducción. Si hubiera aumentado las dimensiones de la Matriz (ReDim Preserve Nombres(7) As String), los nombres seguirián estando todos ahí, además de los nuevos elementos añadidos de más, que estarían en blanco.

__________________________________

Hasta aquí llega mi explicación sobre lo que es una Matriz, Array o Arreglo, como le quieras llamar.
Aplicando esto a tu código, como necesitas 20 elementos Integer, bastaría con declarar una Matriz llamada, por ejemplo, números, con 20 elementos Integer estáticos, es decir:

Dim Numeros(19) As Integer 'Recuerda: del 0 al 19

Y simplemente asignar un número a cada una de las variables de la Matriz, de la misma manera que he hecho en el caso anterior de los Nombres, es decir:

NOMBRE_MATRIZ(INDICE_ELEMENTO) = VALOR

Ejemplo:

Numeros(3) = 306

_______________________________________

Y, una vez tengas todos los números en la Matriz, aplicar el código para obtener el que más veces se repite.

Bien, creo haber dicho que lo explicaría brevemente y según veo me he extendido "un poquito" más de lo que se podría considerar breve... ;-)

Espero que mi explicación te resulte entendedora y no se te haga muy pesada.
Mi objetivo era que entendieras el concepto de Matriz y su implementación en Visual Basic y espero haberlo conseguido.
No obstante, si tienes alguna duda sobre algo o opinas que algo podría explicarse de una forma más simple coméntalo.

Hasta pronto,

Zoto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mil gracias

Publicado por nachito (26 intervenciones) el 15/01/2006 19:52:11
muchas gracias. ya vere lo que puedo hacer.

sois los mejores
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar