Guia de Visual Basic
Guia de Visual Basic
Guia de Visual Basic
ASIGNATURA: LAB CIV 275: Laboratorio Computacin para Ingeniera LEGUAJE DE PROGRAMACION Lenguaje de Alto Nivel: Visual Basic OBJETIVOS DEL PROYECTO: Desarrollar esquemas normalmente aceptables para representar procesos como procedimientos lgicos. Programar computadoras a travs de un lenguaje de programacin (Visual Basic) para procesos tcnicos-cientfico. Desarrollar un proyecto (Software) de aplicacin para Ingeniera Civil con propsitos acadmicos. Incorporar clculos numricos y lgicos para elaborar algoritmos computacionales. ALCANCE TEMATICO DEL PROYECTO:
Tema 1. Entorno del Visual Basic Tema 2. Introduccin a la programacin Tema 3. Fundamentos de la Programacin Tema 4. Estructuras de decisin If..ThenElse Tema 5. Estructura de decisin Select Case Tema 6. Estructuras de Bucle Tema 7. Matrices- Arrays Tema 8. Procedimiento funcin-sub Tema 9. Base de datos y Archivos
MAGNITUD DEL PROYECTO: Desarrollar Software aplicado a la ingeniera Civil aplicando los temas desarrollados en laboratorio de computacin VALORACION DEL PROYECTO: Examen escrito por captulos Practicas en laboratorio por captulos Practicas de aplicacin a la ingeniera Asistencia Total
Nota: Mayor a dos inasistencias y la falta de entrega de las practicas de aplicacin a la ingeniera representa la reprobacin de la materia
1
MSc. Ing. ADEMAR PASTEN GIRONDA
2
MSc. Ing. ADEMAR PASTEN GIRONDA
1. Ingresar al Visual Basic. Desde el escritorio del Windows, se debe seguir los siguientes pasos:
. Microsoft Visual Studio 6.0 .. .
Inicio
Al hacer clic en el icono de Visual Basic 6.0, aparece el cuadro de dialogo Nuevo proyecto. Este cuadro de dilogo le solicita que seleccione el tipo de proyecto de programacin que desea crear. Haga clic en el botn Abrir para aceptar el nuevo proyecto propuesto por defecto, una aplicacin estndar de 32 bits para Visual Basic.
En el entorno de programacin de Visual Basic se abrir un proyecto nuevo, junto con algunas de las ventajas y herramientas que se muestra en la siguiente ilustracin:
3
MSc. Ing. ADEMAR PASTEN GIRONDA
Explorador de Proyecto
2. Diseo de la interfaz de usuario. Al Formulario se transfieren los comandos que uno requiere de la ventana de herramientas.
4
MSc. Ing. ADEMAR PASTEN GIRONDA
Control Label
TextBox
Frame
FileListBox
Cuadro 1.1. Controles o Herramientas Definicion Se utiliza para mostrar texto. Puede ser transparente, de forma que el texto parece que forma parte del formulario. El texto de este control se define en la propiedad Caption Este control es un pequeo editor de texto y su propiedad principal es Text, con la que se puede poner un texto fijo en el control o leer el texto que introduzca el usuario Se utiliza para agrupar objetos relacionados entre si. Para agrupar controles, dibuje primero el marco y despus dibuje los controles dentro del marco Crea un botn en el que el usuario puede hacer clic para ejecutar un comando. Este control presenta mltiples opciones de las que el usuario puede elegir ms de una Este control muestra mltiples opciones de las que el usuario solo puede elegir una Este control es una combinacin de un cuadro de texto y un cuadro de lista. El usuario puede seleccionar un elemento de la lista o escribir un valor en el cuadro de texto. Se utiliza para mostrar una lista de elementos de los que el usuario puede seleccionar uno Se utiliza para desplazar la informacin de una caja hacia la izquierda o hacia la derecha Se utiliza para desplazar la informacin de una caja hacia arriba o hacia abajo Permite activar procesos a intervalos regulares de tiempo. Se utiliza para visualizar una lista de las unidades de disco disponibles para que el usuario pueda seleccionar una. Se utiliza para visualizar una lista de carpetas de un dispositivo seleccionado en los que el usuario puede moverse Se utiliza para visualizar una lista de archivos contenidos en la carpeta seleccionada a los que el usuario puede acceder Permite dibujar rectngulos, cuadrados, elipses o crculos en el formulario Se utiliza para dibujar una gran variedad de estilos de linea en el formulario Se utiliza para mostrar en el formulario una imagen grafica de un mapa de bits, un icono o un archivo Este control proporciona acceso a una base de datos existente y visualizar su informacin en el formulario
5
MSc. Ing. ADEMAR PASTEN GIRONDA
Cuando no se puede ver en el cuadro de herramientas un control se puede incrementar, colocando el puntero en la ventana de herramientas y pulsando el boton derecho del maus. Nos mostrara el siguiente men Componentes Agregar Ficha Acople Ocultar Del cual elegimos Componentes que nos mostrara la siguiente pantalla:
Por ejemplo en esta ventana se marca el componente Microsoft FlexGrid Control 6.0 (sps) y se digita aceptar. Esto nos muestra en la ventana de herramientas el icono MSflexGrid que nos permitir disear el siguiente formulario:
6
MSc. Ing. ADEMAR PASTEN GIRONDA
3. Asignacin de propiedades a los controles. En la ventana de propiedades se asigna a cada control sus propiedades requeridas.
Algunas propiedades se muestran en el cuadro 1.2. Cuadro 1.2. Propiedades Descripcin Determinar si el mensaje aparece alineado a la izquierda a la derecha o al centro de la etiqueta Determina si la etiqueta cambia de tamao de manera automtica para mostrar todo el mensaje Devuelve o establece el color de fondo Determina si el color de fondo es transparente u opaco Si se elige 0-Transparent se vera lo que esta detrs de la etiqueta Devuelve o establece el estilo de borde Elija 1-FixedSingle y una lnea bordeara la etiqueta Establece si el botn de comando se comportara como el botn cancelar en el formulario Contiene el mensaje que aparece en la etiqueta Devuelve o establece un valor que determina si un control LisBox se desplaza verticalmente en una nica columna (valor 0) u horizontalmente en columnas periodsticas (valores mayores que 0) Establece si el botn ser activado con la tecla Enter
Default
7
MSc. Ing. ADEMAR PASTEN GIRONDA
Propiedades Enabled
Font
Descripcin Determina si la etiqueta estar activa. Cambie esta propiedad en tiempo de ejecucin para que la etiqueta no responda a eventos generados por el usuario Muestra el cuadro de dialogo Fuente en el que se establece el nombre, el estilo y tamao de la fuente usada en el mensaje Devuelve o establece el color del mensaje Devuelve o establece la altura de la etiqueta Establece la distancia entre el borde izquierdo de la etiqueta y el borde izquierdo del formulario Es un arreglo que contiene los elementos de la lista comienza con ndice 0. Contiene el ndice del elemento seleccionado, el cual es un numero entre 0 (primer elemento) y el numero total de elementos en la lista -1 (ListCount -1) Numero total de elementos de la lista Determina si el usuario puede editar el texto
Especifica el numero mximo de caracteres que se puede escribir en un cuadro de texto Determina la forma del puntero del mouse al pasar el puntero sobre la etiqueta. Permite que el cuadro de texto acepte mltiples lneas de texto Determina como puede seleccionar el usuario los elementos de la lista Contiene el ndice del ultimo elemento aadido a la lista Nombre usado en el cdigo para identificar a la etiqueta Determina el carcter que aparece cuando el usuario introduce una contrasea Determina si la caja de texto tendr barra de desplazamiento vertical horizontal o ambas Arreglo de valores lgicos paralelo y del mismo tamao al arreglo List, indica que elementos han sido seleccionado establecemos la propiedad Multiselect en 1 o 2 True/false. Ordena alfabticamente los elementos de la lista Establece el comportamiento del control ComboBox.Puede tomar los siguientes valores Devuelve o establece el orden de tabulacin del objeto Determina si el cuadro de texto puede recibir el enfoque. Contiene el texto del cuadro
Multi Line MultiSelect NewIndex Name Passwor Char Scroll Bars Selected
8
MSc. Ing. ADEMAR PASTEN GIRONDA
Propiedades Tool Tiptexl Top Value Visible Width WordWrap Tag Interval
Descripcin Devuelve o establece el texto mostrado cuando el puntero del mouse se sita sobre el control Devuelve o establece la distancia entre el borde superior de la etiqueta y el borde superior del contenedor Indica si el botn de opcion esta activada, desactivada. Cuando esta activada, Value se establece a true. Determina si la etiqueta estar visible u oculta Devuelve o establece el echo de la etiqueta Determina si la etiqueta se expande para ajustarse al texto
4). Codificacin en la ventana de cdigo. Para que se pueda ver la ventana de cdigo se hace doble Chick en el control elegido. En la ventana de cdigos se transcribe la codificacin del control elegido.
Por defecto muestra el encabezamiento Private Sub Nombre del control_Click ( ) y pie de codificacin End Sub
9
MSc. Ing. ADEMAR PASTEN GIRONDA
5. Gravar en el Visual Basic. Digitar en la barra de mens la instruccin Archivo y seguir los siguientes pasos: .
Guardar en : Disco A: Nombre (*. Frm: formulario 1 Nombre (*.Frm): formulario 2 Nombre (*.Frm): formulario 3 GUARDAR
Ejemplo1
en la barra de herramientas.
Introducimos los datos que nos pide el programa por ejemplo en la pantalla anterior se ingresa Apellidos y nombres
10
MSc. Ing. ADEMAR PASTEN GIRONDA
7. Salir del Visual Basic. Digitar en la barra de mens la instruccin Archivo y seguir los siguientes pasos: .
Quitar proyecto
Salir
11
MSc. Ing. ADEMAR PASTEN GIRONDA
TEMA 2 PROGRAMACION 1. Programacin La programacin se podra considera como el conjunto de actividades y operaciones tendente a instruir a la mquina para que pueda realizar la funciones previstas en el algoritmo. La programacin se comienza antes de que la codificacin es hecha, y continua un extenso proceso hasta que el programa quede terminado, este proceso es continuo y se lo conoce como ciclo de vida del programa. Los pasos empleados para crear y usar un programa son:
PLANIFICACION DEL PROYECTO Diseo de pantalla
Trabajo de escritorio
Trabajo en computadora
DOCUMENTACION DEL PROYECTO Archivar en disco el programa Fuente y Objeto
Dependiendo del caso, puede omitirse algn paso, o aadir otros adicionales.
12
MSc. Ing. ADEMAR PASTEN GIRONDA
La palabra programacin se emplea con mltiples significados. Puede significar escribir un programa sobre papel, o acompasar todas las fases necesarias para disear un programa y conseguir que pueda ser ejecutado correctamente. Debido a que la programacin habitualmente incluye el proceso completo, la segunda definicin es ms empleada. Nosotros llamaremos a la escritura de un programa sobre papel diseo de programa que comprende la planificacin, especificaciones, prueba de escritorio y codificacin del programa. Es esta una de las fases ms importantes durante el proceso de programacin. Veamos, a continuacin, la fase de diseo del programa .Cuando se muestra la solucin a un problema, o describe la secuencia de acciones a ejecutar, se debera especificar primero un algoritmo y despus debera crearse una estructura de datos (para ser manipulados por el algoritmo). Ms tarde, el algoritmo puede ser traducido a programa, empleando un lenguaje de programacin como puede ser el Visual Basic. En este punto, se escribe un programa en un papel. Si es posible, cada programa escrito sobre papel debe ser comprobado para verificar su validez. En particular, es altamente recomendable que el programador compruebe, calculando los valores manuales, la validez del programa escrito sobre papel en unos cuantos casos. Es habitual el caso de que, en la secuencia completa de programacin, la fase que ms tiempo requiere es la de depuracin que consiste en identificar y corregir los errores. Usando los pasos de diseo adecuados y comprobando el programa manuscrito, el programador puede a menudo ahorrar una gran cantidad de tiempo en la fase de depuracin. Una vez Diseado el programa o el programa manuscrito ha sido comprobado manualmente, se introduce en el sistema del ordenador. El programa debe ser introducido en el sistema del ordenador como archivo. El programa que permite la conveniente escritura de texto en un archivo se llama Editor. El editor es un programa especial diseado para la entrada de texto. Permite usar o borra caracteres o palabras, aadir o insertar texto, sustituir letras y palabras y buscar combinaciones de caracteres datos. Cuanto ms potente sea el editor, ms sencilla es la fase de introduccin del programa. Una posibilidad til que ofrece el editor, de especial importancia, es la indentacin o sangrado. Estos constituyen un aspecto importante de la legibilidad de los programas en Visual Basic. Una vez que el programa escrito a mano se ha introducido en el sistema del ordenador, con ayuda del programa editor, se almacena normalmente como un archivo. El siguiente paso es examinar el archivo para asegurarse de que no se han cometido errores durante la operacin de insercin. El programa debe ser listado. El programa guardado como archivo debe ser listado ahora en la impresora. Esta funcin la realiza el sistema de archivo, un programa que es parte del sistema operativo. Aquel permite la transferencia de un archivo del disco a la impresora, as como de un disco a otro. Adems, provee facilidades que se pueden emplear para cambiar los nombres de los ficheros y especificar varios atributos.
13
MSc. Ing. ADEMAR PASTEN GIRONDA
Si no se dispone de impresora para el listado de archivo, ste puede verse en la pantalla del terminal para cotejarlo con el archivo escrito a mano. En la prctica, el listado es muy conveniente, pues facilita la legibilidad del programa y disminuye el riesgo de errores. El programa ha sido ahora introducido en el ordenador como un archivo que se supone correcto desde todos los puntos de vista. Ahora est preparado para ser ejecutado. La ejecucin del programa se lleva a cabo en dos fases una la compilacin y la segunda la ejecucin propiamente dicha. Un programa escrito en un lenguaje de alto nivel no puede ser ejecutado directamente por el ordenador, ya que este slo comprende un conjunto limitado de instrucciones binarias. El programa debe, pues, o bien ser traducido a su forma binarias. O bien decodificado por un intrprete. En el caso del Visual Basic, se usa generalmente un compilador especial (el programa se compila a cdigo objeto). Las instrucciones de alto nivel (instrucciones Visual Basic) se traducen a un conjunto equivalente al de instrucciones de lenguaje mquina. El programa traducido resultante se denomina archivo de cdigo objeto. Si ese programa contiene errores de sintaxis, el compilador genera diagnsticos o mensajes de error que informa al programador del tipo y localizacin de los errores. Una vez traducido, el cdigo objeto esta listo para ser ejecutado. La ejecucin la realiza un mdulo separado del compilador, denominado mdulo de ejecucin que termina con la ejecucin del programa. Si el programa era correcto, los resultados aparecern en la pantalla o sern impresos; si era incorrecto, se generarn mensajes de error. Lo importante aqu es ver que la mayora de los compiladores trabajan en dos fases: una de traduccin y otra de ejecucin. Adems, algunos compiladores hacen ms compacto y aumentan la velocidad del cdigo objeto, optimizando el uso de los registros internos del ordenador y sacando algunas instrucciones fuera de lazos. Un paso de optimizacin como ste es importante para la velocidad de ejecucin, pero costoso de implementar y por ello poco usual. Para comprobar el programa, este debe ser ejecutado tantas veces como sea posible con diferentes datos, de forma que se pueda comprobar el correcto funcionamiento. Para facilitar esta tarea, puede existir un programa depurador (ebugger), La funcin de un programa depurador es facilitar esta tarea. La principal posibilidad de este es el establecimiento de punto de ruptura. Estos son mandatos especiales que se pueden usar para detener la ejecucin del programa en un punto determinado. Siendo capaz de parar en programa, el programador puede examinar los valores de las variables y contenidos de memoria. Luego, es posible comprobar la correcta operacin del programa en puntos de ruptura determinados. Si no se dispone de programa de comprobacin, es necesario buscar otros mtodos de comprobacin. El desarrollo de un programa debe ser documentado, para lo cual dividiremos en la documentacin del programa fuente y objeto: 14
MSc. Ing. ADEMAR PASTEN GIRONDA
La documentacin del programa fuente se encuentra detallado la descripcin, anlisis, algoritmos y codificacin del programa. Mientras que la documentacin del programa fuente se explica el funcionamiento del programa mediante un manual desde su ingreso hasta su salida. Este documento se conoce como el manual del programa. Una vez terminada, presentada y aceptada el programa habr una gran tendencia a modificar (mejoras no consideradas, sin embargo se tendr una gran sorpresa cuando se descubra que el mantenimiento y codificacin de un programa puede constar de 2 a 4 veces el programa original. Una primera categora involucra a las correcciones que se desean cuando el usuario emplea comandos que no se han tomado en cuenta. Otra motivacin para modificar el programa son las mejoras ya mencionadas, sin embargo para estas mejoras es posible que sean requeridas muchas modificaciones adems del deseo de incorporar el sistema a ambientes para los cuales no ha sido diseado, situacin tpicas en el momento de aceptacin. Adems de las anteriores estn los cambios de adaptacin posiblemente debido a mejoras tanto en Hardware como en Software externo. 2. Ejemplo de programacin Planificacin del proyecto Diseo de dos pantalla. En una hoja cuadriculada los siguientes formularios. En el formulario 1 muestra la hora que corre el programa En el formulario 2 solo visualiza una viga que tiene una carga distribuida cuando se le indique mediante el control ver carga. Formulario1
LABORATORIO DE COMPUTACION CIV 275
Formulario 2
VISUALIZAR UNA CARGA
CARGA
VER FORM 1
SALIR
VER CARGA
RETORNAR
Especificaciones del proyecto Definir el Algoritmo. Se desarrolla el diagrama de flujo del control elegido utilizando las normas del Instituto de Normalizacin Americano (ANSI).
15
MSc. Ing. ADEMAR PASTEN GIRONDA
INICIO Formulario 1
INICIO Salir
INICIO Retornar
Ir al formulario 1 Ir al formulario 2 SALIR (Digitar Enter ) Ver Carga (Distribuida) Desde el Formulario 2 Desde el Formulario 1
FIN FIN
FIN FIN
Base de datos- Datos para prueba de escritorio Para generar una base de datos para la prueba de escritorio se tiene que tener conocimiento del proyecto. Estos datos tienen que ser colocados en una planilla que nos muestre los datos de entrada y resultados esperado: DATOS DE ENTRADA Largo Carga Q RESULTADOS ESPERADOS Ra Rb
Codificacin de proyecto Antes de codificar se tiene que establecer las propiedades de cada control de la siguiente manera: Propiedades de los controles Control Propiedad Form1 Label1 Caption Label2 Caption Frame1 Caption Label3 Name Caption Label4 Name Caption Text1 Name Command1 Name Caption Command2 Name Caption
Valor MANEJO DE HERRAMIENTAS. EJEMPLO: VISUALIZAR CARGA Grafico lblQ q = LblH TxtQ CmdVerCarga Ver Carga CmdSalir Salir
16
MSc. Ing. ADEMAR PASTEN GIRONDA
Codificacin de control. (Programa Fuente) Se codifica el control elegido de acuerdo al diagrama de flujo y las propiedades de cada control. Formulario 1 Control Tiempo: Private Sub Time_Click() LblH.Caption = Time End Sub Control ver formulario1: Private Sub CmdVerform1_Click() Fom2.Show Unload Form1 End Sub Control Salir Private Sub CmdSalir_Click() End End Sub Formulario 2 Control Ver Carga: Private Sub CmdVerCarga_Click() LblQ.Visible = True TxtQ.Visible = True Carga.Visible = True TxtQ.SetFocus End Sub Control Retornar: Private Sub CmdRetornar_Click() Fom1.Show Unload Form2 End Sub Edicin, depuracin y verificacin del proyecto Para comprobar que los resultados de la corrida del programa este bien, este debe ser ejecutado tantas veces como sea posible con diferentes datos, de forma que se pueda comprobar el correcto funcionamiento.
17
MSc. Ing. ADEMAR PASTEN GIRONDA
Una vez que la aplicacin tiene el aspecto deseado y que ejecucin se realiza correctamente, se puede crear un archivo ejecutable que permita que dicha aplicacin se ejecute fuera del entorno de Visual Basic. Para ello, en el men Archivo, haga clic en la opcin Generar .exe (Visual Basic aade automticamente el nombre del programa al nombre del comando). Visual Basic muestra el cuadro dialogo Generar proyecto. Luego de seleccionar una carpeta y de introducir un nombre, haga clic en el botn Aceptar. Visual Basic crear un programa ejecutable y lo almacenara en la carpeta especificada.
Nombre:
Aceptar
Para ejecutar este archivo desde Windows, localicelo en el explorador de windows y haga doble clic sobre el. Tambin podr crear un acceso directo para este archivo en la ventana de escritorio. Para ello, en el explorador de Windows, situ el puntero del Mouse sobre el archivo ejecutable, presione el botn derecho del Mouse y mantngalo as mientras lo arrastra hacia el escritorio de Windows. Suelte el botn del Mouse y Windows le mostrara un men contextual. 18
MSc. Ing. ADEMAR PASTEN GIRONDA
En este men seleccione el comando Crear icono de acceso directo aqu. Windows introducir un icono en el escritorio sobre el que podr hacer doble clic para ejecutar el archivo ejecutable. Documentacin del proyecto La documentacin del proyecto se divide en las siguientes partes: Documentacin del proyecto fuente Documentacin del proyecto Objeto (Manual del programa)
a) Documentacin del proyecto fuente La documentacin fuente es confidencial, siendo manipulada esta informacin por el programador o personal con autorizacin, para la revisin de estos documentos. Esto se debe a que el programa fuente pude ser modificado y mejorado permanentemente creando mejores versiones, lo que representa un ingreso econmico para el programador o la empresa que lo contrato. La documentacin fuente tiene como contenido los siguientes temas: * Introduccin al proyecto * Planificacin del proyecto * Especificaciones del proyecto * Base da datos (para la prueba de escritorio) * Codificacin del proyecto * Edicin depuracin y verificacin del proyecto * Disco con programa fuente b) Documentacin del proyecto Objeto La documentacin Objeto es conocido como el manual del programa y es accesible a toda persona que quiera adquirir el manual con el disquete que contiene el programa objeto, a un costo determinado. Este manual explica como se tiene que utilizar el programa desde su prendido hasta su apagado. Para el uso de este manual, no es necesario que el usuario sepa programar, por que este programa explica todas las operaciones que efectuara cada control que muestra la pantalla. El Manual del programa tiene como mnimo los siguientes temas: * Cartula con el nombre del manual y el nombre del autor 19
MSc. Ing. ADEMAR PASTEN GIRONDA
* Informacin sobre la Edicin, derechos reservados * Contenido o ndice * Prefacio * Contenido del manual por captulos * Apndices * Referencias o bibliografa * Disco con programa Objeto Mantenimiento del proyecto El programa puede ser actualizado permanentemente dependiendo de la versin del lenguaje que se utilizan. Tambin se puede mejorar el programa calculando sus momentos de la viga, la flexin y otros clculos que se aplica a una viga. El mantenimiento es conservar y cuidar el programa vigente en el tiempo, consideramos el Software y Hardware. Con este fin se tiene que definir un mantenimiento del programa a corto, mediano y largo plazo: Mantenimiento a corto plazo A medida que el programa es utilizado por el usuario, se tiene que hacer ajustes al programa, para evitar errores de clculo. As tambin efectuar mejoras al programa para facilitar su uso. Mantenimiento a mediano plazo El programa requiere crear una pgina de acceso a datos para ver datos en Microsoft Internet Explorer o usar el Editor de secuencias de comandos de Microsoft para desarrollar cdigo para una paina Web. La mayora de oficinas actualmente trabajan con ordenadores interconectados, que comparten archivos, programas y perifricos. En estos, casos, se dedica siempre un ordenador (servidor) a almacenar la informacin y a manejar los perifricos. El resto de los ordenadores (clientes) se conectan a l. De esta manera, con una red que permite compartir los recursos, se ahorra tiempo y material. Una vez entendido el concepto de red, cabe imaginar muchas redes independientes, cada una con sus respectivos servicios, diseminados por todos los rincones del planeta. Si se conecta entre si (habitualmente a travs de lnea telefnica), se obtiene la red Internet. Mantenimiento a largo plazo 20
MSc. Ing. ADEMAR PASTEN GIRONDA
Debido a su rpida difusin y a su origen estadounidense, el mundo de los ordenadores personales (tambin conocidos por las siglas PC, personal Computer) han aparecido algunos ordenadores de mejor calidad, obligando al programador a actualizar su programa. El ordenador, por lo general, esta formado por la caja, que incluye todos los dispositivos internos (disquetes, unidad lectora de CD-ROM, memoria, disco duro, microprocesador, tarjeta de sonido y tarjeta graficadora) y los perifricos (monitor, teclado ratn, micrfono, altavoces e impresora). Algo que sorprende mucho cuando se habla de ordenadores es la gran cantidad de tareas diferentes que son capaces de hacer. Ordenar y almacenar muchos datos, corregir ortogrficamente un texto, o bien permitir realizar increbles efectos sobre fotografas.
21
MSc. Ing. ADEMAR PASTEN GIRONDA
TEMA 3 FUNDAMENTOS DE LA PROGRAMACIN 1. Fundamentos Los fundamentos del lenguaje de programacin utilizado en el sistema de desarrollo para Visual Basic, comprende: Los Comentarios Declaracin de variables Tipos de datos Operadores Funciones matemticas, conversin de cadena, hora-fecha 2. Comentarios Visual Basic interpreta que todo lo que esta a la derecha del carcter () en una lnea cualquiera de programa es un comentario y no ejecuta accin alguna. Los comentarios son de mucha utilidad para poder entender el cdigo del programa utilizado. 3. Declaracin de variables Las variables se utilizan para almacenar valores temporalmente durante la ejecucin del programa. Antes de utilizar una variable, hay que declarar su tipo. Para ello se utiliza la sentencia Dim. Esta sentencia reserva espacio de memoria para la variable y permite a Visual Basic saber que tipo de datos deber guardar en dicha variable. Por ejemplo, la siguiente sentencia crea espacio para una variable llamada nLongitud: Dim nLongitud As Integer 4. Tipos de datos Visual Basic dispone de varios tipos de datos, aplicables para constantes como para variables, estas pueden ser Bolean, Byte, Integer, Long, single, etc.. Estos tipos de datos disponibles de Visual Basic se pueden ver en el cuadro 1. Si una variable no es declarada, se asume que es de tipo Variant. 5. Operadores Un operador es un smbolo o palabra que ejecuta una operacin matemtica o maneja la informacin. Estos pueden ser Aritmticos ( *, /, +,..) y relaciones lgicas (=, >,<, And.). En el cuadro 2., se muestra el conjunto de operadores que porta Visual Basic.
22
MSc. Ing. ADEMAR PASTEN GIRONDA
String
Date
Variant
Cuadro 1. Tipo de datos Descripcin Rango Binario True o False Entero corto 0 a 255 Entero (2 bytes) % -32768 a 32767 Entero largo (4 bytes) & -2147483648 a 2147483647 Real simple precisin ! -3.40E+38 a 3.40E+38 (4 bytes) Real doble precisin # -1.79D+308 a 1.79D+308 (8 bytes) Nmero con punto @ -9.22E+14 a 9.22E+14 decimal fijo (8 bytes) Tambin se usa para valores monetarios Cadena de caracteres $ 0 a 65500 caracteres (4 bytes + 1 byte/car. hasta 64K) Fecha 1 de enero de 100 a 31 de diciembre de 9999. Indica tambin la hora desde 0:00:00 a 23:59:59. Fecha/hora; nmeros (ningun F/h: como Date. enteros, reales, o o) Nmeros: mismo rango que el caracteres (16 bytes + 1 tipo de valor almacenado. byte/car, en cadenas de caracteres).
Tipo Aritmtico
Cuadro 2. Operadores Operacin Exponenciacin Cambio de signo Multiplicacin y divisin Divisin entera Resto de una divisin entera Suma y resta Concatenar o enlazar Igual, distinto, mayor, menor, Negacin And Or inclusiva Or exclusiva Equivalencia (opuesto a Xor) Implicacin
Operador ^ *,/ \ Mod +,& =,<>, <, >,<=, >= Not And Or Xor Eqv Imp 23
6. Funciones matemticas, conversin de cadena y fecha-hora Visual Basic incluye varias de estas funciones que nos permiten operaciones matemticas complejas. Las funciones de cadena permiten cambiar la apariencia y el tratamiento de las expresiones de cadena (String) y las funciones de fecha y hora opera la fecha y hora del sistema. En el cuadro 3 se muestra las funciones matemticas en el cuadro 4., las funciones de conversin de cadena, y en el cuadro 5, las funciones de fecha y hora, junto con una descripcin de su contenido. Cuadro 3. Funciones matemtica Funcin Descripcin Abs ( ) Devuelve el valor absoluto de un nmero. Sintaxis: Abs (nmero) Devuelve en radianes el coseno de un ngulo. Sintaxis : Cos (nmero) Cos ( ) Devuelve e (la base de los logaritmos naturales) elevado a una Exp ( ) potencia. Sintaxis: Exp(nmero) Int, Fix Devuelve un valor del mismo tipo que el que se pas como parmetro y que contiene la parte entera de un nmero. Sintaxis : Int (nmero) Devuelve el logaritmo natural (base e) de un nmero. Sintaxis: Log ( ) Log (nmero) Devuelve en radianes el seno de un ngulo. Sintaxis: Sin (nmero) Sin ( ) Devuelve el signo de un nmero. Sintaxis: Sgn (numero) Sgn ( ) Devuelve la raz cuadrada de un nmero. Sintaxis: Sqr (nmero) Sqr ( ) Devuelve en radianes la tangente de un ngulo. Sintaxis: Tan ( ) Tan (nmero)
Cuadro 4. Funciones de conversin de cadena Funcin Descripcin Esta funcin devuelve el cdigo de carcter correspondiente a la Asc ( ) primera letra de una cadena. Sintaxis: Asc (cadena) Esta funcin devuelve un tipo String que contiene el carcter Chr ( ) asociado con el cdigo de carcter especificado. Sintaxis: Chr (cdigocar) Esta funcin busca una cadena dentro de otra cadena y devuelve un InStr ( ) nmero indicando la posicin en la que se encuentra la cadena buscada; en caso de no encontrarse devuelve 0. Sintaxis: InStr( [start, ] string 1, string 2 [, compare ] L Case ( ) Convierte una cadena a minsculas. Sintaxis : LCase (cadena) Devuelve un nmero especificado de caracteres del lado izquierdo Left ( ) de una cadena. Sintaxis: Left (string, length) Devuelve el nmero de caracteres en una cadena o el nmero de Len ( ) bytes necesarios para almacenar una variable. Sintaxis: Len (cadena | nombrevar) Devuelve un nmero especificado de caracteres de una cadena . Mid ( ) Sintaxis: Mid (string, Start [, length ] ) Funcin Descripcin 24
MSc. Ing. ADEMAR PASTEN GIRONDA
Devuelve una copia de una cadena determinada sin espacios a la izquierda (L Trim), sin espacios a la derecha (RTrim) o sin espacios ni a la derecha ni a la izquierda (Trim). Sintaxis: LTrim Cadena) , RTrim (cadena), Trim (cadena) Devuelve un nmero especificado de caracteres del lado derecho de una cadena. Sintaxis: Right (string, lenght) Esta funcin convierte un nmero en cadena. Sintaxis: Str(nmero) Convierte una cadena de caracteres a maysculas. Sintaxis : UCase(cadena) Genera una cadena de espacios. Sintaxis : Space(nmero) Devuelve un tipo Variant (String) que contiene una cadena de caracteres que se repite de la longitud especificada. Sintaxis: String(number, carcter) Esta funcin devuelve los nmeros contenidos en una cadena como un valor numrico del tipo adecuado. Sintaxis: Val(cadena)
Val ( )
5. Funciones de fecha y hora Funcin Descripcin Devuelve la fecha actual del sistema. Sintaxis: Date Date DateAdd( La funcin DateAdd devuelve un valor de tipo Variant con una fecha a la que se la ha agregado un intervalo de tiempo especificado. ) Sintaxis: DateAdd(intervalo, nmero, fecha) DateDiff( Esta funcin devuelve el nmero de intervalos de tiempo entre dos fechas especificadas. Sintaxis: DateDiff(intervalo, fecha1, fecha2 ) [,1erdasemana [, 1rasemanaao ]]) La funcin Day devuelve un nmero entero entre 1 y 31, inclusive, Day que representa el da del mes. Sintaxis: Day(fecha) Month( ) La funcin Month devuelve un nmero entero entre 1 y 12, inclusive, que representa el mes del ao. Sintaxis: Month(fecha) La funcin Now devuelve la fecha y la hora actuales de acuerdo a la Now configuracin de la fecha y la hora del sistema de su PC. Sintaxis: Now WeekDay La funcin WeekDay devuelve un nmero entero que representa el da de la semana. Sintaxis : WeekDay(fecha,[da semana]) Esta funcin devuelve un nmero entero que representa el ao. Year Sintaxis:Year(fecha) 7. Caracteres ASCII Es el cdigo estndar de conjunto de caracteres que cualquier ordenador puede entender, usado para representar las letras latinas, en maysculas, minsculas, nmeros, puntuacin, etc... La tabla bsica de caracteres ASCII esta compuesta por 128 caracteres incluyendo smbolos y caracteres de control. Existe una versin extendida de 256. Un operador. Se puede llamar apretando ALT y el numero 25
MSc. Ing. ADEMAR PASTEN GIRONDA
Cuadro 6 ASCII
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ! " # $ % & ' ( ) * 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257
26
MSc. Ing. ADEMAR PASTEN GIRONDA
Ejemplo de aplicacin Introducir los siguientes valores A, B y , a un triangulo (oblicungulo) y calcular C. Los datos deben ser vistos directamente en el grafico. _______________________ C= A2 + B2 - 2 A*B* cos ()
A En la corrida del programa las letras A, B, C se deben convertir en minsculas y al pie del triangulo se tiene que ver la fecha de la computadora. Diseo de pantalla
0 0 1000 2000 3000 4000 5000 6000
1000
2000
3000
4000
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .C . . = . . . . . . . . . . . . . . . . FECHA . .: . . .
. . . . . . . . . . . . . . . . . . . DECLARACION . . . . DE . VARIABLES, . . . TIPO . . DATOS . . .. . . . . . . . . . . . . . . . . . . . . . . .EJEMPLO: . . ECUACION . . . DE . UN . TRIANGULO . . . .OBLICUANGULO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B . . . . . . . . . . . . . . . . . . . . . . . . . . . CALCULAR . . . . . . . . . . . . . . . . . . . . . . . = . . . . . . . . . . . . . SALIR . . . . A. . . . . . . . . . . . . . . . . . . . . . . . . . FORMULA . . . . . . . . . . . . . . . . .C = .(A2. + .B2 -. 2*A*B*Cos . . .() ). . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
Propiedades de cada control Control Propiedad Form1 Label1 Caption Label1 Caption Label2 Caption Label3 Caption Label4 Caption 4000 Label5 Caption Label6 Caption Frame1 Caption Label7 Caption Text1 Text2 Name Text Name
TxtA TxtB 27
Text Name Text Name Text Name Text Name Caption Name Caption
Codificacin en detalle de los controles '==========================Control Calcular Private Sub CmdCalcular_Click() Dim A, B As Double A = Val(TxtA.Text) B = Val(TxtB.Text) ANG = Val(TxtAng.Text) PI = 3.1416 ANG = ANG * PI / 180 C = Sqr(A ^ 2 * B ^ 2 + 2 * A * B * Cos(ANG)) TxtC.Text = C TxtC.Visible = True TxtL.Text = Now LblA.Caption = LCase(LblA.Caption) LblB.Caption = LCase(LblB.Caption) LblC.Caption = LCase(LblC.Caption) End Sub '=============================Control Salir Private Sub CmdSalir_Click() End End Sub
28
MSc. Ing. ADEMAR PASTEN GIRONDA
TEMA 4 ESTRUCTURA DE DECISIN If..ThenElse 1. Definicin estructura de decisin If Esta estructura evala la condicin y, si es True (verdadera), ejecuta el primer bloque de sentencias y luego salta a las sentencias que hay despus de End If. Si la condicin es False (falsa), ejecuta el segundo bloque de sentencias, es decir, las que hay a continuacin de la palabra clave Else. 2. Algoritmo y codificacin
If f Else
Bloque de sentencia 1 Condicin
v Then
Bloque de sentencia 2
End If If Condicin Then [Bloque de sentencias 1] Else [Bloque de sentencias 2] End If 3. Ejemplo de aplicacin Introducir dos nmeros A y B, si A>=B colocar el rotulo A es mayor o igual que B, si B>A colocar el rotulo B es mayor que A Cada campo numrico solo debe permitir el ingreso de dgitos numricos Despus de ingresar datos a un campo tiene que enfocar automticamente otro campo. Diseo de pantalla
0 0 1000 2000 3000 4000 5000 6000
. . . . . . . . . . . . . . . . . . . . . . . ESTRUCTURAS DE DECISION If.. Then Else . . . EJEMPLO: ELECCION DE UN NUMEROMAYOR. 1000 . .Ingresar: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dato A . . . . . . . . . . . 2000 . . . . . . . . . . . . . . . . . . . . . . .Dato B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CALCULAR SALIR . . . . . . . . . . . . . . . . . . . . 4000 . . . . . . . . . . . . . . . . . . . . MSc. Ing. ADEMAR . PASTEN . . GIRONDA . . . . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . 29 . .
Propiedades de cada control Control Propiedad Form1 Label1 Caption Label2 Caption Label3 Caption Label2 Caption Label3 Caption Label4 Name Caption Text1 Name Text Text2 Name Text Command1 Name Caption Command2 Name Caption
Valor ESTRUCTURA DE DECISION If Then Else Ingresar Dato A Dato B LblResultado TxtA TxtB CmdCalcular Calcular CmdSalir Salir
Codificacin en detalle de los controles ==================================Control Calcular Private Sub CmdCalcular_Click() Dim A, B As Double A = Val(TxtA.Text) B = Val(TxtB.Text) If A>=B Then LblResultado.Caption = Str(A) & " es mayor o igual que " & Str(B) & " Entonces A>=B" Else LblResultado.Caption = Str(B) & " es mayor que " & Str(A) & " Entonces B>A" End If End Sub =====================================Control Salir Private Sub CmdSalir_Click() End 'Finaliza la ejecucin del programa End Sub ============================Control A Private Sub TxtA_KeyPress(KeyAscii As Integer) 'Enfoca el botn de comando B If KeyAscii = 13 Then TxtB.SetFocus End If 30
MSc. Ing. ADEMAR PASTEN GIRONDA
'Solo permite el ingreso de dgitos en el control. If Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9" Then Beep: KeyAscii = 0 End If End Sub ================================Control B Private Sub TxtB_KeyPress(KeyAscii As Integer) 'Enfoca el botn de comando Calcular If KeyAscii = 13 Then CmdCalcular.SetFocus End If 'Solo permite el ingreso de dgitos en el control. If Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9" Then Beep: KeyAscii = 0 End If End Sub
31
MSc. Ing. ADEMAR PASTEN GIRONDA
TEMA 5 ESTRUCTURA DE DECISIN Select Case 1. Definicin estructura de decisin Select.. Select Case ofrece posibilidad similar a la estructura If..Then..Else, pero hace que el cdigo sea ms legible cuando hay varias opciones. La estructura Select Case comprueba una nica expresin, que se evala una sola vez al principio de la estructura. El resultado de esta comprobacin se compara con los valores de cada case y, si coincide con uno de ellos, se ejecuta el bloque de sentencias asociado a ese Case. 2. Algoritmo y codificacin
Select Case
Expresion
Case1
Bloque de sentencia 1
Case2
Bloque de sentencia 2
Case Else
Bloque de sentencia n
End Select
Select Case expresin_prueba [Case lista expresionres1] [bloque de sentencias 1] [Case lista_expresiones2] [bloque de sentencias 2] . [Case Else [bloque de sentencias n] End Select 3. Ejemplo de aplicacin Dado un circulo donde se tiene como dato R = Radio, calcular uno de los elementos del siguiente men: 1.- Dimetro (2*R) 2.- rea (PI*R2 ) 3.- Permetro (2 * PI*R ) 4.- Salir Dibujar el circulo en pantalla 32
MSc. Ing. ADEMAR PASTEN GIRONDA
Cada campo numrico solo debe permitir el ingreso de dgitos numricos Despus de ingresar datos a un campo tiene que enfocar automticamente otro campo. Diseo de pantalla
0 0 1000 2000 3000 4000 5000 6000
1000
2000
3000
4000
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . MENU . . . . . . . . . . . 1.-.Dimetro . . D . . 2.-. rea . . . A . . . . . 3.- Perimetro P . . . . . . 4.-.Salir. programa . . . Elegir . numero . . . . . . . . . . . . . Ingresar el Radio: . . . . .
. . . . . . . . . . . . . . . . . . . DE . DECISION . . . . Select . . Case . . ESTRUCTURA .EJEMPLO: . . . CALCULO . . . .DE. UN . CIRCULO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Calculos . . . . . . . . . . . . . . . . . . . . . . . . D = 2*R P = 2*Pi*R . . . . A= . Pi*(R^2) . . . Pi .=. . . . . 3.1416 . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resultado . . :. . . . . . .
. . . . . . . . . . . . . .
Propiedades de cada control Control Propiedad Form1 Label1 Caption Label2 Caption Label3 Caption Label4 Caption Label5 Caption 4000 Label6 Caption Label7 Caption Label8 Caption Label9 Caption Label10 Name Caption Frame1 Caption Frame2 Text1 Name Text Text2 Name Text Shape1 Name Shape2 Name Line1 Name
Valor ESTRUCTURA DE DECISION Select Case.. End Select MENU 1.- Diametro D 2.- Area A 3.- Perimetro P 4.- Salir del programa Elegir un numero Ingresar el radio LblResultado MENU Calculos TxtRadio TxtNumero Circulo1 Circulo2 Linea1
33
MSc. Ing. ADEMAR PASTEN GIRONDA
Codificacin en detalle de los controles '===============================TxtNumero Private Sub TxtNumero_KeyPress(KeyAscii As Integer) Dim N As Long If KeyAscii = 13 Then N = Val(TxtNumero.Text) If N >= 1 And N <= 4 Then If N = 4 Then End Else TxtRadio.SetFocus End If Else TxtNumero.Text = "" TxtNumero.SetFocus End If End If End Sub '===============================TxtRadio Private Sub TxtRadio_KeyPress(KeyAscii As Integer) Dim R, N1 As Long If KeyAscii = 13 Then R = Val(TxtRadio.Text) N1 = Val(TxtNumero.Text) PI = 3.1416 Linea1.Visible=False Circulo1.Visible=false Circulo2.Visible=False Select Case N1 Case 1 Linea1.Visible=True Circulo1.Visible=True LblResultado.Caption = "Diametro =" & 2 * R Case 2 Circulo1.Visible=True LblResultado.Caption = "Area =" & PI * (R ^ 2) Case 3 Circulo2.Visible=True LblResultado.Caption = "Perimetro =" & 2 * PI * R Case Else Exit Sub End Select End If 34
MSc. Ing. ADEMAR PASTEN GIRONDA
'Enfoca otro boton If KeyAscii = 13 Then TxtNumero.Text = "" TxtRadio.Text = "" TxtNumero.SetFocus End If End Sub
35
MSc. Ing. ADEMAR PASTEN GIRONDA
TEMA 6 ESTRUCTURAS DE BUCLE 1. Definicin estructura Bucle Las estructuras de bucle permiten repetir la ejecucin de una o ms lneas de cdigo mientras una condicin sea verdadera o hasta que una condicin sea verdadera. Visual Basic dispone de las siguientes estructuras de Bucle: 2. Algoritmo y codificacin Do While
Condicin
v
sentencias
Loop While v
Condicin
sentencias
Dado un rectngulo donde se tiene conocido A y B, efectuar un programa que calcule el lado C C= B + (A2 )
x=1 x=1 B n 2 n
Donde x= 1,2,3,4,.n
Dibujar el rectngulo en pantalla y que muestre los resultados Cada campo numrico solo debe permitir el ingreso de dgitos numricos Despus de ingresar datos a un campo tiene que enfocar automticamente otro campo. Diseo de pantalla
0 0 1000 2000 3000 4000 5000 6000
1000
2000
3000
4000
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . ESTRUCTURA . . . . . DE . BUCLE: . . . Do..While..Loop, . . . . . For..Next . . . . . . . . . EJEMPLO: . . . . CALCULO . . . DE . UN . .CUBO . .DE. LADO . .C. . . . MENU . . . . . . . . . . . . . . . . . . . . . . 0 Calculo . . por . Do.Loop . . . while . . . . . . . . . Ingrese . .B:= . . . . . 0 Calculo . . por . Do . While.. . . Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 Calculo . . por . For . Next . . . . . . . . . . . . . . . . . n C=? . 0 .Salir. programa . . . . . . . .Ingrese n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formula . . . . . . . . . . . . . . . . . . . . . . . . .C= SQR((Sumatoria . . . . B)^2)+(Sumatoria(a^2))) . . . . . . . . . . . . Ingrese . .A= .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
Propiedades de cada control Control Propiedad Form1 Label1 Caption Label2 Caption Label3 Caption Label4 Caption 4000 Label5 Caption Label6 Caption Label7 Caption Label8 Name Caption Label9 Name
Caption Label10 Label11 Label12 Text1 Text2 Text3 Frame1 Frame2 Option1 Option2 Option3 Option4 Name Caption Name Caption Name Text Name Text Name Text Caption Caption Name Caption Name Caption Name Caption Name Caption LblC LblResultado C=SQR(((SumatoriaA)^2)+(Sumatoria (B^2)) ; Para x=1,2,3n TxtA TxtB TxtN Elija un Bucle para calcular Formula Boton1 Calculo por Do..Loop While Boton2 Calculo por Do While.Loop Boton3 Calculo por For.Next Boton4 Salir
Codificacin en detalle de los controles 'Boton1==============================Clik Private Sub Boton1_Click() Dim A, B, C As Double Dim N, X As Integer Dim SumaA, SumaB As Double A = Val(TxtA.Text) B = Val(TxtB.Text) N = Val(TxtN.Text) X = 0: C = 0 SumaA = 0: SumaB = 0 Do SumaA = SumaA + A SumaB = SumaB + (B ^ 2) X=X+1 Loop While X <> N C = Sqr(((SumaA) ^ 2) + (SumaB)) LblC.Caption = Format(C, "###,##00") End Sub 'Boton2================================Clik 38
MSc. Ing. ADEMAR PASTEN GIRONDA
Private Sub Boton2_Click() Dim A, B, C As Double Dim N, X As Integer Dim SumaA, SumaB As Double A = Val(TxtA.Text) B = Val(TxtB.Text) N = Val(TxtN.Text) X = 0: C = 0 SumaA = 0: SumaB = 0 Do While X <> N SumaA = SumaA + A SumaB = SumaB + (B ^ 2) X=X+1 Loop C = Sqr(((SumaA) ^ 2) + (SumaB)) LblC.Caption = Format(C, "###,##00") End Sub 'Boton3================================Clik Private Sub Boton3_Click() Dim A, B, C As Double Dim N, X As Integer Dim SumaA, SumaB As Double A = Val(TxtA.Text) B = Val(TxtB.Text) N = Val(TxtN.Text) C=0 SumaA = 0: SumaB = 0 For X = 1 To N Step 1 SumaA = SumaA + A SumaB = SumaB + (B ^ 2) Next C = Sqr(((SumaA) ^ 2) + (SumaB)) LblC.Caption = Format(C, "###,##00") End Sub 'Boton4======================================Clik Private Sub Boton4_Click() End End Sub 'TxtA=========================================clik Private Sub TxtA_KeyPress(KeyAscii As Integer) LblA.Caption = Val(TxtA) 'Mueve el puntero a otro cuadro If KeyAscii = 13 Then TxtB.SetFocus 39
MSc. Ing. ADEMAR PASTEN GIRONDA
End If End Sub 'TxtB======================================Clik Private Sub TxtB_KeyPress(KeyAscii As Integer) LblB.Caption = Val(TxtB) 'Mueve el puntero a otro cuadro If KeyAscii = 13 Then TxtN.SetFocus End If End Sub 'TxtN========================================Clik Private Sub TxtN_KeyPress(KeyAscii As Integer) Dim A, B As Double A = Val(TxtA.Text) B = Val(TxtB.Text) If (A > 0 And B > 0) Then LblRotulo.Caption = "Puede calcular" Else LblRotulo.Caption = "No puede calcular A,B<0" End If End Sub
40
MSc. Ing. ADEMAR PASTEN GIRONDA
TEMA 7 MATRICES - ARRAYS 1. Definicin matrices - Array Un array es una estructura de datos en la que se almacena una serie de elementos del mismo tipo. Dicho de otro modo, una array es una lista con nmero finito de n elementos del mismo tipo que se caracteriza por almacenar los elementos del array en posiciones de memoria continua, tener un nico nombre de variable que representa a todos los elementos, y stos a su vez se diferencian por un ndice o subndice. (i , j) 1 2 n 1 2 A(2,2) .n
Un array debe declararse con la sentencia Dim seguido por el nombre del array y, entre parntesis, el valor mximo del ndice que emplearemos para acceder a cada elemento Dim nombre variable ( inicio To fin , inicio To fin) As Tipo variable Fila Columna 2. Array unidimensional Un array de una dimensin (unidimensional) es un tipo de datos estructurado compuesto de un nmero fijo de elementos. Los elementos de array se almacenan en posiciones contiguas de memoria, a cada una de las cuales se puede acceder directamente. A[i] B[i] C[i] .a1 a2 a3 ; b1 b2 b3 ; c1 c2 c3 Dim A(1 To 3), B(1 To 3), C(1 To 3) As Integer 3. Array Bidimensionales Un array bidimensional es un array con dos ndices. Para localizar o almacenar un valor en el array se deben especificar dos posiciones (dos subndices), uno para la fila y otro para la columna. A[i,j] B[i,j] C[i,j] .a11 a12 a13 b11 b12 b13 c11 c12 c13 a21 a22 a23 ; b21 b22 b23 ; c21 c22 c23 a31 a32 a33 b31 b32 b33 c31 c32 c33 Dim A(1 To 3, 1 To 3), B(1 To 3, 1 To 3), C(1 To 3, 1 To 3) As Integer 41
MSc. Ing. ADEMAR PASTEN GIRONDA
4. Ejemplo de aplicacin Sumar dos matrices A + B, y guardar en una matriz C. .a11 a12 a13 b11 b12 b13 a21 a22 a23 + b21 b22 b23 = a31 a32 a33 b31 b32 b33 Donde: . c11 = a11 + b11 c12 = a12 + b12 c21 = a21 + b21 c22 = a22 + b22 c31 = a31 + b31 c32 = a32 + b32 Diseo de pantalla
0 0 1000 2000 3000 4000 5000 6000
c11 c12 c13 c21 c22 c23 c31 c32 c33 c13 = a13 + b13 c23 = a23 + b23 c33 = a33 + b33
1000
2000
3000
4000
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . MATRICES . . . . ARRAYS . . . . . . . . . . . . . . . . . . . . . . . . . . EJEMPLO: . . . . CALCULO . . . SUMA . . .DE.MATRICES . . . . . . . . . . . . . . . . . . . . . . . . . .Matriz . A . . .+ . . Matriz . . B . . .= . .Matriz . C . . . . . . . . . . . . . . . . . . . . .11 . 1.1 . . . . .2 2 .22 . . . . . .3 3 .33 . . 1 1 1 1 2 2 2 2 3 3 3 3 . . . . . . . . . . . . . . . . . . .11 . 1.1 . . . . .2 2 .22 . . . . . .3 3 .33 . . 1 1 1 1 2 2 2 2 3 3 3 . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calcular . . . SALIR
. . . . . . Oden: . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
Codificacin del entorno Control Form1 Label1 Label2 Label3 Label4 Label5 4000 Label6 Text1 Picture1 Command1
Propiedad Caption Caption Caption Caption Caption Caption Name Text Name Text Name Text
Valor MATRICES = ARRAYS Orden Matriz Matriz A Matriz B Matriz C Calcular> TxtN
Cmdsalir
42
MSc. Ing. ADEMAR PASTEN GIRONDA
Codificacin del programa 'CmdSalir===================================Click Private Sub CmdSalir_Click() End End Sub 'Picture1==================================Clik Private Sub Picture1_Click() Dim A(1 To 30, 1 To 30), B(1 To 30, 1 To 30), C(1 To 30, 1 To 30) As Integer Dim i, j, CodenadaX, CordenadaY As Integer N = Val(TxtN.Text) For i = 1 To N For j = 1 To N A(i, j) = InputBox("Introdusca Matriz A(" & i & "," & j & ")", "lectura") CordenadaX = j * 300 CordenadaY = i * 300 Picture1.CurrentX = CordenadaX Picture1.CurrentY = CordenadaY Picture1.Print A(i, j) Next Next For i = 1 To N For j = 1 To N B(i, j) = InputBox("Introdusca Matriz B(" & i & "," & j & ")", "lectura") CordenadaX = (j * 300) + 1600 CordenadaY = i * 300 Picture1.CurrentX = CordenadaX Picture1.CurrentY = CordenadaY Picture1.Print B(i, j) Next Next For i = 1 To N For j = 1 To N C(i, j) = (1 * A(i, j)) + (1 * B(i, j)) Next Next For i = 1 To N For j = 1 To N CordenadaX = (j * 300) + 3200 CordenadaY = i * 300 Picture1.CurrentX = CordenadaX 43
MSc. Ing. ADEMAR PASTEN GIRONDA
44
MSc. Ing. ADEMAR PASTEN GIRONDA
TEMA 8 PROCEDIMIENTO: FUNCTION - SUB 1. Definicin procedimiento - funciones Cuando varios procedimientos conducidos por sucesos necesiten ejecutar una misma rutina, la mejor forma de proceder es colocar el cdigo de esta rutina en un procedimiento general que ser invocado desde cada uno de estos procedimientos conducidos por sucesos. De esta manera se evita duplicar cdigo. Un procedimiento general debe ser conciso y debe ejecutar una tarea nica. De esta manera, el cdigo del programa ser estructurado y fcil de mantener. Un procedimiento general puede escribirse como procedimiento Sub o como procedimiento Funcin. 2. Algoritmo y codificacin
INICIO
Procedimiento Sub
Sentencias
Sentencias
Nombre Sub
Fin Sub
Sentencias
Nombre = expresin
Sentencias
Sentencias
45
MSc. Ing. ADEMAR PASTEN GIRONDA
Private.. [sentencias] . [Nombre Sub] ------------- [sentencias] .. .. .. [nombre= nombre funcion]-- [sentencias] .. End Sub. 3. Ejemplo de aplicacin
Procedimiento Sub Sub nombre ( ) . [sentencias] . End Sub Procedimiento Function: Fuction nombre ([Argumento]) As [tipo] . [sentencias] . [nombre=expresin] . [sentencias] : End Fuction
Ingrese dos nmeros X, Y y calcular las siguientes funciones: Si: f(x) > 0 calcular g(x) = [ X2 + [ Y]2 ] + 1 F(x) = X * Y Si: f(x) = 0 calcular g(x) = [ X2 * [ Y]2 ] + 1 Si: f(x) < 0 calcular g(x) = [ X2 / [ Y]2 ] + 1 Para la sumatoria de i= 1,2,3,4,.N Calcular Z = f(x) + g(x) Diseo de pantalla
0 0 1000 2000 3000 4000 5000 6000
1000
2000
3000
4000
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . PROCEDIMIENTO: . . . . . . .FUNCTION . . . -.SUB . . . . . . . . . EJEMPLO: . . . . CALCULO . . . DE . .Z= .F(x) . + G(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FX. = . . . . . . . . . . . . . CALCULA . . . . . . . . . . . . . R GX = . . . . . . . . . . . . . . . . . . . . . . . . . . . SALIR . . . . . . . . . . . . . Z= . . . . . . . . . . . . . . . . . . . . Fx Fx.> o . ; Gx.= (Sum . =x . * y . . . .Si : . . Fx . X. + .( Sum . Y ). + 1 . . . . = o ; Gx = (Sum X * ( Sum Y ) + 1 . . . . . . . . Fx . < o .; Gx . = (Sum . X. / .( Sum . Y). + 1. . . . Z = (Fx + Gx) . . . . . . . . . . . . . . . . .i = 1,2,3,4.N . . .
. . . . . . . . . . . . . .
Propiedad Caption
46
MSc. Ing. ADEMAR PASTEN GIRONDA
4000
Label2 Label3 Label4 Label5 Label6 Label7 Frame1 Label8 Label9 Label10 Label11 Label12 Label13 Text1 Text2 Text3 Text4 Text5 Text6 Command1 Command1
Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Name Name Name Name Name Name Name Text Name Text
Ingrese X: Ingres Y: Ingres N: FX = GX = Z = Formulas: Fx= X * Y Fx>0 Gx = (suma X^2+(SumtY)^2)+1 Fx>0 Gx = (suma X^2*(SumtY)^2)+1 Fx>0 Gx = (suma X^2/(SumtY)^2)+1 Z= (Fx + Gx) + 1 I= 1,2,3,4,N TxtX TxtY TxtN TxtFX TxtGX TxtZ CmdCalcular CmdSalir
Codificacin del programa 'CmdCalcular==============================Clic Private Sub CmdCalcular_Click() Dim X, Y As Double Dim Fx, Gx, Gxx, Z As Double X = Val(TxtX.Text) Y = Val(TxtY.Text) Fx = X * Y TxtFX.Text = Fx If Fx > 0 Then GX1 If Fx = 0 Then GX2 If Fx < 0 Then GX3 Gxx = Val(TxtGX.Text) TxtZ.Text = Fx + Gxx End Sub
47
MSc. Ing. ADEMAR PASTEN GIRONDA
'GX1======================================Clic Sub GX1() Dim X, SX, Gx As Double Dim Y, SY As Double X = Val(TxtX.Text) Y = Val(TxtY.Text) SX = SX1(X) SY = SY1(Y) Gx = (SX + (SY ^ 2)) + 1 TxtGX.Text = Gx End Sub 'GX2======================================Clic Sub GX2() Dim X, SX, Gx As Double Dim Y, SY As Double X = Val(TxtX.Text) Y = Val(TxtY.Text) SX = SX1(X) SY = SY1(Y) Gx = (SX * (SY ^ 2)) + 1 TxtGX.Text = Gx End Sub 'GX======================================Clic Sub GX3() Dim X, SX, Gx As Double Dim Y, SY As Double X = Val(TxtX.Text) Y = Val(TxtY.Text) SX = SX1(X) SY = SY1(Y) Gx = (SX / (SY ^ 2)) + 1 TxtGX.Text = Gx End Sub 'SX1======================================Clic Function SX1(X1) As Double Dim i, N As Long N = Val(TxtN.Text) For i = 1 To N SX1 = SX1 + (X1 ^ 2) Next End Function 'SY1======================================Clic Function SY1(Y1) As Double 48
MSc. Ing. ADEMAR PASTEN GIRONDA
Dim i, N As Long N = Val(TxtN.Text) For i = 1 To N SY1 = SY1 + Y1 Next End Function 'CmdSalir=================================Clic Private Sub CmdSalir_Click() End End Sub 'TxtN=====================================Clic Private Sub TxtN_KeyPress(KeyAscii As Integer) ' Enfoca otro boton If KeyAscii = 13 Then CmdCalcular.SetFocus End If End Sub 'TxtX=====================================Clic Private Sub TxtX_KeyPress(KeyAscii As Integer) ' Enfoca otro boton If KeyAscii = 13 Then TxtY.SetFocus End If End Sub 'TxtY=====================================Clic Private Sub TxtY_KeyPress(KeyAscii As Integer) ' Enfoca otro boton If KeyAscii = 13 Then TxtN.SetFocus End If End Sub
49
MSc. Ing. ADEMAR PASTEN GIRONDA
TEMA 9 BASE DE DATOS Y ARCHIVOS 1. Base de datos La Base de datos es cualquier conjunto de datos organizados para su almacenamiento en la memoria de un ordenador o computadora, diseado para facilitar su mantenimiento y acceso de una forma estndar. En Visual Basic un archivo es un conjunto de tablas, estas tablas son un conjunto de registros, y estos registros son un conjunto de campos que pueden ser de diferentes tipos de variables (enteros, reales, alfabticos, etc..) Contenido de la Base de datos:
TABLA n TABLA 3 TABLA 2 TABLA 1 Campo 1 Registro 1 Registro 2 Registro 3 Campo 2 Campo 3 . Campo n
2. Mtodo para el desplazamiento del puntero El control Data presenta un conjunto de mtodos que permite el desplazamiento en la tabla los cuales pasamos a describir brevemente: MoveFirst MoveNext MovePrevious: MoveLast: Mueve el puntero al primer registro Mueve el puntero al siguiente registro Mueve el puntero al registro anterior Mueve el puntero al ltimo registro
<
Primero MoveFirst
<
Data1
> >
Siguiente Ultimo MoveNext MoveLast
Anterior MovePrevious
50
MSc. Ing. ADEMAR PASTEN GIRONDA
3. Mtodo de mantenimiento a) RecordSet.Addnew: Addnew nos permite crear un nuevo registro para un objeto RecorSet de tipo Table o Dynaset, con esta opcin ingresaremos un espacio en blanco al final de nuestra tabla activa, con lo cual nos permitir ingresar datos para su posterior almacenamiento. Utilice el mtodo Addnew para agregar o crear un nuevo registro en nuestro objeto RecordSet.. Este mtodo establece los campos a los valores predeterminados y si no se especifican valores predeterminados, establece la campos a Null ( los valores predeterminado especificados para el recorSet tipo Table) b) RecordSet.Update (tipo, obligar): Update nos permitir guardar el contenido del bufer de copia en un objeto RecorSet de tipo Dynaset o table especifico. Utilice el mtodo Update para guardar el registro activo y los cambios que se hayan efectuado en el. c) RecordSet.edit Edit nos permite Editar el contenido de un registro cualquiera de nuestra Tabla que pertenece a nuestra Base de datos, modificada el registro activo de un objeto RecorSet. Al bufer de copia para una posterior edicin. Una vez que ha sido utilizado el mtodo edit, los cambios que usted haya realizado en los campos del registro que usted creyo conveniente, son almacenados en el bfer de copia. Despus de generar todos los cambios deseados, utilizaremos el mtodo Update para actualizar la informacin de nuestra tabla. d) RecorSet.delete Nos permite eliminar registros no deseados o poco inservibles en nuestra base de datos, eliminara el registro activo de nuestro objeto RecordSet o un miembro de una coleccin, como podra ser una tabla almacenada de una Base de datos, un campo almacenado de una tabla independiente y un ndice de una tabla.
51
MSc. Ing. ADEMAR PASTEN GIRONDA
4. Ejemplo de aplicacin Desarrollar una aplicacin que nos permita presentar la informacin almacenada en la Tabla1 en la Base de datos Base1. La Tabla1 tiene como campos A1 y B1
Pasos para generar una base de datos a) Plantear el problema b) Generar los campos, tablas, archivos en Acces c) Disear la pantalla o formulario d) Colocar propiedades a los controles e) Codificar los controles a) Plantear el problema Diseamos nuestra tabla de la siguiente manera:
TABLA TABLA TABLA1 A1 B1 100 10 200 20 300 30 400 40 500 50 600 60 700 70 800 80 900 90 1000 100 2000 200
Para gravar crearemos dos Command Para borrar crearemos un Command Para cambiar crearemos dos Command
Grabar
Grabar
52
MSc. Ing. ADEMAR PASTEN GIRONDA
b) Generar los campos , tablas, archivos en Acces * En el men principal del Visual Basic digitar Complemento y luego Administrador Visual datos
Nos presentara una nueva ventana donde digitamos Archivo , Nuevo, Microsoft ACCES y MD de la version 2.
53
MSc. Ing. ADEMAR PASTEN GIRONDA
Presentara una ventana, donde seleccionamos la base de datos del Microsoft Acces que desea crear dandole el nombre
54
MSc. Ing. ADEMAR PASTEN GIRONDA
Con el cursor o puntero se coloca en Propiedades y se digita el boton derecho del mause que nos genera un men, digitamos Nueva tabla
Nos muestra una ventana denominada estructura de tabla donde colocamos el nombre de la tabla, y datos que nos solicitan
55
MSc. Ing. ADEMAR PASTEN GIRONDA
Luego de llenar los datos podemos agregar campos digitando en Agregar Campos
56
MSc. Ing. ADEMAR PASTEN GIRONDA
Diseamos el formulario 2 Como en el cuadro de herramientas no se tiene el icono MSFlexFGrid, se puede incrementar, colocando el puntero en la ventana de herramientas y pulsando el boton derecho del maus. Nos mostrara el siguiente men
57
MSc. Ing. ADEMAR PASTEN GIRONDA
En esta ventana se marca el componente Microsoft FlexGrid Control 6.0 (sps) y se digita aceptar. Esto nos muestra en la ventana de herramientas el icono MSflexGrid que nos permitira disear el siguiente formulario:
58
MSc. Ing. ADEMAR PASTEN GIRONDA
d) Colocar propiedades a los controles Control Formulario1 Command1 Command1 Command1 Command1 Command1 Command1 Data 1 Propiedad Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name DataBaseName Record Source Name Data Source Data File Name Data Source Data File Name Data Source File Rows File Cols Rous Cols Name Caption CmdEditar Editar CmdEliminar Eliminar CmdGrabar Grabar CmdNuevo Nuevo CmdSalir Salir CmdVerlistas VerLista Data1 C:.BASE1 Tabla1 TxtA Data1 A TxtB Data1 B MSFLexGrid1 Data1 1 0 10 2 CmdRetorno Retorno Valor
Text1
Text2
Formulario 2 MSFlexGrid1
Command1
59
MSc. Ing. ADEMAR PASTEN GIRONDA
e) Codificar los controles Formulario1 '------------------------------------------------------Private Sub CmdEditar_Click() TxtB.SetFocus Data1.Recordset.Edit CmdGrabar.Enabled = True Data1.Recordset.Update CmdNuevo.Enabled = False CmdEliminar.Enabled = False End Sub '------------------------------------------------------Private Sub CmdEliminar_Click() If MsgBox("Desea eliminar el registro actual?", 4, "Eliminar") = 6 Then Data1.Recordset.Delete End If Data1.Recordset.MoveFirst End Sub '------------------------------------------------------Private Sub CmdGrabar_Click() Dim grabar As Integer grabar = MsgBox("Desea guardar los ultimos cambios efectuados?", vbYesNo + vbInformation, "Guardando los cambios") If grabar = vbYes Then Data1.Refresh CmdGrabar.Enabled = False CmdEliminar.Enabled = True CmdEditar.Enabled = True CmdNuevo.Enabled = True End If If grabar = vbNo Then CmdGrabar.SetFocus CmdGrabar.Enabled = False CmdEliminar.Enabled = True CmdEditar.Enabled = True CmdNuevo.Enabled = True End If CmdGrabar.Enabled = False End Sub
60
MSc. Ing. ADEMAR PASTEN GIRONDA
'------------------------------------------------------Private Sub CmdNuevo_Click() Data1.Recordset.AddNew TxtA.SetFocus CmdGrabar.Enabled = True CmdEliminar.Enabled = False CmdEditar.Enabled = False End Sub '------------------------------------------------------Private Sub CmdSalir_Click() End End Sub '------------------------------------------------------Private Sub CmdVerlista_Click() Form2.Show Unload Form1 End Sub '------------------------------------------------------Private Sub TxtA_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then TxtB.SetFocus End If End Sub Formulario 2 '----------------------------------------------------Private Sub CmsRetorno_Click() Form1.Show Unload Form2 End Sub '----------------------------------------------------BIBLIOGRAFIA: Aplicaciones en Visual Basic 6.0; Freddy Surez Barzola; Editorial Serv libros; Edicin 1ra; 2003. Programacin en Visual Basic 6; Rubn Luna Ramrez; Editorial Marco; Edicin 2da; 2002 Programacin paso a paso en Visual Basic 6.0; Rubn Luna Ramrez; Editorial Macro; Edicin 1ra; 2000. Aprendiendo Visual Basic 5 en 24 hrs.; Grez Perry; Editorial Pentice-Hall; Edicin 1ra; 1998. 61
MSc. Ing. ADEMAR PASTEN GIRONDA
Problemas de metodologa de la programacin; Lus Joyanes Aguilar; Editorial McGrawHill; edicin 1ra; 1996 Microsoft Visual Basic 4.0; Michael Halvorson; Editorial McGraw-Hill; Edition 1ra; 1996.
62
MSc. Ing. ADEMAR PASTEN GIRONDA