Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Tengu en 18 Mayo 2009, 21:56 PM

Título: duda con calculos en vb y porcentaje
Publicado por: Tengu en 18 Mayo 2009, 21:56 PM
hola a todos.., tengo una duda de calculo en vb,...

resulta que estoy desarrollando una aplicacion y me faltaria la forma de sacar el porcentaje de parecido de un numero a otro. es decir:


supongamos que tengo un numero "marcador" que puede ser un numero entero desde  cero (incluido) en adelante.
el cual llamaremos "A"

Y como regla repetitiva el programa generaria numeros al azar (tambien 0 o positivos enteros) , y a este valor lo llamaremos "B"


entonces como hariamos para saber en Porcentaje del acercamiento de este numero B  a mi marcador A ????


si alguien tiene un razonamiento logico , funcional que pueda llevarse a vb, se los agradezco.. xk yo ya me enrede jaj. y a veces cuando miras tanto una cosa terminas por no ver absolutamente nada..


Gracias



Título: Re: duda con calculos en vb y porcentaje
Publicado por: Karcrack en 18 Mayo 2009, 22:31 PM
Porcentaje de acercamiento?

Que pretendes obtener teniendo solo dos números?...

Puedes saber cuantas veces A es mas grande que B o viceversa..

Pero no entiendo que es el porcentaje que quieres...

:-\
Citar(A/B)*100
Título: Re: duda con calculos en vb y porcentaje
Publicado por: Tengu en 18 Mayo 2009, 22:42 PM
mira, el temas es asi.

A se genera al cargarce la aplicacion(o sea que yo no conozco el valor)

y B se genera despues aleatoriamente

Suponiendo que A= 18

entonces... lo que quisiera saber es si B fuera (19) como podria yo saber si estoy cerca y como podria adaptarlos datos para mostrarlos a modo de porcentaje. por ejemplo si


A=18 y b = 19 => los numeros se parecen en un %v 99.999  ya que A es casi = a B...


Seria algo como calcular la distancia entre dos puntes en la ordenada X y cada vez que B este mas cerca de A entonces estara siendo mas parecido, hasta llegar a ocupar el mismo punto cunado A = B.


Se entiende??
Es que toy complicado para explicarlo...   :P
Título: Re: duda con calculos en vb y porcentaje
Publicado por: Tengu en 18 Mayo 2009, 23:02 PM
Dim a As String
Dim b As String
Dim distanciaayb As String
Private Sub Command1_Click()
If a < b Then
distanciaayb = Val(b) - Val(a)
Else
distanciaayb = Val(a) - Val(b)
End If
MsgBox distanciaayb
End Sub


de esta manera sale la distancia ente A y B  pero como puedo aumentar el porcentaje proporcianolmente a medida que la distancia disminuye hasta llegar a distancia CERO porcentaje CIEN ???
Título: Re: duda con calculos en vb y porcentaje
Publicado por: BlackZeroX en 18 Mayo 2009, 23:10 PM
NO SE SI LE ATINE O NO PERO AUN ASI TE DIGO LO QUE TE ENTIENDO

supongamos que se genero un numero en "X" y uno "Y"

rectifico cual es el mayor y con base a esto lo mando a una funcion donde el mayor el es 100% y el menor es una parte de ese porcentaje

es decir

A=19
B=50

por decir algo

Código (vb) [Seleccionar]

Private Sub Form_Load()
'juega con estos valores
a = 50
b = 49
'Fin valores
If a > b Then
res = Porcentaje(a, b)
ElseIf b > a Then
res = Porcentaje(b, a)
Else
res = 100
End If
MsgBox res
End Sub
Function Porcentaje(ByVal ValMax As Integer, ByVal valMin As Integer) As Long
     Porcentaje = (valMin * 100) / ValMax
End Function



Edito-------------------------


Código (vb) [Seleccionar]

Option Explicit
Private Sub Form_Load()
Dim a As Integer
Dim b As Integer
Dim res As String
a = 19
b = 50
res = IIf(a > b, Porcentaje(a, b), IIf(b > a, Porcentaje(b, a), 100))
MsgBox res
End Sub
Function Porcentaje(ByVal ValMax As Integer, ByVal valMin As Integer) As Long
     Porcentaje = (valMin * 100) / ValMax
End Function
Título: Re: duda con calculos en vb y porcentaje
Publicado por: Tengu en 18 Mayo 2009, 23:42 PM
sisi, es eso lo que busco, aunk tu code tiene un pekeño fallo

ya que cuando

A= 19
B = 1

daun resultado de "5", siende que la distancia entre A y B = 18, y en iguales condiciones cuando

A=19
B = 37 .............  Distancia tambien es 18

pero arroja un resultado de 51 el cual es diferente y no confitrma la formula.

Pero igualmente me ayudo a razonar y lo solucione de una manera un pco sucia y chapucera pero solucion al fin. Dios bendiga a nuestro amado IF

Private Sub Form_Load()
a = "18"
b = "6"
End Sub


Private Sub Command1_Click()
If Not a < b Then
distanciaayb = Val(a) - Val(b)
Else
distanciaayb = Val(b) - Val(a)
End If

MsgBox distanciaayb

If distanciaayb < 100 Then

If Not distanciaayb = "0" Then
Porcentaje = Val("100") - Val(distanciaayb)
Else
Porcentaje = "0"
End If

MsgBox "porcentaje   %  " + Porcentaje
Else
MsgBox "la Distancia es muy Grande .,el resultado no es alentador"
End If

End Sub



aunk  se puede mejorar pero lalogica ya esta plsmada.


Muchas Gracias.!!!
Título: Re: duda con calculos en vb y porcentaje
Publicado por: BlackZeroX en 18 Mayo 2009, 23:53 PM
no hay fallo en el trozo que plasme en si lo que hice fue tomar en consideración de 0 a X siendo 0 = 0% y X = 100% jamas tome diferencial alguno

graficamente hablando tome como referencia el Numero mayor como 100% y el numero cero como 0% entonces


0------------------18
0------------------------------------------------------------100

= 18% casi igual y de diferencia solo se restaria ese 18% el 100% que seria 82% pero da igual no es lo que pedias...!¡


A=19
B=1

1= 5% de 19 por ende es 5% igual de 19 y 95% diferente

P.D.: creo que deberias tranajar con regla de 3 en lugar de siempre esperar un numero menor a 100,

Si el la diferencia de A y B = 100 dice que es un numero grande?...¡!

Saludos, Dulces Lunas
Título: Re: duda con calculos en vb y porcentaje
Publicado por: Tengu en 19 Mayo 2009, 00:26 AM
exacto. es que para mi proyecto una diferencia entre punto y punto que supere los 60 es gigante y ya no sirve , y en una regla de tres


a............................100 %
b............................X %

no funcionaria pues los numeros se generan aleatoriamente y supongamos que


A = 18

si B fuera 75 , seria inaceptable para mi proyecto que fuera un % 416.66  se mejante.

xk por logica si es un % 100 significa que a = B . entonces la regla de tres simple es inaceptable

y ni hablemos Si A = 0 xk hay seria un % 75.000 ja.


Gracias por toda tu coolaboracion Saludos Buenas noches
Título: Re: duda con calculos en vb y porcentaje
Publicado por: ‭‭‭‭jackl007 en 19 Mayo 2009, 04:03 AM
El codigo seria asi:
Código (vb) [Seleccionar]
Dim A, B As Integer

A = 15 'Nmero al azar
B = 12 'Numero con el que se compara
'Tienes dos puntos y quieres saber que tanto se parecen los valores de los mismos: A, B; asi que comparamos A con respecto a B

MsgBox Str((A * 100) / B) & "%"
'El resultado es 125%, y tiene logica, pues el numero 15 se aleja de 12, es como aumentar o disminuir un zoom
' a un documento PDF (salvo que aqui es inverso)
'Si el numero A fuese menor que B, entonces da el porcentaja de aproximacion o acercamiento (que tanto se parece A a B)



Por cierto si vas a hacer esto:

If Not A < B Then
distanciaayb = Val(A) - Val(B)
Else
distanciaayb = Val(B) - Val(A)
End If


Para eso existe la funcion ABS: Valor absoluto
Código (vb) [Seleccionar]
distanciaayb =  Abs(A - B)


Explica un poco más del problema, a lo mejor lo correcto es otra cosa...