06 - Programacion con Visual Basic
06 - Programacion con Visual Basic
¿Qué es la programación? 3
¿Qué es un lenguaje de programación? 3
¿Qué es un programa? 3
Modelos de programación 7
Programación lineal 8
Programación procedural 8
Programación estructurada 9
Programación orientada a objeto (OOP) 10
Tipos de Datos 18
Simples 18
Compuestos 18
Definidos por el programador 18
Identificadores 18
Palabras reservadas 18
Estructura de un programa 19
Ubicación del código en el programa 19
Procedimientos 23
Llamada a un procedimiento Sub 24
Sintaxis de un procedimiento Function 25
Llamada a un procedimiento Function 26
1
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Estructuras de control 28
Selección 28
Repetición 30
Arrays 39
Declaración 39
Asignación y obtención de valores 40
Recorrer un array 41
2
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
¿Qué es la programación?
La programación de ordenadores es aquella rama de las tecnologías de la
información, encargada del diseño y escritura de las instrucciones o sentencias que
un ordenador debe ejecutar para completar una operación o resolver un problema.
Al conjunto de operaciones que lleva a cabo un ordenador para proporcionar un
determinado resultado se le denomina proceso, el conjunto de varios procesos que
realizan tareas comunes, conformando de esta manera una única entidad, la
denominamos programa.
Por ejemplo, un proceso puede ser la suma de los importes que componen las
líneas de una factura; otro, el cálculo de los impuestos a aplicar sobre el importe de
la factura; la obtención de los datos del cliente al que vamos a enviar la factura sería
otro proceso; si todos estos procesos y otros similares los juntamos, tendríamos un
programa de facturación.
¿Qué es un programa?
Como describimos en una definición anterior, un programa (o aplicación, como
también lo denominaremos) es un conjunto de instrucciones escritas en un lenguaje
de programación, que pueden llevar a cabo uno o múltiples procesos, normalmente
relacionados, aunque sin ser esto obligatorio, y que en definitiva nos permiten
resolver uno o más problemas. A las instrucciones o código que forman parte de un
programa se le denomina código fuente.
Como hemos mencionado anteriormente, para crear un programa debemos conocer
los elementos del lenguaje a emplear y sus normas de utilización. Por ejemplo, el
lenguaje Visual Basic .NET dispone de las palabras clave Dim e Integer para
declarar variables, y los símbolos = y + para asignar valores y realizar operaciones
3
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
' incorrecto
Integer MiDato Dim
MiDato + 50 = 700
' correcto
Dim MiDato As Integer
MiDato = 50 + 700
En los siguientes apartados y temas del texto iremos realizando una descripción
más detallada de los puntos más importantes de este esquema
4
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Algoritmos
Un algoritmo se puede definir como el conjunto de acciones a realizar para resolver
un determinado problema.
El modo de afrontar la creación de un algoritmo, pasa por descomponer el problema
planteado en problemas más pequeños y fáciles de resolver independientemente.
Una vez resueltos los problemas independientes, se unirán todos, obteniendo de
esta forma el correspondiente algoritmo.
El proceso indicado por un algoritmo debe ser claro y tener sus pasos bien
definidos, de forma que si realizamos dicho proceso varias veces, empleando
siempre los mismos valores en el algoritmo, deberemos obtener el mismo resultado.
De igual forma, en un algoritmo deben distinguirse las siguientes fases: entrada,
proceso y salida.
Cuando finalicemos la escritura de un algoritmo, es muy conveniente realizar una
ejecución de prueba para el mismo, empleando datos reales para comprobar que el
resultado es el adecuado. En el caso de que obtengamos resultados no esperados,
o bien, consideremos que es posible optimizar el proceso de ejecución del
algoritmo, modificaremos las partes que consideremos necesarias para mejorarlo;
este proceso se denomina depuración o refinamiento
5
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Una vez que hemos realizado el análisis del algoritmo, necesitamos un elemento
que nos permita representarlo. Si bien no existe una técnica única para la
representación de algoritmos, disponemos de algunas que, dadas sus
características, nos facilitan dicha tarea, por lo que son mayormente utilizadas.
Entre los medios para la creación de algoritmos, tenemos los diagramas de flujo, el
pseudocódigo, y los diagramas Nassi-Schneiderman
Lenguajes máquina
Se trata de lenguajes cuyas instrucciones son directamente comprendidas por el
ordenador en el que se ejecuta el programa. Su dependencia por lo tanto, con
respecto al hardware del ordenador en que funcionan es total, por lo que su
ejecución es más veloz que cualquier otro tipo de lenguaje que podamos emplear.
Tras la anterior explicación, y ya que este tipo de código es el único que entiende el
ordenador de modo directo, ¿no sería mejor programar siempre en lenguaje
máquina?.
Como respuesta, y a pesar de la mencionada ventaja, podemos decir que existen
inconvenientes muy importantes: la vinculación del lenguaje máquina con el
hardware del equipo, hace que un programa no pueda ser transportable a otro tipo
6
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Modelos de programación
Un modelo de programación consiste en la técnica empleada para escribir el código
de un programa, de forma que consigamos la mayor efectividad y optimización al
ejecutarlo. El desarrollo de las herramientas informáticas ha posibilitado una
progresiva evolución en las técnicas de programación, con la consiguiente mejora
que ello supone, tanto a la hora de la escritura como de la ejecución de un
programa. A continuación se realiza una descripción de los modelos de
programación existentes.
7
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Programación lineal
Este es el modelo más tradicional, encontrándose ya en desuso. El código se
organiza linealmente, y se ejecuta desde la primera línea hasta la última, sin
disponer de ningún tipo de estructuración o bifurcación. El siguiente código fuente
muestra un esquema de este tipo de técnica
Instrucción1
Instrucción2
Instrucción3
.
.
.
InstrucciónFinal
Programación procedural
Para solventar los problemas derivados de la programación lineal apareció la
programación procedural, que se basa en tomar el código de un programa y dividirlo
en partes lógicas con entidad propia, denominadas procedimientos o rutinas de
código.
Cada procedimiento se ocupa de resolver una tarea específica, de modo que
partiendo de un procedimiento inicial o de nivel superior, se llamará a otro
procedimiento para que ejecute un determinado trabajo, y al finalizar, se devolverá
el control o flujo de la ejecución al procedimiento que hizo la llamada
8
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Programación estructurada
Como complemento a la programación procedural apareció la programación
estructurada, consistente en un modelo de programación que utiliza un conjunto de
estructuras de control, que simplifican la escritura del código y disminuyen el
número de errores del programa.
La programación estructurada también se basa en el uso de procedimientos y
módulos de código, pero además, dentro del código de un procedimiento, se
utilizarán determinadas estructuras proporcionadas por el lenguaje, que facilitarán la
codificación de los procesos.
Para poder comprender mejor esta técnica planteemos el siguiente caso:
necesitamos diseñar un proceso dentro de un procedimiento, que permita introducir
un número de factura y la imprima, pero sólo deberá imprimirla si el número es
menor o igual a 500.
Con las técnicas de programación anteriores no disponemos de un elemento que
nos permita comprobar el número de factura, para poder o no imprimirla. Sin
embargo, mediante la programación estructurada, podemos utilizar una estructura
de decisión, que en pseudocódigo podemos llamar Si...FinSi, que realice la
9
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Inicio
Modulo Principal
Procedimiento ImprimeFac
Leer NumFactura
Fin Procedimiento
Fin Modulo
Fin
10
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
● Enlace. En esta fase se toman, por un lado, el código objeto generado por el
compilador, y por otro, el código de rutinas de uso general que necesita el
lenguaje de programación, que se encuentra habitualmente organizado en
archivos denominados librerías o bibliotecas de código. Todo ello, mediante
un programa o utilidad denominado enlazador, se une para obtener el
ejecutable final, un archivo con extensión .EXE
11
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Interfaces de usuario
Un interfaz de usuario es el aspecto que un programa muestra, y el modo en que
interactúa con el usuario que lo ejecuta. Los tipos de interfaz de usuario que
utilizaremos a lo largo de este texto serán los siguientes:
• Consola. El interfaz de usuario de consola consiste en una ventana de tipo
MS-DOS o modo comando, mediante la cual, el usuario introduce las
instrucciones en el indicador de comandos del sistema. La creación de
programas de tipo consola es sencilla y rápida, y debido a que el objetivo
principal de este texto es el aprendizaje de los diferentes aspectos del
lenguaje, la mayoría de los ejemplos realizados se harán utilizando la
consola.
• Formularios Windows. Este tipo de interfaz está basado en el entorno de
ventanas del sistema operativo Windows, permitiéndonos crear aplicaciones
basadas en formularios o ventanas, con todas las características típicas de
este tipo de programas.
12
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Imports System
Module General
Public Sub Main()
Console.WriteLine("Hola mundo")
End Sub
End Module
Descrito este código a grandes rasgos, podemos decir que la primera línea
establece la referencia a una librería de la plataforma .NET Framework, que
contiene elementos del lenguaje necesarios para que se ejecute el programa.
A continuación, entre las sentencias Module...End Module definimos un módulo de
código, con el nombre General, que se trata de un contenedor de rutinas de código,
y precisamente, dentro de este módulo, escribimos un procedimiento entre las
sentencias Sub...End Sub, con el nombre Main( ), en el que hacemos uso del objeto
Console, llamando a su método WriteLine(), al que pasamos una cadena de
caracteres con el texto a mostrar. Dicho texto será mostrado en una ventana
MS-DOS o de consola, como también la denominaremos en este texto.
13
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Se recomienda que los archivos con código escrito en lenguaje VB.NET tengan la
extensión .VB, aunque esto no es obligatorio, pudiendo utilizar la extensión que el
programador prefiera.
A continuación necesitamos, desde una ventana en modo comando o sesión
MS-DOS, ejecutar el compilador de Visual Basic .NET para crear el ejecutable de
nuestro ejemplo. El compilador del lenguaje es un archivo con el nombre VBC.EXE
(Visual Basic Compiler), que ejecutaremos, pasándole como parámetro el archivo
con el código fuente a compilar
Una vez abierta esta ventana MS-DOS, tecleando VBC.EXE y pulsando [INTRO],
aparecerá una lista con las opciones del compilador de VB.NET
Para compilar pues nuestro primer programa, deberemos situarnos en el directorio
en el que hayamos guardado el archivo con el código fuente de nuestro ejemplo, y
teclear en el indicador de comandos de esta ventana la instrucción
VBC Saludo.VB
Creación de un proyecto
Para crear un nuevo proyecto, situados en la página de inicio del IDE, pulsaremos el
botón Nuevo proyecto, o bien la opción de menú del propio IDE: Archivo + Nuevo +
Proyecto, lo que mostrará la ventana Nuevo proyecto.
Debemos tener en cuenta que .NET Framework es una plataforma para el desarrollo
de programas en varios tipos de lenguajes de programación: Visual Basic .NET,
Visual C# .NET, Visual C++ .NET, J#, y otros que están en proceso de desarrollo,
para cumplir con las especificaciones del entorno de ejecución de .NET.
14
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
15
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Imports System
Module Module1
Sub Main()
Console.WriteLine("Hello World")
End Sub
End Module
16
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Imports System
Module Module1
Sub Main()
Console.WriteLine("Hello World")
Console.Read()
End Sub
End Module
17
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Tipos de Datos
Los datos son la información que utiliza un programa para poder realizar
operaciones. En función de la información que contengan, los datos se pueden
clasificar en varios grupos: simples, compuestos y definidos por el programador.
Simples
Un dato simple está formado por una sola unidad de información. Dependiendo del
contenido de esa información, los datos simples se dividen en los tipos numérico,
carácter, fecha y lógico
Compuestos
Un dato compuesto está formado por varios datos de tipo simple. Como ya hemos
mencionado, una cadena es un dato compuesto (por datos simples de tipo carácter)
aunque algunos lenguajes lo traten como simple.
Como dato compuesto disponemos de los arrays o matrices, que son tablas de
datos con un número fijo o variable de elementos
Definidos por el programador
En esta categoría se encuentran la estructura (Structure), que consiste en un tipo
especial de dato compuesto por varios de los tipos existentes en el lenguaje; y el
tipo enumerado (Enum), consistente en una lista de valores numéricos a los que
asociamos un descriptor literal.
Identificadores
Un identificador es un nombre que el programador asigna a ciertos elementos del
programa, como variables, constantes, rutinas de código, etc., para poder
reconocerlos durante el desarrollo del mismo. Dicho nombre debe comenzar por una
letra y no puede ser una palabra reservada del lenguaje, ni contener caracteres
especiales como operadores aritméticos, de relación, etc.
Aunque podemos utilizar cualquiera de nuestra elección, es muy recomendable que
el nombre del identificador esté relacionado con su contenido, de forma que durante
la revisión del código del programa, sepamos rápidamente lo que contiene
simplemente con ver su nombre.
Palabras reservadas
Son todos aquellos nombres que forman parte integrante del lenguaje de
programación, como puedan ser instrucciones, estructuras de código, funciones
propias del lenguaje, objetos, etc. Este tipo de palabras no las podemos utilizar
18
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Estructura de un programa
Los elementos mínimos que debe tener toda aplicación escrita en este lenguaje (y
en general, la mayoría de lenguajes) son un módulo de código, y un procedimiento
de entrada o inicio del programa, que en VB.NET tendrá el nombre Main( ), todo ello
contenido en un archivo de código con extensión .VB.
19
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Sub Calcular()
instrucción1
instrucción2
instrucción3
instrucción4
instrucción5
....
....
....
instrucción
End Sub
Module Module1
Sub Main()
Dim UnValor As String
UnValor = "algo más de texto"
20
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Module Module1
Sub Main()
Dim UnValor As String
UnValor = "al parque"
Console.WriteLine("Vamos de paseo " & UnValor)
End Sub
End Module
21
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Module Module1
Sub Main()
Dim UnValor As String
Console.WriteLine("Escribir algo")
UnValor = Console.ReadLine()
Console.WriteLine("Hemos escrito el siguiente texto")
Console.WriteLine(UnValor)
End Sub
End Module
22
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Procedimientos
23
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Los elementos que forman parte de este tipo de rutina son los siguientes:
• Exit Sub. Al igual que en el punto anterior, esta palabra clave permite salir
de la ejecución del procedimiento sin haber llegado a su fin, pudiendo igualmente,
situarla en tantos lugares dentro del procedimiento como sea necesario
Module Module1
24
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Sub Main()
Console.WriteLine("Estamos en el procedimiento Main")
Sub Prueba()
Console.WriteLine("Estamos en el procedimiento Prueba")
End Sub
End Module
Los elementos que forman parte de este tipo de rutina son los siguientes:
25
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Return MiValor
Por otro lado, los puntos que marcan las diferencias entre un Function y un Sub son
los siguientes:
26
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Module Module1
Sub Main()
Dim Resultado As Integer
Dim NuevoValor As Integer
' llamada a una función sin recoger el valor de retorno,
' por este motivo, dicho valor se pierde
Calcular()
Return MiValor
End Function
End Module
27
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Estructuras de control
Las estructuras de control junto a los procedimientos, componen los dos elementos
que sientan las bases de la programación estructurada.
Según el modo de ejecución del código que contienen, las estructuras de control se
dividen en los siguientes tipos: selección y repetición.
Selección
Decisión simple
Sub Main()
Dim Valor As Integer
Console.WriteLine("Introducir un número")
Valor = Console.ReadLine()
If Valor = 5 Then
Console.WriteLine("Estamos dentro de la estructura If," & _
28
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Console.ReadLine()
End Sub
Decisión doble
If Expresión Then
' código cuando Expresión es Verdadero
' ......
' ......
Else
' código cuando Expresión es Falso
' ......
' ......
End If
Ejemplo de uso
Sub Main()
Dim Valor As Integer
Console.WriteLine("Introducir un número")
29
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Valor = Console.ReadLine()
Console.ReadLine()
End Sub
Repetición
While...End While
Se trata del tipo más sencillo, ejecuta las líneas de código que contiene, mientras
que la expresión situada junto a While devuelva Verdadero.
Veamos su sintaxis:
While Expresión
' código
' .....
End While
Ejemplo
Sub Main()
Dim Valor As Integer
Dim Contador As Integer
Console.WriteLine("Introducir un número")
30
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Valor = Console.ReadLine()
Console.WriteLine("Mostrar en consola todos los números desde 1 hasta el
introducido")
Console.ReadLine()
End Sub
Do...Loop
Ejemplo de uso:
Sub Main()
Dim Valor As Integer
Dim Palabra As String
Dim Contador As Integer
Dim Pruebas As Integer
End Sub
31
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
For...Next
El elemento Contador se inicializa con un valor y el código existente entre For y Next
es ejecutado una serie de veces, hasta que el valor de Contador se iguala a Fin.
Por defecto, los incrementos de Contador son en uno, pero podemos cambiar este
aspecto utilizando el modificador Step, mediante el que podemos establecer el
número en el que se van a realizar los incrementos. Step también nos permite
realizar decremento utilizando un número negativo.
Ejemplo de uso
32
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Contadores
Un contador consiste en una variable que como su propio nombre indica, realizará
un cálculo de las
iteraciones efectuadas dentro de un bucle. El Código fuente muestra un ejemplo.
Sub Main()
Dim Contador As Integer
Dim Nombre As String
Console.WriteLine("Introducir un nombre")
Do While Nombre <> "Carlos"
Contador += 1
Console.WriteLine("Valor del contador: {0}", Contador)
Nombre = Console.ReadLine()
Loop
Console.WriteLine("El bucle se ha ejecutado {0} veces", Contador)
Console.ReadLine()
End Sub
Acumuladores
Un acumulador es una variable que va almacenando dentro de un bucle el resultado
de una suma efectuada a cada iteración del mismo, tal y como se muestra en el
código fuente.
Sub Main()
Dim Contador As Integer
Dim Acumulador As Integer
Dim Cantidad As Integer
For Contador = 1 To 5
Console.WriteLine("Introducir una cantidad numérica")
Cantidad = Console.ReadLine()
Acumulador += Cantidad
Console.WriteLine("El acumulador contiene un valor de {0}", Acumulador)
Next
Console.ReadLine()
End Sub
33
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
La plataforma .NET Framework nos permite una gran flexibilidad para ordenar el
código de nuestra aplicación, que debemos organizar en contenedores físicos y
lógicos de código.
Un contenedor físico no es otra cosa que un archivo con extensión .VB, que son los
que la plataforma reconoce como archivos con código VB.NET. Podemos tener uno
o varios dentro de un proyecto.
Un contenedor lógico, dicho del modo más simple, es aquel elemento en el entorno
de .NET que nos permite escribir en su interior declaraciones y procedimientos, que
serán accesibles desde otros elementos dentro del proyecto actual, o bien desde
otros proyectos, en función de su ámbito o accesibilidad.
El entorno de .NET Framework dispone de varios tipos de contenedores lógicos,
entre los que se encuentran los módulos, clases, interfaces, estructuras, etc. Los
espacios de nombres (namespaces) son un tipo de contenedor lógico especial, cuya
misión consiste en albergar al resto
de contenedores lógicos; una
especie de metacontenedor. La
estructura básica de un contenedor
lógico se muestra en la Figura 1.
La configuración por defecto en este
sentido para VS.NET, establece que
cada vez que añadimos un nuevo
módulo o clase a un proyecto, se
crea un nuevo archivo con extensión
.VB, que contiene el mencionado
módulo o clase. El nombre utilizado
es el mismo para el archivo y el
módulo o clase. Sin embargo,
podemos incluir varios contenedores
lógicos, de igual o distinto tipo,
dentro del mismo archivo de código.
Ver Figura 2
34
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Ámbito de procedimientos
El ámbito de procedimientos consiste en la capacidad de poder llamar a un
procedimiento desde un punto determinado del programa, en función del nivel de
acceso definido para dicho procedimiento en el momento de su declaración.
Para especificar el ámbito de un procedimiento, lo haremos mediante una palabra
clave o modificador de ámbito, anteponiéndolo al tipo de procedimiento (Sub o
Function) dentro de la declaración. El código fuente muestra la sintaxis a utilizar.
Público
Un procedimiento con ámbito público puede ser llamado desde cualquier punto del
módulo en el que se ha declarado, o desde cualquier otro módulo del proyecto. La
palabra clave utilizada como modificador de ámbito en este caso es Public.
En el código fuente tenemos dos módulos: General y Calculos, que contienen
respectivamente los procedimientos Main( ) y Totales( ). Desde Main( ) podemos
perfectamente llamar al procedimiento Totales( ), ya que al haber sido declarado
como Public, es accesible desde otro módulo.
Module General
Public Sub Main()
Console.WriteLine("Estamos en el módulo General, procedimiento Main")
' llamar al procedimiento Totales() que está en otro módulo
Totales(400)
35
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Console.ReadLine()
End Sub
End Module
Module Calculos
Public Sub Totales(ByVal Importe As Integer)
Dim Resultado As Integer
Console.WriteLine("Estamos en el módulo Calculos, procedimiento Totales")
Resultado = Importe + 1000
Console.WriteLine("El total obtenido es: {0}", Resultado)
End Sub
End Module
NombreModulo.NombreProcedimiento( )
Privado
Un procedimiento con ámbito privado sólo puede ser llamado desde el propio
módulo en el que se ha declarado. La palabra clave utilizada como modificador de
ámbito en este caso es Private. Veamos un ejemplo:
36
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Module General
Public Sub Main()
' podemos ejecutar el procedimiento Totales()
' ya que tiene ámbito público
Totales(400)
Console.ReadLine()
End Sub
End Module
Module Calculos
End Module
37
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Ámbito de variables
Una variable declarada dentro del cuerpo de un procedimiento se dice que tiene un
ámbito local o a nivel de procedimiento, no pudiendo ser accedida por otro código
que no sea el de dicho procedimiento.
Una variable declarada dentro de una estructura de control se dice que tiene ámbito
local a nivel de bloque, siendo accesible sólo dentro del código que está contenido
en la estructura.
En este punto debemos aclarar que el ámbito dentro de un bloque se entiende como
la parte de la estructura en la que ha sido declarada la variable. Por ejemplo, en una
estructura If...End If con Else, si declaramos una variable a continuación de If, dicha
variable no será accesible desde el bloque de código que hay a partir de Else
38
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Arrays
Un array es un tipo de dato compuesto, formado por un conjunto de elementos del
mismo tipo de dato, al que se le asigna un identificador para poder reconocerlo en el
código del programa. También se les denomina matriz o vector, aunque en este
texto emplearemos el término array de forma genérica. A cada elemento del array
se accede mediante un índice, que indica el número de posición que ocupa dicho
elemento dentro del array.
Si tuviéramos que representar un array gráficamente, podríamos hacerlo mediante
un conjunto de casillas, en cada una de las cuales se encontraría un elemento del
array. Cada casilla tendría un número (índice) que identificaría de forma única su
posición.
Declaración
Para declarar un array actuaremos prácticamente igual que para declarar una
variable normal, con la diferencia de que utilizaremos los paréntesis junto al nombre
de la variable, para indicar que se trata de un array, y opcionalmente, dentro de los
paréntesis, indicaremos el número de elementos de que inicialmente va a constar el
array. También es posible, asignar valores a los elementos en el mismo momento de
su declaración.
Debemos tener en cuenta a la hora de establecer el número de elementos, que el
primer índice de un array es el cero, por lo que al ser creado, el número real de
elementos en un array será el especificado en la declaración más uno
Sub Main()
End Sub
39
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Al declarar un array, todos sus valores son del mismo tipo de dato. Si necesitamos
que dichos valores sean de tipos diferentes, debemos declarar el array como tipo
Object, ya que al ser este el tipo de dato genérico en el entorno de .NET, nos
permitirá asignar valores de distintos tipos al array.
Para asignar y obtener valores de los elementos de un array, actuaremos igual que
para una variable normal, pero empleando además el índice entre paréntesis junto
al nombre de la variable, para indicar qué posición queremos manipular
Sub Main()
' array con 4 elementos: de 0 a 3
Dim Nombres(3) As String
40
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Modificación de tamaño
En función de si la cantidad de elementos de un array puede ser cambiada, los
arrays se clasifican en los siguientes tipos:
Recorrer un array
Para recorrer todos los elementos de un array emplearemos la estructura de control
For...Next, que ejecuta un bloque de código un número determinado de veces, y la
función del lenguaje UBound( ), que devuelve el número correspondiente al índice
superior del array pasado como parámetro.
41
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Sub Main()
' crear un array y rellenarlo con valores
Dim Nombres(3) As String
Nombres(0) = "Ana"
Nombres(1) = "Pedro"
Nombres(2) = "Antonio"
Nombres(3) = "Laura"
Console.ReadLine()
End Sub
42
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
IsDate( )
Esta función devuelve un valor lógico indicando si la expresión que pasamos como
parámetro contiene una fecha o una cadena que pueda ser convertida a fecha.
IsArray( )
Esta función devuelve un valor lógico indicando si la expresión que pasamos como
parámetro contiene
un array.
Funciones numéricas
Int( )
' Sintaxis
Int(Número)
Devuelve la parte entera del parámetro Número
Rnd( )
' Sintaxis
Rnd([Número])
Devuelve un número aleatorio de tipo Single, que será menor que 1, pero mayor o
igual a cero
Len( )
' Sintaxis
Len(Cadena)
43
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Space( )
' Sintaxis
Space(Número)
Devuelve una cadena de espacios en blanco, de una longitud igual al número
pasado como parámetro
InStr( )
' Sintaxis
InStr([Comienzo, ]CadenaBuscar, CadenaBuscada [, TipoComparación])
Busca dentro de CadenaBuscar la cadena contenida en el parámetro
CadenaBuscada. Opcionalmente podemos establecer en Comienzo, la posición en
la que comienza la búsqueda y el tipo de comparación (texto, binaria)
Left( )
' Sintaxis
Left(Cadena, Longitud)
Esta función extrae, comenzando por la parte izquierda de Cadena, una subcadena
con el número de caracteres indicado por el parámetro Longitud
Right( )
' Sintaxis
Right(Cadena, Longitud)
Esta función extrae, comenzando por la parte derecha de Cadena, una subcadena
con el número de caracteres indicado por el parámetro Longitud
Replace( )
' Sintaxis
Replace(Cadena,CadOrigen,CadNueva [,Inicio] [,Sustituciones]
[,TipoComparación])
Esta función toma la cadena situada en el primer parámetro y busca la cadena
CadOrigen, sustituyendo las ocurrencias encontradas por la cadena CadNueva.
Opcionalmente, el parámetro Inicio especifica la posición en la que comenzará la
sustitución; el parámetro Sustituciones indica el número de sustituciones a realizar;
y TipoComparación indica como se realizarán las comparaciones (texto, binaria).
44
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
Estas funciones eliminan los espacios en blanco de una cadena. La eliminación será
a la izquierda en el caso de LTrim( ), a la derecha en el caso de RTrim(), y a ambos
lados con Trim( )
UCase( ), LCase( )
' Sintaxis
UCase(Cadena)
LCase(Cadena)
Estas funciones, convierten la cadena pasada como parámetro a mayúsculas y
minúsculas respectivamente.
Now( )
' Sintaxis
Now()
Devuelve un valor de tipo Date con la fecha y hora del sistema.
DateAdd( )
' Sintaxis
DateAdd(TipoIntervalo, ValorIntervalo, Fecha)
Suma o resta a una fecha, un intervalo determinado por el parámetro TipoIntervalo.
El intervalo a utilizar pueden ser días, semanas, meses, etc. Para determinar si se
realiza una suma o resta, ValorIntervalo deberá ser positivo o negativo
respectivamente.
DateDiff( )
' Sintaxis
DateDiff(TipoIntervalo, FechaPrimera, FechaSegunda)
Calcula la diferencia existente entre dos fechas. En función de TipoIntervalo, la
diferencia calculada serán días, horas, meses, años, etc.
DatePart( )
' Sintaxis
DatePart(TipoIntervalo, Fecha)
Extrae la parte de una fecha indicada en TipoIntervalo. Podemos obtener, el día,
mes, año, día de la semana, etc.
45
Laboratorio de Computadoras 6° 2da - EPET N°15
Profesor: Luciano Laurin
46