Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



lunes, 14 de septiembre de 2015

Gambas: Funciones que devuelven varios tipos de datos




Gambas: Funciones que devuelven varios tipos de datos




En programación, una función es un grupo de instrucciones con un objetivo en particular y que se ejecuta al ser llamada desde otra función o procedimiento. Una función puede llamarse múltiples veces e incluso llamarse a sí misma (función recurrente).
Las funciones pueden recibir datos desde afuera al ser llamadas a través de los parámetros y deben entregar un resultado.
Se diferencian de los procedimientos porque estos no devuelven un resultado.
Definición de función:

[ FAST ] [ STATIC ] { PUBLIC | PRIVATE } { FUNCTION | PROCEDURE | SUB }
Identifier ( [ [ BYREF ] Parameter AS Datatype [ , ... ] ] [ , ]
[ OPTIONAL [ BYREF ] Optional Parameter AS Datatype [ , ... ] ] [ , ] [ ... ]
) AS Datatype ...
END 

Ejemplo de función típica:

public function dividir(a as integer, b as integer) as single 'esta función divide a/b y devuelve el resultado.
return  a/b
end


Uso de esta función:
...
dim resultado as single
....
resultado=dividir(1345,2)
print "resultado de la división: ",resultado
...

Funciones que devuelven varios tipos de datos a la vez:
Podemos hacer que en vez de devolver un solo tipo de datos devuelva más información,por ejemplo, si la función ha podido realizar su trabajo correctamente que devuelva TRUE (verdadero) y el resultado, y si no ha podido realizar el trabajo (por ejemplo ha dividido entre cero), devuelva esta información FALSE

Para ello lo que tenemos que decir el que el tipo de dato que devuelva, sea tipo Variant[], que es un array de cualquier tipo de dato, el primer dato puede ser True o False, y el segundo seria el resultado de la operacion


public function dividir(a as integer, b as integer) as variant[]
if b=0 then
 return [false,0]'devuelve que no ha podido realizar la operación
else
return [true,a/b] 'operación realizada con exito, devuelve el resultado.
endif
end


Para la lectura de la informacion donde estemos usando esta función se haría del siguiente modo:
....
Dim resultado as variant[]
...
...
resultado=dividir(123,3)
...
if resultado[0]=true then
print "Resultado de la división es...";resultado[1]
end
if resultado[]=false then
print "No he podido dividir, ya que el divisor es 0"
endif
....






Enlaces:
http://gambaswiki.org/wiki/lang/function
http://gambaswiki.org/wiki/lang/methoddecl

jueves, 10 de septiembre de 2015

Relato: La ruleta .... de la vida



Relato:  La ruleta .... de la vida


Era Sábado, Ester, mi mujer se levantó temprano para ir al mercadillo. La noche anterior estuvimos hablando y me comentó que fuera con ella, pero le dije que no... que no me apetecia...(mentalmente me alegré, me levantaria un poco más tarde, y estaría trasteando en mi ordenador visitando mis páginas web favoritas, y no daría el palizón de ir de tienda en tienda y pasar calor.. :).

Escuche cerrar la puerta, y se me ocurrio levantarme ya... me puse a trastear con el ordenador... vi la prensa digital, y luego entre en mi pagina favorita: Casino Online....
me gustaba echar el rato viendo girar la bola y apostando... casi siempre perdía... ella siempre me decía que me iba a convertir en un ludopata, y yo siempre le decía: "algún vicio tendré que tener...", sonriendo...y ella decía también sonriendo: "Tú ya tienes uno.... eres un viejete verde".

Empece apostar, gané una vez, luego otra, luego otra vez más, pero entonces empecé a perder lo que había ganaba.... como de una montaña de rusa se tratara, subía y bajaba, entre ganancias y perdidas... y al final siempre bajaba.....

Escuche una llamada del móvil... pero no la atendí... estaba  girando la ruleta y mi corazón palpitaba mientras veía la bola rodar por las casillas, esperando que cayera en rojo...
giro... giro... uhhhh casi... Volví a apostar, esta vez, el doble, para "recuperar" mis pérdidas.... empezó un nuevo giro de la ruleta... y esta vez tampoco..... así toda la mañana...

Miré el móvil, vi el aviso de llamada perdida y la hora que era.... mediodía, que  extraño pensé,  Ester tarda, ya debería de estar de vuelta del mercadillo.

La llamé... esperé varios tonos... y lo cogió:
"Si digame" ,respondió una voz masculina.
"ehhh... hola, estoy llamando a Ester... creo que me he equivocado al marcar", dije dubitativo
La voz dijo "No, soy el sargento de la guardia Civil de tráfico, su mujer ha sufrido un accidente y ..."
"¿esta bien?" le interrumpí
"la han trasladado al hospital, allí le podrán informar de su estado."

Le dí las gracias por la información, rápidamente fui por mi coche y me trasladé al hospital.

Pregunté por ella en la entrada y me dirigieron a una habitación, donde estaba un médico.
"Buenas, soy el marido de Ester ¿como esta?"
"Su mujer a sufrido un accidente... y su estado es.... muy grave... está en la uvi"
Las últimas palabras del médico resonaron a martillazos en mi celebro....

Me dispuse a esperar en la sala de espera.... miré mi móvil, vi la llamada perdida, y que tenia un mensaje en el buzón de voz, lo escuche:
"Hola nene, el coche a pinchado, y como no me coges el teléfono... seguro que estarás con tus líos,¡¡ludopata!!!,... He tenido que llamar a la grúa....y acaba de reparar el pinchazo, me falta recoger los triángulos y voy para casa.....", de repente se escuchó una serie de ruidos, un golpe, y se cortó el mensaje. Acababa de ser atropellada por otro vehículo.

Dos lágrimas recorrieron mi cara.... tendría que haber cogido el móvil... tendría que haber cogido el móvil... te decías a ti mismo...

miércoles, 9 de septiembre de 2015

Gambas en Floss Weekly

Gambas en Floss Weekly



Os dejo una entrevista que han realizado a Benoït Minisini (autor de Gambas) en el programa Floss Wealy






https://twit.tv/shows/floss-weekly/episodes/353