Está en la página 1de 16

Programacin Visual con

Programacin Visual con


Gambas
Gambas
1
Juan Matas Olmos Juan Matas Olmos
2010 2010
CAPITULO I
Programacin y Lenguajes de Programacin
Un programa informtico es un conjunto de instrucciones que una vez ejecutadas realizarn
una o varias tareas en una computadora. Al conjunto general de programas se le denomina
software, y as se refiere al equipamiento lgico o soporte lgico de una computadora digital.
La programacin es un proceso por el cual se escribe, se prueba, se depura, se compila y se
mantiene el cdigo fuente de un programa informtico.
Un lenguajes de programacin es un conjunto de smbolos y reglas sintcticas y semnticas
que definen su estructura y el significados de sus elementos y epresiones. !s la forma en que el
"ombre se comunica con la mquina para realizar una determinada tarea.
Al conjunto de lneas de teto que describen por completo el funcionamiento de un programa se
conoce como cdigo fuente, y es este teto lo que escribe un programador en alg#n lenguaje
de programacin para resolver cierto problema.
As como eisten diversos lenguajes, tambi$n "ay distintas formas de programar una aplicacin,
a lo que le llamamos paradigmas de programacin. Un paradigma representa un enfoque
particular o filosofa para la construccin del soft%are. &ada paradigma tiene sus ventajas y
desventajas, y dependiendo de la clase de problema a resolver, uno de ellos puede ser ms
adecuado que otro.
La programacin imperativa 'tambi$n conocida como programacin secuencial( es un
paradigma de programacin que describe la programacin en t$rminos del estado del programa
y sentencias que cambian dic"o estado. )e desarrolla de forma ordenada, cada lnea de cdigo
se ejecuta una por una. Algunos lenguajes que se utilizan para este tipo de programacin son
!nsamblador, *ortran, &obol y +asic, entre otros.
,tro paradigma de programacin com#n es la programacin orientada a eventos, en la que
tanto la estructura como la ejecucin de los programas van determinados por los sucesos que
ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen. )e deben definir
los eventos que manejarn el programa y las acciones que se realizarn al producirse cada unos
de ellos, lo que se conoce como el administrador de evento. Al comenzar la ejecucin del
programa se llevarn a cabo las inicializaciones y dems cdigo inicial y a continuacin el
programa quedar a la espera de alguna accin del usuario o del sistema, es decir, de un evento.
!l mejor ejemplo de este tipo de sistema es -isual +asic, el primo privativo de .ambas.
Actualmente, el paradigma de programacin ms usado debido a m#ltiples ventajas respecto a
los dems, es la programacin orienta a ojetos o /,, ',,/ seg#n sus siglas en ingl$s(.
0onde el elemento fundamental es el ojeto, ya que se basa en la idea natural de la eistencia
de un mundo lleno de objetos, entre los cuales se definen sus interacciones para llevar a cabo
una tarea. )u uso se populariz a principios de la d$cada de los a1os 2334. !ntre sus principales
caractersticas estn la "erencia, abstraccin, polimorfismo y encapsulamiento5 y sus ventajas
claves son la reusabilidad y etensibilidad.
2
Programacin Orientada a Ojetos
!ntre los conceptos fundamentales de la programacin orientada a objetos se destacan6
1. Clase6 definiciones de las propiedades y comportamiento de un tipo de objeto concreto.
La instancia es la lectura de estas definiciones y la creacin de un objeto a partir de ellas.
2. Ojeto6 entidad provista de un conjunto de datos o atributos 'propiedades( y de
comportamiento o funcionalidad 'm$todos(, los mismo que consecuentemente
reaccionan a eventos. !s una instancia de una clase.
3. Propiedad 'o atributo(6 contenedor de un tipo de dato asociado a un objeto 'o a una clase
de objetos( y lo define. !l acceso a ellos se "ace a trav$s de los m$todos del mismo
objeto.
4. !"todo6 algoritmo asociado a un objeto 'o a una clase de objetos(, normalmente
empleado para modificar las propiedades del mismo objeto. 0esde el punto de vista del
comportamiento, es lo que el objeto puede "acer.
5. #vento6 !s un suceso en el sistema 'tal como una interaccin del usuario con la mquina,
o un mensaje enviado por un objeto(. !l sistema maneja el evento enviando el mensaje
adecuado al objeto pertinente.
6. Instancia6 cada objeto es creado a partir de una clase, se dice que tal objeto es una
instancia de esa clase. !ntonces, crear una instancia de una clase se conoce como
instanciar la clase.
!iste un acuerdo acerca de qu$ caractersticas contempla la orientacin a objetos, las ms
importantes son6
1. Astraccin6 es la propiedad que permite
representar las caractersticas esenciales de un
objeto, sin preocuparse de las dems 'no
esenciales(. 0efinir una abstraccin significa tomar
la mejor descripcin de una entidad del mundo real
y utilizarla en un programa.
2. #ncapsulamiento6 el objeto es considerado una
cpsula, debe responder a peticiones a trav$s de
sus m$todos sin la necesidad de eponer los
medios utilizados para llegar a brindar sus
resultados. !sta cualidad deriva en una de las
ventajas de la /,,, la reusabilidad de objetos.
3. Polimorfismo6 es la capacidad del lenguaje para
referirse a un m$todo com#n a varios objetos de
diferentes clases 'por ejemplo, objetos de diferentes subclases derivadas de una clase
base( llamndolo con el mismo nombre.
4. $erencia6 es la facilidad mediante la cual una clase "ereda cada unos de las propiedades
y m$todos de otra clase, como si esas propiedades y m$todos "ubiesen sido definidos
por la primer clase.
3
Introduccin a %amas
.ambas fue inicialmente creado por +eno7t 8inisini, es un ambiente libre de desarrollo en Linu
basado en un int$rprete +asic con etensiones de objetos, parecido a -isual +asic de 9indo%s
'pero es importante aclarar que :, es un clon(.
.ambas es un entorno de desarrollo que se distribuye con la licencia .:U ./L '.eneral /ublic
Licence(, conocida en espa1ol como Licencia /#blica .eneral de .:U, con lo cual el proyecto de
8inisini gan muc"a popularidad.
Los programas de computadora suelen distribuirse con licencias propietarias o cerradas, $stas
son intransferibles y no eclusivas, es decir, no eres propietario del programa, slo tienes
derec"o a usarlo en un ordenador o tantos como permita epresamente la licencia y no puedes
modificar el programa ni distribuirlo.
La licencia ./L, desarrollada por la *)*, o *ree )oft%are *oundation '*undacin para el )oft%are
Libre(, es todo lo contrario. 0efine la libertad de los usuarios sobre su producto adquirido y, por
lo tanto, una vez obtenido puede ser usado, copiado, estudiado, cambiado y redistribuido con o
sin modificaciones libremente. )in embargo, no es obligatorio que el soft%are libre sea siempre
gratuito 'free%are(, ya que tambi$n puede ser distribuido comercialmente.
!sto significa que un soft%are es libre si garantiza las siguientes libertades6
Liertad &6 La libertad de usar el programa con cualquier propsito.
Liertad '6 La libertad de estudiar cmo funciona el programa y modificarlo,
adaptndolo a las propias necesidades.
Liertad (6 La libertad de distribuir copias del programa, con lo cual puedes ayudar a tu
prjimo.
Liertad )6 La libertad de mejorar el programa y "acer p#blicas las mejoras a los dems,
de modo que toda la comunidad se beneficie.
Las libertades 2 y ; implican que se tenga acceso al cdigo fuente para poder estudiarlo y
modificarlo.
4
!l lenguaje est creado para soportar los gestores de ventanas ms comunes, como lo son
.nome y <0!. !sto significa que una aplicacin puede ser compilada para ser ejecutada en los
diferentes escritorios sin tener que modificar el cdigo fuente, ms bien "abra que elegir las
libreras propias de ese escritorio y el programa se comportar como una aplicacin nativa de
ese entorno. !s una caracterstica #nica entre los entonces de programacin para Linu. La
versin estable actual 'al momento de la edicin de este teto( es la versin =.=2.4, liberada el =>
de ?ulio de =424, agregando soporte para Arc"Linu. 8ientras que para 8icrosoft 9indo%s o
8ac, la portabilidad est a#n en desarrollo.
Ar*uitectura de %amas
&ada programa escrito en +asic .ambas est compuesto por un conjunto de arc"ivos que
forman un proyecto. &ada arc"ivo en el proyecto describe una clase. !stos arc"ivos de clases se
compilan inicialmente y a continuacin son ejecutados por el int$rprete de .ambas. !sto se
parece muc"o a ?ava, justamente, es el lenguaje sobre el que tambi$n se "a inspirado 8inisini.
Los componentes necesarios para el desarrollo con .ambas son los siguientes6
Un compilador, un peque1o ejecutable capaz de transformar todo el cdigo fuente y
arc"ivos que formen parte del proyecto "ec"o en .ambas, en un programa ejecutable.
Un int"rprete, encargado de "acer que los programas "ec"os en .ambas sean
ejecutados por el sistema operativo.
Un entorno de desarrollo, que facilite la programacin y dise1o de las interfaces grficas
de los programas.
Componentes que agregan funcionalidades al lenguaje. )on libreras especficas que
permiten etender las posibilidades del lenguaje, por ejemplo, para el uso de )0L,
,pen.L, ,0+&, coneiones de red, etc. @odos estos componentes son desarrollados por
diferentes programadores que aportan al proyecto de .ambas.
!n resumen, gracias al estilo de programacin, que toma lo mejor del lenguaje +asic y al cual se
le agreg programacin orientada a objetos, permiti a .ambas ganar rpidamente muc"a
popularidad, modernidad, estabilidad y portabilidad entre los desarrolladores de Linu.
Instalando %amas
&omo "abamos dic"o anteriormente, la #ltima versin estable disponible desde la pgina %eb
oficial de .ambas es la versin =.=2.4, mientras que la versin de desarrollo es la ;.4. !n dic"o
sitio se eplican con detalle la instalacin de ambas versiones a partir del cdigo fuente, la
direccin es +ttp,--gamas.sourceforge.net-en-main.+tml.
La solucin ms rpida y eficiente para el principiante de Linu es recurrir al .estor de
/rogramas de tu distribucin Linu. /or ejemplo, para Linu 8int 3, en el repositorio podemos
encontrar la versin =.23.4 de .ambas, aceptada como estable en los repositorios oficiales de
dic"a distribucin.
5
0esde el .estor de /rogramas de Linu 8int 3, solo tenemos que seleccionar la aplicacin y
presionar el botn de instalacin. 0e la misma forma se puede desinstalar muy fcilmente.
Luego tendremos el acceso a .ambas desde el !en/ Programacin %amas( 0%amas
almost means 1asic2 como se puede ver en la siguiente figura.
6
#l #ntorno de Programacin de %amas
!sta imagen es la pantalla de presentacin del !ntorno de 0esarrollo Antegrado de .ambas.
&omo se puede ver, lo primero es determinar sobre qu$ proyecto trabajaremos. &omo primera
opcin podemos crear un nuevo proyecto 'o aplicacin(, podemos abrir un proyecto ya eistente
desde una ubicacin del disco duro, podemos elegir uno de los proyectos usados recientemente,
o podemos abrir uno de los tantos ejemplos incluidos en la ayuda de .ambas. )i prefieres
comenzar ms tarde, tienes el botn para salir.
Los ejemplos estn clasificados por categoras, en el transcurso de este teto revisaremos
algunos de ellos. /ara acceder a ellos entonces elegimos la opcin #jemplos.
7
!n la instalacin de .ambas, se crea una carpeta en el Bome del usuario, en este caso es
C"omeCmatiasC%amas(. !n esta carpeta se guardan todos los arc"ivos que utilices en tu
proyecto, y cada proyecto tiene su propia carpeta, cuyo nombre es el nombre que le pongas al
proyecto cuando creas uno. !n el caso que est$s copiando un proyecto desde otra computadora
o descargando de Anternet, solo tienes que copiar esa carpeta en el directorio .ambas=. Luego
eliges la opcin Arir proyecto... en la pantalla de bienvenida de .ambas y vers cada uno de
tus proyectos, pero no como carpetas, ms bien se ven como un arc"ivo com#n que contiene tu
proyecto. &on una imagen lo entenders mejor.
8
/ara ver un primer ejemplo, seleccionaremos la opcin 3uevo proyecto..., nos aparecer la
siguiente ventana.
)implemente seleccionamos la primera opcin Aplicacin grfica para crear un formulario, y
presionamos el botn 4iguiente. A continuacin, el asistente nos preguntar qu$ directorio usar
para guardar el proyecto, por defecto estar seleccionada la carpeta mencionada .ambas=, pero
podemos elegir otra, o bien crear una nueva.
!sta pantalla nos brinda el botn Agregar, con el cual podemos crear un acceso directo a la
carpeta actualmente seleccionada que ser ubicado en la lista de la izquierda, debajo de Bome,
!scritorio y )istema. 0ejamos seleccionada la carpeta .ambas= y presionamos 4iguiente.
9
!n la siguiente ventana de dilogo se requiere ingresar un nombre y un ttulo para el proyecto.
Decuerda el nombre del proyecto no puede contener el carcter !)/A&A, y la carpeta del
proyecto tendr este mismo nombre. !ntonces escribimos primerProyecto como nombre y !i
primer proyecto como ttulo del proyecto. Luego presionamos O5 para finalizar el asiste, se nos
confirmar que el proyecto "a sido creado.
A"ora se nos presentar la #ntorno
Integrado de 6esarrollo de %amas
'A0!, Antegrated 0evelopment
!nvironment(, el cual presenta varios
componentes. A"ora, al igual que cada
vez que abramos el A0! veremos una
ventana que nos brindar un consejo,
es una breve nota sobre un caso
particular del uso del lenguaje, la cual
cambiar cada vez. !n caso que lo
desees, puedes usar los botones
Previo y 4iguiente para ver los
diferentes consejos, puedes evitar que
se abra esta ventana quitando la
marca en el opcin !ostrar consejos
al inicio. Luego cerramos la nota con
el botn Cerrar.
10
!n el resto del captulo usaremos en ejemplo para ir mostrando las capacidades que nos brinda
este entorno de programacin, la idea es crear una ventana como la siguiente.
Componentes del I6# de %amas
Una vez que estemos en el A0!, "aremos doble clicE sobre *main en la ventana del lado
izquierdo, con esto podremos ver nuestro formulario y componentes para dise1arlo como
podemos ver a continuacin.
!l primer cuadro de la izquierda es el #7plorador de Proyecto, la principal ventana del entorno.
:os muestra un rbol de directorios con todos los tipos de arc"ivos del proyecto 'arc"ivos de
clases, formularios, mdulos y otros tipos de arc"ivos como imgenes, iconos o datos(.
Anmediatamente arriba tenemos la 1arra de $erramientas con las principales funciones. &omo
ser crear un proyecto nuevo, abrir otro o guardarlo5 crear ejecutable, correrlo, depurarlo5 ver u
ocultar los elementos del A0!, etc. )obre la barra de "erramientas tenemos la 1arra de !en/,
que no da acceso a todas las caractersticas del entorno a trav$s de sus men#s desplegables.
-olviendo al eplorador de proyecto, podemos ver que la raz del rbol es el nombre del
proyecto, en nuestro caso primerProyecto. 0e la raz salen cuatro ramas que describimos a
continuacin6
11
Clases6 :os mostrar todo los arc"ivos de clases que tengamos en el proyecto.
+sicamente son modelos que pueden ser usados para crear objetos en tiempo de
ejecucin, con cdigo para definir las propiedades, m$todos y controladores de eventos
de cada uno de los objetos que se creen.
!dulos6 :os mostrar los mdulos escritos para el proyecto. !stos mdulos son un
conjunto de subrutinas o funciones que suelen utilizarse varias veces desde el programa
principal. :o se pueden crear objetos con ellos, y por lo tanto, no tienen controladores de
eventos.
8ormularios6 /resenta todos los formularios que "ayamos dise1ado. )on las ventanas
con las que el usuario puede interactuar, las cuales las dise1amos insertndole objetos
como cuadros de teto, botones, casillas de verificacin, listas, etc.
6atos6 /resenta los dems arc"ivos que usemos en el proyecto, como ser imgenes,
iconos, teto, arc"ivos B@8L, m#sica, etc.
?usto debajo del eplorador de proyecto "ay un peque1o espacio vaco llamada 1arra de #stado,
en la cual veremos luego que nos indicar si .ambas est realizando alguna operacin, por
ejemplo &ompilando proyecto primerProyecto..., durante unos segundos cuando iniciemos la
ejecucin del proyecto.
!n la zona central del A0! tenemos el 6ise9ador de 8ormulario, el cual contiene la apariencia
del formulario que estamos dise1ando, sobre el cual arrastraremos y soltaremos los
componentes grficos. 0e aqu sale la principal ventaja de la programacin visual, donde
podemos rpidamente crear la interfaz del usuario y tenerla lista antes de escribir cualquier
cdigo para definir las operaciones de la aplicacin.
Al "acer doble clicE sobre el formulario, o alguno de los controles que agregues, se mostrar en
la misma regin el #ditor de Cdigo, donde escribiremos el cdigo necesario para cada uno de
los controles que agreguemos al formulario y que determinar el comportamiento de ellos.
&omo podrs notar durante la creacin de este primer proyecto, el editor de cdigo tiene
importantes caractersticas que facilitan la codificacin y depuracin. Algunas de esas
caractersticas son AutoFcompletado de &digo, Desaltado de )intais, +uscar y Deemplazar.
)obre el costado derec"o del A0! tenemos dos componentes importantes para el dise1o de los
formularios. !n la mitad superior tenemos el :isor de Propiedades, donde podemos ver todas
las caractersticas del formulario o del control que tengamos seleccionado es ese momento. &on
el mismo visor de propiedades podemos modificar esas caractersticas para conseguir que los
controles se ajusten en apariencia seg#n nuestras necesidades. !n la mitad inferior tenemos la
Caja de $erramientas, la que contiene todos los elementos grficos que podemos programar
en .ambas, los cuales ya fuimos mencionando y son prcticamente todos los elementos .UA
disponibles en Linu 'botones, cuadro de tetos, etiquetas, etc(. 0esde esta caja podemos
obtener los controles para arrastrarlos al formulario.
-olviendo a las barra de men#s y botones, con ello controlamos todas las tareas principales del
A0!. La versin actual tiene G men#s que se muestran a continuacin.
12
!l men# Arc+ivo con permite crear un proyecto nuevo, abrir uno desde el disco, guardar, ver
alg#n ejemplo o salir de .ambas. !l men# Proyecto nos "abilita para definir las propiedades del
proyecto y compilarlo para crear un ejecutable, arc"ivo fuente, o paquete de instalacin. &on el
men# 6epuracin podemos controlar las interrupciones en la ejecucin del programa, ejecutar
linea por linea, etc. &on el men# :ista podemos ocultar o "acer visibles cada unos de los
componentes del A0!. 0esde el men# $erramientas tenemos acceso al .estor de +ases de
0atos, las /referencias respecto al A0! y otras ms. *inalmente, desde el men# ; 'Ayuda(
podemos acceder a la documentacin que se instala junto con el entorno.
La +arra de Berramientas nos brinda acceso rpido a las funciones de ms uso. 0ejando el
puntero del mouse sobre los botones nos aparecer un cuadrito con el nombre.
A"ora que conocemos el entorno de programacin, sigamos con el dise1o del formulario que
tenemos creado. !n la caja de "erramientas, seleccionamos la pesta1a 8orm5 all podremos ver
los controles ms comunes para los formularios. /ara este ejercicio utilizaremos una etiqueta
'lael( y un botn 'utton(. !ntonces seleccionamos con un clicE el control lael de la caja de
"erramientas, luego movemos el puntero del mouse sobre el formulario, presionamos el botn
izquierdo para comenzar a marcar la zona donde queremos que se dibuje la etiqueta,
arrastramos el puntero y lo soltaremos para fijar el tama1o que queramos. La segunda opcin
es "aciendo doble clicE sobre el control label en la caja de "erramientas, aparecer el control
dibujado en la esquina superior derec"a del formulario. Una tercera opcin es arrastrar el
13
control desde la caja de "erramientas "asta el rea del formulario donde deseamos dejarlo. !n
cualquier caso, podemos reubicar y redimensionar un control seleccionndolo en el dise1ador
del formulario y utilizando los cuadritos blancos que lo rodean. Bacemos lo mismo para ubicar el
control utton, el botn. 0eberas conseguir la siguiente apariencia.
,bserva que alrededor del teto Label2 "ay una regin sin
puntos. !sos puntos sobre todo el formulario se llaman
grilla, y nos ayudar a ordenar los controles. La etiqueta se
"a estirado un poco, por lo que se ve sin puntos "acia la
derec"a del teto. !so es para que entre todo el teto que
prendemos mostrar ms adelante. /rueba escribiendo tu
teto en la propiedad @et en el visor de propiedades para
ajustar el tama1o de la etiqueta.
A"ora editaremos las propiedades de cada objeto para conseguir nuestro objetivo comenzando
con el formulario6
!n el eplorador de proyecto "acemos clicE derec"o sobre el #nico formulario que tenemos y
elegimos la opcin <enomrar... 08(2, y escribimos frm#jercicio'. !n el visor de propiedades
buscamos la propiedad Te7t y escribimos !i primer formulario con %amas.
!n el botn modificaremos las propiedades desde el
visor de propiedades5 entonces 3ame, tn!ostrar y
Te7t, !ostrar te7to. )i el botn no tiene el tama1o
adecuado, el teto podra ocultarse parcialmente5 en tal
caso solo redimensiona su tama1o. !n la etiqueta
modificaremos las mismas propiedades que en el
botn, usando como nombre ll4aludo y al teto de la
propiedad Te7t lo borramos. ,btendremos la siguiente
apariencia.
A"ora debemos codificar la accin que queremos al presionar el botn. /ara abrir el editor de
cdigo tenemos cuatro maneras, la ms rpida sera "aciendo doble clicE sobre el botn. La
segunda opcin es "acer clicE derec"o y elegir la opcin Abrir cdigo '&trlH9(. !stas dos opciones
nos lleva al editor de cdigo donde veremos que automticamente se escribieron las
instrucciones PU1LIC 4U1 y #36 correspondientes al evento Clic5 de nuestro botn. !ntre ellas
escribiremos la accin de nuestro botn, la cual sera
ll4aludo.Te7t = >?1ienvenido a la programacin con
%amas@A. :otars que al escribir el nombre de la etiqueta, te
mostrar un peque1o cuadro con el nombre completo de
nuestra etiqueta, es el autoBcompletado, para aprovec"arlo
puedes usar la tecla Ta o Intro para continuar escribiendo el
I.I, no funcionar con la barra de espacio como puedes "acerlo
en otros editores. Al escribir el punto, te saldr una lista con
todas las propiedades y m$todos del control 'de la etiqueta en
nuestro caso(, elegimos o escribimos @et, y completamos el
teto que vamos a mostrar.
14
!s un buen momento para guardar nuestro proyecto. Aqu podemos cerrar el entorno, luego de
volver a abrir nuestro proyecto, tendremos las cosas tal cual lo vemos a"ora. 0e todos modos
este paso no es necesario a"ora, ya que podemos directamente ejecutar nuestra aplicacin.
Antes de ejecutarse nuestro cdigo, debe guardarse y compilarse5 todo eso se "ace de forma
automtica al presionar el botn #jecutar o la tecla 8C, con lo cual ya no necesitamos guardar el
proyecto. *inalmente podremos ver nuestra ventana funcionando.
/ara cerrar la aplicacin podemos presionar el botn con la D '&errar la ventana( que nos ofrece
el gestor de ventanas o con el botn Parar de la barra de "erramientas del A0! de .ambas. 8s
adelante usaremos un botn en el formulario programado para terminar la ejecucin de la
aplicacin.
Basta a"ora "emos editado dos tipos de arc"ivos, como podemos ver justo arriba del editor de
cdigo. Los arc"ivos que creamos son frm#jercicio'.form, donde tenemos todos los datos del
formulario5 y el arc"ivo frm#jercicio'.class, que contiene todo nuestro cdigo. Baciendo clicE
sobre la pesta1a con el nombre frm!jercicio2.form volveremos al dise1ador de formulario, y
"aciendo clicE sobre frm!jercicio2.class volveremos al editor de cdigo. !sta #ltima es la tercera
forma de acceder al cdigo de nuestro control. )i abrimos nuestro navegador de arc"ivos
preferido y accedemos a la carpeta de nuestro proyecto, podremos ver que all se encuentran
nuestros dos arc"ivos. Decordemos que ambos tiene el nombre que elegimos para nuestro
formulario.
15
!n el siguiente captulo veremos los fundamentos de la programacin en +asic, los tipos de datos
que se utilizan y la sintais de las instrucciones bsicas que se utilizan en cualquier lenguaje de
programacin.
1iliografEa6
8g. Ang. *tima del &. 8artnez5 =44J5 KAntroduccin a -isual +asicL5 @ucumn5 Argentina
Luis ?oyanes Aguilar5 233G5 K/rogramacin ,rientada a ,bjetosL5 8c.ra%FBill5 8adrid5 !spa1a
?o"n 9 Ditting"ouse5 =44M5 KA +eginnerIs .uide to .A8+A)L
9iEipedia5 K/rogramacinL5 "ttp6CCes.%iEipedia.orgC%iEiC/rogramacion5 accedido 2=CoctC=424
9iEipedia5 K)oft%are LibreL5 "ttp6CCes.%iEipedia.orgC%iEiC)oft%areNlibre5 accedido 2=CoctC=424
16

También podría gustarte