libro visual basic y asp .net a su alcance 2e

819

Click here to load reader

Upload: luiswolfgolden

Post on 12-Jan-2016

310 views

Category:

Documents


25 download

DESCRIPTION

MANUAL DE PROGRAMACION EN VISUAL PUNTO NET QUE SERA E GRAN AYUDA PARA PROGRAMADORES QUE ESTEN INICIANDO EN EL MUNDO DE LA PROGRAMCION

TRANSCRIPT

VISUAL BASIC

Contenido

94PRLOGO7INTRODUCCIN A VISUAL BASIC .NET10Microsoft Visual Studio .NET10.NET FrameWork10Pgina de Inicio Visual Studio .NET/200811PROYECTOS WINDOWS FORMS CON VISUAL BASIC .NET14Crear una Aplicacin Windows Forms14Elegir la plantilla de aplicaciones14Crear la interfaz de usuario19Establecer las propiedades de los controles20Escribir cdigo21Guardar la aplicacin22Ejecutar la aplicacin Windows Forms23Cerrar y Abrir un proyecto Windows Forms24FUNDAMENTOS DE VISUAL BASIC .NET25Variables25Constantes26Tipos de datos26Ejemplo prctico tipos de datos26Funciones de conversin de tipos de datos30Operadores y Expresiones32Operadores aritmticos32Operadores relacionales32Operadores de igualdad32Operadores Lgicos33Ejemplo prctico operadores aritmticos33Palabras clave36Comentarios36ESTRUCTURAS DE CONTROL37Estructura de control If - Else37Sentencia If37Sentencia If- Else38If (operador)39IIF39Ejemplo estructura If-Else394.2 Sentencia Select424.2.1 Ejemplo estructura Select434.3 Estructura For-Next454.3.1 Ejemplo estructura For-Next464.4 Estructura While484.4.1 Ejemplo estructura While494.5 Do-Loop While514.5.1 Ejemplo estructura Do-Loop while524.6 Estructura For-Each554.6.1 Ejemplo estructura For-Each554.7 Ejercicios estructuras de control58MDULOS Y PROCEDIMIENTOS59Mdulos59Procedimientos o funciones61Ejemplo prctico mdulo y procedimientos Sub y Function62Funciones predeterminadas66Funcin de fecha y hora66Ejemplo prctico funciones de fecha y hora67Funciones Matemticas69Ejemplo prctico funciones matemticas705.3.3 Funciones para cadenas de caracteres725.3.3.1 Ejemplo prctico funciones de cadena de caracteres745.4 Ejercicios de procedimientos77MATRICES Y COLECCIONES78Matrices de una Dimensin o Unidimensionales78Ejemplo prctico matriz unidimensional786.2. Matrices de ms de una Dimensin816.2.1 Ejemplo prctico matrices bidimensionales826.3 Colecciones846.3.1 Ejemplo prctico colecciones846.4 Ejercicios Matrices90CONTROLES PARA INTERFAZ DE USUARIO91LinkLabel91Ejemplo prctico LinkLabel91Controles ListBox y ComboBox93Ejemplo prctico ListBox y ComboBox937.3 Checkbox y RadioButton997.3.1 Ejemplo prctico Checkbox y RadioButton997.4 VScrollBar, HScroolBar, TrackBar.1027.4.1 Ejemplo prctico VScrollBar y TrackBar1027.5 DataGridView1057.5.1 Ejemplo prctico DataGridView1057.6 ListView1077.6.1 Ejemplo prctico ListView1077.7 RichTextBox1157.7.1 Ejemplo prctico RichTextBox1157.8 TreeView.1187.8.1 Ejemplo prctico TreeView119FolderBrowserDialog122Ejemplo prctico FolderBrowserDialog122WebBrowser125Ejemplo prctico WebBrowser1257.11 Ejercicios interfaz de usuario129MENS EN FORMULARIOS130Creacin de Mens con Interfaz de documento sencillo130Ejemplo prctico mens con interfaz de documento sencillo130Creacin de Mens con interfaz mltiple141Ejemplo prctico formularios MDI141Men Ventana153Desactivar las opciones del men en formularios MDI156Creacin de una barra de herramientas en una aplicacin MDI156Crear un men contextual159GRFICOS Y ANIMACIN162El espacio de nombres System.Drawing162Movimiento de un control172Ejemplo prctico movimiento de un control1729.3 Expandir y contraer un control1759.3.1 Ejemplo prctico expandir y contraer un control1769.4 Animacin1789.4.1 Ejemplos prcticos de animacin1789.5 Ejercicios de grficos187MANEJO DE EVENTOS (MOUSE TECLADO)188Eventos del mouse188Ejercicios de eventos del mouse189Eventos del teclado193Ejercicios de eventos del teclado193PROGRAMACIN ORIENTADA A OBJETOS CON VB.NET198Constructores199Constructores sin parmetros199Constructores con parmetros200Sobrecarga de constructores200Herencia y polimorfismo201Ejemplos prcticos de clases202Interfaces217Ejemplo prctico de interfaces218Ejercicios P.O.O222ACCESO A BASES DE DATOS CON VB.NET223Tipos de Bases de Datos223bases de datos relacionales223bases de datos orientadas a objetos223Lenguaje de consulta estructurado (S.Q.L.)223Comandos S.Q.L223Clusulas S.Q.L224Operadores lgicos S.Q.L224Operadores de comparacin S.Q.L225Funciones de agregado S.Q.L225Sentencias bsicas S.Q.L226CREATE DATABASE226DROP DATABASE226CREATE TABLE226DROP TABLE227INSERT227ALTER227SELECT227DELETE228UPDATE229INNER JOIN229Conexin a bases de datos con VB.NET230Ejemplos prcticos de bases de datos23112.5.1 Conexin a una base de datos SQL Server por cdigo23112.5.2. Conexin a SQL Server utilizando el Explorador de servidores234Conexin a una base de datos con DataGridView y BindingNavigator241Insertar un nuevo registro a una tabla248Filtrar registros de una tabla252Informe de los registros de una tabla256Relacin de tablas26812.6 Ejercicios bases de datos276LENGUAJE DE CONSULTA INTEGRADO (LINQ)277Proveedores LINQ277Operadores de Consulta LINQ de VB.NET277Escribir una consulta con LINQ en VB.NET279Ejemplos prcticos consultas LINQ280Consulta LINQ a un texto280Consulta LINQ a una matriz283Consultar una base de datos SQL Server con LINQ To SQL286Operaciones con una tabla de una base de datos SQL Server291Relacin entre dos tablas de una base de datos SQL Server301Relacin tablas con LINQ to SQL y DataGridView306Consulta LINQ to DataSet31113.5 Ejercicios de consulta LINQ314APLICACIONES WEB ASP.NET315Aplicacin Web (ASP.NET)316Crear un nuevo sitio Web316Crear la interfaz de usuario318Establecer las propiedades de los controles319Ejecutar la aplicacin Web325Cerrar y abrir nuevamente un sitio Web326Controles para interfaz de usuario ASP.NET326Control CheckBoxList327Ejemplo prctico control CheckBox List327Control ImageMap329Ejemplo prctico control ImageMap33014.2.3 Control BulletedList33314.2.3.1 Ejemplo prctico control BulletedList33414.2.4 Control RadioButtonList33714.2.4.1 Ejemplo prctico control RadioButtonList33714.2.5 Control MultiView34014.2.5.1 Ejemplo prctico control MultiView34114.3 Controles para validar datos34814.3.1 Ejemplo prctico controles de validacin348ACCESO A BASES DE DATOS CON ASP.NET353Controles para operaciones con orgenes de datos353Ejemplos prcticos bases de datos con ASP.NET353Conexin a SQL Server por cdigo353Conexin a una base de datos con un control GridView357Consulta una base de datos utilizando el Explorador de servidores362Insertar un registro en una tabla369Modificar un registro de una tabla375Eliminar un registro de una tabla378Filtrar registros de una tabla382Informe de los registro de una tabla388Visualizar los registros de dos tablas relacionadas39615.3 Ejercicios bases de datos con ASP.NET404SERVICIOS WEB405Crear un servicio Web desde Visual Basic .NET405Acceder a un Servicio Web411Ejemplo prctico para acceder a un Servicio Web desde ASP.NET411NDICE416BIBLIOGRAFA419INFOGRAFA419ANEXO A SQL SERVER420Conectarse a SQL Server.420Crear una base de datos421Crear tablas en la base de datos423Crear Diagramas de una base de datos431Crear una vista435

1. INTRODUCCIN A VISUAL BASIC .NET

Visual Basic .NET (VB.NET) es una versin de Visual Basic enfocada al desarrollo de aplicaciones .NET. Este lenguaje de programacin apareci en el ao 1991 como una evolucin del QuickBasic que fabricaba Microsoft. Dicho lenguaje de programacin es orientado a objetos y permite crear la interfaz de usuario utilizando formularios y controles a los cuales se les puede escribir cdigo para definir el comportamiento de una aplicacin. Visual Basic .NET contiene una serie de instrucciones, funciones y palabras clave que estn relacionados con la interfaz grafica de Windows. Con este lenguaje es posible la creacin de aplicaciones Windows Forms y sitios Web, donde se puede realizar la gestin estructurada de errores, el soporte para la ejecucin de varios subprocesos, as como la interaccin con archivos de texto, bases de datos, utilizando el envi de datos con documentos XML1 y la generacin de informes, etc.. Generalmente el usuario que programa con Visual Basic .NET utiliza el entorno de desarrollo integrado de Microsoft Visual Studio NET (2003, 2005, 2008).

1.1 Microsoft Visual Studio .NET

Microsoft Visual Studio .NET es un entorno de desarrollo integrado (Integrated Development Environment IDE) que ayuda a disear, desarrollar, depurar e implantar con rapidez soluciones basadas en el marco de trabajo de .NET (.NET Framework 2.0, 3.0, 3.5). Desde all se pueden crear soluciones y proyectos que contendrn los elementos bsicos de una aplicacin, conexiones de datos, carpetas y archivos necesarios para crear aplicaciones de consola, aplicaciones Windows Forms, aplicaciones Web ASP.NET, servicios Web y aplicaciones mviles. Dicho entorno permite trabajar con los lenguajes de programacin Visual Basic, Visual C#, Visual C++. Asimismo dichos lenguajes utilizan las funciones de .NET Framework, las cuales ofrecen acceso a tecnologas clave para simplificar el desarrollo de aplicaciones web ASP y servicios Web XML. Es por eso, que con Visual Studio se simplifica el diseo, desarrollo e implementacin en equipo de soluciones empresariales utilizando sus herramientas de desarrollo basadas en componentes y otras tecnologas.

Para el objetivo del libro se trabajar con el entorno Microsoft Visual Studio2008.

1.2 .NET FrameWork

Es un componente integral de Windows que proporciona un entorno para varios lenguajes basado en estndares. El diseo de .NET FrameWork trata de cumplir los siguientes objetivos:

Proporcionar un entorno de programacin orientada a objetos. Ofrecer un entorno de ejecucin de cdigo que permita la ejecucin segura del mismo. Proporcionar un entorno que elimine los problemas de rendimiento.

1 XML, es el estndar de Extensible Markup Language. XML no es ms que un conjunto de reglas para definir etiquetas semnticas que nos organizan un documento en diferentes partes. XML es un metalenguaje que define la sintaxis utilizada para definir otros lenguajes de etiquetas estructurados.

Ofrecer un entorno coherente entre lenguajes de programacin diferentes basados en Windows o Web. Ofrecer estndares para que el cdigo de .NET FrameWork se pueda integrar con otros tipos de cdigo.

.NET FrameWork se compone de dos partes principales: Common Language Runtime (CLR) y una biblioteca de clases.

Common Language Runtime es el motor en tiempo de ejecucin, ya que administra el cdigo en tiempo de ejecucin y proporciona los servicios de administracin de memoria, de subprocesos y la interaccin remota, al tiempo que aplica una seguridad al acceso del cdigo. El cdigo del motor en tiempo de ejecucin se denomina cdigo administrado, al resto de cdigo se le denomina cdigo no administrado. Common Language Runtime proporciona servicios estndares de motor en tiempo de ejecucin, el cdigo administrado nunca se interpreta. Una caracterstica denominada compilacin JIT (Just-In-Time) permite ejecutar todo el cdigo administrado en el lenguaje de mquina nativo del sistema en el que se ejecuta. Mientras tanto, el administrador de memoria evita que la memoria se pueda fragmentar. Para entender cmo funciona el .NET FrameWork, es necesario conocer la siguiente terminologa: Clase: es una entidad de programacin con nombre que consta de un conjunto comn de mtodos, propiedades y atributos. Por ejemplo, Form es una de las clases del espacio de nombres System.Windows.Forms que se utiliza para crear formularios Windows Forms. Espacio de nombres: identifica una coleccin de clases relacionadas y/u otros espacios de nombres del .NET FrameWork. Algunos ejemplos de espacios de nombres incluyen: System System.Windows.Forms

La biblioteca de clases es una completa coleccin orientada a objetos de tipos reutilizables que se pueden emplear para desarrollar aplicaciones de interfaz grfica de usuario o de lnea de comandos hasta las aplicaciones ASP.NET, como los formularios Web Forms y los servicios Web XML. La biblioteca de clases permite administrar las cadenas, recolectar datos, conectar bases de datos y permitir el acceso a archivos, como tambin desarrollar las siguientes aplicaciones y servicios:

Aplicaciones de consola. Aplicaciones Windows Forms. Aplicaciones Windows Presentation Foundation (WPF). Aplicaciones ASP.NET Servicios Web.

1.3 Pgina de Inicio Visual Studio .NET/2008

Al instalarse Microsoft Visual Studio 2008, se crea en el computador una carpeta llamada Microsoft Visual Studio 2008 (Por omisin), donde encontrar los accesos directos a los programas: Visual Studio Remote Tools, Visual Studio Tools, documentacin de Microsoft Visual Studio 2008 y Microsoft Visual Studio 2008.

Para iniciar el entorno de Visual Studio .NET 2008 pulse la opcin Microsoft Visual Studio 2008.

En la pgina de inicio de Visual Studio .NET/2008, encontrar una barra de mens con los mens desplegables: Archivo, Editar, Ver, Herramientas, Prueba, Ventana y Ayuda. Adems una barra de herramientas estndar de Windows, como tambin las ventanas: Cuadro de Herramientas, Explorador de soluciones y Lista de errores. La figura 1.1, muestra la pgina de inicio:

Figura 1.1 Pgina de Inicio Visual Studio 2008.

Las principales caractersticas del IDE de Microsoft Visual Studio/2008 se describen en la siguiente tabla:

Tabla 1.1 caracteristicas de programacin en Visual Basic .NET.

CaractersticaDescripcin

Diseador de Windows FormsUna superficie de diseo grfico que permite crear rpidamente la interfaz de usuario de una aplicacin. Se puede arrastrar o dibujar controles sobre esta superficie.

Herramientaspara Aplicaciones Windows FormsSe proporciona una plantilla Aplicacin Windows Forms, con referencias de proyectos bsicos y cdigo de inicio como ayuda para crear aplicaciones Windows Forms estndares.

Herramientas para Web FormsSe proporciona una plantilla Aplicacin Web ASP.NET, con referencias de proyectos bsicos y cdigo de inicio como ayuda para crear aplicaciones Web ASP.NET en las que la interfaz de usuario principal es un navegador.

Herramientaspara servicios Web XMLSe proporciona una plantilla Aplicacin de servicios Web ASP.NET. Esta plantilla construye la estructura de un proyecto de aplicacin Web en un servidor Web de desarrollo.

Soportedemltiples lenguajesSoporta los lenguajes de programacin de la plataforma.NET: Visual Basic .NET, Visual C++ y Visual C#, que estn integrados en el entorno de desarrollo.

Acceso a datosComponentes para crear aplicaciones que comparten datos, herramientas de bases de datos visuales para acceder a los datos y un robusto conjunto de clases de Microsoft ADO.NET.

Gestin de erroresLas herramientas de depuracin con soporte multilenguaje ayudan a encontrar y solucionar errores de cdigo, donde se pueden utilizar clases de excepciones estructuradas para incluir la gestin de errores en una aplicacin.

AsistentesLos asistentes ayudan a completar rpidamente tareas comunes. Cada pgina de un asistente ayuda a establecer opciones, configurar y personalizar proyectos.

Microsoft Visual Studio/2008 trabaja con el marco de trabajo .NET FrameWork 3.5., el cual agrega de forma incremental las nuevas caractersticas de .NET FrameWork3.1. Algunas de estas caractersticas son:

Integracin total de LINQ2 (Language Integrated Query) y del reconocimiento de los datos: permite escribir cdigo en idiomas habilitados para LINQ para filtrar, enumerar y crear proyecciones de varios tipos de datos SQL, colecciones, XML y conjuntos de datos usando la misma sintaxis. ASP.NET AJAX: permite crear experiencias Web ms eficaces, ms interactivas y con un gran ndice de personalizacin que funcionan con los exploradores ms usados. Nueva compatibilidad con el protocolo web para generar servicios WCF, como por ejemplo AJAX, JSON, REST, POX, RSS, ATOM. Nuevas clases en la biblioteca de clases base (BCL) de .NET FrameWork 3.5 que tratan numerosas solicitudes de cliente comunes.

2 Un nuevo conjunto de herramientas diseado para reducir la complejidad del acceso a Base de Datos.

2. PROYECTOS WINDOWS FORMS CON VISUAL BASIC .NET

Crear una aplicacin Windows Forms en Visual Basic .NET, requiere de unos pasos muy sencillos como son: iniciar un nuevo proyecto Visual Basic .NET, crear la interfaz del usuario, establecer las propiedades de los objetos, escribir el cdigo, guardar la aplicacin y ejecutar el proyecto.

Como ejemplo, se crear un proyecto Windows Forms llamado MiprogramaWF que permita a un usuario digitar un nmero y al pulsar un botn se muestre en una cuadricula la tabla de multiplicacin hasta 10 de dicho nmero.

2.1 Crear una Aplicacin Windows Forms

Para crear una aplicacin Windows Forms desde la pgina de inicio de Visual Studio, se pueden seguir los siguientes pasos:

1. En la ventana proyectos recientes seleccionar la opcin Crear: link Proyecto2. Hacer clic en la opcin Archivo del men y seleccionar Nuevo Proyecto...

Cuando se crea un proyecto por cualquier de las dos opciones se visualiza la siguiente ventana:

Figura 2.1 Ventana Nuevo proyecto.

2.2 Elegir la plantilla de aplicaciones.

Visual Studio .NET ofrece varias plantillas de aplicaciones para soportar el desarrollo de diferentes tipos de aplicaciones y componentes. Antes de iniciar un nuevo proyecto, se debe escoger el tipo de plantilla que se va a utilizar. Una plantilla de aplicacin proporciona archivos de inicio y una estructura de proyecto, adems contiene los objetos bsicos del proyecto y la configuracin del entorno que se necesita para crear el tipo de aplicacin que se desea. En los ejemplos del libro se utilizarn las plantillas:

Aplicacin para Windows Forms y Aplicacin Web ASP.NET. La plantilla Aplicacin para Windows Forms proporciona las herramientas, estructura y cdigo de inicio para crear una aplicacin estndar basada en Windows, aadiendo automticamente las referencias bsicas del proyecto y los archivos a utilizar como punto de partida para la aplicacin. La plantilla Aplicacin Web ASP.NET se utilizapara crear una aplicacin Web ASP.NET en un equipo que tenga instalado Internet Information Services (IIS)3 versin 5.0 o posterior. Para iniciar el diseo de la aplicacin la plantilla crea los archivos bsicos necesarios en el servidor.

Para el ejemplo como Tipo de proyecto se debe seleccionar Visual Basic - Windows, como plantilla Aplicacin de Windows Forms, como Nombre del proyecto MiProgramaWF. Pulse el botn Aceptar para visualizar el entorno de desarrollo del proyecto Windows Forms MiProgramaWF.

Figura 2.2 Entorno de desarrollo nuevo proyecto Windows Forms.

Cuando se selecciona una plantilla de aplicaciones, en el entorno de desarrollo encontrar:

1. Men principal y la barra de herramientas estndar: Proporcionan acceso a la mayora de comandos que controlan el entorno de programacin de Visual Studio .NET. Los comandos del men principal funcionan igual que en todas las aplicaciones basadas en Windows. La barra de herramientas proporciona los iconos que sirven como acceso a la mayora de comandos estndar de Windows. Tambin contiene iconos que permiten abrir el explorador de soluciones, la

3 Este servicio convierte a un computador en un servidor de Internet o Intranet es decir que en los computadores que tienen este servicio instalado se pueden publicar pginas Web tanto local como remotamente (servidor Web).

ventana de propiedades, el cuadro de herramientas y otros elementos importantes del entorno de desarrollo.

Figura 2.3 Menu principal y barra de herramientas estndar.

Men PrincipalBarra de Herramientas

2. Cuadro de Herramientas: El cuadro de herramientas contiene diversos controles que se pueden utilizar para aadir ilustraciones, etiquetas, botones, cuadros de lista, barras de desplazamiento, mens y formas geomtricas a una interfaz de usuario. Cada control que se aade a un formulario se convierte en un objeto de la interfaz de usuario programable en la aplicacin. Estos objetos son visibles para los usuarios cuando la aplicacin se ejecuta y funcionan como los objetos estndares de cualquier aplicacin basada en Windows.

Figura 2.4 Cuadro de Herramientas.

3. Diseador formulario Windows (Windows Forms): Cuando se inicia un proyecto en Visual Basic .NET, el Diseador de formulario de Windows (Windows Forms) se abre en la vista diseo (un formulario tiene vista diseo cuando se inicia el proyecto y est en modo de ejecucin cuando se ejecuta la aplicacin), mostrndose el formulario Form1 del proyecto. En dicho formulario se pueden ubicar los controles u objetos necesarios para la aplicacin arrastrndolos desde el cuadro de herramientas para crear la interfaz de usuario. El formulario predeterminado contiene los elementos mnimos utilizados por la mayora de formularios: una barra de ttulo, un cuadro de control y los botones

minimizar, maximizar y cerrar. Para visualizar un formulario en la vista Diseo se puede realizar siguiente: Con el Explorador de soluciones, hacer doble clic en el formulario. En el Explorador de soluciones, seleccionar el formulario y d clic enel botn Ver Diseador de la barra de herramientas.

Figura 2.5 Formulario Windows.

4. Explorador de soluciones : Permite visualizar archivos y realizar tareas de administracin de archivos en una solucin o en un proyecto. Una solucin es un contenedor para proyectos y elementos de solucin que pueden incluirse en una aplicacin. Normalmente, una solucin contiene uno o ms proyectos relacionados. Un proyecto es un contendor dentro de una solucin que se utiliza para administrar, generar y depurar lgicamente los elementos del (os) proyecto(s) que constituyen la aplicacin.

Figura 2.6 Ventana Explorador de soluciones.

La siguiente tabla describe algunos tipos de archivos habituales especficos para las soluciones basadas en Visual Basic .NET:

Tabla 2.1 Tipos de Archivos en Visual Basic .NET.

ExtensinNombreDescripcin

.slnSolucinVisual StudioOrganiza proyectos, elementos de proyectos y elementos de soluciones en una solucin proporcionando al entorno referencias a sus ubicaciones en disco.

.suoSolutionuser optionsRegistra todas las opciones que podemos asociar a nuestra solucin de forma que cada vez que abramos la solucin incluya las personalizaciones que hayamos realizado.

.vbProyectoVisual BasicRepresenta los archivos de formularios, controles de usuario, clases y mdulos que pertenecen a la solucin de un solo proyecto. Los archivos que no estn basados en un lenguaje de programacin tienen su propia extensin. Por ejemplo, un archivo Crystal Report tiene la extensin .rpt, y un archivo de texto tiene la extensin .txt.

.vbprojProyectos Visual BasicRepresenta los archivos de formularios, controles de usuario, clases y mdulos que pertenecen a la solucin con mltiples proyectos. Esta extensin nos permite diferenciar entre archivos escritos en Visual Basic .NET y otros lenguajes compatibles con.NET. (Visual C# utiliza .csproj.)

.aspx.asmx.asaxElementosde proyecto WebLos elementos de proyecto Web incluyen archivos Web especficos como .aspx para Web Forms,.asmx para servicios Web XML, y .asax para clases globales de aplicaciones. Los proyectos Web tambin utilizan la extensin .vb para clases y mdulos.

5. Ventana de propiedades: Muestra una lista de las propiedades que facilitan la configuracin de los valores o propiedades del control seleccionado y se pueden modificar mientras se crea o se edita la aplicacin. Una propiedad describe una caracterstica de un objeto, como el tamao, ttulo, color, etc. Algunos controles, documentos y formularios muestran un gran nmero de propiedades en la ventana Propiedades., Esto puede dificultar la localizacin de la propiedad que se desea establecer. La ventana Propiedades permite seleccionar las propiedades de un formulario o control en una vista ordenada por categoras en lugar de una vista alfabtica, segn sea el caso se puede realizar lo siguiente:

Para visualizar las propiedades por categoras: Haga clic en el botn Por categoras de la ventana Propiedades. Las propiedades para el formulario o control seleccionado se dividirn en categoras definidas por el control. Para visualizar las propiedades de una categora: se expande el nodo de la propiedad El signo ms (+) permite expandir la propiedad y el signo menos (-) contraer la propiedad. Para visualizar las propiedades alfabticamente, d clic en el botn Alfabtico de la ventana de propiedades.

Figura 2.7 Cuadro de propiedades.

6. Ventana de depuracin de errores: Muestra una lista de los errores que se generan al realizar modificaciones a los controles o al ejecutar la aplicacin.

Figura 2.8 Ventana de lista de errores.

2.3 Crear la interfaz de usuario.

Para crear la interfaz de usuario de la aplicacin, en primer lugar se deben ubicar los controles necesarios en un formulario desde el cuadro de herramientas. D clic en el control que se desea aadir y arrstrelo a la ubicacin deseada en el formulario. Para este caso de ejemplo se diseara la interfaz de usuario utilizando los siguientes controles: 3 Label (etiqueta), 1 TextBox (campo de texto), 1 Button (botn) y 1 DataGridView (malla de datos).Los siguientes pasos permiten:

1. Cambiar la posicin de un control: Hacer clic en el mismo para seleccionarlo, y arrastrarlo a la posicin deseada en el formulario.2. Cambiar el tamao de un control: Hacer clic en el control para seleccionarlo, mantener pulsado y arrastrar uno de los extremos de ajuste del tamao hasta que el control tenga el tamao deseado y soltar el botn del mouse.Cuando existen varios controles del mismo tipo, estos se numeran en el mismo orden en que son colocados (nombre del control ms nmero del consecutivo). La interfaz de usuario del ejemplo ser como muestra la figura a continuacin.

Figura 2.9 Prepantalla de la interfaz de usuario.

2.4 Establecer las propiedades de los controles

Despus de colocar los controles u objetos a un formulario, se puede establecer sus propiedades en la ventana Propiedades o en el Editor de cdigo.Para modificar las propiedades se selecciona el control en el formulario y se cambia su configuracin en la ventana Propiedades. Para el caso del ejemplo establezca las siguientes modificaciones en la propiedad correspondiente a cada uno de los siguientes controles:

Tabla 2.2 Propiedades de los controles de la aplicacin MiProgramaWF.

ControlPropiedadValor

Label1Nametitulo

TextGenerar una tabla de multiplicar:

Font - BoldTrue

Label2Nametxtnumero

TextDigite numero:

Label3Nametxttabla

TextLa tabla del numero

TextBox1Namecamponumero

TextEn blanco

Button1Nameboton

TextVer tabla

Form1Nameformulario

TextTablas de multiplicar

La interfaz de usuario con las modificaciones respectivas en las propiedades de cada control queda como se muestra en la siguiente figura:

Figura 2.10 Pantalla final de la interfaz de usuario.

2.5 Escribir cdigo

Una vez se hayan establecido las propiedades inciales del formulario y sus objetos, se puede agregar el cdigo que se ejecutar en respuesta a un evento especifico de cada control. Los eventos ocurren cuando se realizan diferentes acciones sobre un control u objeto. Por ejemplo, el evento Clic de un botn tiene lugar cuando un usuario hace clic sobre l con el mouse. Por lo general en las aplicaciones, es necesario escribir cdigo para lograr el objetivo de dar solucin al problema planteado por el usuario. Para escribir cdigo que se ejecute en un evento determinado de un control, se debe realizar lo siguiente:

1. Seleccionar el control en el que se desea escribir cdigo.2. En el men Ver, d clic en la opcin Cdigo para abrir el Editor de cdigo o doble clic sobre el control.3. En la lista Nombre de mtodo, haga clic en el evento deseado para abrir su gestor de eventos en el Editor de cdigo. El Editor de cdigo muestra las sentencias de programacin que marcan el inicio (Sub) y el final (End Sub) del procedimiento del evento en particular.4. Escriba el cdigo entre los puntos inicial y final del cuerpo del procedimiento.

El Editor de cdigo contiene dos listas desplegables en la parte superior de la ventana: la lista Nombre de Clase a la izquierda y la lista Nombre de mtodo a la derecha. La lista Nombre de Clase muestra todos los controles del formulario asociado. Si se hace clic en el nombre de un control de la lista, la lista Nombre de mtodo muestra todos los eventos de dicho control (los eventos son acciones que se realizan sobre el control y que la aplicacin puede interpretar). Utilizando las listas Nombre de Clase y Nombre de mtodo conjuntamente, se puede localizar rpidamente y editar el cdigo de la aplicacin.

Figura 2.11 Editor de cdigo del objeto boton.

Para el caso del ejemplo d doble clic en el objeto Button llamado boton y abra el editor de cdigo, la figura muestra el editor de cdigo del control

Ahora escriba el siguiente cdigo entre Private Sub y End Sub:

With tabla.Columns.Add("Multiplicando", " Multiplicando ").Columns.Add("Multiplicador", " Multiplicador ").Columns.Add("Producto", "Producto").RowCount = 10For i As Integer = 0 To .RowCount - 1.Item(0, i).Value = camponumero.Text.Item(1, i).Value = i + 1.Item(2, i).Value = (camponumero.Text * (i + 1)) NextEnd With

Este cdigo sirve para rellenar el objeto tabla con los respectivos datos. Utilizando el mtodo Add de la propiedad Columns se le adicionan los nombres Multiplicando, Multiplicador, Producto en la primera fila y la propiedad RowCount se le asigna un valor de 10 filas. Con un ciclo For que se ejecutar desde una posicin i igual a cero (0) hasta el numero de filas -1 del objeto tabla y por cada fila tres tems. En la primera columna se imprimir el valor digitado en el objeto camponumero, en la segunda columna se imprimir el valor de i+1, en la tercera columna el producto de multiplicar el valor del objeto camponumero por i+1.

2.6 Guardar la aplicacin

Una vez finalizada la creacin de la aplicacin, se debe guarda la aplicacin dentro del entorno de desarrollo para asegurar que todos los cambios realizados se almacenen, esto se puede realizar de la siguiente forma:

En el men Archivo, d clic en Guardar todo. O hacer clic en el icono de la barra de herramientas.Cualquier opcin visualizar la siguiente ventana:

Figura 2.12 Ventana para Guardar el proyecto.

Se debe seleccionar la ubicacin en donde se guardar el proyecto. Al pulsar el botn Guardar se crear una carpeta con el mismo nombre del proyecto. Dentro de dicha carpeta se crean los archivos:

1. Un archivo de proyecto .vbproj, el cual contiene informacin especfica para una determinada tarea de programacin.2. Un archivo de solucin .sln, el cual contiene informacin relacionada con uno o ms proyectos. Siempre elija el archivo solucin para abrir un proyecto.

2.7 Ejecutar la aplicacin Windows Forms.

Para ejecutar el proyecto en el entorno de desarrollo de Visual Basic.NET se debe realizar lo siguiente:1. Hacer clic en el botn Iniciar de la barra de herramientas estndar. Tambin puede presionar F5 para ejecutar el proyecto. Si la aplicacin se ejecuta sin errores, aparecer una versin ejecutable del formulario.2. Cuando termine de ejecutar la aplicacin se debe cerrar el formulario para regresar al entorno de programacin.

Cuando se ejecuta un proyecto o solucin, automticamente se crea un archivo ejecutable (.exe) en la carpeta nombre_carpeta_proyecto\bin\Debug y nombre_carpeta_proyecto\bin\Release (en el caso del ejercicio el nombre de la carpeta es MiProgramaWF). Otra forma de generar un archivo ejecutable es seleccionar en el men Generar la opcin Generar nombre_proyecto.Para ejecutar la aplicacin MiProgramaWF desde el sistema operativo Windows, existen dos formas de hacerlo: la primera es utilizando el comando Ejecutar del men Inicio y buscar el archivo MiProgramaWF.exe que se encuentra en la carpeta PrimerPrograma\bin\Debug PrimerPrograma\bin\Release. La segunda forma es realizar la bsqueda de la carpeta PrimerPrograma\bin\Debug PrimerPrograma\bin\Release utilizando el explorador de Windows y hacer doble clic en el nombre del archivo MiProgramaWF.exe para ejecutarlo.

Visual Basic .NET instala de manera automtica los archivos de soporte, incluyendo las bibliotecas de vnculos dinmicos y archivos de .NET Framework. Visual Studio puede crear dos tipos de archivos ejecutables:

1. Debug: Compilacin de depuracin, se utiliza cuando se prueba y depura un programa (Default).2. Release: Versin de edicin, se utiliza cuando se termina el programa siendo esta una versin optimizada de menor tamao

Si se escribe el nmero 5 en el campo de texto y se pulsa el botn Ver Tabla, se visualizar la siguiente figura.

Figura 2.13 Aplicacin MiProgramaWF ejecutado.

2.8 Cerrar y Abrir un proyecto Windows Forms.

Para cerrar el proyecto MiProgramaWF o cualquier otro proyecto, en modo diseo se pueden realizar los siguientes pasos:

1. En el men Archivo, hacer clic en la opcin Cerrar Proyecto.2. Si desea cerrar el proyecto y salir de Visual Studio, en el men Archivo haga clic en la opcin Salir.En cada caso se deben guardar los nuevos cambios que se hayan realizado.

Para volver a abrir la aplicacin MiProgramaWF o cualquier otra aplicacin existente se debern realizar los siguientes pasos:

1. Abrir Visual Studio .NET.2. Si en la pantalla inicial de Visual Studio .NET se visualiza el nombre del proyecto que se desea abrir haga doble clic para abrir la aplicacin. Si por el contrario no se visualiza la aplicacin en el men Archivo, seleccione Abrir proyecto..., busque la carpeta MiProgramaWF y seleccione el archivo MiPrograma.sln y pulse la opcin Abrir para abrir la aplicacin en el entorno de desarrollo de Visual Basic .NET.

3. FUNDAMENTOS DE VISUAL BASIC .NET

Para iniciar el conocimiento del mundo Visual Basic .NET, es necesario conocer conceptos fundamentales como: creacin de variables, constantes, tipos de datos, tipos de operadores, definicin de comentarios, expresiones, etc.

3.1 Variables

Una variable es un espacio de memoria para almacenar un valor de un determinado tipo de dato dentro de un programa. El valor de la variable puede ser modificado durante la ejecucin del programa. El nombre de la variable puede contener letras, nmeros, etc., los nombres de las variables deben aportar informacin que permita identificar el tipo de informacin que se va a almacenar. Para declarar una variable se utiliza la palabra clave Dim. El formato para declarar variables es:

Dim nombre_variable As tipo_de_dato

Despus de declarar el tipo de variable, se le puede asignar un valor inicial de la siguiente forma:nombre_variable= valor_inicial

Tambin es posible declarar una variable con el siguiente formato:

Dim nombre_variable As tipo_de_dato = valor_inicial

Las variables pueden ser locales o globales. Las variables locales son aquellas que se crean dentro de un bloque especfico de programacin y se destruirn al finalizarse el bloque de programacin.

Ejemplo:

Private Sub funcin ()Dim var_local As Integer (variable local) var_local=10End Sub

Las variables globales son aquellas que pueden ser modificadas desde cualquier punto de un programa.Ejemplo:Public Class Variables_GlobalesPublic var_global As Integer (variable global)Private Sub funcin ()Dim var_local As integervar_global=10 (valor modificado en la funcin1 ())::::::::End SubPrivate Sub funcin2 ()Dim var_local As integervar_global=20 (valor modificado en la funcin2 ())::::::::::End Sub::::::::::::::::End Class

3.2 Constantes

Son variables que permanecen constantes durante el desarrollo del programa. Existen constantes numricas, de carcter, lgicas, etc. El formato de la declaracin de una variable constante es:

Ejemplo:

Const nombre_variable As tipo_de_dato= valor_constante

Const miconstante As Integer= 10

3.3 Tipos de datos

Un tipo de dato define todo el posible rango de valores que una variable puede tomar al momento de la ejecucin de un programa y a lo largo de toda la vida til del propio programa. Para seleccionar un tipo de dato en un programa se debe tener en cuenta el que mejor se adapte a los datos. Por ejemplo, si un programa necesita almacenar valores entre -20000 y 30000, los tipos de datos que se podran utilizar seran short, long, integer. Si utiliza el tipo de dato short, la aplicacin utilizara menos memoria para almacenar el valor de la variable. A continuacin se presenta la tabla con los tipos de datos que soporta Visual Basic .NET y su respectivo tamao.

Tabla 3.1 Tipos de datos de Visual Basic .NET.

TipoValoresTamao

BooleanRepresenta un valor verdadero (True) o falso (False).2 bytes

ByteRepresenta un valor de 8 bits en un rango entre 0 y 255.1 byte (0-255)

CharRepresenta un carcter de 16 bits.2 bytes (0-65535)

DateTimeRepresenta un valor de fecha y hora.8 bytes

DecimalRepresenta un valor de 28 dgitos significativos. De +/- 7,9228162514264337593543950335.12 bytes

DoubleRepresenta un valor en coma flotante de 64 bits. De - 1,79769613486231570E+308a-4,94065645841246544E-324 para valores negativos; 4,94065645841246544E-324a1,79769613486231570E+308 para valores positivos.8 bytes

IntegerRepresenta un valor entre un rango de +/-2,147,483,6984 Bytes

LongRepresentaunvalorentreunrangode+/- 9.223.372.036.854.775.8078 Bytes

ShortRepresenta un valor entre un rango de +/- 32.6772 Bytes

SingleDe -3,4028235E+38 a -1,401298E-45 para los valores negativos; 1,401298E-45 a 3,4028235E+38 para los valores positivos.4 bytes

StringCadena de caracteres0 a 2 millones de caracteres.

3.3.1 Ejemplo prctico tipos de datos

Realizar una aplicacin Windows Forms llamado TiposdeDatos que permita a un usuario visualizar en cajas de texto los diferentes tipos de datos cuando se pulse un botn llamado Tipos de Datos. Adems poder salir de la aplicacin utilizando un botn llamado Salir.

Iniciar un nuevo proyecto Visual Basic .NET

1. En el men Archivo, d clic en Nuevo Proyecto.2. En el panel Tipos de proyecto, haga clic en Visual Basic luego en Windows. En el panel Plantillas, haga clic en Aplicacin de Windows Forms.3. En el cuadro Nombre escriba TiposdeDatos y a continuacin d clic en el botnAceptar.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada: 10 Label, 10 Textbox, 2 Button. La figura 3.1., muestra la interfaz de usuario para la aplicacin TiposdeDatos.

Figura 3.1 Interfaz de usuario (tipos de datos).

Establecer las propiedades de los objetos del interfaz de usuario

Despus de colocar los controles u objetos a un formulario, se puede establecer sus propiedades en la ventana Propiedades o en el Editor de cdigo.

Para modificar las propiedades se selecciona el control en el formulario y se cambia su configuracin en la ventana Propiedades. Para el caso del ejemplo, establezca las modificaciones a los controles que se muestran en la tabla 3.2:

Tabla 3.2 Propiedades de los controles de la aplicacin TiposdeDatos.

ControlPropiedadValor

Label1Namelblboolean

TextBoolean:

Label2Namelblbyte

TextByte:

Label3Namelblchar

TextChar:

Label4Namelblfechora

TextFecha/Hora:

Label5Namelbldecimal

TextDecimal:

Label6Namelbldouble

TextDouble:

Label7Namelblinteger

TextInteger:

Label8Namelbllong

TextLong:

Label9Namelblshort

TextShort:

Label10Namelblstring

TextString:

TextBox1TextBox10NameTxtcampo1txtcampo10

TextEn blanco

Button1Nameboton

TextTipos de Datos

Button2Namebotonsalir

TextSalir

Form1Nameformulario

TextTipos de datos en Visual Basic .NET

Escribir cdigo

Una vez se hayan establecido las propiedades inciales del formulario y sus objetos, se puede agregar cdigo que se ejecutar en respuesta a eventos.

Para escribir cdigo que se ejecute en un evento determinado del control, realice lo siguiente:

1. En el Explorador de soluciones, seleccione el control para el que desea escribir cdigo.2. Escriba el cdigo entre el punto inicial(Sub) y final del cuerpo (End Sub) del procedimiento.

Para el ejemplo, d doble clic sobre el objeto boton para ver el editor de cdigo, la figura 3.2, muestra el editor de cdigo del control.

Figura 3.2 Editor de cdigo del control boton de la aplicacin TiposdeDatos.

Public Class formulario

Private Sub boton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles boton.Click

:::::::::::::::,End Sub End Class

Entre Sub y End Sub escriba el siguiente cdigo:

Dim boleana As Boolean = False Dim bytes As Byte = 101Dim caracter As Char = "a" Dim fechas_hora As DateDim con_decimal As Decimal = 10.23 Dim entera As Integer = 32000Dim doble As Double = 63528457 Dim larga As Long = 100258479 Dim corta As Short = 27000Dim cadena As String = "hola mi gente" txtcampo1.Text = boleana txtcampo2.Text = bytestxtcampo3.Text = caracter txtcampo4.Text = fechas_hora txtcampo5.Text = con_decimal txtcampo6.Text = doble txtcampo7.Text = entera txtcampo8.Text = larga txtcampo9.Text = corta txtcampo10.Text = cadena

En el anterior cdigo se definen las diferentes variables determinando el tipo de dato que almacenarn respectivamente. Adems se inicializan las variables con los valores apropiados para cada tipo de dato. La variable fechas_hora es la nica que no es inicializada, en dicha variable se almacenar los valores predeterminados de tipo Date del sistema operativo. Por ltimo se le asigna a la propiedad Text de cada control txtcampo110 la respectiva variable. Cuando el usuario pulse el botn en tiempo de ejecucin se mostrar en cada cuadro de texto el valor respectivo de la variable que ha sido asignada.

Despus d doble clic sobre el objeto botonsalir, para abrir el editor de cdigo y escriba el siguiente cdigo:End

Se utiliza la instruccin End para detener la ejecucin de una aplicacin. Visual Basic .NET dispone de varias palabras reservadas que no pueden ser utilizadas como variables, este tema ser tratado ms adelante.

Guardar la aplicacin

Una vez finalizada la creacin de la aplicacin, se guarda dentro del entorno de desarrollo para asegurar que se almacenen los cambios realizados en los diferentes objetos que contiene la aplicacin, esto lo puede realizar de la siguiente forma:

En el men Archivo, d clic en Guardar todo. O haga clic en el icono de la barra de herramientas

Ejecutar el proyecto

Para ejecutar el proyecto en el entorno de desarrollo de Visual Basic.NET se debe realizar lo siguiente: Haga clic en el botn Iniciar de la barra de herramientas estndar. Tambin puede presionar F5 para ejecutar el proyecto. Si la aplicacin se ejecuta sin errores, aparecer una versin ejecutable de la aplicacin. Al pulsar el botn Tipos de Datos, se visualizar la siguiente figura:

Figura 3.3 Ejecucin aplicacin TiposdeDatos.

Si desea salir de la aplicacin pulse el botn Salir para regresar al entorno de programacin.

3.4 Funciones de conversin de tipos de datos

Son funciones que se utilizan para realizan conversin a un tipo de dato diferente al que inicialmente estaba estipulado en una variable. Estas funciones generalmente forman parte del cdigo de un programa. Su formato es:

Objeto_nuevo_tipo=nombre_funcin_de_conversion (expresin).

Donde expresin es el tipo de datos actual. Algunas funciones de conversin se presentan en la siguiente tabla:

Tabla 3.3 Funciones de conversin.

FuncinTipo de dato devueltoEjemplo

CBoolBooleanoDim x,y As Integer Dim valor as Boolean x=10y=10valor = CBool(x=y) Devuelve verdadero (True).

CByteByteDim x As Double Dim valor as Byte x=10.5658valor = CByte(x) Devuelve 11.

CCharCharDim x As String Dim valor as Char x=ABCvalor = CChar(x) Devuelve A. Solo convierte el primer carcter a Char.

CDblDoubleDim x As Decimal Dim valor as Double x=158.2459valor = CDbl(x) Devuelve 158,2459.

CDateFechaDim x As String Dim valor as Datex=Agosto 30, de 2010valor = CDate(x) Devuelve 30/8/2010.

CDecDecimalDim x As Double Dim valor as Decimal x=16547.2358valor= CDec(x) Devuelve 16547,2358.

CIntEnteroDim x As Double Dim valor as Integer x=16.23valor= CInt(x) Devuelve 16.

CLngLongDim x As Double Dim valor as Long x=1658.55valor= CLng(x) Devuelve 1659. En la parte decimal se aproxima al entero superior si es>=.5 y al entero inferior si es =.5 y al entero inferior si es variable1>variable2

Mayor o igual que>=variable1>=variable2

Menor que condicion2 Or condicion1 > condicion3) ThenInstruccin(es) a ejecutarse si las condiciones son verdaderas::::::::EndifResto del programa

4.1.2 entencia If- Else

Es una estructura compuesta que evala una condicin. Si esta es verdadera realizar las instrucciones contenidas en el bloque If, en caso contrario ingresar por el bloque Else. El programa solo tomar una de las dos alternativas y continuar con el resto del programa. Su formato es el siguiente:

If (condicin) ThenInstruccin(es) a ejecutarse si la condicin es verdadera::::::::ElseInstruccin(es) a ejecutarse si la condicin es falsa::::::::EndifResto del programa

Como en el caso de la toma de decisin If simple tambin se puede utilizar los operadores lgicos y relaciones, adems se pueden anidar varios If Else.

4.1.3 (operador)

Se utiliza para una toma de decisin mltiple donde se devolver uno de dos valores al evaluar una expresin. Su formato es:

Ejemplo:

If (condicin, primer_argumento_por_verdad, segundo_argumento_por_falso)

Dim valor As integer Dim respuesta As String valor=3respuesta =If (valor>0,Positivo, Negativo) Devuelve Positivo Resto del programa

Dado que la expresin If (operador) utiliza la evaluacin de cortocircuito, evala el primer argumento o el segundo argumento, con respecto al valor de la condicin. Si el valor de la condicin es True (verdadero) el nmero no es negativo y es seguro evaluar el primer argumento y por consiguiente devuelve Positivo. Si el valor de la condicin es False (falso) slo se evala el segundo argumento y se devuelve Negativo.

4.1.4 4.1.4 IIF

Es parecido a la estructura If (operador), la diferencia radica en que la estructura IIFevalua los dos argumentos sin importar que al evaluar una expresin sea True o False.

Ejemplo:

IIF (condicin, primer_argumento_por_verdad, segundo_argumento_por_falso)

Dim valor As integer Dim respuesta As String valor=3respuesta =IIF (valor>0,Positivo, Negativo) Devuelve Positivo Resto del programa

4.1.5 mplo estructura If-Else

Crear una aplicacin Windows Forms llamada EstructuraIfElse que permita a un usuario capturar en cajas de texto con formato de hora militar las horas, los minutos y los segundos e imprimir las horas, los minutos y los segundos un segundo despus.OBSERVACIN: Se supondr que el usuario digitara las horas entre 0 y 23, los minutos y segundos entre 0 y 59.

Ejemplo:

HMS+1unsegundoHMS

171525171526

13445913450

1859591900

235959000

NOTA: a partir de este captulo se omitirn pasos que se supone que el lector ya maneja como son: iniciar un nuevo proyecto, escoger los controles y los pasos para ejecutar el

proyecto.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada: 6 Label, 6 Textbox, 1 Button.

Figura 4.1 Interfaz de usuario inicial (EstructuraIfElse).

Establecer las propiedades de los objetos de la interfaz de usuario

Para el caso del ejemplo establezca las siguientes modificaciones a los controles:

Tabla 4.1 Propiedades de los controles del proyecto TomadeDecisiones.

ControlPropiedadValor

Label1Namelblhoras

TextDigite la hora:

Label2Namelblminutos

TextDigite los minutos:

Label3Namelblsegundos

TextDigite los segundos:

Label4NameLblhora

TextHoras:

Label5NameLblminuto

TextMinutos

Label6Namelblsegundo

TextSegundos:

TextBox1Namehora

TextEn blanco

TextBox2Nameminuto

TextEn blanco

TextBox3Namesegundo

TextEn blanco

TextBox4Namehoras

TextEn blanco

TextBox5Nameminutos

TextEn blanco

TextBox6Namesegundos

TextEn blanco

Button1Nameboton

TextMs un segundo

Form1Nameformulario

TextToma de decisiones (If-Else) en Visual Basic .NET

La interfaz de usuario queda como se muestra en la siguiente figura:

Figura 4.2 Interfaz de usuario final (EstructuraIfElse).

Escribir cdigo

Seleccione el objeto boton, d doble clic para abrir el editor de cdigo boton_Click y escriba el siguiente cdigo:

Dim H, M, S As Integer H = horas.TextM = minutos.Text S = segundos.TextIf(H = 23 And M = 59 And S = 59) Then H = 0M = 0S = 0ElseIf (M = 59 And S = 59) Then H = H + 1M = 0S = 0ElseIf (S = 59) Then M = M + 1S = 0ElseS = S + 1End If End If

End If hora.Text = Hminuto.Text = M segundo.Text = S

Se utiliza la sentencia Dim para definir las variables de tipo entero H, M, S y a dichas variables se les asigna el valor capturado en la propiedad Text de los campos de texto horas, minutos y segundos. Con una primera estructura If se evala si el valor de H es igual a 23, el de M es igual a 59 y el de S igual a 59, si se cumple la condicin se le asigna a las variables el valor de cero (0). Si no se cumple la condicin por falso (Else) se evaluar los valores de M y S. Si estos son iguales a 59, se incrementar en uno (+1) el valor de la variable H y a las variables M y S se les asignar el valor cero (0). Si tampoco la condicin es verdadera se evaluar el valor de S. Si esta es igual a 59, se incrementa en uno (+1) el valor de la variable M y a S se le asignar el valor de cero (0). Por otro lado, si tampoco se cumple la condicin se incrementar S en uno (+1). Al determinarse los valores de H, M, S se imprimir en los campos de texto hora, minuto, segundo en la propiedad Text dichos valores respectivamente.

Ejecutar el proyecto

Al ejecutarse el proyecto en el entorno de desarrollo de Visual Basic.NET y al digitar en el campo horas 23, en el campo minutos 59, en el campo segundos 59 y despus pulsar el botn Ms un segundo, se visualizar la siguiente pantalla:

Figura 4.3 Ejecucin aplicacin EstructuraIfElse.

4.2 Sentencia Select

Es una toma de decisin con varias opciones, esto es, segn sea el valor (entero o caracter) de una variable escoger un caso entre varias alternativas. Su formato es:

Select (variable)Case expresion1 instrucciones1 Case expresion2 instrucciones2

......[Case Else] instruccionesNEnd Select

La expresin1, expresion2expresinN representan una lista de expresiones que pueden tener cada Case y se puede expresar de las siguientes formas:

Case Is =200 variable >=200

Cuando se ejecuta Select, se evala la variable y busca el primer caso (Case) que incluya el valor evaluado. Si no existe un valor igual a la variable, se ejecuta(n) la(s) instruccin (es) a continuacin del Case Else (opcional), si se ha especificado.

4.2.1 Ejemplo estructura Select

Disear una aplicacin Windows Forms llamada EstructuraSelect que permita a un usuario digitar en una caja de texto un nmero e imprimir el nombre del da de dicho numero.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada: 2 Label, 2 Textbox, 1 Button.

Figura 4.4 Interfaz de usuario inicial (EstructuraSelect).

Establecer las propiedades de los objetos de la interfaz de usuario

Para el caso del ejemplo establezca las siguientes modificaciones a los controles:

Tabla 4.2 Propiedades de los controles del proyecto EstructuraSelect.

ControlPropiedadValor

Label1Namelblnumero

TextDigite un nmero:

Label2Namelbldia

TextEl da de la semana es:

TextBox1Namenumero

TextEn blanco

TextBox2Namedia

TextEn blanco

Button1Nameboton

TextVisualizar da

Form1Nameformulario

TextEstructura Select

La interfaz de usuario queda como se muestra en la siguiente figura:

Figura 4.5 Interfaz de usuario final (EstructuraSelect).

Escribir cdigo

Seleccione el objeto boton, d doble clic para abrir el editor de cdigo boton_Click y escriba el siguiente cdigo:

Dim valor As Integer valor = numero.Text Select Case valorCase Is = 1dia.Text = "Lunes"Case Is = 2dia.Text = "Martes"

Case Is = 3dia.Text = "Miercoles"Case Is = 4dia.Text = "Jueves"Case Is = 5dia.Text = "Viernes"Case Is = 6dia.Text = "Sbado"Case Is = 7dia.Text = "Domingo"Case Elsedia.Text = "No es un dia de la semana" End Select

Se define la variable de tipo entero valor, a dicha variable se le asigna el valor capturado en la propiedad Text del campo de texto numero. Utilizando la estructura Select se evala lo capturado para determinar el nombre del da de la semana. En caso de que no exista el da de la semana se imprimir el mensaje No es un da de la semana.

Ejecutar el proyecto

Al ejecutarse el proyecto, si se escribe el nmero cinco (5) en el campo de texto y se pulsar el botn Visualizar el da, se mostrar la siguiente pantalla:

Figura 4.6 Ejecucin aplicacin EstructuraSelect.

4.3 Estructura For-Next

Sirve para repetir una o varias instrucciones, usando una variable que por lo general es llamada contador; esta estructura inicializa el contador y evala su valor por medio de una condicin, si esta es verdadera se ejecutarn las instrucciones del ciclo y aumentar o disminuir el contador automticamente, de lo contrario se finalizar el ciclo. Su formato es:

For variable =expresion1 To expresin2 [Step expresion3] Instruccion(es)::::::::Next

El valor de variable es inicializado con el valor que contenga expresion1. Expresion2 representa el valor final del ciclo repetitivo. La sentencia Step es opcional, por defecto sino existe dicha sentencia el incremento ser de uno (1), si por el contrario se utiliza la sentencia Step se pueden realizar incrementos o decrementos diferentes de uno (1).

4.3.1 Ejemplo estructura For-Next

Elaborar una aplicacin llamada EstructuraForNext que permita a un usuario digitar 10 nmeros en una caja de texto. Cada nmero digitado se debe imprimir en otro campo de texto. Tambin se debe imprimir la sumatoria de los nmeros capturados.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada: 1 Label, 1 Textbox, 1 Button.

Figura 4.7 Interfaz de usuario inicial (EstructuraForNext).

Establecer las propiedades de los objetos de la interfaz de usuario

Para el caso del ejemplo establezca las siguientes modificaciones a los controles:

Tabla 4.3 Propiedades de los controles del proyecto EstructuraForNext.

ControlPropiedadValor

Label1Namelblnumeros

TextNmeros capturados

TextBox1Namenumero

TextEn blanco

MultiLineTrue

ScrollBarvertical

Button1Nameboton

TextCapturar 10 nmeros

Form1Nameformulario

TextEstructura For-Next

La interfaz de usuario queda como se muestra en la siguiente figura:

Figura 4.8 Interfaz de usuario final (EstructuraForNext).

Escribir cdigo

Seleccione el objeto boton, d doble clic para abrir el editor de cdigo boton_Click y escriba el siguiente cdigo:

Dim inicio, valor, suma As Integer For inicio = 1 To 10valor = InputBox("Digite numero", "Captura de nmeros") numero.Text = numero.Text & valor & vbCrLfsuma = suma + valor Nextnumero.Text = numero.Text & vbCrLf & "La sumatoria es: " & suma

Se definen las variables de tipo entero inicio, valor, suma. Se inicializa un ciclo For que se repetir 10 veces. En l se le asigna a la variable valor los diferentes nmeros capturados con la funcin InputBox (Esta funcin permite capturar un valor por teclado; en este caso, solamente se utilizan dos parmetros: el primero para establecer un mensaje y el segundo para un titulo). Por otro lado, al control numero en su propiedad Text se le asigna el contenido que tenga en ese momento concatenado con el valor capturado y un salto de carro (vbcrlf); la variable suma guardar la sumatoria de los valores capturados. Al salir del ciclo For se imprimir en el objeto numero el texto La sumatoria es: unido con el valor de la variable suma.

Ejecutar el proyectoAl ejecutarse el proyecto y pulsar el botn Capturar 10 nmeros se mostrar el cuadro de captura:

Figura 4.9 Cuadro para capturar los nmeros.

Al escribir los nmeros: 3, 15, 6, 8, 23, 5, 14, 9, 1, 10, se visualizar la siguientefigura:

Figura 4.10 Ejecucin aplicacin EstructuraForNext.

4.4 Estructura While

Sirve para repetir una secuencia de instrucciones siempre que la condicin evaluada sea verdadera. Si al evaluarse la condicin es falsa no ingresar al ciclo y continuar con el resto del programa. Su formato es:

While (condicin) Instruccion(es)::::::::incremento decremento End WhileResto del programa

4.4.1 Ejemplo estructura While

Crear una aplicacin llamada EstructuraWhile que permita a un usuario digitar 10 nmeros e imprimir el mayor y el menor de dichos nmeros.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada: 2 Label, 2 Textbox, 1 Button.

Figura 4.11 Interfaz de usuario inicial (EstructuraWhile).

Establecer las propiedades de los objetos de la interfaz de usuario

Para el caso del ejemplo establezca las siguientes modificaciones a los controles:

Tabla 4.4 Propiedades de los controles del proyecto EstructuraWhile.

ControlPropiedadValor

Label1Namelbmayor

TextEl mayor es:

Label2Namelblmenor

TextEl menor es:

TextBox1Namemayor

TextEn blanco

TextBox2Namemenor

TextEn blanco

Button1Nameboton

TextCapturar 10 nmeros

Form1Nameformulario

TextEstructura While

La interfaz de usuario queda como se muestra en la siguiente figura:

Figura 4.12 Interfaz de usuario final (EstructuraWhile).

Escribir cdigo

Seleccione el objeto boton, d doble clic para abrir el editor de cdigo boton_Click y escriba el siguiente cdigo:

Dim contador, valor, nmayor, nmenor As Integer contador = 1While (inicio valor) Then nmenor = valorEnd Ifmayor.Text = nmayor menor.Text = nmenor contador = contador + 1End While

En el anterior cdigo se definen las variables contador, valor, nmayor, nmenor de tipo Integer. Se inicializa la variable contador con un valor de uno (1), luego se crea un ciclo While que permitir ejecutar una serie de instrucciones mientras contador sea menor o igual a 10. Dentro del ciclo a la variable valor se le asigna el nmero capturado en la funcin predeterminada Inputbox (cuadro de captura). Cuando se captura el primer valor la variable contador tiene un valor de 1, lo cual permite ingresar por nica vez a la primera sentencia de control If donde se le asigna a nmayor y nmenor el valor de la variable valor. A dicha instruccin solo se ingresar una vez pues ms adelante se incrementa la variable contador y por consiguiente obtendra un valor mayor de 1. En las siguientes sentencias se evala las variables nmayor y nmenor respectivamente con la variable valor para determinar si a dichas variables se les asigna un nuevo valor. Por otro lado, se le asigna a los campos de texto mayor y menor en su propiedad Text los valores de las variables nmayor y nmenor y adems se incrementa la variable

contador en 1 para que al digitar los 10 valores se pueda salir del ciclo While.

Ejecutar el proyecto

Al ejecutarse el proyecto y pulsar el botn Capturar 10 nmeros se mostrar el cuadro de captura:

Figura 4.13 Cuadro para capturar los nmeros.

Al escribir los nmeros: 3, 15, 6, 8, 23, 5, 14, 9, 1, 10, se visualizar la siguientefigura:

Figura 4.14 Ejecucin aplicacin EstructuraWhile.

4.5 Do-Loop While

Existen muchas situaciones en las que se desea que un ciclo se ejecute al menos una vez antes de comprobar la condicin de repeticin. En la estructura While si el valor de la expresin booleana es inicialmente falso, las instrucciones del ciclo no se ejecutarn; por ello, se necesitan otros tipos de estructuras repetitivas como Do-Loop While, que se ejecuta por lo menos una vez. Su formato es:

DoInstruccin(es)::::::::incremento decremento Loop While (condicin)

4.5.1 Ejemplo estructura Do-Loop while

Escribir una aplicacin llamada EstructuraDoLoopWhile que permita a un usuario capturar N nmeros. El usuario podr decidir si continua o no capturando nmeros. Al terminar de digitar se debe visualizar la sumatoria de los nmeros capturados.

Crear la interfaz de usuario

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada: 2 Label, 2 Textbox, 1 Button.

Figura 4.15 Interfaz de usuario inicial (EstructuraDoLoopWhile).

Establecer las propiedades de los objetos de la interfaz de usuario

Para el caso del ejemplo establezca las siguientes modificaciones a los controles:

Tabla 4.5 Propiedades de los controles del proyecto EstructuraDoLoopWhile

ControlPropiedadValor

Label1Namelblnumeros

TextNmeros capturados

Label2Namelblsuma

TextLa suma de los nmeros fue:

TextBox1Namecamponumeros

TextEn blanco

MultiLineTrue

ScrollBarvertical

TextBox2Namecamposuma

TextEn blanco

Button1Nameboton

TextCapturar 10 nmeros

Form1Nameformulario

TextEstructura Do Loop While

La interfaz de usuario queda como se muestra en la siguiente figura:

Figura 4.16 Interfaz de usuario final (EstructuraDoLoopWhile).

Escribir cdigo

Seleccione el objeto boton, d doble clic para abrir el editor de cdigo boton_Click y escriba el siguiente cdigo:

Dim valor, suma As Integer Dim respuesta As String Dovalor = InputBox("Digite nmero:", "Capturar nmeros") camponumeros= camponumeros & valor & vbcrlfsuma = suma + valorrespuesta = MsgBox("Desea Continuar (Si/No):", MsgBoxStyle.YesNo) Loop While (respuesta = "6")camposuma.Text = suma

Se crean tres variables: dos de tipo entero valor, suma y una de tipo String llamada respuesta. Dentro de un ciclo Do Loop While se le asigna a la variable valor los diferentes nmeros capturados con la funcin InputBox, adems al objeto camponumeros en su propiedad Text se le asigna el contenido que tenga en ese momento concatenado con el valor capturado y un salto de carro (vbcrlf); Por otro lado, la variable suma guardar la sumatoria de los valores capturados y a la variable

respuesta se le asigna el valor retornado por la funcin MsgBox (El primer parmetro es un mensaje para el cuadro de dilogo; el segundo parmetro es una expresin numrica que especifican el nmero y los botones que se van a mostrar). Si desea continuar (Si) capturando nmeros el valor que se almacenar en la variable respuesta es 6, en caso contrario, se almacenar el valor 7. Al salir del ciclo Do Loop While se imprimir en el objeto camposuma en su propiedad Text el valor de la variable suma.

Ejecutar el proyecto

Al ejecutarse el proyecto y pulsar el botn Capturar Nmeros se visualizar la siguiente figura:

Figura 4.17 Cuadro de dilogo para capturar nmeros.

Al digitarse cualquier nmero (Ej: 5) y pulsar Enter el botn Aceptar, se muestra el cuadro de mensaje de Continuar (Si/No): como se aprecia en la siguiente figura:

Figura 4.18 Cuadro de mensaje.

Si se pulsa el botn S, se mostrar nuevamente la figura 4.17., para capturar un nuevo nmero. Si por el contrario se pulsa el botn No, se visualizar la siguiente pantalla:

Figura 4.19 Ejecucin aplicacin EstructuraDoLoopWhile.

4.6 Estructura For-Each

Sirve para repetir una o varias instrucciones por cada elemento de una coleccin. Esta estructura es til cuando en una coleccin no se puede determinar cuntos elementos existen. Su formato es:

For Each elemento [As tipo_de_dato] In coleccin Instruccion(es)::::::::Next elemento

El valor elemento se utiliza para recorrer los elementos de la coleccin. El tipo de dato es obligatorio si el elemento no se ha declarado con anterioridad. La expresin coleccin contiene todos los elementos sobre los que se deben repetir las instrucciones del For-Next. El valor elemento en el Next no es obligatorio.

4.6.1 Ejemplo estructura For-Each

Hacer una aplicacin llamada EstructuraForEach que permita a un usuario digitar una oracin en un campo de texto e imprimir cuantas vocales A contiene dicha oracin.

Crear la interfaz de usuario.

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada: 2 Label, 2 Textbox, 1 Button.

Figura 4.20 Interfaz de usuario inicial (EstructuraForEach).

Establecer las propiedades de los objetos de la interfaz de usuario

Para el caso del ejemplo establezca las siguientes modificaciones a los controles:

Tabla 4.6 Propiedades de los controles del proyecto EstructuraForNext.

ControlPropiedadValor

Label1Namelblcadena

TextDigite una oracin:

Label2Namelblvocal

TextLa cantidad de vocales a es:

TextBox1Namecampooracion

TextEn blanco

TextBox2Namecampovocal

TextEn blanco

Button1Nameboton

TextContar vocal

Form1Nameformulario

TextEstructura For-Each

La interfaz de usuario queda como se muestra en la siguiente figura:

Figura 4.27. Interfaz de usuario final (EstructuraForEach)

Escribir cdigoSeleccione el objeto boton, d doble clic para abrir el editor de cdigo boton_Click y escriba el siguiente cdigo:

Dim cuentavocal As Integer Dim cadena As String cadena = campocadena.TextFor Each letra As String In cadena If letra = "a" Thencuentavocal = cuentavocal + 1 End IfNextcampovocal.Text = cuentavocal

Se crean dos variables: cuentavocal de tipo entero y cadena de tipo String a la cual se le asigna el texto digitado en el objeto campocadena. Se inicializa un ciclo For- Each que recorrer cada uno de los caracteres que contiene la variable cadena. Con la estructura If se pregunta que si el valor de la variable letra es igual al caracter a. Si se cumple la condicin se incrementara en uno (+1) el valor de la variable cuentavocal. Al terminar el ciclo For-Next se imprimir en el objeto campovocal el valor de la variable cuentavocal.

Ejecutar el proyecto

Al ejecutarse el proyecto y escribir en el objeto campocadena el texto hola mi gente colombiana y pulsando el botn Contar vocal, se obtendr la siguiente figura:

Figura 4.28 Ejecucin aplicacin EstructuraForEach.

4.7 Ejercicios estructuras de control

1. Escribir un programa que pida al usuario digitar dos nmeros e imprima las operaciones con los operadores aritmticos, los operadores relacionales y los operadores lgicos.2. Realizar un programa que pida al usuario digitar dos nmeros enteros e imprima l nmero mayor seguido del texto "Es el mayor".3. Elaborar un programa que capture tres nmeros enteros e imprima l nmero mayor, el del medio y el menor.4. Hacer un programa que convierta una temperatura dada en grados Celsius a grados Fahrenheit. La formula de conversin es F=9/5c +32.5. Disear un programa que pida al usuario digitar un nmero e imprima el mes del ao de dicho nmero. Si el nmero digitado no es un mes del ao se deber mostrar el mensaje No es un mes del ao.6. Crear un programa que imprima en un campo de texto los nmeros impares que se encuentren entre 1 y 30, as como su sumatoria.7. Escribir un programa que permita sumar los nmeros enteros de 1 a 100 usando las estructuras: for, while, do while.8. Realizar un programa que imprima todos los nmeros primos entre 2 y 100 inclusive (nota: utilice la propiedad Multiline del control TextBox para imprimir los resultados).9. Disear un programa que permita capturar N nmeros. Se debe imprimir el nmero capturado en cajas de texto dependiendo si es par o impar, as como la sumatoria de estos.10. Escriba un programa que dado un nmero entero, diga si es o no es, un cubo perfecto. Los nmeros astromg o cubos perfectos, son aquellos que sumados los cubos de cada uno de sus dgitos da el mismo nmero. Por ejemplo 153 es un cubo perfecto, pues (1) elevado a 3 + (5) elevado a 3 + (3) elevado a 3 es igual a 153.

5. MDULOS Y PROCEDIMIENTOS

A medida que se escriban programas de mayor robustez o complejidad (varios formularios), es casi seguro, que existan muchos procesos comunes. Para esto se disean subprogramas que realizan una tarea especfica denominados procedimientos o funciones, Por otro lado, a veces es necesario tener variables, constantes o expresiones que se puedan utilizar en el entorno de desarrollo sin tener que volverlas a definir (variables globales). Visual Basic .NET permite compartir variables, procedimientos en varios formularios, para esto, es necesario crear un mdulo que permita contener las variables globales y los procedimientos.

5.1 Mdulos

Un mdulo es un contenedor que se visualiza de forma independiente en el explorador de soluciones y solamente se le puede incluir cdigo y no tendr interfaz de usuario. Dicho mdulo puede contener variables globales pblicas, procedimientos sub y function y estos pueden ser compartidos por varios formularios. Cada mdulo tiene una instancia y no necesita ser creado ni asignado a una variable. Dentro de una aplicacin pueden existir varios mdulos, sin embargo, al hacer referencia a alguno de sus miembros (variables, procedimientos, funciones) se debe referenciar con el nombre del mdulo adecuado.Ejemplo:Module unoPublic a As integer=6End Module Module dosPublic a As integer=5End Module

as:

Si se necesita utilizar la variable a del mdulo llamado dos se debe referenciar

dos.a

Por defecto el primer mdulo de un programa tendr como nombre module1.vb.Su formato es:Modificador de acceso (public, friend) Module nombre_mdulo variables, procedimientosEnd Module

Por omisin cada vez que se crea un mdulo el modificador de acceso es friend.

Para crear un mdulo dentro de un proyecto aplicacin existen varias formas:

1. Seleccionar Agregar Mdulo del men Proyecto, donde se visualizar un cuadro de dilogo que le permitir seleccionar la plantilla mdulo y asignarle un nombre a este.2. Utilizar el botn agregar nuevo elemento de la barra de herramientas estndar y seleccionar la opcin Agregar Mdulo.3. Desde el explorador de soluciones situarse en el nombre del proyecto y dar clic derecho del mouse para seleccionar la opcin Agregar y despus escoger

Mdulo.

La figura que se visualizar al seleccionar cualquiera de los pasos anteriores es la siguiente:

Figura 5.1 Agregar un mdulo al proyecto.

Al hacer clic en el botn Agregar, Visual Basic .NET agregar al proyecto el mdulo llamado Module1.vb apareciendo el Editor de Texto como se muestra a continuacin:

Figura 5.2 Editor Module1.vb.

Luego se podr observar en el Explorador de Soluciones , el mdulo agregado al proyecto:

Figura 5.3 Mdulo en el Explorador de soluciones.

Para declarar una variable pblica (aquellas que estn disponibles para todos los procedimientos de la aplicacin) en un mdulo solo se necesita que al inicio del mdulo se escriba la palabra clave public seguido por el nombre de la variable y el tipo de dato. Una vez declarada esta variable podr ser utilizada para leerla, modificarla o visualizarlA por cualquier procedimiento del programa.

5.2 Procedimientos o funciones

En Visual Basic .NET existen dos tipos de procedimientos: Function y Sub. Los procedimientos Function pueden ser invocados por su nombre desde otros procedimientos, pueden recibir argumentos (son datos necesarios para que un procedimiento trabaje correctamente y deben ir dentro de parntesis y separados por comas), y siempre devuelven un valor con el nombre de la funcin. Los procedimientos Sub tambin pueden ser son invocados por su nombre desde otros procedimientos, pueden recibir argumentos y no devuelven valores. Los procedimientos Function y Sub se pueden definir en el cdigo de un formulario, pero lo ms aconsejable es definirlos dentro de un mdulo para que todos los elementos de un proyecto puedan utilizarlos.

Un procedimiento Function es un grupo de cdigo localizado entre una instruccin Function y EndFunction. Se podr llamar a un procedimiento Function desde un programa utilizando el nombre asociado al procedimiento junto con los argumentos necesarios. Su formato es:

[Modificar de acceso] Function nombre_funcin (argumentos) As tipo de dato Instruccionesnombre_function = valor a retornarEnd Function[Modificar de acceso] Function nombre_funcin (argumentos) As tipo de dato InstruccionesReturn = valor a retornarEnd Function

Donde el modificador de acceso puede ser public, prvate, protected o friend. Para llamar al procedimiento Function desde otro procedimiento y suponiendo que se tiene una etiqueta Label1, sera de la siguiente forma:

Se enva: Se recibe:

Label1.Text =nombre_funcin (12, hola)

Public Function nombre_funcin (Byval entero As Integer, Byval cadena As String)

Un procedimiento Sub es similar a un procedimiento Function solo que Sub no retorna un valor asociado con su nombre pero pueden devolver uno o ms valores al procedimiento que lo llamo. En la llamada al procedimiento el nmero y el tipo de argumentos enviados deben ser igual al nmero y tipo de argumentos del procedimiento. Su formato es:

[Modificar de acceso] Sub nombre_sub (argumentos) InstruccionesEnd Sub

Para llamar al procedimiento Sub desde otro procedimiento se debe especificar el nombre del procedimiento y el nmero de argumentos. El ejemplo sera el siguiente:

Se enva:

Se recibe:

MiSub (12, hola)

MiSub (Byval entero As Integer, Byval cadena As String)

5.2.1 Ejemplo prctico mdulo y procedimientos Sub y Function

Realizar una aplicacin llamada MdulosProcedimientos que permita a un usuario capturar un nmero y retornar en texto si dicho nmero es PRIMO NO. Utilizando los procedimientos Function y Sub.

Crear la interfaz de usuarioUtilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada: 2 TextBox, 2 Label, 2 Button. Se omitir la interfaz inicial del proyecto.

Establecer las propiedades de los objetos del interfaz de usuario

Para el caso del ejemplo establezca las siguientes modificaciones a los controles:

Tabla 5.1 Propiedades de los controles de la aplicacin MdulosProcedimientos.

ControlPropiedadValor

TextBox1Nametxtnumero

TextEn blanco

TextBox2Nametxtresultado

TextEn blanco

Label1Namelblnumero

TextDigite un nmero:

Label2Namelblresultado

TextEl nmero es:

Button1Namebotonfunction

TextVerificar Numero Primo con Function

Button2Namebotonsub

TextVerificar Numero Primo con Sub

Form1Nameformulario

TextMdulos y procedimientos.

La interfaz de usuario queda como se muestra en la siguiente figura:

Figura 5.4 Interfaz de usuario (MdulosProcedimientos).

Agregar mdulo

Para agregar el nuevo mdulo se utilizar el icono agregar nuevo elemento de la barra de herramientas estndar y all se seleccionara la opcin Agregar Mdulo, donde se visualizar un cuadro de dilogo que le permitir seleccionar la plantilla de Mdulo y asignarle un nombre al mdulo. Por defecto el primer mdulo de un programa tendr como nombre module1.vb cmbielo por mimdulo.vb.

Figura 5.5 Mdulo mimdulo.vb en la aplicacin MdulosProcedimientos.

Si se desea cambiar el nombre del mdulo, se pueden seleccionar las propiedades del mdulo dando clic sobre el nombre actual de ste. Como los mdulos solo contienen cdigo, las propiedades son mnimas. Una de las propiedades ms importantes es nombre de archivo que permite cambiar el nombre del mdulo (tenga en cuenta que la extensin debe seguir igual a vb).

Escribir cdigo en el mdulo

En el mdulo d doble clic sobre el nombre de este y entre las instrucciones Module yEnd Module escriba el siguiente cdigo:

Module mimdulo

Public incremento As Integer Public auxiliar As Integer Public texto As Stringiniciamos el procedimiento FunctionFunction primo_Function(ByVal numero As Integer) As String auxiliar = 0incremento = 2If (numero = 1 And numero < 3) Then texto = "PRIMO"ElseWhile (auxiliar = 0)If ((numero Mod incremento) = 0) Then texto = "No PRIMO"auxiliar = 1 Elseincremento += 1 End IfIf (numero = incremento) Then texto = "PRIMO"auxiliar = 1 End IfEnd While End Ifprimo_Function = texto End IfEnd FunctionFinaliza el procedimiento funcin Inicia el procedimiento SubSub primo_Sub(ByVal numero As Integer) auxiliar = 0incremento = 2If (numero = 1 And numero < 3) Then texto = "PRIMO"ElseWhile (auxiliar = 0)If ((numero Mod incremento) = 0) Then texto = "No PRIMO"auxiliar = 1 Elseincremento += 1 End IfIf (numero = incremento) Then texto = "PRIMO"auxiliar = 1 End IfEnd While

End If End IfEnd SubFinaliza el procedimiento SubEnd Module

En el mdulo se crean tres variables pblicas auxiliar e incremento de tipo Integer y texto de tipo String, las cuales pueden ser utilizadas por cualquier procedimiento que este dentro del mdulo o por cualquier formulario que pertenezca a la aplicacin. En este caso dichas variables son utilizadas por los procedimientos primo_Function y primo_Sub. Tanto en el procedimiento primo_Function como en el procedimiento primo_Sub se reciben un nmero el cual es evaluado para determinar si es primo no. Por otro lado, en el procedimiento primo_Function se retorna el contenido de la variable global texto al procedimiento que lo llam y en el procedimiento primo_Sub el resultado es asignado a la variable texto.

Escribir cdigo en los controles Button

a) Seleccione el objeto botonfunction y abra el editor de cdigo y escriba el siguiente cdigo:

Dim numero As Integer numero = txtnumero.Texttxtresultado.Text = primo_Function(numero)

El anterior cdigo se define la variable numero de tipo Integer. A dicha variable se le asigna el valor capturado en el objeto txtnumero. Por ltimo a la propiedad Text del control txtresultado se le asigna el valor que retorne el procedimiento primo_Function. Como se puede apreciar, a dicho procedimiento se le enva como argumento la variable numero que es exactamente el nmero de argumentos que recibe primo_Function.

b) Seleccione el objeto botonsub y abra el editor de cdigo y escriba el siguiente cdigo:

Dim numero As Integer numero = txtnumero.Text primo_Sub(numero) txtresultado.Text = texto

En este cdigo tambin se define la variable numero de tipo Integer. A dicha variable se le asigna el valor capturado en el objeto txtnumero. Se llama al procedimiento primo_Sub y se le enva como argumento la variable numero. Por ltimo a la propiedad Text del control txtresultado se le asigna el valor de la variable global texto.

Ejecutar el proyecto

Al ejecutarse el proyecto en el entorno de desarrollo de Visual Basic.NET, si se digit el valor 281 y pulsando cualquiera de los dos botones se visualizar la siguiente pantalla:

Figura 5.6 Ejecucin aplicacin MdulosProcedimientos.

5.3 Funciones predeterminadas

En Visual Basic .NET existen funciones predeterminadas o incorporadas que facilitan la realizacin de tareas especficas, entre ellas, se pueden encontrar funciones: matemticas, de fechas, para manipulacin de cadenas de caracteres., etc.

5.3.1 Funcin de fecha y hora

El objeto Date permite la manipulacin de la fecha y la hora. Now y Today son dos funciones bsicas para el manejo del tiempo y la fecha. Now muestra en formato numrico la fecha y la hora del sistema (Ej: 31/08/2010 16:14:20), mientras que Today muestra en formato numrico la fecha del sistema (Ej: 31/08/2010). Con la funcin Format se puede manejar diferentes formatos de presentacin de fecha y hora utilizando carcteres especficos. En la siguiente tabla se describe algunos caracteres que permite la creacin de formatos de fecha y hora definidos por el usuario:

Tabla 5.2 Caracteres para crear formatos de fecha.

CarcterDescripcin

(/)Separador de fecha.

DMuestra una fecha con el formato de fecha larga. Por ejemplo: martes, 31 de agosto de 2010.

dMuestra una fecha con el formato de fecha corta. Por ejemplo: 31/10/2010.

ddMuestra el da como un nmero con cero a la izquierda (por ejemplo: 01).

dddMuestra el da de forma abreviada (por ejemplo: mar).

ddddMuestra el da de forma completa (por ejemplo: martes).

MMuestra el da y el mes de una fecha (por ejemplo: 31 agosto).

MMMuestra el mes como un nmero con cero a la izquierda (por ejemplo, 09).

MMMMuestra el mes en forma abreviada (por ejemplo, ago).

MMMMMuestra el mes en forma completa (por ejemplo: agosto).

yMuestra el mes y el ao (por ejemplo: agosto de 2010).

yyMuestra el ao en formato numrico de dos dgitos.

yyyMuestra el ao en formato numrico de cuatro dgitos.

F,fMuestra la fecha larga y la hora corta. Por ejemplo: martes, 31 de agosto de 2010 11:07.

Tabla 5.3 Caracteres para crear formatos de hora.

CarcterDescripcin

(:)Separador de hora.

hhMuestra la hora como un nmero con ceros a la izquierda y en formato de 12 horas.

HHMuestra la hora como un nmero con ceros a la izquierda y en formato de 24 horas.

mmMuestra los minutos como un nmero con ceros a la izquierda.

ssMuestra los segundos como un nmero con ceros a la izquierda.

tMuestra la hora y los minutos en formato de 24 horas.

5.3.1.1 1.1 Ejemplo prctico funciones de fecha y hora

Crear una aplicacin llamadas FuncionesFechasHoras que permita a un usuario pulsar un botn y visualizar en cajas de texto alguno de los formatos de fecha y hora.

Crear la interfaz de usuarioUtilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada: 10 Label, 10 Textbox, 1 Button.

Establecer las propiedades de los objetos de la interfaz de usuario

Para el caso del ejemplo establezca las siguientes modificaciones a los controles:

Tabla 5.4 Propiedades de los controles del proyecto FuncionesFechasHoras.

ControlPropiedadValor

Label1NameFuncin Now

Label2NameFuncin TODAY

Label3NameFormato d/MM/y:

Label4NameFormato D:

Label5NameFormato d-MMMM-yyy

Label6NameFormato F:

Label7NameFormato h:m:s:

Label8NameFormato hh:mm:ss

Label9NameFormato HH

Label10NameFormato HH:mm

Label1.Label10Texttexto1texto10

TextBox1TextBox10Nameformato1formato10

TextEn blanco

Button1Nameboton

TextVer formatos de fecha/hora

Form1Nameformulario

TextFormato de fecha/hora

La interfaz de usuario queda como se muestra en la siguiente figura:

Figura 5.7 Interfaz de usuario (FuncionesFechasHoras).

Escribir cdigoSeleccione el objeto boton y abra el editor de cdigo y escriba el siguiente cdigo:

formato1.Text = Date.Now formato2.Text = Date.Todayformato3.Text = Format(Date.Now, "d/MM/y") formato4.Text = Format(Date.Now, "D") formato5.Text = Format(Date.Now, "d-MMMM-yyy") formato6.Text = Format(Date.Now, "F") formato7.Text = Format(Date.Now, "h:m:s") formato8.Text = Format(Date.Now, "hh:mm:ss") formato9.Text = Format(Date.Now, "HH") formato10.Text = Format(Date.Now, "HH:mm")

Se utiliza la funcin Format (fecha actual del sistema, tipo de formato) para dar un formato especfico de fecha u hora a las diferentes cajas de texto en la propiedad Text. Cuando el usuario pulse el botn Ver formatos fecha/hora en tiempo de ejecucin mostrar en cada caja de texto el formato respectivo.

Ejecutar el proyecto

Al ejecutarse el proyecto en el entorno de desarrollo de Visual Basic.NET, se debera visualizar la siguiente pantalla:

Figura 5.8 Ejecucin aplicacin FuncionesFechasHoras.

5.3.2 Funciones Matemticas

La clase Math de Visual Basic .NET contiene una serie de funciones trigonomtricas, logartmicas y otras funciones matemticas que sirven para realizar clculos aritmticos, en la siguiente tabla se muestran las funciones ms comunes:

Tabla 5.5 Funciones matemticas de Visual Basic .NET.

Mtodo de Visual Basic .NETDescripcin

Math.Ceiling(double)Devuelve el nmero entero ms pequeo mayor o igual que el nmero especificado.Math.ceiling(1.6)=2 Math.ceiling(0.8)=1

Math.Floor(double)Devuelve el nmero entero ms grande menor o igual que el nmero especificado.Math.Floor(1.6)=1 Math.Floor(0.8)=0

Math.sqrt(n)Devuelve la raz cuadrada de un nmero.

Math.pow(n,p)Devuelve un nmero especificado elevado a la potencia especificada.

Math.Abs(n)Sobrecargado. Devuelve el valor absoluto de un nmero especificado.

Math.sin(n)Devuelve el seno del ngulo especificado.

Math.cos(n)Devuelve el coseno del ngulo especificado.

Math.tan(n)Devuelve la tangente del ngulo especificado.

Math.Max(n1,n2)Devuelve el mayor de dos nmeros.

Math.min(n1,n2)Devuelve el menor de dos nmeros.

Math.BigMul(n1,n2)Calcula el producto de dos nmeros.

Math.round(double)Devuelveelnmeromsprximoalvalor especificado.Math.round(10.5)=10 Math.round(10.51)=11

5.3.2.1 .1 Ejemplo prctico funciones matemticas

Hacer una aplicacin llamadas FuncionesMatematicas que permita a un usuario pulsar un botn y visualizar en cajas de texto las funciones aritmticas bsicas.

Crear la interfaz de usuario.

Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada: 11 Label, 11 Textbox, 1 Button.

Establecer las propiedades de los objetos de la interfaz de usuario

Para el caso del ejemplo establezca las siguientes modificaciones a los controles:

Tabla 5.6 Propiedades de los controles del proyecto FuncionesMatematicas.

ControlPropiedadValor

Label1NameFuncin Math.Ceiling(8.5)

Texttexto1

Label2NameFuncin Math.Floor(8.5)

Texttexto2

Label3NameFuncin Math.Round(10.5)

Texttexto3

Label4NameFuncin Math.Round(10.51)

Texttexto4

Label5NameFuncin Math.Max(7,5)

Texttexto5

Label6NameFuncin Math.Min(7,5)

Texttexto6

Label7NameFuncin Math.Pow(5,2)

Texttexto7

Label8NameFuncin Math.Sqrt(3)

Texttexto8

Label9NameFuncin Math.Sin(1.0)

Texttexto9

Label10NameFuncin Math.cos(1.0)

Texttexto10

Label11NameFuncin Math.tan(1.0)

Texttexto11

TextBox1TextBox11Namecampo1campo10

TextEn blanco

Button1Nameboton

TextVer funciones matemticas.

Form1Nameformulario

TextFunciones matemticas.

La interfaz de usuario queda como se muestra en la siguiente figura:

Figura 5.9 Interfaz de usuario (FuncionesMatematicas).

Escribir cdigoSeleccione el objeto boton y abra el editor de cdigo y escriba el siguiente cdigo:

campo1.Text = Math.Ceiling(8.5) campo2.Text = Math.Floor(8.5) campo3.Text = Math.Round(10.5) campo4.Text = Math.Round(10.51) campo5.Text = Math.Max(7, 5) campo6.Text = Math.Min(7, 5) campo7.Text = Math.Pow(5, 2) campo8.Text = Math.Sqrt(3) campo9.Text = Math.Sin(1.0) campo10.Text = Math.Cos(1.0) campo11.Text = Math.Tan(1.0)

El anterior cdigo se le asigna una funcin matemtica a la propiedad Text de cada caja de texto. Cuando el usuario pulse el botn Ver Funciones matemticas en tiempo de ejecucin mostrar en cada caja de texto el valor respectivo de la operacin que le fue asignada.

Ejecutar el proyectoAl ejecutarse el proyecto en el entorno de desarrollo de visual Basic.NET, se debe visualizar:

Figura 5.10 Ejecucin aplicacin FuncionesMatematicas.

5.3.3 Funciones para cadenas de caracteres

Visual Basic .NET contiene una serie de funciones para la manipulacin de cadenas de caracteres que sirven para realizar diferentes operaciones entre caracteres, en la siguiente tabla se muestran las funciones ms comunes:

Tabla 5.7 Funciones para manipulacin de cadenas.

FuncinEjemplo

Chars(n): Permite obtener un carcter especfico de una cadena de caracteres.Dim micadena As String = "ABCDE"Dim micaracter As Char micaracter = micadena.Chars(3) micaracter = "D"

Length: Permite obtener la longitud de de una cadena de caracteres.Dim micadena As String = "ABCDE" Dim Entero As Integer entero=cadena.lengthentero=5

Concat(texto1, texto,...., texton): Permite unir dos o ms cadenas de caracteres.Dim micadena As String = "hola"Dim unircadena As Stringunircadena= String.Concat(micadena, " ", "pueblo")unircadena= hola pueblo

ToUpper: Convierte una cadena de caracteres de minscula a mayscula.Dim micadena As String = "hola" micadena= micadena.ToUpper() micadena= HOLA

ToLower: Convierte una cadena de caracteres de mayscula a minscula.