Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Funciones Con Un Nº Indeterminado De Variables
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Funciones Con Un Nº Indeterminado De Variables 
 
Hola

Me gustaria saber si se puede crear una funcion con un nº indeterminado de llegada de variables y si es asi como se trabaja con ellas

function suma (a as interger, b as interger, c as interger, ...)

Gracias
 



 
campanillas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funciones Con Un Nº Indeterminado De Variables 
 
Creo que si se puede, pero debes trabajar con arrays.

public valoresapasar as integer[ ]
public resultado as integer


Public function sumar (valoresasumar as integer[ ] )
        resultado=valoresasumar[1]+valoresasumar[2] + etc.....
end



Para llamar a la funcion si ella está dentro del form ( me refiero a que no este en la carpeta modulo o clase) :

sumar(valoresapasar[ ])



No estoy seguro de que este ejemplo este bien, pero te invito a que lo pruebes.

saludos
 



 
última edición por nrcefe el Lunes, 02 Noviembre 2009, 15:23; editado 1 vez 
nrcefe - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funciones Con Un Nº Indeterminado De Variables 
 
Hola
Tu puedes declarar una función de la siguiente forma

Public Function as MiFuncion(param1 as string, param2 as string, OPTIONAL param3 as string, OPTIONAL param4 as string)
if param3 then
...
endif

if param4 then
...
endif
return algo
end


Y ahora puedes llamarla
x=MiFuncion("a",b","c")

o bien
x=MiFuncion("a",b","c","d")

o bien
x==MiFuncion("a",b","c","e")

o bien
x==MiFuncion("a",b","c","d","e")

Los parámetros optional siempre los últimos.

[Editado]
Ah perdón!!!
Interpreté mal. Número indeterminado de parámetros no es lo mismo que parámetros condicionales.
Efectivamente creo que al como dice nrcefe deberías pasar una string o quizá una clase. Nunca he probado a enviar una clase como parámetro. Se me acaba de ocurrir y ardo de ganas de llegar a casa a probarlo a ver si eso rula.

 
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funciones Con Un Nº Indeterminado De Variables 
 
Acabo de probarlo y si funciona.
Esta es una clase que me invento a la que llamo Miclase
public Var1 as string="hola"
public Var2 as string
public Var3 as boolean


Y este sería el código de una aplicación
Sub Main()
Dim a as new MiClase
Dim Var as string

Var=Funcion(a)
debug "el contenido de Var es: " & Var
end


private function Funcion(clase as MiClase) as string
return clase.Var1
end


Nuncal lo había intentado así.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funciones Con Un Nº Indeterminado De Variables 
 
perdona soplo pero nunca he trabajado con clases, y no me he entendido muy bien tu respuesta, si pudiera ayudarme te lo agradeceria
 



 
campanillas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funciones Con Un Nº Indeterminado De Variables 
 
Hola
Quizá no es exactamente lo que buscas, pero junto al uso de arrays que te dice nrcefe está la posibilidad de usar clases.

Tu en gambas te creas una clase y dentro pones cosas como estas
public var1 as string
public var2 as boolean
public var3 as integer=5
public var4 as string[]
public va5 as ...
...
...
 


Pongamos que a esa clase que has hecho le llamas C.

Pues en tu código haces esto
Dim MisVariables as NEW C

y luego asignas valores
MisVariables.var1="hola"
misVariables.var2=true
misvariables....


y luego llamas a una función en la que pasas esa clase. Lo que estas haciendo es pasar todas las variables y métodos que haya en esa clase (porque también puedes tener declaradas funciones allí dentro.
LlamarFuncion(Misvariables)

Es decir a la función LlamarFuncion le estas pasando todas las variables que tengas declaradas en la clase Misvariables que sean públicas.

private function(Nombre as C)
Nombre.var1=
nombre.var2=false
if nombre.var3="hola" then ...
...
endif
end


Es muy importante tener bien entendido como funcionan las clases. Lo que pongo aquí es algo básico, pero se pueden hacer muchísimas cosas y además funciona igual en muchos lenguajes de programación. Te interesa entenderlo bien.
 
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funciones Con Un Nº Indeterminado De Variables 
 
Muchas gracias creo que lo entendido bastante bien
 



 
campanillas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Variables jj231089 General 2 Lunes, 12 Agosto 2013, 16:45 Ver último mensaje
jj231089
No hay nuevos mensajes Sumatorio De Variables RIKL General 1 Sabado, 26 May 2012, 14:12 Ver último mensaje
jsbsan
No hay nuevos mensajes Variables De Entorno Shell Mundo Linux 0 Miercoles, 09 Enero 2019, 10:39 Ver último mensaje
Shell
No hay nuevos mensajes VBA Variables Equivalentes En Gambas tincho Aplicaciones/Fragmentos de Código 5 Viernes, 16 Noviembre 2018, 09:20 Ver último mensaje
jguardon
 

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


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario