|
Página 1 de 2
|
¿ Podemos En Basic Pasar Una Función Como Parametro ?
Autor |
Mensaje |
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
¿ Podemos En Basic Pasar Una Función Como Parametro ?
Hola!.
En algunos lenguajes es posible hacerlo, supongo que en basic no se puede.
Estoy siguiendo ejemplos de un libro de programación, no centrada en ningún lenguaje.
Se que los caminos son muchos para encontrar una solución. Tenéis que centraros en lo
que se pregunta. Aunque choque. Puede chocar ya que nosotros llamarÃamos directamente
a la función. No es la idea que pide el enunciado.
Veréis este es el ejemplo en Python. Que pude hacerlo. Como dice el libro, no todos los lenguajes pueden.
#|/usr/bin/python3
# Paso de una función como parámetro
def suma(x, y):
return (x + y)
def producto(x, y):
return (x * y)
def operacion(f, a, b):
print ('El resultado es: ',f(a,b))
def main():
operacion(suma,3,4)
if __name__=='__main__': main()
Creo que no hay forma. ¿ Cómo vamos a poner la palabra función en la lista de parámetros de un procedimiento ?.
Ademas de Python, supongo que Java podrá hacerlo. No tengo ni idea si Pascal o C podrá hacer eso.
Saludos
=================== Gambas Básico
"No es un bug, es una caracterÃstica no documentada"
|
#1 Lunes, 13 Julio 2015, 21:29 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: ¿ Podemos En Basic Pasar Una Función Como Parametro ?
¿ Podemos En Basic Pasar Una Función Como Parametro ?
Esta circunstancia se concreta, pasando un Puntero que apunta a una función del projecto gambas, cuando una función externa contempla la llamada de una función Callbacks:
http://gambaswiki.org/wiki/lang/extdecl
http://www.gambas-it.org/wiki/index...nterna_Callback
En este foro escribà un tema y un codigo:
http://foro.gambas-es.org/show_post.php?p=23301
donde se pasaba a una otra función interna de gambas el Puntero simplemente a la area de memoria de una función. En este caso, pero, es posible sólo utilizar la area de memoria como lugar de almacenamiento de datos.
|
#2 Lunes, 13 Julio 2015, 22:34 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: ¿ Podemos En Basic Pasar Una Función Como Parametro ?
Hola!.
He usado un poco de POO. Aunque el código deberÃa ser un poco menos publico los procesos y funciones..
Y hay que mejorarlo un poco.
- He creado una clase Función.
- Luego he creado dos clases que heredan de Función. clsSuma y clsProducto
Clase Función.
clsProducto
clsSuma
Código principal:
Y aquà el resultado de la consola:
Citar:
El resultado es: 12
Aquà tenéis el código para verlo, cambiarlo, mejorarlo...
No me gusta que se vean los dos métodos. No he usado propiedades, aun.
Saludos
Descripción: |
|
Descargar |
Nombre del archivo: |
Funcion_como_parametro2.tar.gz |
Tamaño: |
4.93 KB |
Descargado: |
27 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
Funcion_como_parametro2.tar.gz |
Tamaño: |
4.93 KB |
Descargado: |
27 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
Funcion_como_parametro2.tar.gz |
Tamaño: |
4.93 KB |
Descargado: |
27 veces |
=================== Gambas Básico
"No es un bug, es una caracterÃstica no documentada"
|
#3 Martes, 14 Julio 2015, 00:41 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: ¿ Podemos En Basic Pasar Una Función Como Parametro ?
Sólo deseo añadir la procedura de llamada de una función interna con la Clase Object.
Ejemplo:
última edición por vuott el Martes, 14 Julio 2015, 08:40; editado 1 vez
|
#4 Martes, 14 Julio 2015, 01:06 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: ¿ Podemos En Basic Pasar Una Función Como Parametro ?
Vuott:
Interesante. Es mejor asignar Me a ob.
Creo que esto lo he visto en el ejemplo Painting que incorpora Gambas.
Ya hemos encontrado dos formas de hacerlo, más sencillo y con POO.
A ver si los demás compañeros se anima a comentar.
Saludos
=================== Gambas Básico
"No es un bug, es una caracterÃstica no documentada"
|
#5 Martes, 14 Julio 2015, 08:36 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: ¿ Podemos En Basic Pasar Una Función Como Parametro ?
Es mejor asignar Me a ob.
...por qué ?
Saludos
|
#6 Martes, 14 Julio 2015, 08:39 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: ¿ Podemos En Basic Pasar Una Función Como Parametro ?
Citar:
...por qué ?
¿ Qué estas asignado a la variable objeto ob cuando le asignas MMain ?.
Saludos
=================== Gambas Básico
"No es un bug, es una caracterÃstica no documentada"
|
#7 Martes, 14 Julio 2015, 08:46 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: ¿ Podemos En Basic Pasar Una Función Como Parametro ?
¿ Qué estas asignado a la variable objeto ob cuando le asignas MMain ?.
Sì, mas... porque es mejor ?
|
#8 Martes, 14 Julio 2015, 08:53 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: ¿ Podemos En Basic Pasar Una Función Como Parametro ?
¿ Qué estas asignado a la variable objeto ob cuando le asignas MMain ?.
Sì, mas... porque es mejor ?
Es una forma de abreviar en parte. Y además es lo que le estas pasando, "el objeto actual". MMain, que es Me.
Me es todo el modulo, o el objeto MMain. Me es la referencia del objeto MMain.
Para terminar tú código:
No vayas deprisa que te equivocas. HabÃas nombrado suma, pero luego hiciste un producto. Ya sé que es temprano.
Saludos
=================== Gambas Básico
"No es un bug, es una caracterÃstica no documentada"
|
#9 Martes, 14 Julio 2015, 09:05 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: ¿ Podemos En Basic Pasar Una Función Como Parametro ?
Otra manera (utilizo el Me de Shell): con el metodo especial " _call()".
....no es muy coherente con el asunto de este tema.
última edición por vuott el Martes, 14 Julio 2015, 09:54; editado 1 vez
|
#10 Martes, 14 Julio 2015, 09:52 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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 Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|