INTRODUCCIÓN El primer objetivo de la programación es la creación de un programa, es decir, un conjunto de instrucciones para conseguir realizar una determinada tarea. Tenemos pues, que enfocar la tarea de la programación de la misma forma que lo haríamos para conseguir que una persona de un país diferente, que está a kilómetros de distancia, realice una tarea simplemente leyendo lo que le hayamos escrito en un papel. Por tanto, intentaremos darle una serie de instrucciones ordenadas en un determinado lenguaje. Y es que debemos pensar que nuestro ordenador no entiende nada más que unos y ceros, lo cual nos complicaría intentar expresar instrucciones complejas sólo con esos símbolos. Buscaremos, pues, un lenguaje más fácil para nosotros, que después se pueda traducir al lenguaje del ordenador. Uno de esos lenguajes es VISUAL BASIC y el traductor que nosotros usaremos es el MICROSOFT VISUAL BASIC 6. Dicho en un lenguaje un poco más técnico hablaremos del lenguaje de programación VISUAL BASIC y del compilador MICROSOFT VISUAL BASIC 6. CONSTANTES Y VARIABLES Si nuestro objetivo es conseguir que el ordenador realice una tarea, una de las cosas que seguro con las que tiene que trabajar serán los datos. Es decir, información. Los datos representan una abstracción de la realidad pueden representar valores precios de un determinado artículo, temperaturas, nombres de personas… El dato puede ser constante si siempre conserva el mismo valor mientras se ejecuta el código, o variable si puede variar su valor. De este modo, al lo largo de nuestra vida, nuestro nombre es una constante y nuestra edad será una variable. En general, una variable sólo puede tomar valores dentro de un rango. En programación, a las distintas clases de valores se les denomina tipos. Dentro del lenguaje las variables de declaran así: Dim Dim Dim Dim Edad As Integer Altura As Single Nombre As String EstaCasado As Boolean Y las constantes: Const Pi=3.14159 Const Nombre=”Abraham Alonso” Ojo: El nombre de una variable (o de una constante) tiene que comenzar siempre por una letra y puede tener una longitud hasta 255 caracteres. No se admiten espacios, ni puntos (.), ni otros caracteres especiales. ARRAYS Un array permite referirse a una serie de elementos del mismo tipo con un mismo nombre, y hace referencia un único elemento de la serie utilizando uno o más índices, como un vector o una matriz en Matemáticas. Por ejemplo: Dim ordenador (19) As String Este ejemplo declara un array de una dimensión, llamado vector, con veinte elementos, ordenador (0), ordenador (1), ... , ordenador (19), cada uno de los cuales permite almacenar una Cadena. Salvo que se indique otra cosa, los índices se empiezan a contar en cero. Para empezar desde uno definiríamos el array así: Dim ordenador (1 To 19) As String De tal forma que tendríamos un array de 19 elementos. OPERADORES PROCEDIMIENTOS Y FUNCIONES Una vez tenemos claro cómo y dónde almacenar datos, lo siguiente que debemos hacer es aprender a darle órdenes al ordenador. Estas órdenes podrán ser simples (suma dos números, haz aparecer esta imagen…) o más complejas (calcula la media aritmética de 30 valores…). Para realizar tareas complejas necesitaremos pues, realizar una serie de operaciones simples agrupadas y asociadas a un determinado nombre. Esos trozos de código se llamarán procedimientos. Algunos procedimientos únicamente generan resultados sin necesidad de pasarles ningún valor con el que operar; por ejemplo, “generar un número aleatorio” no necesita de ningún valor previo. Sin embargo, otros sí que necesitan unos valores a partir de los cuales van a generar los resultados; por ejemplo, “dibujar un punto en la posición (X,Y)” necesita conocer la posición en la que se va a dibujar el punto. Así, al igual que a una función matemática, se le pueden pasar valores con los que operar. Dichos valores se le pasan por medio de parámetros. Como ya nos sucedía con las variables y las constantes, habrá que declarar los procedimientos. La declaración consiste en una cabecera, un cuerpo del procedimiento y una etiqueta de final. La cabecera del procedimiento especifica el nombre del procedimiento y los parámetros (si los hay).El cuerpo está compuesto por una secuencia de declaraciones y una secuencia de instrucciones. En VB los procedimientos se declaran así: Sub nombre (parámetros) Cuerpo End Sub Pero no sólo existen los procedimientos a la hora de dar instrucciones complejas al ordenador, también están las funciones. Una función es un algoritmo, que en ocasiones puede llevar parámetros, pero que siempre devuelve un valor. Esta particularidad nos hace recapacitar a la hora de la llamada a funciones, puesto que antes bastaba con llamar a un procedimiento, pero ahora deberemos asociar la llamada a una variable. En VB las funciones se declaran así: Function nombre (parámetros) as TipoDeDato Cuerpo End Sub SENTENCIAS DE CONTROL Las sentencias de control, denominadas también estructuras de control, permiten tomar decisiones y realizar un proceso repetidas veces. Son los denominados bifurcaciones y bucles. Este tipo de estructuras son comunes en cuanto a concepto en la mayoría de los lenguajes de programación, aunque su sintaxis puede variar de un lenguaje de programación a otro. Se trata de unas estructuras muy importantes ya que son las encargadas de controlar el flujo de un programa según los requerimientos del mismo. Dentro de las más comunes hablaremos de: If ... Then ... Else Select Case For ... Next While … Wend Sentencia IF ... THEN ... ELSE ... Esta estructura permite ejecutar condicionalmente una o más. If condicion Then sentencia(s) [Else sentencia(s)] End If Si condicion es True (verdadera), se ejecutan las sentencias que están a continuación de Then, y si condicion es False (falsa), se ejecutan las sentencias que están a continuación de Else, si esta cláusula ha sido especificada (pues es opcional). Para indicar que se quiere ejecutar uno de varios bloques de sentencias dependientes cada uno de ellos de una condición, la estructura adecuada es la siguiente: If condicion1 Then sentencias1 ElseIf condicion2 Then sentencias2 Else sentencia-n End If Si se cumple la condicion1 se ejecutan las sentencias1, y si no se cumple, se examinan secuencialmente las condiciones siguientes hasta Else, ejecutándose las sentencias correspondientes al primer ElseIf cuya condición se cumpla. Si todas las condiciones son falsas, se ejecutan las sentencias-n correspondientes a Else, que es la opción por defecto Sentencia SELECT CASE Esta sentencia permite ejecutar una de entre varias acciones en función del valor de una expresión. Es una alternativa a If ... Then ... ElseIf cuando se compara la misma expresión con diferentes valores. Su forma general es la siguiente: Select Case expresion Case etiq1 [ sentencias1] Case etiq2 [ sentencias2] Case Else sentenciasn End Select donde expresión es una expresión numérica o alfanumérica, y etiq1, etiq2, ... pueden adoptar las formas siguientes: 1. expresion 2. expresion To expresion 3. Is operador-de-relación expresion 4. combinación de las anteriores separadas por comas Sentencia FOR ... NEXT La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de sentencias cierto número de veces. Su forma general es: For variable = expresion1 To expresion2 [Step expresion3] [sentencias] Exit For [sentencias] Next [variable] Cuando se ejecuta una sentencia For, primero se asigna el valor de la expresion1 a la variable y se comprueba si su valor es mayor o menor que la expresion2. En caso de ser menor se ejecutan las sentencias, y en caso de ser mayor el control del programa salta a las líneas a continuación de Next. Todo esto sucede en caso de ser la expresion3 positiva. En caso contrario se ejecutarán las sentencias cuando la variable sea mayor que expresion2. Una vez ejecutadas las sentencias, la variable se incrementa en el valor de la expresion3, o en 1 si Step no se especifica, volviéndose a efectuar la comparación entre la variable y la expresion2, y así sucesivamente. La sentencia Exit For es opcional y permite salir de un bucle For ... Next antes de que éste finalice ÁMBITO PROCEDIMIENTOS Y FUNCIONES MÁS COMUNES String=Left(String,Integer) CadenaDestino=Left(CadenaOrigen,n) Se queda con los n caracteres de la izquierda de la CadenaOrigen String=Right(String,Integer) CadenaDestino=Right(CadenaOrigen,n) Se queda con los n caracteres de la derecha de la CadenaOrigen String=Mid(String,Integer,Integer) CadenaDestino=Mid(CadenaOrigen,Origen, n) Se queda con los n caracteres de la CadenaOrigen desde el Origen Integer=Instr(String, String) Pos=Instr(Donde, Que) Busca y devuelve la posición de buscar Que en Donde. Si no encuentra da 0 String=String(Integer, String) Final=String(Veces, Origen) Genera una cadena repitiendo Origen el número de Veces String=Str(Numeric) Final=Str(Numero) Convierte el Numero a cadena de caracteres Numeric=Val(String) Final=Val(Cadena) Convierte la cadena a número String=Chr(Integer) Final=Chr(Valor) Devuelve el carácter ASCII con valor introducido Integer=Asc(String) Final=Asc(Caracter) Devuelve el valor ASCII del carácter introducido String=Date ‘Es una variable no una funcion Fecha=Date Devuelve una cadena con la fecha actual del sistema String=Time ‘Es una variable no una funcion Hora=Time Devuelve una cadena con la hora actual del sistema String=LCase(String) Min=LCase(Cadena) Devuelve la cadena en minúsculas String=UCase(String) May=UCase(Cadena) Devuelve la cadena en mayúsculas String=LTrim(String) SinEspacios= LTrim (Cadena) Devuelve la cadena si espacios en la izquierda String=RTrim(String) SinEspacios= RTrim (Cadena) Devuelve la cadena si espacios en la derecha String=Trim(String) SinEspacios= Trim (Cadena) Devuelve la cadena si espacios en la derecha e izquierda Date=Now FechaHora=Now Devuelve la fecha y hora del sistema CONTROLES MÁS COMUNES Utilizar Etiquetas Label1.Alignment As Integer Propiedad Alinearlo 0 Izquieda, 1 Derecha, 2 Centrada Label1.Caption As String Propiedad Texto que se muestra Label1.Visible As Boolean Dice si es visible Propiedad Label1.Top As Integer Propiedad Valor de la posicion de alto Label1.Left As Integer Propiedad Valor de la posicion de izquierda Label1.Width As Integer Valor de ancho Propiedad Label1.Height As Integer Propiedad Valor de alto Utilizar Cajas de texto Text1.Alignment As Integer Propiedad Alinearlo 0 Izquieda, 1 Derecha, 2 Centrada Text1.Locked As Boolean Propiedad Valor que indica si se no puede modificar. Text1.Multiline As Boolean Propiedad Valor que indica si se pueden escribir varias lineas Text1.Enabled As Boolean Propiedad Valor que indica si está activado Text1.Text As String Texto que se muestra Propiedad Text1.Visible As Boolean Propiedad Dice si es visible Text1.Top As Integer Propiedad Valor de la posicion de alto Text1.Left As Integer Propiedad Valor de la posicion de izquierda Text1.Width As Integer Valor de ancho Propiedad Text1.Height As Integer Valor de alto Propiedad Utilizar Dibujos con marco (Picture) Picture1.AutoSize As Boolean Propiedad El marco se ajusta al dibujo automáticamente Picture1.Visible As Boolean Dice si es visible Picture1.Top As Integer Valor de la posicion de alto Propiedad Propiedad Picture1.Left As Integer Propiedad Valor de la posicion de izquierda Picture1.Width As Integer Valor de ancho Propiedad Picture1.Height As Integer Valor de alto Propiedad Picture1.Picture As Dibujo Propiedad Dibujo que se muestra. Cargar un dibujo desde el disco duro se utiliza el LoadPicture Picture1.Picture = LoadPicture(Fichero As String); Picture1.BackColor As Color Propiedad Color de fondo Picture1.BackColor = RGB(Rojo As Byte, Verde As Byte, Azul As Byte); Utilizar Marcos Frame1.Caption As String Es el titulo que tiene arriba Propiedad Frame1.Visible As Boolean Dice si es visible Propiedad Frame1.Top As Integer Propiedad Valor de la posicion de alto Frame1.Left As Integer Propiedad Valor de la posicion de izquierda Frame1.Width As Integer Propiedad Valor de ancho Frame1.Height As Integer Valor de alto Propiedad Frame1.BackColor As Color Color de fondo Propiedad Utilizar Botones Command1.Enabled As Boolean Valor que indica si está activado Command1.Caption As String Texto que se muestra Propiedad Propiedad Command1.Visible As Boolean Dice si es visible Propiedad Command1.Top As Integer Valor de la posicion de alto Propiedad Command1.Left As Integer Valor de la posicion de izquierda Propiedad Command1.Width As Integer Valor de ancho Propiedad Command1.Height As Integer Valor de alto Propiedad Utilizar CheckBox Check1.Value As Integer Propiedad Valor del check 0 No, 1 Si Check1.Enabled As Boolean Propiedad Valor que indica si está activado Check1.Caption As String Texto que se muestra Check1.Visible As Boolean Dice si es visible Propiedad Propiedad Check1.Top As Integer Propiedad Valor de la posicion de alto Check1.Left As Integer Propiedad Valor de la posicion de izquierda Check1.Width As Integer Propiedad Valor de ancho Check1.Height As Integer Valor de alto Propiedad Utilizar Opciones Option1.Value As Boolean Valor del option False No, True Si. Propiedad Option1.Enabled As Boolean Propiedad Valor que indica si está activado Option1.Caption As String Texto que se muestra Option1.Visible As Boolean Dice si es visible Propiedad Propiedad Option1.Top As Integer Propiedad Valor de la posicion de alto Option1.Left As Integer Propiedad Valor de la posicion de izquierda Option1.Width As Integer Propiedad Valor de ancho Option1.Height As Integer Valor de alto Propiedad Utilizar Barras de desplazamiento Option1.Value As Integer Valor de la barra. Propiedad Option1.Min As Integer Propiedad Valor más pequeño de la caja. Option1.Max As Integer Valor más grande de la caja. Propiedad Option1.SmallChange As Integer Propiedad Valor que incrementa o decrementa al pulsar las flechas. Option1.LargeChange As Integer Propiedad Valor que incrementa o decrementa al pulsar dentro de la barra. Option1.Enabled As Boolean Propiedad Valor que indica si está activado Option1.Visible As Boolean Dice si es visible Propiedad Option1.Top As Integer Propiedad Valor de la posicion de alto Option1.Left As Integer Propiedad Valor de la posicion de izquierda Option1.Width As Integer Propiedad Valor de ancho Option1.Height As Integer Valor de alto Propiedad Utilizar Combos Combo1.addItem(Texto As String) Añadir el Texto al final Metodo Combo1.clear Metodo Limpiar todos los datos de combo Combo1.ItemData(n As Integer) As Integer Propiedad Vector de enteros que no se vé asociado a los elementos Combo1.List(n As Integer) As String Propiedad Vector de cadenas que se vén en el combo Combo1.ListCount As Integer Propiedad de solo lectura Valor que indica cuantos elementos hay en la lista Combo1.ListIndex As Integer Propiedad de solo lectura Valor que indica que elemento se ha seleccionado. Vale –1 si no hay ninguno seleccionado Combo1.Text As String Propiedad Valor que hay en la caja superior Combo1.RemoveItem(n As Integer) Metodo Borra el elemento n del combo. Combo1.Enabled As Boolean Propiedad Valor que indica si esta activado o no. Combo1.Visible As Boolean Valor que indica si está visible. Option1.Top As Integer Propiedad Valor de la posicion de alto Option1.Left As Integer Propiedad Valor de la posicion de izquierda Propiedad Utilizar Listas List1.addItem(Texto As String) Añadir el Texto al final Metodo List1.clear Metodo Limpiar todos los datos de combo List1.ItemData(n As Integer) As Integer Propiedad Vector de enteros que no se vé asociado a los elementos List1.List(n As Integer) As String Propiedad Vector de cadenas que se vén en el combo List1.ListCount As Integer Propiedad de solo lectura Valor que indica cuantos elementos hay en la lista List1.ListIndex As Integer Propiedad Valor que indica que elemento se ha seleccionado. Vale –1 si no hay ninguno seleccionado List1.RemoveItem(n As Integer) Metodo Borra el elemento n del combo. List1.Enabled As Boolean Propiedad Valor que indica si esta activado o no. List1.Visible As Boolean Propiedad Valor que indica si está visible. List1.Top As Integer Propiedad Valor de la posicion de alto List1.Left As Integer Propiedad Valor de la posicion de izquierda Option1.Width As Integer Propiedad Valor de ancho Option1.Height As Integer Valor de alto Propiedad Utilizar Temporizador Time1.Interval As Integer Propiedad Cada cuanto ejecuta el evento Timer. 0 no se ejecuta Time1.Enabled As Boolean Propiedad Valor que indica si está activado Time1.Top As Integer Propiedad Valor de la posicion de alto Time1.Left As Integer Propiedad Valor de la posicion de izquierda Utilizar Acceso Al Disco AD1.Enabled As Boolean Propiedad Valor que indica si está activado AD1.List(n As Integer) As String Propiedad Toma el elemento como una lista y coge el elemento n AD1.ListCount As Integer Propiedad no modificable Toma el elemento como una lista y dice cuantas lineas hay AD1.ListIndex As Integer Propiedad Toma el elemento como una lista y dice que linea tiene seleccionada. –1 Ninguna. Drive1.Drive As String Propiedad Indica cual es la unidad que está activada. Por ejemplo “c:”, “a:” Dir1.Path As String Propiedad Indica cual es el directorio que está activado. Por ejemplo “c:\Windows” File1.Path As String Propiedad Indica cual es el directorio que está activado. Por ejemplo “c:\Windows” File1.FileName As String Propiedad Indica cual es el fichero que está activado. Por ejemplo “Jorge.jpg” GLOSARIO ALGORITMO: Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan la lógica de un programa. BIT:(dígito binario) un dígito simple de un numero binario (1 ó 0) BYTE: Grupos de 8 bits que se toman como una unidad, BASIC: (BEGINNERS ALL PURPUS SIMBOLIC INSTRUTION CODE), Lenguaje de instrucciones simbólicas de propósito general para principiantes, esta disponible en modo compilador e intérprete, siendo este ultimo el mas popular para el usuario circunstancial y para el programador principiante. CÓDIGO FUENTE: Programa en su forma original, tal y como fue escrito por el programador, el código fuente no es ejecutable directamente por el computador, debe convertirse en lenguaje de maquina mediante compiladores, ensambladores o interpretes. COMPILADOR (INTÉRPRETE): Dispositivo o programa que recibe una por una las sentencias de un programa fuente, la analiza y la convierte en lenguaje de maquina si no hay errores en ella. También se puede producir el listado de las instrucciones del programa. CONSTANTE: Valor o conjunto de caracteres que permanecen invariables durante la ejecución del programa. VARIABLE: En programación es una estructura que contiene datos y recibe un nombre único dado por el programador, mantiene los datos asignados a ella hasta que un nuevo valor se le asigne o hasta que el programa termine. INTERFAZ (INTERFACE): Medio de comunicación entre el usuario y el programa. PROGRAMA: Es una colección de instrucciones que indican al ordenador que debe hacer. USUARIO: Cualquier individuo que interactúa con el programa. PROGRAMADOR: Un individuo que diseña la lógica y escribe las líneas de código de un programa. CÓDIGO MAQUINA: Para que lo pueda entender el ordenador, el programa debe estar en el lenguaje de la máquina que lo esta ejecutando. PROGRAMA EJECUTABLE: Los archivos que al teclear su nombre ó al hacer clic sobre el icono que le corresponda en un entorno gráfico, logra que el ordenador cargue y ejecute las instrucciones del archivo. DEPURADOR ( debugger ): Es un asistente que ayuda al control o a la detección de errores dentro de la ejecución del código. INSTRUCCIÓN O SENTENCIA: Conjunto de caracteres que se utilizan para dirigir un sistema de procesamiento de datos en la ejecución de una operación.