Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Función Min

Función Min
Artículo
Responder citando    Descargar mensaje  
Mensaje Función Min 
 
Buenas!.

Al final casi lo olvido. Me he encontrado un problema con:

Min()
 


No es como debiera ser. Solo me compara dos valores!.  
Entonces, ¿ cómo es que en el ejemplo usa algo como esto ? :

Print Min(19, 2, 3)
 


A mí la respuesta que me da es que son demasiados argumentos.  
¿ Alguien me lo puede explicar ?.

Y si uso algo como esto:

  Print Min([19, 2, 3])
 


Me dice que no tiene suficientes argumentos. ( Nunca está contento ).

Ahora que uso la función me dice que no. Esto me recuerda a las mujeres...es broma!!!.

Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Viernes, 25 Marzo 2016, 11:41 ]
 


Función Min
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Función Min 
 
Un apaño para el min.

Print [19, 2, 3, 12].sort()[0]
 


Si fuera Python podría usar para el máximo índice del array con [-1].
Que raro que esto no se pensara en gambas.  
De esa forma no hace falta almacenarlo en una variable. Era algo casual.

Ah, como no suelo usar esos métodos se olvidan.  Para encontrar el máximo:

Print [19, 2, 3, 12].sort(True)[0]
 


Saludos



 
última edición por Shell el Viernes, 25 Marzo 2016, 12:40; editado 1 vez 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Viernes, 25 Marzo 2016, 12:38 ]
Responder citando    Descargar mensaje  
Mensaje Re: Función Min 
 
Public Sub Minimo(lista As Integer[]) As Integer
  
  Return lista.Sort()[0]
  
End

Public Sub Maximo(lista As Integer[]) As Integer
  
  Return lista.Sort(True)[0]
  
End
 


Saludos!



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Viernes, 25 Marzo 2016, 13:33 ]
Responder citando    Descargar mensaje  
Mensaje Re: Función Min 
 
En el wiki on-line, la que aparece cuando escribes la función, Min() tiene 2 argumentos, no 3.   shrug2



 
vuott - Ver perfil del usuario Enviar mensaje privado  
vuott [ Viernes, 25 Marzo 2016, 13:50 ]
Responder citando    Descargar mensaje  
Mensaje Re: Función Min 
 
a mi también me paso, y lo tengo asumido que min y max solo usan dos valores.

estos métodos están mal y abandonados    y la explicación como dicen no coincide con lo que que realmente hace.

me voy hacer mi propio Min Max  



 
última edición por v3ctor el Viernes, 25 Marzo 2016, 16:52; editado 2 veces 
v3ctor - Ver perfil del usuario Enviar mensaje privado  
v3ctor [ Viernes, 25 Marzo 2016, 16:39 ]
Responder citando    Descargar mensaje  
Mensaje Re: Función Min 
 
v3ctor escribió: [Ver mensaje]
a mi también me paso....

....uhmmmm....quizas, es un problema de la versión española del Wiki.  



 
vuott - Ver perfil del usuario Enviar mensaje privado  
vuott [ Viernes, 25 Marzo 2016, 16:48 ]
Responder citando    Descargar mensaje  
Mensaje Re: Función Min 
 
Vuott:

Citar:

....uhmmmm....quizas, es un problema de la versión española del Wiki.


Efectivamente, es un error que se debe "corregir"...ajeeeem, ajeeem..en la versión española.  

v3ctor:

La sintaxis son dos, así es, pero ves eso en el manual online y choca.

Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Viernes, 25 Marzo 2016, 19:57 ]
Responder citando    Descargar mensaje  
Mensaje Re: Función Min 
 
supongamos que debemos crear el método o función Max y Min

debe cumplir dos requisitos o dicho de otra manera que se pueda usar un array aceptando una variable array tipo integer[]  o números sueltos, individuales.

1. que se puedan poner valores numéricos ejemplo Max(12,30,50,90)     me pregunto como sera eso  
2. o que se pueda poner un array como el ejemplo de shell.....



 
v3ctor - Ver perfil del usuario Enviar mensaje privado  
v3ctor [ Jueves, 07 Abril 2016, 03:40 ]
Responder citando    Descargar mensaje  
Mensaje Re: Función Min 
 
v3ctor:

Poder se puede hacer. Pero no sé si quieres pasarle solo valores sueltos o un array.
Tambien se puede saber si son valores sueltos o un array.

Pongamos el caso de que quieres averiguar el valor mínimo y máximo de una cantidad de números pasados.
Usamos la clases Param.

Public Sub Main()
  
  Print VMin(4, 3, 5)
  Print VMax(5, 3, 4)
  
End

Public Sub VMin(...) As Variant  
  
  Dim i As Integer
  Dim valormin As Integer
  
  valormin = Param[0]
  
  For i = 1 To Param.Count - 1
    If Min(valormin, Param[i]) <> valormin Then valormin = Min(valormin, Param[i])
  Next
  Return valormin  
  
End

Public Sub VMax(...) As Variant  
  
  Dim i As Integer
  Dim valormax As Integer
  
  valormax = Param[0]
  
  For i = 1 To Param.Count - 1
    If Max(valormax, Param[i]) <> valormax Then valormax = Min(valormax, Param[i])
  Next
  Return valormax
  
End
 


Ahora bien. ¿ Y si le pasas esto ?.

Print VMin(4, 3, 5, [8, 1, 9])
 


Por eso te preguntaba si de antemano sabes que le vas a pasar.
Ahora fíjate en este: Vamos a mostrar uno a uno los valores, de tanto los sueltos, como los que están en el array.


Public Sub Main()

  Valores(4, 3, 5, [8, 1, 9])
  
End

Public Sub Valores(...)
  
  Dim valor As Variant
  Dim v As Variant  
  Dim valormin As Integer
  
  For Each valor In Param
    Select Case TypeOf(valor)
      Case gb.Integer
        Print valor
      Case gb.Object  
        For Each v In valor
          Print v
        Next
    End Select
  Next
  
End
 


Como ves jugamos con el tipo Variant.

Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Jueves, 07 Abril 2016, 10:39 ]
Responder citando    Descargar mensaje  
Mensaje Re: Función Min 
 
v3ctor escribió: [Ver mensaje]

1. que se puedan poner valores numéricos ejemplo Max(12,30,50,90)     me pregunto como sera eso  


te respondo novato  

http://novatocodegambas.blogspot.com.uy/2016/04/param.html



 
v3ctor - Ver perfil del usuario Enviar mensaje privado  
v3ctor [ Domingo, 10 Abril 2016, 14:52 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron