2. pág. 2
Introducción.
Intentar dar una definición de lo que es programar en la actualidad es muy
atrevido, por lo que el que desee una de esas definiciones solo tiene que acudir
a Internet y encontrara seguro un sin fin de ellas.
Pero para escribir un programa, una aplicación, un paquete informático, hay
que combinar varios elementos.
Técnica.
Diseño.
Imaginación.
Técnica, que se puede aprender, y que es lo que se quiere enseñar en este
curso de iniciación.
Diseño, estilo, gusto, que es más difícil enseñarlo, pues es una cuestión
personal, y se trata de ofrecer nuestro producto en un formato agradable para
quien lo va a utilizar.
Imaginación, conocida la técnica de programación, está capacidad se puede
adquirir con la experiencia, es más difícil, porque la capacidad de poder crear,
imaginar la solución, o forma en la cual se desea plantear o mostrar lo que se
quiere obtener, es una capacidad individual que cada uno tiene más o menos
desarrollada.
Estos elementos nos permitirán combinar otros tres elementos, que son
El hardware, el ordenador.
Los procedimientos, funciones, clases y objetos.
Las estructuras de datos.
3. pág. 3
Hardware, conocer los distintos elementos con los que se puede contar para
poder llegar a obtener una solución óptima a nuestro problema.
En programación hay una gran variedad de tipos de programas, y un amplio
espectro de periféricos en el mercado.
Su conocimiento nos puede facilitar la solución de un problema.
Procedimientos, funciones, son las herramientas de las que nos valemos en la
programación para la resolución de un programa, para resolver un problema.
Estructuras de datos, los dos elementos anteriores nos permiten sacar el
rendimiento de un programa, pero un programa utiliza datos, pocos o muchos,
pero siempre información, por lo tanto, hay que manejar de forma adecuada
dicha información.
4. pág. 4
Elementos de programación.
Podríamos denominar los siguientes apartados como elementos de la
programación.
– Tener claro que queremos hacer.
– Dominar los elementos a nuestro alcance.
– Imaginar espacialmente la solución que deseamos obtener.
– Aplicar dicha solución.
Tener claro que queremos hacer, en condiciones normales, la creación de un
programa parte de una fase de diseño que da como resultado final como tiene
que ser un programa y lo que hay que hacer es transcribir a código dicho
resultado.
Por lo tanto, antes de iniciar la escritura de un programa es imprescindible
saber de forma clara y sin paliativos que es lo que queremos hacer, si una silla
o un barco.
Normalmente una buena aplicación suele conllevar un ahorro en el tiempo
final, porque no hay que retroceder ni tampoco corregir.
Dominar los elementos a nuestro alcance, implica tener un conocimiento y
dominio de los elementos mencionados anteriormente.
imaginar espacialmente la solución que deseamos obtener, la progresión en la
técnica de la programación, con el tiempo nos llevará a imaginar, por decirlo
de alguna forma, la solución o la forma de enfocar como deseamos hacer el
programa que nos encargan, pero eso a otro nivel, os irá pasando a lo largo
del curso, ya que con los ejercicios que iremos planteando, a medida que los
vayamos leyendo de forma inconsciente os ira apareciendo la forma de
enfocarlos.
Aplicar dicha solución, y solo quedará con todos los datos aplicarlos a la
solución que en principio creemos más adecuada, y que luego modificaremos
muchas veces.
Hay un principio, “si funciona no lo toques”, pero claro ..., así que cada cual
decida cuando parar.
5. pág. 5
Lo principal de un programador
Tener las ideas claras, saber de forma exacta que es lo que tienes y a donde
has de llegar.
tener claro en qué orden quieres hacerlo.
Lo más importante en programación son los conceptos. Si se tienen claros, a
continuación, podrás buscar las herramientas que necesitas en el lenguaje que
usas y realizarás correctamente tu labor.
Memorizar cosas no es importante, es más importante saber dónde está un
manual y buscar ahí la información, que necesitemos.
El cambiar a otro lenguaje de programación, si los conceptos son sólidos, no
supondrá ningún trauma, pues cambiarán las instrucciones que usas, pero no
el orden en que se tienen que realizar los pasos.
Dominar la herramienta de programación de que dispones.
Realizar las pruebas adecuadas de funcionamiento correcto del programa.
La fase de depuración y pruebas de un programa son importantísimas, porque
eso nos lleva a un producto final fiable y de probada eficacia, lo cual da
fiabilidad al producto, y al programador que lo crea.
Un programa que no da confianza no se utiliza.
6. pág. 6
Características
Se podrían añadir o quitar, pero estas son importantes.
1 legibilidad.
Debe ser posible leerlo y entenderlo con facilidad, el uso de nombre de
variables adecuados y comentarios, facilita este apartado.
2 portabilidad.
Crear estructuras que permitan su codificación en distintos lenguajes.
3 modificabilidad.
Ha de facilitar su mantenimiento, es decir, debe permitir que se modifique o
actualice en función de las necesidades del problema a resolver. Para ello es
conveniente comentar adecuadamente el código.
Un programa debe quedar escrito y documentado de tal forma que otra
persona que venga detrás pueda modificarlo o ampliarlo sin excesiva dificultad.
4 eficiencia.
Se debe aprovechar al máximo los recursos del ordenador, minimizando el
empleo de memoria y el tiempo de ejecución. Además, como es obvio, debe
resolver el problema para el que ha sido planteado.
5 modularidad.
Se debe procurar no tener que resolver el mismo problema varias veces. A
igual problema, igual solución, lo que conlleva la elaboración de módulos para
resolver problemas concretos.
6 estructuración.
Lo programas deben tener única y exclusivamente estructuras lineales,
alternativas y cíclicas, exclusivamente, o dicho de otra forma, no es
conveniente utilizar instrucciones de salto, aunque estén disponibles en el
lenguaje de programación.
7. pág. 7
Problemas en los programas
Cuando se tienen problemas con un programa, lo mejor es ir haciendo pruebas
por zonas, visualizando contenidos mediante las herramientas, opciones de
depuración del entorno que utilizamos, de las variables que nos interesan y
comprobando que se ejecutan las zonas del programa que a nosotros nos
interesan que se ejecute.
Cuando se diseña una rutina, función, procedimiento o método nuevo, esta
debe probarse fuera del programa, para asegurarse de su correcto diseño y
que devuelve correctamente los resultados, asignándole en la prueba todos
los valores posibles para verificar su correcto funcionamiento.
En un programa pequeño eso es muy fácil de probar y de controlar su
ejecución correcta.
Copiar un programa no es malo, no suele hacerse, suelen copiarse ideas, o
mejorar cosas que se observan en otros paquetes, pero lo importante si se
hace, es saber cómo funciona y entenderlo, si no, no nos aportará nada.
8. pág. 8
Estructura y representación de un programa
Escribir un programa.
Toda actividad necesita de un argot, jerga y convenios para poderse entender
entre las personas que se dedican a una misma labor. No es que se pretenda
aislarse del resto de las personas, sino que es necesario ese convenio y un
lenguaje específico que a cada cosa le asigne su nombre característico y
propio, y de esa forma facilite la comunicación entre las personas.
De esta forma surge en cada profesión una serie de símbolos y palabras para
facilitar el trabajo.
Existe varias formas de representar un programa de forma previa a su
codificación y a partir de los datos que nos entregan como consecuencia de la
fase previa de análisis.
Seudocódigo
Ordinogramas.
Lo que sigue es un pequeño ejemplo de un programa muy sencillo, en formato
de seudocódigo.
Inicio
Escribir “Cálculo del área de un triángulo”
Leer “Introduzca la base del triángulo”, Base
Leer “Introduzca la altura del triángulo”, Altura
Area = (Base * Altura) / 2
Escribir “El área del triángulo es “, Area Fin
Esta forma de escribir, o de describir dicho programa se denomina
pseudocódigo.
Como se puede comprobar, es una forma sencilla de describir un programa en
un formato muy próximo al ser humano, pero también se puede desarrollar de
forma gráfica.
Para ello los símbolos utilizados básicamente son:
9. pág. 9
Y a continuación vemos el ejemplo de antes representado mediante
organigrama.
Ambos sistemas son válidos, cada cual puede elegir el que más le guste.
10. pág. 10
Los datos
Los datos en un programa es uno de los elementos vitales del mismo, pero en
la vida cotidiana los utilizamos a diario también, si nos fijamos en los datos que
utilizamos, nos daremos cuenta que son letras y números, números solo o solo
letras.
También, cuando a lo largo del día alguien nos da un dato pequeño,
normalmente no memorizamos, pero si es largo o complejo, lo apuntamos,
¿Por qué?, porque tenemos nuestras limitaciones, por la edad, por lo
despistados que somos etc.
Los ordenadores también disponen de memoria, y también manejan
información, datos, y en función de lo voluminosos que sean los datos, los
almacenarán en la memoria central del ordenador, o en un soporte, en el disco
duro o lo grabaremos en un disquete o disco compacto.
Los tipos de datos.
Informáticamente los datos son de dos tipos básicos, números y letras, o
numéricos y alfanuméricos.
Con los datos numéricos realizamos operaciones de cálculo y con los
alfanuméricos representamos información y la almacenamos para el uso en
el programa.
El dato numérico utilizará en memoria un espacio adecuado para el valor que
puede tomar.
Como la memoria en un ordenador es vital, conviene aprovecharla al máximo.
Un valor numérico puede tomar un valor desde cero, olvidemos los números
negativos, hasta …, hasta un valor que es imposible escribir, o sea, infinito.
Pero eso en un ordenador es imposible de asumir.
Por lo tanto, lo que hacemos es que creamos rangos, y a cada rango le
asignamos un tipo de dato.
¿Cómo se crean los rangos?
Pensemos en que un ordenador solo sabe utilizar un uno y un cero, ausencia
de voltaje y presencia de voltaje eléctrico, sistema binario, pero nosotros
utilizamos lo que denominamos el sistema decimal, es decir diez elementos en
lugar de dos.
11. pág. 11
En este sistema, cada uno de los dígitos utilizados se denomina bit, (Binary
digit).
Por lo tanto, para almacenar un número del cero al nueve, necesitaremos una
combinación de ceros y unos que permitan representar cada uno de esos
números, y como son diez, se necesitan diez combinaciones.
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
Esa sería la combinación para representar los diez dígitos del cero al nueve.
Cada uno de esos dígitos los denominamos bits, por lo tanto, el cinco necesita
tres bits para representarlo.
Si siguiéramos esa secuencia podríamos ir creando todos los números
decimales en binario.
Estos bits se agrupan en grupos de.
1 bit.
4 bit un cuarteto.
8 bit un octeto, un octeto es un byte.
1024 bytes, es un Kilobyte. Kb.
1024 Kb son un Megabyte, Mgb
12. pág. 12
1024 Mgb. son un Gigabyte.
Si nos preguntamos porque se usa 1024 en lugar de 1000, la respuesta es que
hay que buscar bloques de 8 bits, que son un byte, 1024 es 2 10.
Los datos alfanuméricos no tienen problema en su representación, pues cada
carácter ocupa un byte en memoria, tantos caracteres tantos bytes, dentro de
las limitaciones del lenguaje de programación que se esté utilizando.
El motivo de utilizar un byte para cada carácter es que el número de caracteres
máximo distintos en un idioma latino, o anglosajón, tomando los números como
caracteres independientes, incluidos letras acentuadas y caracteres de
puntuación no supera los 256, con un byte podemos obtener 256
combinaciones distintas, del 0 al 255.
Actualmente se utiliza un sistema de dos bytes que de forma unilateral
implanto una empresa de software, por lo cual, aunque nosotros usemos un
carácter para almacenarlo se utilizarían dos.
Esto permite que se puedan representar hasta 65535 combinaciones de
símbolos, necesario para los lenguajes orientales, que usan símbolos en lugar
de letras.
Pero los números son datos compactos, no se pueden andar separando de
forma arbitraria, ya que hay que realizar operaciones de cálculo con ellos, por
lo tanto, han de ocupar uno, dos o x bytes, pero contiguos, para así poder
operar matemáticamente.
Por lo tanto, los números que podemos representar en un sistema dependerá
del número de bytes que pongamos juntos para representar ese número.
Por ejemplo, si ponemos un solo byte a disposición del sistema, solo podremos
representar números entre el 0 y el 255. Un byte son 8 bits, las combinaciones
son 28 que es igual a 256, que son los números que podemos representar.
Como eso es muy pobre, el rango más pequeño que se utiliza es el de dos
bytes, que permiten manejar números entre –32767 y + 32768, como números
enteros.
Aunque eso parece un rango muy pequeño, en programación los números
enteros se usan para contar cosas, y en un porcentaje muy elevado de casos
13. pág. 13
es suficiente ese rango, siempre que se haga un uso adecuado de los
recursos.
claro la pregunta sale sola ¿pero números hay …?, claro que hay más, pero
esos ya se han dado en clasificar en otro tipo de datos, los llamados números
reales.
Los números reales se representan con otro sistema, no creeremos que se
puede asignar espacio en memoria para el número 12345678901234567890,
o bien para el 0,12345678901234567890, eso no es factible.
Por lo tanto, en función del tamaño del espacio usado en memoria se puede
abarcar más o menos valores.
Esta tabla muestra los valores máximos y mínimos en función del número de
bytes utilizados en un lenguaje de programación.
Pensemos que hace años un número entero utilizaba dos bytes, ahora en los
lenguajes modernos utiliza 4, por lo que se aumenta el número de valores
posibles válidos.
14. pág. 14
Programa
Un programa está dividido en varios bloques.
Declaraciones.
Procedimientos y funciones de usuario.
Programa principal.
A su vez en el programa encontramos tres fases.
Entrada de datos.
Proceso de los mismos.
Obtención de resultados.
La programación ha avanzado mucho desde sus inicios, actualmente la
programación no se entiende sin el uso de clases y sus correspondientes
objetos que derivan de las mismas.
Declaraciones.
La parte de declaraciones puede ser muy amplia, dependerá del lenguaje de
programación, de sus requerimientos.
Como mínimo se tendrá que declarar las variables que intervengan en el
programa, de tal forma que queden disponibles para su utilización en el
programa.
15. pág. 15
Las clases
Si nuestro estilo de programación no contempla, comparte, o lo que cada uno
desee, el uso de clases y objetos, el escalafón acaba con los procedimientos y
funciones, y estos se utilizan directamente dentro del programa.
Ni uno es malo, ni el otro es perfecto, son sistemas, estilos y filosofías distintas,
pero no se puede negar que el uso de clases es positivo dentro de la
programación.
En la actualidad el tipo de programación que se realiza es lo que denominamos,
P. O. O., programación orientada a objetos.
Dicho de otra forma, la materia explicada en temas anteriores, se colocan en el
interior de lo que denominamos clases, con las que crearemos los objetos.
Un objeto es un elemento derivado de una clase.
La clase es un elemento estructural en un programa que dispone de
En programación, un objeto es un ente que es capaz de realizar tareas y
reaccionar ante aquello que tiene a su alrededor, ante los eventos que lo
rodean, sea un partido de fútbol, una película, una sensación, y al que dotamos
de una serie de características, alto, bajo, grande pequeño y que se definen
cuando creamos el objeto y que podemos dejar que quien vaya a utilizarlo los
pueda modificar, pero siempre bajo nuestro control, claro, para eso el objeto lo
hemos creado nosotros.
Como lo que no se hace en informática es crear varias veces lo mismo, las
clases las escribimos una sola vez, y lo que se hace es crear algo así como un
molde con el que luego vamos haciendo copias.
Para profesionalizar la parrafada de antes, al molde se le llama clase, y a esa
clase le dotamos de una fisonomía, característica, a los elementos que
describen esa fisonomía, lo llamamos propiedades.
Las tareas que queramos que sea capaz de realizar las denominamos
métodos.
Y a la capacidad de reaccionar a los estímulos exteriores lo llamamos eventos.
16. pág. 16
Un ejemplo muy cercano, el ser humano, si deseamos crear una clase que
imite al ser humano le podríamos crear una serie de características,
propiedades, como
Sexo
Altura
Color del pelo
Color de los ojos
Por lo tanto, las propiedades describen el objeto.
Podemos crear características internas, que no se podrán utilizar fuera del
objeto, y otras que serán externas y que sí que se verán en el objeto y podrán
ser modificadas lo que permitirá crear objetos de distintos tipos.
Estas características externas son las que de verdad denominamos
propiedades, pues es posible que sean modificadas por quien utiliza la clase,
quien de verdad genera después el objeto.
Las características internas, por llamarlas así, son en realidad variables de la
clase, las propiedades también lo son, pero se ven por parte del usuario.
17. pág. 17
VB Studio Net 2005
Es un lenguaje de programación que actualmente respeta prácticamente todas
las características de la P. O. O.
Anteriormente la generación de un programa ejecutable con Basic generaba
un ejecutable, actualmente genera un archivo intermedio que se ejecuta
posteriormente por la máquina virtual de Studio Net.
Esta característica, que hoy incorporan otros lenguajes de programación,
convierte a VB en un lenguaje portable en el momento que exista una máquina
virtual para otros sistemas operativos distintos de Windows.
Características.
Es fácil de utilizar, igualmente para personas que están iniciándose como para
expertos en la materia.
El entorno de diseño para un entorno gráfico es muy cómodo y fácil de utilizar.
Es un lenguaje orientado a objetos.
Existe un amplio espectro de objetos en el mercado para poderse integrar en
el lenguaje.
No dispone de punteros.
Advertencias.
El problema de las mayúsculas de otros lenguajes aquí no se da, e incluso el
editor de texto de VB unifica el nombre de las variables cuando las escribes de
otra forma.
Entorno utilizado.
En esta documentación se ha utilizado la versión y entorno de programación
de Studio Net 2005.
En el siguiente link se puede acceder a información y descarga del producto
gratuito si después deseas registrarte.
La labor de programación es una tarea más, como otro de los trabajos que hay
en la vida, el problema es cuando el trabajo se hace a gusto o no.
18. pág. 18
Por lo tanto, a la hora de realizar cualquier trabajo hay que intentar disponer
de las mejores situaciones posibles.
EL entorno de Vb está preparado para facilitar toda una serie de tareas del día
a día en la escritura de un programa.
• Depuración.
• Organización.
• Ayudas
• Corrector sintáctico
• Compilación.
•
El entorno en si es muy amplio y explicarlo en su totalidad no es el motivo de
esta documentación, vamos a abordar solamente la parte que nos interesa
para esta fase de iniciación a la programación con este lenguaje.
19. pág. 19
Funciones
Visto y nombrado los elementos de un programa y sus estructuras, así como la
forma de representar las soluciones y el uso de procedimientos, ahora hemos de
profundizar sobre el uso de las funciones, el paso de parámetros y sus
características.
Creación.
Hay una máxima que sí podría servir, y es que en el momento en que en el
programa aparece código repetido, ya podemos empezar a pensar en la
creación de una función o un procedimiento, según corresponda.
También hay que tener en cuenta que la llamada a una función o un
procedimiento consume recursos y tiempo de ejecución, pero en la actualidad
se piensa poco en esos parámetros.
Resolver de forma recursiva la factorial de un número es “bonito”, pero ¿y si el
número es algo grande?
Con un procedimiento resuelvo el programa y voy creando la estructura del
mismo.
Una función es un “trozo” de código especializado en hacer algo en concreto,
por ejemplo, el ejercicio del área de un triángulo o de una circunferencia, se
resolvió mediante un procedimiento, pero su solución correcta es la de una
función, ¿por qué?, pues normalmente el área del triángulo es un dato que voy
a calcular y que puede aparecer hasta en una expresión habitualmente.
Si utilizo procedimientos, la solución puede ser algo así:
Altura = 5
Base = 10
AreaTriangulo (Base, Altura, Área)
Escribe “El área del triángulo es “, Area
Esta es la solución con un procedimiento, ejecutamos el procedimiento y nos
devuelve un dato llamado Area, que lo usamos en el texto de informe al
usuario.
Escribe “El área del triángulo es “, AreaTriangulo (Base, Altura)
20. pág. 20
Como podemos ver con una función es mucho más “elegante” el código
resultante.
¿Cuándo escribir una función o un procedimiento?, en el ejemplo podemos ver
un criterio.
Un procedimiento es una línea de mi programa, lo llamo y se ejecuta, resuelvo
el problema estructural del programa con ellos.
Una función forma parte de una instrucción, una función siempre devuelve un
dato, un procedimiento no tiene por qué hacerlo.
Ejemplo:
En el caso de una función no nos sirve el criterio de que un procedimiento
crezca en demasía, para crear una función, hay una diferencia de base entre
un procedimiento y una función, y es que un procedimiento puede formar, o
forma parte, de la resolución lógica de un programa, parte de su estructura,
pero una función es una parte de nuestro programa que está especializado en
algo muy concreto y que solo sabe resolver ese tema, y no formará parte de la
estructura del programa, colabora en su solución.
Evidentemente que sí convierte en más legible un programa, el uso de una
función, pero no es la forma de resolver un programa, por supuesto que su uso
es necesario en programación, pero hay que ver ese matiz entre ambas
herramientas de programación.
21. pág. 21
¿Funciones o Procedimientos??
En el peor de los casos, todo lo que se puede escribir en un procedimiento se
puede resolver también con una función, o al revés, ¡técnicamente!, en la
realidad no debe abordarse así, porque en algunas ocasiones para hacerlo,
hay que cometer alguna incorrección.
Una función devuelve siempre un único dato, un procedimiento puede devolver
uno o varios, o ninguno, pero es que, si se usan adecuadamente las funciones,
con un único dato es suficiente.
Tipos de la función.
Hemos dicho que una función
devuelve un dato, por lo tanto, si
devuelve un dato, ese dato debe de
ser de un tipo, de ahí que la función
cuando se crea hay que declarar de
que tipo es, y ese tipo es el del dato
devuelto.
Otra forma de clasificar las
funciones es dividirlas por las
propias del lenguaje y las que
diseñemos nosotros, todos los
lenguajes de programación
disponen de funciones prescritas en
el mismo.
En el ejemplo vemos una función escrita por nosotros, y vemos como en su
interior utilizamos funciones del lenguaje en el que se escribe esa función.
La función del ejemplo es del tipo alfanumérico porque lo que devuelve es un
dato alfanumérico.
Por lo tanto, tendremos tantos tipos de funciones como tipos de datos disponga
el lenguaje que estamos utilizando.
22. pág. 22
Las clases en el código
En una clase tenemos que escribir código con el fin de alcanzar los objetivos
para la cual se diseña la misma.
Si no existiera código en la misma, la clase puede seguir existiendo, pero lo
único que podríamos hacer con ella es crear una estructura de datos, más o
menos compleja.
Código en la clase.
El código en la clase se distribuye entre
las propiedades, los procedimientos, las
funciones, los eventos y los métodos.
En las propiedades, para realizar el
control y la validación de los datos que
se asignan a las variables internas de la
clase.
En los métodos, porque desde ahí se
distribuirá la ejecución de los
procedimientos y funciones de la clase
en función del diseño del mismo.
En los eventos también dispondremos de código, para que de esa forma se
pueda reaccionar en función de lo que sucede a su alrededor.
Las variables, propiedades, los datos, almacenan la información que se utiliza
en la clase para poder realizar las acciones para las cuales se escriben los
métodos de la misma.
23. pág. 23
Las variables disponían de dos posibilidades, podían ser internas y externas.
Con el código sucede lo mismo, una clase se diseña para resolver un
problema.
Ese problema, para resolverlo se descompone en una serie de acciones de
menor entidad, y en su solución se podrán utilizar acciones de dos tipos:
• Externas.
• Internas.
Las acciones externas serán las que ofreceremos al usuario para que pueda
interactuar con el objeto que se deriva de la clase.
Las acciones internas son las que creamos nosotros de forma interna en
nuestra clase para crear el código que resuelva el problema para el cual se
diseña la clase.
Explicado en sentido inverso, los métodos son la parte de código que se ve en
una clase.
Los métodos se escriben utilizando procedimientos o funciones, en función de
nuestras necesidades.
En la clase existen otros procedimientos y funciones, pero no son públicos, o
no son métodos, y no se pueden utilizar por el usuario de la clase, del objeto
que se deriva de ella.
Una clase al fin y al cabo es un programa más, no hay diferencias en cuanto a
la solución de los problemas, pero el matiz es que un programa se inicia a
instancia del usuario, y una clase se inicia a solicitud de una instrucción desde
el interior de un programa.
En las Propiedades.
Porque en las propiedades en muchas ocasiones hay que filtrar los valores
que recibimos, con el fin de que sean coherentes con el conjunto de datos de
la clase, y evitar que se asignen a las variables internas de la clase.
En las Funciones, Procedimientos.
Para desarrollar una clase es necesario escribir un “pequeño programa”, y ese
pequeño programa se compone de una parte pública que son los métodos
24. pág. 24
Estos métodos, podemos decir que son el punto de inicio de una acción, una
acción que inicia el programa cuando reclama su presencia, es decir
podríamos decir que una clase tiene un sin fin de puntos de inicio, cada uno
de los métodos, si descartamos el código de las propiedades -, por lo tanto,
como deseamos crear un código sencillo, estructurado y ordenado, es
necesario que el código en el método sea breve.
Para ello el código de un método se compone de llamadas a procedimientos y
funciones que se llaman desde el mismo.
Además de esa forma un procedimiento puede compartirse por varios
métodos, lo que reduce el volumen de código de la clase.
Así que, en el interior de la clase escribiremos todos los procedimientos y
funciones que se necesiten para poder desarrollar todas las acciones que sean
necesarias en los métodos.
En los Métodos.
En los métodos, porque los procedimientos no se activan solos, y de alguna
manera han de activarse, y eso se consigue mediante la ejecución ordenada
del código que hay en cada uno de los métodos.
Hemos dicho que cada método es como un punto de inicio de un programa,
pues en ese punto es donde empieza la acción, y ahí es donde a medida que
se van ejecutando las líneas de código, se van escribiendo las llamadas a cada
procedimiento.
En el ejemplo de clase que sigue, se ha creado un método que visualiza los
números pares entre dos valores determinados.
En ella vemos como el método llama a una función que devolverá cierto o falso
en función de que el número sea par o no.
Clase Ejemplo:
Funcion EsPar (Numero como Entera) Como Booleana
EsPar = Numero Modulo 2 = 0
Fin de Funcion
Método NumerosPares (Inicio como entera, Final Como entera)
25. pág. 25
Crear X Entera = 0
Si Inicio < Final Entonces
X = Inicio
Mientras X <> Final
Si EsPar(X) Entonces
Escribir (“El número “, X, “es par”)
Fin de Condicion
X = X + 1
Fin Mientras
Fin Condicion
Fin Metodo
Fin Clase
Inicio Programa
Crear Objeto como Ejemplo
Objeto.NumerosPares(10,50)
Fin programa
26. pág. 26
Clases en VB
Las clases son el molde a partir del cual obtenemos el objeto en nuestro
programa, y el objeto es en realidad el que tiene el protagonismo de la acción,
la clase es solo el molde.
Vamos a ver cómo aplicar los conceptos vistos con anterioridad en VB.
Lo ideal es tener un módulo con las o la clase en nuestro proyecto, de forma
que estén agrupadas de forma práctica para nosotros.
Elegimos
Archivo à Nuevo
proyecto y
seleccionamos
aplicación de
consola.
Después
Proyecto à
Agregar Clase y
seleccionamos el icono de clase como vemos en la imagen.
El objeto.
Primero creemos el objeto.
Nuestra clase ahora es así.
Public Class Ejemplo
End Class
Ahora creamos un objeto de esa clase.
Dim Objeto As Ejemplo
Si ahora escribimos en nuestro programa
Objeto.
27. pág. 27
Si vemos la imagen, ese es el resultado, son los métodos estándar de
cualquier objeto.
Pero como no hemos escrito nada nuestro, no
vemos nada.
Los datos.
Hemos comentado que eran de dos tipos
• Internos.
• Externos.
Veamos como definir los datos internos en la clase, es decir los que no se ven
en el exterior.
Public Class Ejemplo
Dim DatoInterno As String
Private OtroInterno As Integer
End Class
Si ahora escribimos en nuestro programa
Dim Objeto as Ejemplo
Objeto.
Si vemos la imagen, ese es el resultado, son los métodos estándar de
cualquier objeto.
28. pág. 28
Utilizar y definir datos
Hasta ahora lo que hemos estado viendo han sido distintas herramientas para
el desarrollo de un programa.
• Estructuras básicas de programación.
• Secuencial
• Repetitiva
• Alternativa.
• Funciones.
• Procedimientos.
• Clases.
Hemos dejado de lado la parte de los datos.
El apartado de datos abarca las estructuras, las formas de almacenamiento y
de acceso.
Pero es imprescindible el conocer las distintas formas de utilizar datos en un
programa para obtener el mejor rendimiento del mismo.
Su gestión en memoria se realiza mediante unas estructuras denominadas:
• Variables.
• Array.
• Listas.
Y la gestión de los datos cuando estos se almacenan en un soporte se realiza
mediante el uso de archivos.
La información en un programa puede ser de muchos tipos y desde distintos
puntos de vista.
La información, los datos, se utilizan en un programa en variables, y ya hemos
visto anteriormente que las variables pueden ser
• Numéricos.
• Alfanuméricos.
En un programa se utiliza información para:
La ubicación en el ordenador de la instalación del programa.
La configuración de la interface con el usuario.
29. pág. 29
Los datos que el usuario genera como consecuencia de la utilización de un
paquete en cuestión, contabilidad, nominas, etc...
Esta información puede ser almacenada en distintos tipos de soporte
• Disquetes,
• Disco duro,
• Memorias de distinto tipo.
Los soportes donde se almacenan los datos pueden ser o no direccionables.
Los soportes antes mencionados son direccionables.
Una cinta en cualquiera de sus distintas versiones no lo es.
Las estructuras de datos a utilizar en la gestión de los datos pueden ser de tipo
Estático, no pueden crecer o disminuir de tamaño.
Dinámico, pueden aumentar o disminuir de tamaño.
Los datos a utilizar en un programa pueden ser
Volátiles, desaparecen al finalizar el programa.
Duraderos, se conservan en algún tipo de soporte y pueden ser recuperados
en cualquier momento o por otro programa.
Las estructuras que se utilizan en la grabación de los datos en un soporte
pueden ser
Archivos direccionables, acceso aleatorio o indexado.
Archivos no direccionables, acceso secuencial.
Seguro que aun podríamos buscar
más clasificaciones o formas de
agrupar información, pero con esto
es suficiente.
Como lo que aquí nos interesa es
la parte útil para hacer un programa,
nos limitaremos a:
• Tipos de datos. Estructura de datos
• Tipos de usuario. Almacenamiento de datos
30. pág. 30
Enumeraciones
Ver el uso de las enumeraciones dentro de un programa y sus ventajas.
Las enumeraciones es una gran comodidad dentro de la creación de un
programa.
Normalmente cuando en un programa tenemos que crear una distinción entre
varios tipos de datos, optamos por asignar valores numéricos desde cero o
uno hasta el último de los tipos de datos que vayamos a utilizar.
El inconveniente es que hay que estar pendiente continuamente, de la
documentación del mismo, de su correcta utilización.
Con las enumeraciones ese problema desaparece.
¿Qué son?
Como hemos comentado en el programa optamos habitualmente por asignar
valores desde cero hasta un valor determinado para separar cada uno de los
posibles tipos de datos, o circunstancias que se nos puedan presentar.
Por ejemplo, a la variable Curso, le asignamos los siguientes posibles valores.
• Primero
• Segundo
• Tercero
Lo cual implica que en el programa crearemos el siguiente código
Si Curso = 1 Entonces.
Si Curso = 2 Entonces.
Y así sucesivamente
Una enumeración es exactamente lo mismo, pero con nombre, en lugar de lo
visto anteriormente, haríamos lo siguiente.
Enumeración Cursos
Primero = 1
Segundo = 2
Tercero = 3
31. pág. 31
Fin de enumeración
Crear Curso del tipo Cursos
Lo cual permite después escribir lo siguiente
Si Curso = Cursos. Primero Entonces ...
Si Curso = Cursos. Segundo Entonces ...
Que resulta mucho más cómodo, y sobre todo seguro al evitar errores de uso
del valor adecuado en el código, ya que todos sus valores posibles se suponen
declarados.
En la ampliación de VB, se ilustra de forma más clara el uso de las
enumeraciones.
32. pág. 32
Enumeraciones en VB
El uso de las enumeraciones en VB está muy logrado, pues el entorno de
programación las integra de una manera muy cómoda para el programador,
utilizándola como ayuda en las llamadas a los procedimientos y funciones.
La sintaxis a usar es la que vemos a continuación
Enum Monedas
Euro = 1
Dolar = 2
Libra = 3
Yen = 4
End Enum
Enum Monedas
Euro
Dolar
Libra
Yen
End Enum
En ambos casos la sintaxis es correcta, la diferencia es que en el primer caso
forzamos los valores, euro sería uno, y en el segundo sería cero, que es el
valor que VB le da por defecto.
Es la definición del nombre de la enumeración.
Enum Monedas
33. pág. 33
Euro = 1
Dolar = 2
Libra = 3
Yen = 4
Es el contenido.
End Enum
Es el final de la descripción de los elementos de la enumeración.
Una de las utilizaciones se refleja en la imagen:
Podemos observar cómo se introduce un dato en la inicialización del objeto, y
luego al llegar al campo de la enumeración, automáticamente aparece el
contenido de la enumeración, ya que el dato que ahí se espera es del tipo
Monedas, y solo hay que elegir una de las opciones disponibles, que además
estamos viendo.
Public Function Convertir (ByVal Cual As Monedas) As Double
Select Case Moneda
Case Monedas.Euro
Select Case Cual
Case Monedas.Dolar
Convertir = Import * 1.22
Case Monedas. Libra
Case Monedas. Yen
34. pág. 34
End Select
Case Monedas.Dolar
Case Monedas.Libra
Case Monedas.yen
End Select
End Function
Lo mismo sucede con la escritura de un Select Case, por ejemplo, en la que
en el momento de escribir la palabra case se despliega automáticamente la
enumeración para poder ver los valores disponibles y su valor.
Su uso en el principal quedaría:
Module Module1
Sub Main ()
Dim Importe As Double = Console.ReadLine
Dim Objeto As Ejemplos = New Ejemplos (Importe, Ejemplos.Monedas.
Euro)
Console.WriteLine(Objeto.Convertir(Ejemplos. Monedas.Dolar))
Console.ReadLine() End Sub End Module
35. pág. 35
Programación en un entorno gráfico
Los conceptos de programación pueden dividirse en tres grandes apartados.
Las estructuras de programación.
Las estructuras de datos.
El entorno en el que se ejecutará el programa.
Las estructuras de programación son los elementos comentados
anteriormente.
Variables
Estructuras repetitivas
Estructuras condicionales
Estructuras secuenciales
Procedimientos
Funciones
Clases.
Las estructuras de datos son
Tipos de usuario
Arrays
Archivos
Bases de datos
El entorno de ejecución del programa podemos distinguir tres apartados
Los “programas”, en realidad clases, rutinas o librerías, como deseemos
llamarlos, que se ejecutarán como parte de un programa y que posiblemente no
incorporen ningún elemento interactivo con el usuario.
Los programas que se ejecutan en un entorno de consola.
Los programas que se ejecutan en un entorno gráfico.
El entorno de una clase lo hemos visto anteriormente en modo reducido, pero
se han dejado sentadas las formas y sus elementos.
El entorno en el modo consola es el que se ha estado utilizando en todos los
ejemplos de los temas que se han visto con anterioridad.
El entorno gráfico es el que vamos a ver en los próximos temas.
Este entorno gráfico cambiará de un lenguaje a otro, pero en definitivas
cuentas se compone de una serie de elementos gráficos que poseen unas
características tales que nos permiten crear un programa en el cual podamos
solicitar y mostrar datos al usuario de una manera estética más agradable e
intuitiva que lo que permite el modo consola.
36. pág. 36
Estos objetos dado que tienen que mostrarse con una serie de características
que permitirá su forma agradable a la vista, disponen de una serie de
propiedades que permite que se le pueda asignar colores, tamaños, posición
adecuados dentro del componente o ventana en el que lo mostraremos al
usuario.
A su vez como necesitamos saber cuáles son
las intenciones de quien está usando el
programa con respecto al objeto en cuestión,
dichos objetos disponen de una serie de
eventos que nos permite saber si el usuario usa
el teclado, el ratón, o algún otro evento que
pueda ser necesario para dicho objeto.
Además, también podemos necesitar que
dichos objetos nos faciliten algún tipo de acción
propia del mismo, por lo que en la mayoría de
los casos estos objetos incorporan los métodos
adecuados al destino para el cual están
diseñados.
Estos objetos pueden agruparse en los que
podríamos llamar básicos, y especializados.
Los elementos básicos son los que en un
principio se crearon en las primeras versiones
de programación para un entorno gráfico,
básicamente son los que se pueden ver en las
imágenes del entorno de VB y de NetBeans que
se ven en el documento.
Después se han ido creando una serie de
elementos más especializados y que han
facilitado en gran medida la creación de nuevos
y mejores programas.
37. pág. 37
Son objetos que podrían ser prescindibles en algunos casos, pero que sin
embargo su aparición se agradece en gran medida en la creación de nuevos
programas.
Por otro lado, existe la posibilidad de crear nuestros propios objetos para el
uso en nuestros programas.
38. pág. 38
¿Cómo se hace un programa?
Un programa se compone de varios elementos:
El que se comunica con el usuario, la interfaz.
El que recibe esa información y la trata en función del destino de la misma, y
de sus características.
El que se encarga, si procede, de grabar y recuperar información de un soporte
de datos, dígase sistema clásico de archivos, base de datos, etc.
Recordemos los objetos vistos.
Mostrar información.
Etiquetas
Grupos de objetos
Visualizar imágenes
Introducción de datos.
Cajas de texto
Grid, rejillas
Ordenes.
Botones para activar la acción a realizar por el usuario.
Opciones.
Para seleccionar una opción entre varias
Activar una opción en concreto
Selección de datos.
Cajas desplegables
Listas de datos
Especializados.
39. pág. 39
Impresión
Conexión con bases de datos
Menús y barras
Lo que hay que hacer ahora es
pensar como queremos que sea
nuestra ventana y pensar cuales
de estos objetos vamos a utilizar.
La fase de análisis y de diseño
nunca es un tiempo perdido, suele
ser al revés, una inversión en
tiempo.
Siempre es interesante dedicar un tiempo adecuado hasta obtener ese diseño
que nos gusta, de forma que podamos a partir de él obtener nuevos programas
o simplemente ya no tengamos que pensar en cómo hacerlos y podamos
progresar más rápidamente en su creación.
Tenemos que pensar que en una aplicación siempre vamos a tener distintos
tipos de programas y debemos buscar una forma de diseño que nos permita
crear interfaces lo más homogéneas y agradables posibles para facilitar su
posterior utilización y aprendizaje.
Diseñar la interfaz.
Primer paso es pensar que tipo de
datos vamos a utilizar en el mismo,
pues de ellos va a depender el tipo
de objetos que vamos a utilizar.
Normalmente se pueden abordar
los diseños de varias formas, por lo
tanto, no hemos de conformarnos
40. pág. 40
con el primero, podemos intentar otros y elegir el que más nos guste.
La ventana anterior está creada con los objetos sin asignarle estilo, es decir
colores, fuentes, etc.
Después hay que darle forma con un estilo que nos resulte agradable.
Hay que cuidar los espacios, la distribución, los colores a utilizar y cómo será
el texto a utilizar, tamaño y color.
Las ayudas que vamos a incorporar y su ubicación.
La estética es muy importante, de nuestros programas lo primero que se ve es
la parte visual, por lo tanto, hay que cuidar esa primera impresión.
También se puede, o se debe, crear sistemas que permitan al usuario
personalizar la aplicación.
Cuando tengamos acabada la parte de diseño de la interfaz, tendremos un
espacio ocupado en el monitor, el que ocupa la ventana, si este tamaño a una
resolución habitual es suficiente no será necesario que el usuario maximice la
ventana, por lo tanto, podemos evitar poniendo a false la propiedad
maximizaba, el que se use ese botón de la ventana, lo cual evitará que se
destroce el diseño que hemos realizado.
También podemos evitar que modifiquen el tamaño de la ventana arrastrando
desde las esquinas, asignando a la ventana en la propiedad FormBorderStyle
el valor de fixedsingle.
Y por último para que la ventana quede centrada en la pantalla o en la ventana
que la contenga del menú, podemos asignar a la propiedad StartPosition el
valor de centerscreen.
De esta forma conseguimos que no se pueda cambiar el diseño realizado por
nosotros.
Pero no hay que olvidar que también se tiene que cuidar la parte ejecutiva.