Está en la página 1de 104

1

Programador

.NET 2012

AUMENTA TU PRODUCTIVIDAD
Centro de Educación Continua
Universidad Continental
Material para fines de Estudio del Programa: Programador .NET
Elaborado por: Ing. Rolando R. Zapata Maraví

Queda prohibida la reproducción total o parcial del contenido de este documento en


cualquiera de sus formas, sean electrónicas o mecánicas, sin el consentimiento previo y
por escrito del autor y el Centro de Educación Continua.
Programa: Programador .NET

SESIÓN

Introducción 1

AL FINALIZAR LA PRESENTE SESIÓN, EL PARTICIPANTE ESTARÁ EN LA CAPACIDAD DE:

 Identificar y describir los conceptos básicos relacionados a desarrollo de software.


 Comprender la importancia de los sistemas de información en las organizaciones.
 Reconocer el rol que cumple Visual Studio en el desarrollo de sistemas de información.

TEMAS:

 Sistemas de información
 Programador
 Paradigmas de programación
 Lenguaje de programación
 Visual Basic .Net
 Entorno de Desarrollo Integrado (IDE)
 Visual Studio 2012
 .Net Framework

Modulo: Fundamentos de Programación Pag. 1


Programa: Programador .NET

Introducción
El computador consta principalmente de 2 partes fundamentales: Hardware y Software. El
primero está relacionado con los elementos tangibles del computador, así como el monitor,
mouse, teclado, impresora o cualquier otro dispositivo físico que se encuentre conectado al
equipo. Por otro lado, el software está conformado por programas que vienen a ser elementos
lógicos del computador, entre ellos tenemos a Microsoft Word, Microsoft Excel, Adobe Flash
Professional, Microsoft Project, AutoCAD, etc. A continuación se muestra una tabla con una
breve descripción de cada software mencionado anteriormente:

Software Propietario Propósito

Procesar textos (Cartas, libros, artículos,


Microsoft Word MICROSOFT
resúmenes, tesis, etc.)
Elaborar hojas de cálculo (Cuadre de caja,
Microsoft Excel MICROSOFT estados financieros, boletas de notas, control de
asistencia, inventario de almacén, etc.)
Diseñar e implementar animaciones (Para
Adobe Flash Professional ADOBE páginas Web, exposiciones con diapositivas,
comerciales, etc.)
Gestionar proyectos, ya sean pequeños como un
Microsoft Project MICROSOFT campeonato escolar, o de gran complejidad
como la construcción de una carretera.
Diseño de formas en 2D y 3D (Formas, planos,
AutoCAD AUTODESK
visitas guiadas en 3D, edificaciones, etc.)
Tabla N° 1

El presente módulo está orientado a la implementación de software, es decir, así como


Microsoft creó Microsoft Word para procesar textos, el objetivo del presente módulo es
que Ud. cree su propio software para lo que Ud. quiera.

Se pretende que el estudiante por medio de las sesiones presenciales y la lectura del
presente material, pueda implementar sus propias aplicaciones para fines personales
o comerciales.

Sistema de Información

Es un conjunto de elementos relacionados que tienen como propósito almacenar y procesar


datos, generando como resultado final lo que conocemos como información. Además,
debemos entender que los elementos del sistema de información comprenden hardware,
software y el personal. Los sistemas de información cumplen un rol muy importante a nivel
empresarial, ya que permite almacenar y obtener información en corto tiempo, con mayor
precisión y alta confiabilidad.

Modulo: Fundamentos de Programación Pag. 2


Programa: Programador .NET

A continuación se describen algunos ejemplos de sistemas de información muy comunes en las


organizaciones:

 Control de asistencia
Propósito: Gestionar información relacionada al ingreso y salida del personal, en relación
a su horario de trabajo.

Procesos principales: Registrar el ingreso y salida del personal, generar reportes de


asistencia que incluya el total de faltas y tardanzas en un determinado periodo de tiempo
(generalmente semanal, mensual y anual), mostrar gráficos estadísticos referentes a la
asistencia del personal, registrar un nuevo empleado, cambiar el horario de trabajo, etc.

 Control básico de almacén


Propósito: Controlar información sobre la entrada y salida de productos de almacén.

Procesos principales: Registrar entrada de productos, registrar salida de productos,


imprimir listas de productos de acuerdo a ciertos filtros (fecha de caducidad, categoría,
marca, entre otros), mostrar alertas para los productos que han alcanzado el stock mínimo,
etc.

 Gestión de recursos humanos


Propósito: Procesar información relacionada con el personal de la empresa.

Procesos principales: Registro de un nuevo personal, edición de datos del personal,


resúmenes de información por trabajador, búsqueda del personal por nombre, apellido
paterno, DNI, etc.

Programador

Se denomina programador a aquella persona que desarrolla programas informáticos, éstos


se encuentran constituidos por un conjunto de instrucciones conocido como código fuente. El
programador es el encargado de escribir, depurar (corregir) y dar mantenimiento al código
fuente de un programa informático. Adicionalmente, el programador recibe el nombre
alternativo de desarrollador.

Cuando lo que se quiere es implementar un sistema de información de alta complejidad,


generalmente se constituye un equipo de 3 o 4 programadores (más o menos de acuerdo a
la dificultad y el tiempo establecido) para su desarrollo.

Al igual que muchos oficios y profesiones, existe un día al año que agasaja al
programador. Ésta fecha es el día número 256 del año, que puede ser el 12 o 13 de
septiembre de acuerdo a si el año es bisiesto o no.

Modulo: Fundamentos de Programación Pag. 3


Programa: Programador .NET

A nivel profesional, en el proceso de desarrollo de software generalmente se cuenta con un


equipo conformado por un Jefe de Proyecto, Analista(s) de sistemas, Programador(es) y
Documentador(es). La cantidad de integrantes del equipo va de la mano con la complejidad del
sistema de información que se pretende implementar.

Paradigmas de programación

En términos sencillos, un paradigma de programación es un estilo o forma de implementar


un programa. Existen diversos paradigmas en el mercado informático, a continuación se listan
algunos de ellos:

 Programación estructurada
 Programación Orientada a Objetos (POO)
 Programación modular
 Programación funcional
 Programación declarativa
 Programación Orientada a Aspectos (POA)

El paradigma más popular y utilizado en el mercado actualmente es el orientado a


objetos; todo esto gracias a su sencillez, flexibilidad y potencia al momento de crear
aplicaciones de porte empresarial, cabe resaltar que éste paradigma se ha ganado un lugar
importante dentro del desarrollo de software a nivel mundial. En la sesión número 4 del
presente material se abordará con más detalle las características de la Programación Orientada
a Objetos y sus principales elementos.

Durante el desarrollo del presente módulo se abordará de manera teórica y práctica los
fundamentos, características y ventajas de la Programación Orientada a Objetos.

Lenguaje de programación

Para poder comunicarnos con los demás hacemos uso del idioma español, de ésta manera
intercambiamos ideas y experiencias con otras personas. Por otro lado, si lo que necesitamos es
transmitir alguna petición u orden a un computador, debemos aprender un lenguaje de
programación, ya que éste nos permitirá por medio de comandos transmitir órdenes
específicas al computador y de ésta manera sacar provecho del mismo.

Al igual que en todo el mundo existen diversos idiomas, también existen diversos lenguajes de
programación, cada uno cuenta con sus propias características, ventajas y desventajas. Si por
un lado tenemos al idioma español, inglés, francés, alemán, etc; por el lado de los lenguajes de

Modulo: Fundamentos de Programación Pag. 4


Programa: Programador .NET

programación tenemos a C#, Visual Basic, C++, Java, Cobol, Fortran, Pascal, PHP,
Action Script, etc.

Cada idioma en el mundo tiene sus propias reglas, esto determina que tan fácil o difícil puede
ser aprender un nuevo idioma. Los lenguajes de programación no son ajenos a éste detalle, por
ejemplo el lenguaje de programación Java es más estricto que Visual Basic .Net, ya que el
primero distingue mayúsculas y minúsculas, entre otras características.

Anteriormente se describió al paradigma orientado a objetos, pues bien Visual Basic .Net,
C# .Net y Java son ejemplos clásicos de lenguajes orientados a objetos.

Debemos recordar que en el mundo existen centenares de lenguajes de programación, algunos


más populares que otros a nivel mundial.

VISUAL BASIC .Net

VISUAL BASIC .Net es un lenguaje de programación potente y orientado a objetos. Con él


podemos implementar aplicaciones pequeñas, medianas o complejas. Un punto importante a
considerar es que Visual Basic .Net es diferente de Visual Basic, éste último es una
extensión de un lenguaje conocido como BASIC (Beginner’s All – Purpose Symbolic Intruction
Code), pero Visual Basic .Net no es una extensión de BASIC ni de Visual Basic, sino que ha sido
remodelado en su mayor parte para crear un lenguaje que sintácticamente es muy parecido a
su antecesor pero diferente en funcionamiento interno.

El presente material está orientado a aprender programación utilizando Visual Basic .Net, que
es sencillo, amigable y potente.

Algunas bibliografías físicas y digitales mencionan que Visual Basic .Net es la evolución
de Visual Basic.

Entorno de desarrollo integrado

Conocido también como IDE (Integrated Development Environment), es un software que


provee un conjunto de herramientas para crear programas informáticos en uno o
varios lenguajes de programación.

Algunos de los IDEs más conocidos son:

 Visual Studio, permite crear aplicaciones utilizando C# .Net, Visual Basic .Net, C++ y F#)

 NetBeans, permite crear aplicaciones utilizando Java, C, C++, PHP y otros.

 Eclipse, permite crear aplicaciones utilizando Java, C, C++ y otros.

Modulo: Fundamentos de Programación Pag. 5


Programa: Programador .NET

Una característica del lenguaje de programación Java es que se puede utilizar en diversos
IDEs como NetBeans, Eclipse, JCreator, JBuilder, etc; algo parecido a lo que sucede con el
lenguaje de programación PHP.

Visual Studio 2012

Visual Studio es un entorno de desarrollo integrado (IDE) muy potente que facilita y agiliza
el desarrollo de aplicaciones. Funciona bajo plataforma Windows y soporta múltiples
lenguajes de programación como Visual Basic .Net, C# .Net, C++ y J#.

Visual Studio permite a los desarrolladores crear diversos tipos de aplicaciones de acuerdo a la
necesidad de información que se requiera. A continuación se muestra una breve descripción de
los principales tipos de aplicaciones que pueden implementarse con esta potente herramienta:

 Aplicaciones de consola
Aplicaciones basadas en la veterana consola de Windows, estas aplicaciones se caracterizan
por mostrar una interfaz bastante simple y quizás limitada, pero la gran ventaja de este
tipo de aplicaciones es que generalmente requiere pocos recursos para su funcionamiento.

 Aplicaciones de formularios Windows


Son aplicaciones basadas en ventanas o formularios, a diferencia de las aplicaciones de
consola son más atractivas visualmente ya que tienen la capacidad de implementar dentro
de su interfaz una gran variedad de controles que combinan imágenes, colores,
cursores personalizados, diversos tipos de fuente, etc.

 Aplicaciones WPF (Windows Presentation Foundation)


Éste tipo de aplicaciones tiene un contenido mucho más atractivo que una aplicación
Windows, además de ser catalogada como la nueva generación de aplicaciones, permite
implementar formularios que incluyan animaciones y efectos que dan como resultado
una aplicación bastante rica en contenido visual.

 Aplicaciones Web
Son aplicaciones orientadas a funcionar sobre Internet, un ejemplo muy clásico es el portal
de Amazon http://www.amazon.com/ o Facebook http://www.facebook.com/, ya que
guardan gran cantidad de información en una base de datos que es consultada y
modificada desde formularios Web. Por ejemplo, cada foto que subimos a nuestra cuenta
de Facebook es alojada dentro de una base de datos, incluyendo los comentarios y las
etiquetas que podrían agregarse, de ésta manera nuestra información puede ser consultada
en cualquier momento desde cualquier computador que cuente con conexión a Internet y
desde cualquier parte del mundo.

Modulo: Fundamentos de Programación Pag. 6


Programa: Programador .NET

La mayoría de sitios Web en internet que se usan para comercio electrónico vienen a ser
ejemplos sencillos de aplicaciones Web.

 Bibliotecas de clases
A medida que vamos implementando aplicaciones, vamos generando código fuente que
sería útil en el desarrollo de aplicaciones futuras. Una biblioteca de clases nos permite
empaquetar código en un archivo con extensión dll y de esa manera reutilizarlo
posteriormente ahorrando así tiempo y esfuerzo.

Éste tipo de proyecto es también utilizado para implementar soluciones con capas, el
concepto de “clase” y “capas” lo abordaremos más adelante.

 Aplicaciones Silverlight
Silverlight está orientado a la creación de aplicaciones Web ricas en contenido visual,
permite el trabajo con gráficos vectoriales, reproducción de video, animaciones, etc.

Para conocer los tipos de proyectos que podemos crear con Visual Studio 2012, el primer paso
será abrir el programa, para ello hacemos click en el botón inicio, luego click en “All
programs” y visualizaremos la carpeta perteneciente a Visual Studio 2012 tal como muestra la
Figura N° 1. Para iniciar el programa hacemos click en Visual Studio 2012.

Figura N° 1

Inmediatamente se mostrará la pantalla de bienvenida del programa, que contiene la versión y


edición instalada (para el presente material contamos con la versión 2012 en edición Ultimate)
tal como se muestra en la Figura N° 2.

Modulo: Fundamentos de Programación Pag. 7


Programa: Programador .NET

Figura N° 2

Luego de unos instantes que tarda Visual Studio en cargar sus componentes internos, se
mostrará la ventana de inicio del programa, de manera muy similar a la siguiente figura:

Figura N° 3

Modulo: Fundamentos de Programación Pag. 8


Programa: Programador .NET

Barra de título
Si algún proyecto o solución se encuentra abierto entonces se muestra su nombre
1 respectivo, en caso contrario se muestra el texto Start Page - Microsoft Visual
Studio.
Barra de menú
Comprende lo que se muestra desde File hasta Help. En ésta sección podemos
2 encontrar una serie de opciones disponibles para las soluciones que estemos
trabajando.
Barra de herramientas
3 Contiene los principales comandos utilizados durante la implementación de
aplicaciones.
Proyectos recientes
4 Una lista con los proyectos o soluciones que se estuvieron trabajando
recientemente.

El siguiente paso es crear un proyecto, para ello podemos optar por una de las siguientes
formas:

Forma 1

Click en el enlace New Project ubicado en la zona central izquierda de la pantalla de inicio del
programa.

Figura N° 4

Forma 2

Modulo: Fundamentos de Programación Pag. 9


Programa: Programador .NET

Click en el menú File – opción New – opción Project

Figura N° 5

Siguiendo cualquiera de las formas anteriormente indicadas, se mostrará la ventana donde


figuran los tipos de proyectos que podemos crear con Visual Studio 2012.

Figura N° 6

.NET Framework

Modulo: Fundamentos de Programación Pag. 10


Programa: Programador .NET

En términos sencillos, viene a ser una biblioteca de recursos que permite la compilación y
ejecución de aplicaciones bajo entorno Windows. Es un componente esencial para el
desarrollo de aplicaciones en cualquiera de los lenguajes que proporciona Visual Studio.

El .NET Framework viene incluido en el instalador de Visual Studio 2012, sin embargo debemos
saber que Windows 8 también incluye por defecto el .NET Framework 4.5, así como Windows 7
incluye el .NET Framework 3.5 SP1. Por el lado de los sistemas operativos de servidor, Windows
Server 2012 incluye por defecto el .NET Framework 4.5.

Temas sugeridos de investigación

Para complementar el aprendizaje de ésta primera sesión introductoria, se sugiere al lector realizar
las siguientes actividades:

1. Visitar el sitio web de la Academia Virtual de Microsoft (Microsoft Virtual


Academy)

Microsoft Virtual Academy es un sitio web que promueve el aprendizaje gratuito de


tecnologías Microsoft.

2. Investigar definiciones y términos relacionados a algoritmos.

Conceptos como algoritmo, pseudocódigo, diagramas de flujo y diagramas N/S (éstos 3


últimos vienen a ser medios para representar algoritmos)

Asignación domiciliaria

1. Elaborar una lista de diferencias entre Programador Junior, Programador Semi Senior
y Programador Senior.

2. Elaborar una línea de tiempo acerca de las versiones de Visual Studio.

3. Describir brevemente algunas de las Certificaciones Microsoft relacionadas a Visual


Studio (Preferentemente sobre las últimas versiones).

4. Elaborar un resumen sobre las principales características de cada edición de Visual


Studio 2012.

Autoevaluación

Modulo: Fundamentos de Programación Pag. 11


Programa: Programador .NET

1. ¿Por qué se cuenta con varias ediciones de Visual Studio 2012?

2. ¿Qué tan importante es el .Net Framework?

3. ¿Por qué se escogió el día 256 del año para celebrar el día del programador?

4. Si queremos realizar un pequeño programa utilizando Visual Basic .Net como lenguaje de
programación, ¿Podremos implementarla sin hacer uso de Visual Studio?

5. ¿Cuál es el paradigma de programación más utilizado actualmente?

6. Describa brevemente con sus propias palabras los tipos de aplicaciones (únicamente
los detallados en la presente sesión) que se pueden construir con Visual Studio 2012.

7. ¿Cuáles son las ventajas de contar con un sistema de información en una empresa?

8. Elabore una lista con un mínimo de 10 lenguajes de programación.

9. ¿Cuál es la importancia de utilizar un IDE?

10. ¿Cuál es la última versión de Visual Studio? ¿En qué fecha fue lanzada al mercado?

Modulo: Fundamentos de Programación Pag. 12


Programa: Programador .NET

SESIÓN

Conceptos básicos
De Programación
2

AL FINALIZAR LA PRESENTE SESIÓN, EL PARTICIPANTE ESTARÁ EN LA CAPACIDAD DE:

 Reconocer las partes principales del entorno de Visual Studio 2010.


 Identificar los principales controles en una aplicación.
 Crear y utilizar variables y constantes.

TEMAS:

 Entorno de trabajo de Visual Studio 2012


 Controles básicos
 Eventos
 Variables y constantes
 Tipos de datos

Modulo: Fundamentos de Programación Pag. 13


Programa: Programador .NET

Entorno de trabajo de Visual Studio 2012


Durante el primer tramo del presente módulo, aprenderemos a programar utilizando Visual
Basic .Net, conoceremos sus características, sintaxis, ventajas y desventajas. Para iniciar en
ésta aventura, lo primero que haremos es crear un proyecto, para ello hacemos click en el
menú File, seleccionamos la opción New y luego Project. Inmediatamente Visual Studio
muestra una lista con los tipos de proyectos disponibles, de esa lista seleccionamos Windows
Forms Application, en la parte inferior ingresaremos el nombre del proyecto (sección
name) que preferentemente debe guardar relación con el tipo de aplicación que vamos a
implementar, luego seleccionamos una ubicación en el disco duro para alojar el proyecto
por medio del botón Browse, y opcionalmente agregamos un nombre a la solución (sección
Solution name), más adelante tocaremos la diferencia entre “Nombre” y “Nombre de la
solución”, por ahora podemos utilizar un mismo nombre para ambos casos.

Figura N° 7

Los datos que debemos ingresar en cada una de las casillas son:

 Name: DemostracionInicial
 Location: Cualquier ubicación en el disco duro

 Solution name: DemostracionInicial

Se recomienda establecer el Nombre del proyecto sin considerar espacios en blanco. Si


desea utilizar una separación puede usar el carácter “_”. Por ejemplo, en vez de utilizar
“PrimerPrograma” como nombre del proyecto, pudimos haber usado “Primer_Programa”.

Una vez que ingresamos los datos correctamente hacemos click en el botón OK o presionamos
la tecla Intro. Luego Visual Studio nos mostrará su interfaz principal de trabajo, que está
caracterizada por utilizar un estilo metro (de manera similar a Windows 8).

Modulo: Fundamentos de Programación Pag. 14


Programa: Programador .NET

Figura N° 8

Partes principales de Visual Studio

Como todo IDE, Visual Studio ofrece herramientas que facilitan el desarrollo de software,
haciendo de éste proceso una tarea agradable y sencilla. Las partes principales que ofrece el
entorno de trabajo de Visual Studio son:

 Explorador de soluciones

Muestra una lista de todos los proyectos que


forman parte de nuestra solución,
adicionalmente, cada proyecto puede contener
sus propios elementos como formularios,
carpetas, módulos, clases, referencias, informes,
archivos de texto, etc.
Figura N° 9

Al inicio se muestra un formulario (Form1.vb), pero este panel crece considerablemente


mientras vamos avanzando con el desarrollo de la aplicación, es decir, agregando nuevos
formularios, módulos, clases, carpetas, entre otros elementos que colaboran entre sí para
cubrir un objetivo.

Modulo: Fundamentos de Programación Pag. 15


Programa: Programador .NET

 Cuadro de herramientas

A medida que vamos implementando la interfaz gráfica


de nuestra aplicación, usaremos una serie de controles
para capturar o mostrar información al usuario,
estos controles se encuentran desplegados a lo largo
del cuadro de herramientas. Cada control tiene una
característica especial que lo hace diferente del
resto, por ejemplo si lo que queremos es capturar el
nombre, el apellido y la edad de una persona, podemos
utilizar 2 TextBox (Cajas de texto para ingresar
caracteres), una para el nombre y otra para el apellido
de la persona, y finalmente un NumericUpDown
(Control especializado para el ingreso de números) para
capturar su edad.

El cuadro de herramientas se encuentra dividido en


categorías (All Windows Forms, Common Controls,
Containers, Menus and Toolbars, Data, etc) que alberga
una determinada cantidad de controles que se
relacionan con el nombre de la categoría.

Figura N° 10

 Panel propiedades Muestra las características del objeto


seleccionado. Por ejemplo, si se selecciona el
formulario que aparece en la parte central (con un
solo click en la barra de título o en una zona vacía),
el panel propiedades mostrará todas las
características del formulario seleccionado como
por ejemplo BackColor (Color de fondo), Text
(Texto que se muestra en la barra de título), Size
(Ancho y alto del formulario), Opacity (Nivel de
transparencia del formulario), FormBorderStyle
Figura N° 11 (Apariencia del borde y la barra de título del
formulario), Name (Nombre de identificación del
formulario), etc.

Modulo: Fundamentos de Programación Pag. 16


Programa: Programador .NET

 Área de trabajo
Está conformada por la vista donde apreciamos el diseño del formulario, en él
podemos ir agregando controles (aquellos elementos que se encuentran en el cuadro de
herramientas mostrado en la Figura N° 10) para capturar o mostrar datos al usuario.

Para dibujar algún control podemos seguir uno de los


siguientes procedimientos:

Primera forma:

 Doble click en el control que se desea agregar


al formulario, por ejemplo, si hacemos doble click
en el control llamado TextBox, doble click en el
control llamado Button y doble click en el control
llamado Label, obtendremos el resultado
mostrado en la Figura N° 12.
Figura N° 12

Si deseamos eliminar un control, lo único que tenemos que hacer es seleccionarlo con un click y
luego presionar el botón Suprimir.

Segunda forma:

 Arrastrar el control deseado a una posición determinada en el formulario.

Figura N° 13

Modulo: Fundamentos de Programación Pag. 17


Programa: Programador .NET

Tercera forma:

 Un click sobre el control deseado en el cuadro de herramientas, inmediatamente el


cursor adopta una forma similar a una cruz, luego dibujamos el control en el formulario
(muy similar a dibujar una forma en Microsoft Word o Paint).

Figura N° 14

Luego de dibujar los controles deseados con cualquiera de las formas mostradas anteriormente
podemos reubicarlos arrastrándolos con el puntero del mouse en cualquier posición dentro del
formulario.

Controles básicos
Revisión de los principales controles

Los formularios están compuestos de diversos controles para gestionar datos, durante el
desarrollo del presente módulo conoceremos una serie de controles que nos van a permitir
elaborar adecuadas interfaces para interactuar con el usuario.

La siguiente tabla detalla algunos controles básicos para crear un programa sencillo:

Modulo: Fundamentos de Programación Pag. 18


Programa: Programador .NET

Control Prefijo Descripción breve


TextBox txt Permite el ingreso de un conjunto de caracteres (número,
letras o símbolos), es esencial para el proceso de captura de
datos. Por ejemplo, se puede utilizar varios controles Textbox
para capturar datos básicos de un alumno como el nombre,
apellido paterno, apellido materno, correo electrónico,
observaciones, etc.
NumericUpDown nud Es un control preparado para el ingreso de valores
numéricos, ya sean enteros o decimales.
Label lbl Es una etiqueta que comúnmente se usa para mostrar títulos
o algún contenido específico.
Button btn Generalmente se realiza un click sobre éste control para
desencadenar acciones, por ejemplo: Enviar un correo
electrónico, anular una boleta de venta, matricular a un
alumno, imprimir un informe, etc.
ListBox lst Permite manejar una colección de elementos.
ComboBox cmb De manera similar a la anterior, permite manejar colecciones de
elementos pero su forma gráfica es diferente a la de un ListBox,
ya que se presenta plegado.
RadioButton rb Permite seleccionar una alternativa dentro de un grupo de
opciones, se puede utilizar por ejemplo para capturar el sexo de
una persona, las opciones presentadas serían Masculino y
Femenino, y el usuario podría seleccionar únicamente una de
ellas.
CheckBox chb Similar al anterior pero con la diferencia de que permite
seleccionar todas las opciones presentadas, quizá ninguna de
ellas o alguna(s) de ellas.

Cada control en nuestro formulario debe tener asignado un nombre único para su correcta
identificación, en dicho nombre se sugiere agregar un prefijo que haga referencia a la
naturaleza del control, por ejemplo, si agregamos un TextBox para capturar el correo
electrónico de un cliente, el nombre más adecuado a asignarle es txtCorreoElectronico, en caso
de que necesitemos capturar la edad del cliente, podemos utilizar un NumericUpDown (porque la
edad es un valor netamente numérico) cuyo nombre adecuado es nudEdad.

Para asignar el nombre a cada control, primero debemos seleccionar el control con un solo click,
luego cambiar el valor incluido en la propiedad name del panel propiedades.

Agregar un prefijo al nombre de un control es considerada una buena práctica de


programación, no solamente se recomienda utilizarlo en Visual Basic .Net, sino también
en cualquier lenguaje de programación y en cualquier tipo de aplicación.

Modulo: Fundamentos de Programación Pag. 19


Programa: Programador .NET

Figura N° 15

El nombre de un control no puede incluir espacios en blanco, ni iniciar con un número o


algunos símbolos (@, #, $, entre otros), ni ser una palabra reservada (palabra que
pertenece al lenguaje de programación Visual Basic .Net como por ejemplo Sub, End,
Private, Class, Public, etc).

Cuando se utiliza controles como el Label, Button, RadioButton, CheckBox y algunos otros, se
muestra un texto en el interior de cada control como Label1 o Button1 (Si se dibuja varios
controles de tipo Label entonces se establece en el texto de cada control Label1, Label2, Label3 y
así sucesivamente), para modificar éste texto podemos utilizar la propiedad Text ubicada en el
panel propiedades.

Modulo: Fundamentos de Programación Pag. 20


Programa: Programador .NET

Figura N° 16

Laboratorio N° 1

Ejercicio N° 1:

Para aplicar lo aprendido hasta el momento, vamos a diseñar un formulario básico de registro de
datos de acuerdo a lo que se detalla a continuación:

a) Crear un proyecto con el nombre LAB01_FundProg_SS02 y guardarlo en una carpeta


llamada Laboratorio 1 que se debe ubicar en el disco duro.

b) En el único formulario del proyecto, elaborar la siguiente interfaz para el registro de personal.

Figura N° 17

Modulo: Fundamentos de Programación Pag. 21


Programa: Programador .NET

Recuerde que a cada control se le debe asignar el nombre correcto (incluyendo los prefijos vistos
anteriormente) tal y como se muestra en la siguiente tabla:

Nombre de control Tipo de control Descripción


lblNombres Label Etiqueta para indicar el nombre
txtNombres TextBox Caja de texto para ingresar el nombre de una
persona
lblApellidoPaterno Label Etiqueta para indicar el apellido paterno
txtApellidoPaterno TextBox Caja de texto para ingresar el apellido paterno de
una persona
lblApellidoMaterno Label Etiqueta para indicar el apellido materno
txtApellidoMaterno TextBox Caja de texto para ingresar el apellido materno de
una persona
lblSexo Label Etiqueta para indicar el sexo
rbMasculino RadioButton Representa a la opción masculino
rbFemenino RadioButton Representa a la opción femenino
lblEdad Label Etiqueta para indicar la edad
nudEdad NumericUpDown Control para el ingreso de edad
lblObservaciones Label Etiqueta para indicar las observaciones
txtObservaciones TextBox Caja de texto para ingresar observaciones de una
persona
btnGuardar Button Almacena los datos ingresados
btnCerrar Button Cierra el formulario de registro

Ejercicio N° 2

Ahora vamos a mejorar la presentación de nuestro formulario, agregaremos una imagen que
puede representar al logo de la empresa, un título resaltante al formulario y convertir el TextBox
perteneciente a las observaciones en una caja de texto de múltiples líneas ya que las
observaciones ingresadas pueden ser algo extensas.

a) Para agregar una imagen agregamos un control PictureBox en la parte superior derecha del
formulario.

Modulo: Fundamentos de Programación Pag. 22


Programa: Programador .NET

Figura N° 18

Una vez agregado, vamos a otorgarle el nombre pbLogo (el prefijo del PictureBox es “pb”)
dentro de la propiedad name del Panel Propiedades.

b) Para mostrar una imagen vamos a dar un click a su etiqueta inteligente, que es aquella flecha
que apunta hacia la derecha en la parte superior del control, tal y como muestra la Figura N°
19. Debemos considerar que para utilizar la etiqueta inteligente de un determinado control,
primero debemos seleccionarlo.

Figura N° 19

Luego hacemos click en el enlace Choose Image.

Modulo: Fundamentos de Programación Pag. 23


Programa: Programador .NET

Figura N° 20

Ahora un click al botón Importar

Figura N° 21

Modulo: Fundamentos de Programación Pag. 24


Programa: Programador .NET

Se mostrará una ventana de búsqueda para ubicar la imagen deseada, para éste caso
podemos seleccionar cualquier imagen disponible en el disco duro, que luego se mostrará en la
lista ubicada en la parte superior al botón Importar, tal y como se muestra en la Figura N°
22.

Figura N° 22

Finalmente hacemos click en el botón Aceptar y obtenemos el siguiente resultado:

Figura N° 23

Modulo: Fundamentos de Programación Pag. 25


Programa: Programador .NET

Podemos observar en la figura N° 23 que la imagen seleccionada sobrepasa las dimensiones


del PictureBox que hemos agregado, para solucionar el problema tenemos dos opciones: La
primera es aumentar las dimensiones del PictureBox por medio de los tiradores (las 8
circunferencias ubicadas en los vértices y lados del PictureBox), y la segunda solución es
acoplar la imagen incrustada al tamaño del control, para esto nuevamente hacemos click en
la etiqueta inteligente, desplegamos Modo de tamaño y seleccionamos la opción
StrechImage, tal y como se muestra en la Figura N° 24.

Figura N° 24

Finalmente obtenemos el siguiente resultado:

Figura N° 25

La etiqueta inteligente de un control (también denominado SmartTag) es una


característica que se encuentra en la mayoría de controles que proporciona Visual
Studio, y nos permite acceder a las propiedades más comunes de cada control.

c) Ahora vamos a agregar un título a nuestro formulario, para ello dibujamos un Label en el
encabezado tal y como se muestra en la Figura N° 26.

Modulo: Fundamentos de Programación Pag. 26


Programa: Programador .NET

Figura N° 26

Seleccionamos el Label que acabamos de agregar y le asignamos las propiedades mostradas


en la siguiente tabla:

Propiedad Valor Descripción


Text Registro de personal Indica el texto que se muestra dentro del control
Se utiliza para asignar un determinado color de
ForeColor Blue
fuente
Define el formato de fuente del control, como por
Font Tahoma, 16pt ejemplo tipo y tamaño de fuente, negrita, cursiva
subrayado, etc.

Si queremos ubicar el Label exactamente al centro del formulario, debemos seleccionar el


control y luego hacer un click en el menú Format, opción Center in form y luego
Horizontalmente, de esta manera obtenemos un resultado similar al siguiente:

Figura N° 27

Modulo: Fundamentos de Programación Pag. 27


Programa: Programador .NET

d) Como toque final vamos a asignar algunas propiedades adicionales al formulario para mejorar
su presentación, para esto seleccionamos el formulario (con un click en la barra de título del
mismo) y nos ubicamos en el panel propiedades para asignar los valores establecidos de
acuerdo a la siguiente tabla:

Propiedad Valor Descripción


BackColor White Color de fondo del formulario
FormBorderStyle FixedToolWindow Estilo de borde del formulario
Texto que se muestra en la barra de título del
Text Primer Programa
formulario
Posición en que se muestra el formulario al
StartPosition CenterScreen
ejecutarse
Opacity 90% Nivel de transparencia del formlario

Eventos
Un evento es una reacción de un control ante alguna acción que realiza el usuario. Visual
Studio cuenta con una gran cantidad de eventos por cada tipo de control.

Cuando interactuamos con Windows o cualquier otro sistema operativo utilizamos


involuntariamente una serie de eventos, por ejemplo, cuando ubicamos el puntero del mouse
sobre un archivo en el explorador de Windows se muestra una descripción breve sobre el
tamaño del mismo y su fecha de modificación, pues bien, en ese momento se produjo el evento
MouseMove, que ocurre cuando el puntero del mouse se ubica (no se refiere a un click o
doble click, sino simplemente a ubicar el puntero por encima del elemento) sobre un elemento.
Otro caso se produce cuando utilizamos el cuadro “Buscar programas y archivos” o
“Search Programs and files” que se muestra al desplegar el botón inicio, mientras vamos
escribiendo algún texto en su interior, automáticamente se filtran las coincidencias de acuerdo
a lo que hemos escrito, en ese momento se produce el evento TextChange, que se produce
cuando se modifica el contenido de una caja de texto.

En fin, cuando trabajamos con cualquier sistema operativo siempre estamos desencadenando
eventos.

Para aplicar de manera práctica los conceptos anteriormente mencionados, vamos a crear un
nuevo proyecto con el nombre DEMO01_FundProg_SS02, luego en el único formulario que
se nos muestra vamos a dibujar un botón tal y como muestra la siguiente figura:

Modulo: Fundamentos de Programación Pag. 28


Programa: Programador .NET

Figura N° 28

Ahora vamos otorgar las siguientes propiedades:

Propiedad Valor
Name btnAceptar
Text Aceptar
Para acceder a los eventos del botón, vamos a seleccionar el botón btnAceptar y luego
hacemos click al icono en forma de rayo que se encuentra en la cabecera del panel
propiedades.

Figura N° 29

A continuación se muestra una lista de eventos pertenecientes al control seleccionado (en este
caso el botón btnAceptar), debemos comprender que la cantidad de eventos puede ser
diferente en cada control. De la lista que tenemos vamos a ubicar el evento MouseMove y
luego le vamos a dar doble click en su definición.

Modulo: Fundamentos de Programación Pag. 29


Programa: Programador .NET

Figura N° 30

A continuación se mostrará la ventana de código con el evento MouseMove del btnAceptar.


Éste evento se produce cuando el usuario ubica el mouse por encima del área que ocupa el
botón, para hacer una pequeña prueba, vamos a mostrar un mensaje al usuario por medio del
comando MsgBox, tal y como muestra la figura N° 31.

Figura N° 31

Vamos a ejecutar la aplicación presionando F5 o haciendo click en el botón Iniciar


Depuración ubicado en la barra de herramientas. Cuando se muestra el formulario, podemos
ubicar el puntero del mouse dentro del área del botón Aceptar e inmediatamente se nos
mostrará el mensaje “Cuidado que me tocaste”, con esto comprobamos que evento
MouseMove se produce cada vez que se ubica el puntero del mouse por encima del área que
ocupa un control.

Variables y constantes

Modulo: Fundamentos de Programación Pag. 30


Programa: Programador .NET

Cualquier aplicación o sistema de información maneja datos como materia prima para brindar
resultados, para poder capturarlos y luego procesarlos se hace uso de variables y constantes,
éstas nos permiten tomar los datos ingresados por los usuarios y luego manipularlos
internamente para obtener resultados.

Variables

Una variable almacena un valor, que puede ser cualquier dato del mundo real como por
ejemplo el nombre completo de un alumno, la edad de un cliente, el tipo de sangre de un
paciente, la fecha de inscripción de un participante, el DNI de un pasajero, etc. Se denomina
variable porque si valor puede cambiar a lo largo de la ejecución del programa.

Para crear una variable en Visual Basic .Net se hace uso de la palabra Dim, seguido del nombre
de la variable (conocido también como identificador) y el tipo de dato respectivo (concepto que
veremos más adelante).

Ejemplo:

El tipo de dato Byte se utiliza para cantidad numéricas pequeñas entre 0 y 255, por lo tanto es
óptimo para representar la edad de una persona. Además, debemos tener en cuenta que el
valor inicial de toda variable con tipo de dato numérico es cero.

El subrayado verde indica que la variable midEdad no se ha utilizado aún, Visual Studio advierte
sobre variables sin utilizar ya que cada variable creada ocupa un lugar en memoria.

Con respecto al nombre de una variable, debemos recordar las siguientes reglas:

 No debe incluir espacios en blanco.

 No debe iniciar con números, y algunos símbolos (@, #, $, entre otros).

 No se puede usar una palabra reservada, como por ejemplo Public, Class, Private, Sub,
Dim, etc.

Constantes

Una constante tiene las mismas características que una variable, con la única diferencia de que
al momento de declararlas se les asigna un valor que no puede ser modificado durante la
ejecución del programa.

Ejemplo:

Modulo: Fundamentos de Programación Pag. 31


Programa: Programador .NET

Al igual que las variables, las constantes también requieren de un tipo de dato, el tipo de dato
Single representa a números decimales de precisión (cantidad de decimales) baja.
Adicionalmente podemos observar que la constante requiere de un valor inicial.

En caso de que no se asigne un valor inicial a una constante, se mostrará un subrayado


de color azul en el nombre de la variable (tipoDeCambio), esto indica que se ha
detectado un error. Por otro lado, si el subrayado es verde (como el caso de la variable)
indica una advertencia.

Tipos de datos
Ser recomienda que las variables y constantes que utilizamos en nuestros programas estén
acompañadas de un tipo de dato respectivo, en el apartado anterior abordamos ligeramente los
tipos de datos Byte y Single, el primero de ellos se usa para número enteros pequeños (ya que
su rango es desde 0 a 255) y el segundo se usa para números decimales con precisión
(cantidad de decimales) simple. Sin embargo, Visual Basic .Net nos ofrece una amplia variedad
de tipos de datos que podemos utilizar en nuestras aplicaciones.

Tipos de datos numéricos

La siguiente tabla muestra una lista de los principales tipos de datos para representar números.

Tipo de
Almacenamiento Intervalo
dato
Byte 1 byte 0 a 255
SByte 1 byte -128 a 127

Números enteros
Short 2 bytes -32768 a 32767
UShort 2 bytes 0 a 65535
Integer 4 bytes -2.147.483.648 a 2.147.483.647
UInteger 4 bytes 0 a 4.294.967.295
-9.223.372.036.854.775.808 a
Long 8 bytes
9.223.372.036.854.775.807
ULong 8 bytes 0 a 18.446.744.073.709.551.615
-3,4028235E+38 a -1,401298E-45 † para los
Números con decimales (Números de

valores negativos;
Single 4 bytes
1,401298E-45 a 3,4028235E+38 † para los
valores positivos
-1,79769313486231570E+308 a -
punto flotante)

4,94065645841246544E-324 † para los valores


negativos;
Double 8 bytes
4,94065645841246544E-324 a
1,79769313486231570E+308 † para los valores
positivos
0 a +/-
79.228.162.514.264.337.593.543.950.335 (+/-
Decimal 16 bytes
7,9... E+28) † sin separador decimal; 0 a +/-
7,9228162514264337593543950335 con 28

Modulo: Fundamentos de Programación Pag. 32


Programa: Programador .NET

posiciones a la derecha del decimal;


el número distinto de cero más pequeño es +/-
0,0000000000000000000000000001 (+/-1E-
28) †

Tipos de datos cadena

Se denomina cadena a los datos que son representados mediante texto, por ejemplo: Los
nombres, apellidos, correo electrónico, sexo, tipo de sangre, etc. Una cadena está conformada
por un conjunto de caracteres, y un caracter puede ser una letra, un número o un símbolo. Por
ejemplo el nombre “Avril“ viene a ser una cadena de caracteres tipo letra, mientras que un
correo electrónico como avrilLynda2013@hotmail.com viene a ser una cadena de caracteres de
tipo letra, número y símbolo.

La siguiente tabla muestra los tipos de datos para representar cadenas:

Tipo de dato Almacenamiento Intervalo


Char 2 bytes 0 a 65535
En función de la
0 a 2.000 millones de caracteres Unicode
String plataforma de
aprox.
implementación

El tipo de dato Char se caracteriza por almacenar únicamente un caracter, mientras que el tipo
de datos String puede almacenar una serie de caracteres.

Tipos de dato lógico y fecha

Para representar una fecha se puede utilizar el siguiente tipo de dato:

Tipo de dato Almacenamiento Intervalo


0:00:00 (medianoche) del 1 de enero de
Date 8 bytes 0001 a 11:59:59 p.m. del 31 de diciembre de
9999

El tipo de dato lógico se caracteriza por almacenar únicamente dos posibles valores, Verdadero
o Falso, algunos lo conocen como el tipo de dato booleano.

Tipo de dato Almacenamiento Intervalo


Boolean En función de la plataforma de implementación True o False

Recordemos que la asignación del tipo de dato correcto es una buena práctica de
programación, por ejemplo, como vimos anteriormente si deseamos capturar la edad de
una persona en una variable, lo más recomendable es utilizar un tipo de dato Byte ya que
se ajusta de mejor forma al contenido de la edad, por otro lado, un programa que otorga
un tipo de dato Integer a una edad, también funciona, pero no es eficiente porque en un
sistema de información no vamos a trabajar con 1 o 2 variables sino con muchas, en ese
momento es donde podemos observar el real rendimiento de una aplicación.

Modulo: Fundamentos de Programación Pag. 33


Programa: Programador .NET

Laboratorio N° 2

Vamos a desarrollar un ejercicio para aplicar todo lo que hemos estado aprendiendo a lo largo
del curso, lo primero que haremos será crear un proyecto de tipo Windows Forms
Application con el nombre LAB02_FundProg_SS02 y lo almacenaremos en alguna carpeta
del disco duro, luego de ello vamos a dibujar el siguiente formulario:

Figura N° 32

Luego asignamos las siguientes propiedades a cada control:

Nombre de control Tipo de control Propiedad : valor Descripción

Font: Tahoma, 9pt Cambia el tipo de fuente


lblEdadEnAnios Label Establece el color de fuente
ForeColor: Blue
a azul
Font: Tahoma, 9pt Cambia el tipo de fuente
Minimum: 0 Valor mínimo permitido
Maximum: 100 Valor máximo permitido
nudEdad NumericUpDown Value: 18 Valor mostrado por defecto
Unidades para el
Increment: 2 incremento o decremento
del control
Font: Tahoma, 9pt Cambia el tipo de fuente
lblEdadEnMeses Label Establece el color de fuente
ForeColor: Red
a azul
Font: Tahoma, 9pt Cambia el tipo de fuente
Establece que el contenido
txtEdadEnMeses TextBox
Readonly: True del TextBox en modo Sólo
lectura
Texto que se muestra en el
btnCalcular Button Text: Calcular
botón
Texto que se muestra en el
btnCerrar Button Text: Cerrar
botón

El siguiente paso es codificar en el evento Click del botón Cerrar, para ingresar al evento
podemos hacer un doble click en el botón cerrar, o sino hacemos un click en el botón cerrar

Modulo: Fundamentos de Programación Pag. 34


Programa: Programador .NET

y por medio del panel propiedades, sección eventos (para acceder a ésta sección hacer un
click en el icono del rayo ubicado en la zona inicial del panel propiedades), y luego ubicamos de
la lista el evento llamado Click, y finalmente le damos un doble Click.

Siguiendo cualquiera de los pasos mostrados anteriormente, obtendremos la siguiente forma:

Dentro del bloque donde el cursor parpadea vamos a escribir Close(), éste método se utiliza
para cerrar el formulario actual.

Ahora vamos a realizar un procedimiento similar con el botón aceptar, actualmente estamos en
la ventana de código, así que para visualizar nuevamente la interfaz (conocida también como
vista diseño) vamos a dar un click en la pestaña Form1.vb[Design]. Una vez realizado el
cambio vamos a dar doble click al botón Calcular para acceder a su evento Click.

Cuando se hace un doble click a cualquier control, por defecto se nos dirige a un evento
predeterminado, en caso de los botones es el evento Click. Si lo que queremos es
acceder a otro evento, lo podemos realizar por medio del panel propiedades sección
eventos.

Figura N° 33

Al hacer doble click en el botón Calcular, automáticamente Visual Studio nos muestra su evento
Click.

Ahora vamos a crear una variable llamada edadEnAnios para capturar la edad que ingresa el
usuario en nudEdad, debemos considerar que para obtener el valor ingresado en un
NumericUpDown se utiliza la propiedad Value.

Modulo: Fundamentos de Programación Pag. 35


Programa: Programador .NET

Ahora procederemos a calcular el equivalente en meses de la edad ingresada en años, el


resultado lo mostraremos en txtMeses, consideremos que para establecer u obtener el
contenido de un TextBox se utiliza la propiedad Text.

De esta manera concluimos con la codificación del programa, ahora procederemos a ejecutarlo
para realizar las pruebas respectivas. Para ejecutar el programa presionamos la tecla F5 o sino
hacemos click en el botón Start

Figura N° 34

Una vez ejecutado el programa, ingresamos una edad respectiva, luego hacemos click en el
botón Calcular y el programa muestra el equivalente en meses en txtEdadEnMeses.

Figura N° 35

Modulo: Fundamentos de Programación Pag. 36


Programa: Programador .NET

Temas sugeridos de investigación

Para conocer un poco más sobre fundamentos de programación, puede revisar el manual de Visual
Basic .Net del sitio Web de El Guille e ingresar al curso de programación de la Academia Virtual de
Microsoft:

3. Microsoft Virtual Academy

http://www.microsoftvirtualacademy.com/Home.aspx

4. Manual de programación en Visual Basic .Net de El Guille

http://www.elguille.info/NET/cursoVB.NET/default.aspx

Asignación domiciliaria

Desarrollar los siguientes ejercicios:

1. Desarrollar un programa que solicite un peso en kilogramos y muestre su equivalente en


gramos y miligramos.

2. Desarrollar un programa que permita calcular el área de un círculo.

3. Desarrollar un programa que permita ingresar la cantidad de productos adquiridos en


una tienda, y el precio unitario del producto. El programa debe mostrar el importe a
pagar, teniendo en cuenta que por promoción existe un descuento del 15.25%.

4. Desarrollar un programa que permita ingresar un monto en soles y muestre su


equivalente en dólares y euros.

5. Desarrollar un programa permite ingresar un tiempo en minutos y luego muestre su


equivalente en segundos, milisegundos, horas y días.

Modulo: Fundamentos de Programación Pag. 37


Programa: Programador .NET

Autoevaluación

11. ¿Por qué debo asignar prefijos a los controles de un formulario?

12. ¿Qué es un número de punto flotante?

13. ¿Por qué existen tantos tipos de datos en Visual Basic .Net?

14. ¿Qué son las buenas prácticas de programación?

15. ¿Qué es un evento?

16. ¿Qué es una cadena?

17. ¿Qué indica el subrayado verde y azul en una línea de código?

18. ¿Cuáles son las reglas que debemos tomar en cuenta para asignar nombres a variables?

Modulo: Fundamentos de Programación Pag. 38


Programa: Programador .NET

SESIÓN

Funciones
Incorporadas
3

AL FINALIZAR LA PRESENTE SESIÓN, EL PARTICIPANTE ESTARÁ EN LA CAPACIDAD DE:

 Aplicar las principales librerías que tiene Visual Studio para el trabajo con operaciones
matemáticas, cadenas y fechas.

TEMAS:

 Visión general
 Funciones matemáticas
 Funciones de cadena
 Funciones de fecha

Modulo: Fundamentos de Programación Pag. 39


Programa: Programador .NET

Visión general
A menudo los sistemas de información requieren realizar diversos tipos de operaciones, ya sean
matemáticas, con texto (cadenas) o con fechas. De acuerdo al tipo de aplicación que estemos
desarrollando, estas operaciones pueden variar en complejidad, sea cual sea el caso Visual
Basic .Net nos provee las librerías necesarias para facilitar el cálculo de operaciones.

A continuación se muestra una tabla con algunas operaciones que se pueden presentar a la
hora de implementar aplicaciones.

Sistema Proceso Tipo


Sistema de control Operación
Redondear el promedio de dos notas a 2 decimales
de notas matemática
Sistema para Al registrar un paciente, generar su código uniendo
Operación con
control de su número de DNI, las tres primeras letras del
texto
pacientes nombre y las dos primeras letras de su apellido
Operación con
Sistema contable Emitir una alerta 7 días antes que termine cada mes
fechas

Funciones matemáticas
Para el trabajo con operaciones matemáticas, Visual Studio nos ofrece la librería Math, que
también está presente en versiones anteriores del mismo programa. Para acceder a esta
librería, lo único que debemos hacer es escribir Math seguido de un punto y luego el nombre
de la función matemática que se desee utilizar, a continuación se muestra un cuadro con las
operaciones más comunes de la librería Math.

Operación En Visual Basic .Net

Math.Pow(2,4)

√ Math.Sqrt(9)

Redondear 8.98871
Math.Round(8.98871,2)
a 2 decimales
Obtener el valor de
Math.PI
Pi
Obtener el valor
Math.Abs(-10)
absoluto de -10

Modulo: Fundamentos de Programación Pag. 40


Programa: Programador .NET

Funciones de cadena
Las funciones de cadena se pueden aplicar a cualquier elemento de tipo cadena (String), para
mostrar las distintas funciones de cadena, imaginemos que creamos una variable de tipo String
y le asignamos un valor inicial, tal y como muestra la siguiente línea:

Las variables de tipo String tienen vacío como valor inicial, pero en la segunda línea del código
anterior se le asigna a la variable miNombreCompleto el valor de “Mari Fernanda Casas
Zamudio”.

Recordemos que para asignar un valor de tipo cadena a una variable de tipo String,
debemos utilizar comillas dobles

A continuación se detallan las principales funciones de cadena:

Función Descripción Aplicación Resultado


Convierte una cadena a MARIA FERNANDA
ToUpper miNombreCompleto.ToUpper()
mayúsculas CASAS ZAMUDIO
Convierte una cadena a maria Fernanda
ToLower miNombreCompleto.ToLower()
minúsculas casas zamudio
Elimina espacios en el
Maria Fernanda
Trim inicio y final de una miNombreCompleto.Trim()
Casas Zamudio
cadena
Extrae cierta cantidad
de caracteres de una
cadena en base a una
posición (que inicia en
SubString miNombreCompleto.SubString(0,2) Ma
0 para el primer
carácter) y una
longitud (cantidad de
caracteres a obtener)
Retorna la cantidad de
Length caracteres de una miNombreCompleto.Length 28
cadena
Incluso se puede anidar algunas funciones de la siguiente manera:

Aplicación Resultado
miNombreCompleto.SubString(0,2).ToUpper() MA
miNombreCompleto.ToLower().SubString(7,4) erna
miNombreCompleto.ToLower().SubString(7,4).Length 4

Modulo: Fundamentos de Programación Pag. 41


Programa: Programador .NET

Funciones de fecha
De igual manera que las funciones de cadena, éste tipo de funciones de cadena se pueden
aplicar a cualquier elemento de tipo Date, esta vez vamos a crear una variable de tipo Date tal
y como se muestra a continuación:

Veamos las funciones de fecha más utilizadas:

Función Descripción Aplicación Resultado


Date Devuelve la fecha miFechaDeRegistro.Date 05/12/2013
Devuelve el número
Month miFechaDeRegistro.Month 12
de mes
Devuelve el número
Day miFechaDeRegistro.Day 5
de día
Hour Devuelve la hora miFechaDeRegistro.Hour
Minute Devuelve el minuto miFechaDeRegistro.Minute 25
Devuelve el número
DayOfWeek de día con respecto a miFechaDeRegistro.DayOfWeek 4
la semana
Devuelve el número
DayOfYear de día con respecto al miFechaDeRegistro.DayOfYear 339
año
Year Devuelve el año miFechaDeRegistro.Year 2013

Modulo: Fundamentos de Programación Pag. 42


Programa: Programador .NET

SESIÓN
Programación
Orientada a 4
objetos

AL FINALIZAR LA PRESENTE SESIÓN, EL PARTICIPANTE ESTARÁ EN LA CAPACIDAD DE:

 Identificar y describir las principales características de la Programación Orientada a Objetos


(POO)
 Conocer la razón por la cual se dice que un determinado lenguaje de programación es
orientado a objetos.

TEMAS:

 Visión general (Definiciones, clases y objetos)


 Principios de la POO
 Visual Studio y POO

Visión general

Modulo: Fundamentos de Programación Pag. 43


Programa: Programador .NET

Programación Orientada a Objetos es un paradigma que tuvo sus inicios en los años 80, pero
tuvieron que pasar 10 años para que se le otorgara la importancia respectiva. Su popularidad
radica en que su estilo de programación se asemeja mucho a la realidad.

Muchos lenguajes de programación modernos aplican éste paradigma para el desarrollo de


aplicaciones, entre ellos tenemos a Visual Basic .Net, C# .Net, Java, Action Script, Perl, PHP,
Power Builder, etc. A lo largo de todo el módulo aplicaremos en todo momento éste paradigma
muy reconocido a nivel mundial.

POO se basa en 2 conceptos fundamentales, clase y objeto, que detallaremos a continuación:

Clase

Permite representar cualquier elemento de la realidad, ya sea un individuo como un alumno,


libro, automóvil o un proceso como matrícula, venta, entre otros. Algunos autores definen a
una clase como un plantilla donde básicamente se definen 2 elementos:

 Propiedades

Vienen a ser características de una clase, también reciben el nombre alternativo de


atributos.

 Métodos

Vienen a ser acciones que puede realizar la clase, se les conoce también como operaciones
o comportamientos.

Veamos algunos ejemplos de ambos elementos:

Clase Propiedades Métodos

Color, número de placa, modelo, Acelerar, frenar, encender, cargar


Automóvil
marca, cantidad de puertas gasolina
Nombres, apellidos, código, fecha Matricular, pagar pensión, reservar
Alumno
de registro, estatura matrícula, actualizar datos
Lápiz Color, marca, modelo Escribir, borrar

Tanto las propiedades y métodos en conjunto reciben el nombre de miembros.

Objeto

Los objetos se crean a partir de una clase, es decir, la plantilla o molde es la clase y los
elementos que puedo crear a partir de dicho molde son los objetos.

Se dice que las clases son genéricas mientras que los objetos vienen a ser específicos, ya que
una clase ALUMNO puede incluir la propiedad NOMBRE, por ende un objeto de la clase

Modulo: Fundamentos de Programación Pag. 44


Programa: Programador .NET

ALUMNO incluirá la propiedad NOMBRE y adicionalmente un valor específico como por


ejemplo AMY.

Veamos a continuación un esquema gráfico para entender mejor la relación entre clases y
objetos:

Unicidad

Cada objeto es único, incluso si existiera otro objeto con los mismos valores específicos en sus
propiedades y tuviera los mismos métodos.

Ejemplo:

Ud. adquiere un lapicero punta fina color azul en marca Pilot, sin embargo su colega de trabajo
adquiere un lapicero con características similares (punta fina color azul en marca Pilot),
ambos lapiceros serán idénticos al momento de realizar la compra, sin embargo, son 2
objetos (que provienen de la clase LAPICERO) distintos por más que sus
características sean iguales.

Lo mismo sucede cuando dibujamos interfaces gráficas en Visual Studio, observemos


atentamente la siguiente imagen:

Modulo: Fundamentos de Programación Pag. 45


Programa: Programador .NET

Figura N° 36

Los 3 botones en realidad son 3 objetos de la clase Button, y la pregunta es: ¿Dónde se
encuentra la clase Button?, pues en el .NET Framework, es por ello que se dice que el .NET
Framework es una biblioteca de CLASES, éstas pueden ser utilizadas para crear nuestras
aplicaciones.

La potencia de Visual Studio radica en combinar clases incluidas en el .NET Framework


(como Button, TextBox, Label, etc; con clases que nosotros podemos crear, como
alumno, curso, matrícula, etc.).

Principios de la POO
POO como paradigma maneja algunas reglas o principios para su correcto uso, los principales
son:

Abstracción

Consiste en capturar las características más importantes de un determinado escenario, por


ejemplo: Si a Ud. le solicitan desarrollar un software de matrícula para la Universidad
Continental, ¿Cuáles de los siguientes datos del alumno debe guardar?

Nombres
Apellido paterno
Apellido materno
Correo electrónico
Edad

Modulo: Fundamentos de Programación Pag. 46


Programa: Programador .NET

Sexo
Tipo de sangre
Colegio de procedencia
Licencia de conducir

En realidad la mayoría de datos son importantes para la Universidad, pero el dato Tipo de
sangre o Licencia de conducir, ¿Es necesario para la universidad?, la respuesta más aproximada
es NO, si tomamos ésta alternativa no sería necesario incluir el Tipo de sangre ni la Licencia de
conducir en nuestra codificación. Éste proceso se denomina Abstracción, es decir, únicamente
capturamos los datos que realmente necesitamos.

Herencia

En resumen la herencia es reutilización de código, es decir, que se puede crear clases que son
reutilizables en otros escenarios. Veamos un ejemplo, en el ejercicio anterior que comprendía la
creación de un software de matrícula podemos crear una clase Alumno y otra clase Docente,
pero, ¿Existen datos en común entre ambas clases?, claro que sí, aquellos datos comunes
podemos agruparlos en una clase independiente denominada Persona, luego podemos hacer
que Alumno y Docente hereden los miembros de la clase Persona, adicionalmente, aquellos
datos que no son comunes entre ambas clases podemos agregarlos de manera separa en cada
una de sus respectivas clases.

Veamos el siguiente esquema gráfico para entender mejor el proceso de herencia.

Los datos comunes entre la clase Alumno y Docente son Nombres, Apellidos, Edad y Sexo; es
por ello que se ha agrupado dichos datos en una clase Persona, adicionalmente se necesita
incluir el DNI del docente pero como no es un dato común se agregar directamente en la clase
Docente, los mismo sucede con el código del alumno.

Modulo: Fundamentos de Programación Pag. 47


Programa: Programador .NET

Técnicamente la clase Persona se denomina clase padre o clase base, y las clases Docente y
Alumno reciben el nombre de clases hijas o sub clases.

La clase persona no solamente podría ser útil para el sistema de matrícula propuesto
como ejemplo, si posteriormente tenemos que desarrollar un sistema para el control de
pacientes de un hospital, o un sistema relacionado a una entidad financiera, podemos
reutilizar clase Persona, de esa manera ahorramos tiempo y esfuerzo.

Polimorfismo

Si realizamos una descomposición del nombre, obtenemos como resultado diferentes


comportamientos, ésta definición es exacta ya que éste principio nos permite inculcar
diversos comportamientos de acuerdo a ciertos parámetros. Veamos el siguiente esquema
gráfico, que muestra una clase padre (MedioTransporte) con tres clases hijas (Barco, Avión,
Auto):

De acuerdo a la definición de herencia, si la clase padre MedioTransporte tiene un método


denominado Arrancar, las clases hijas reciben el mismo método, pero surge la siguiente
pregunta: ¿Arrancar en un Auto es similar a Arrancar en un Barco o en un Avión?, la respuesta
es NO, los tres medios de transporte tienen su propia forma del método Arrancar, éste es un
ejemplo claro de polimorfismo, es decir, las 3 subclases tienen el mismo método pero en cada
uno de ellos se comporta de manera distinta. En términos técnicos se dice que el nombre del
método es el mismo, pero la implementación es distinta.

Encapsulamiento

Se refiere a la capacidad que tiene una clase de ocultar su complejidad interna. Por ejemplo,
muchos estudiantes y docentes de la Universidad Continental utilizan los laboratorios de
cómputo para realizar sus labores diarias, al momento de encender el equipo se presiona un
pequeño botón ubicado en el CASE del ordenador, la pregunta es la siguiente: Cuando

Modulo: Fundamentos de Programación Pag. 48


Programa: Programador .NET

presionamos ese pequeño botón, ¿Qué esperas que suceda?, la respuesta es obviamente que el
equipo encienda, entonces se dice que el computador ha ocultado su complejidad interna.
A la persona que presiona el botón de encendido del computador poco o nada le importa que
suceda detrás de ese botón, y tampoco tiene porque saberlo para utilizar una computadora.

En términos técnicos, una clase encapsula su complejidad interna y provee al exterior una
interfaz sencilla y amigable para su adecuado uso, lo mismo que el ordenador encapsula su
complejidad de encendido y provee al exterior una interfaz sencilla llamada botón.

Visual Studio y POO


Los lenguajes más populares de Visual Studio, Visual Basic .Net y C# .Net aplican en todo
momento Programación Orientada a Objetos, por ejemplo cuando agregamos un nuevo
formulario a nuestro proyecto, en realidad se agrega una nueva clase (es por ello que la
primera línea de código de un formulario muestra Public Class) que hereda de la clase base
Form (ubicada en el .NET Framework).

Por otro lado, los controles ubicados en el cuadro de herramientas también vienen a ser clases
que podemos utilizar dentro de nuestras aplicaciones, ésta se torna compleja e interesante
cuando empezamos a combinar clases que incluye el .NET Framework como Button, TextBox,
Label, etc; con clases que nosotros mismos creamos, como por ejemplo alumno, docente,
curso, aula, salón, etc.

Temas sugeridos de investigación

Programación Orientada a Objetos es un tema bastante extenso, en el presente material de


estudio se tocan los tópicos principales de un paradigma lleno de elementos interesantes, para
complementar lo explicado anteriormente se sugiere al lector incluir como lectura los siguientes
elementos:

5. Visitar el sitio Web de El Guille

Éste sitio Web contiene abundante información sobre programación en Visual Basic .Net,
C# .Net y otros similares. Existe una sección del sitio donde se hace una explicación
interesante y didáctica de POO, el enlace directo es el siguiente:

http://www.elguille.info/NET/cursoCSharpErik/index.htm

La dirección en la parte superior comprende un Manual de Programación en C#, pero


también se aborda la POO de manera específica.

Modulo: Fundamentos de Programación Pag. 49


Programa: Programador .NET

Asignación domiciliaria

5. Elaborar una lista de 10 clases, cada una de ellas con 6 propiedades y 6 métodos.

6. Realice una descripción de los 4 principios de la POO con sus propias palabras.

Autoevaluación

19. ¿Qué entiende Ud. por unicidad?

20. ¿Por qué POO se hizo tan popular?

21. ¿Por qué se dice que Visual Basic .Net es orientado a objetos?

22. ¿Por qué una clase debe ocultar su complejidad interna?

23. ¿Cuál es la diferencia entre un objeto y una clase?

24. ¿Puedo utilizar POO en otros lenguajes de programación?

25. ¿Una clase es más importante que un objeto? ¿O viceversa?

26. ¿Por qué se dice que las clases son genéricas y los objetos específicos?

27. ¿Por qué cree Ud. que es importante la abstracción?

28. Elabora una lista de propiedades y métodos de las siguientes clases: Disco duro,
computadora, celular, lapicero, foco y televisor.

Modulo: Fundamentos de Programación Pag. 50


Programa: Programador .NET

SESIÓN

Estructuras
Condicionales (I)
5

AL FINALIZAR LA PRESENTE SESIÓN, EL PARTICIPANTE ESTARÁ EN LA CAPACIDAD DE:

 Identificar y diferenciar las principales estructuras condicionales.


 Aplicar correctamente la estructura IF… THEN… y sus variantes.

TEMAS:

 Visión general
 Estructuras condicionales
 Estructura IF… THEN
 Ejercicio de aplicación

Modulo: Fundamentos de Programación Pag. 51


Programa: Programador .NET

Visión general
Una condición expresa un enunciado que puede ser correcto o incorrecto (en términos de
programación Verdadero o Falso). A diario hacemos uso de condiciones en el momento de
tomar una decisión, por ejemplo, en el instante de cruzar una calle observamos el semáforo y
analizamos interiormente: “Si el semáforo muestra una luz roja, cruzo, en caso
contrario espero”, acabamos de tomar una decisión

Resultado
Condición
Verdadero Falso
Si me levanto temprano Voy caminando a mi colegio Tomaré un bus
Te compraré un helado Te irás a la cama sin ver
Si te portas bien
mañana televisión
Si apruebo el curso Obtendré mi certificado Repetiré el curso
Si ingreso correctamente
Retiro dinero Se bloquea mi cuenta
mi clave de acceso
Tabla N° 21

Como podemos apreciar en el cuadro anterior, las condiciones están presentes en


nuestra vida diaria. Por ende, también están presentes en los sistemas de información ya
que pretenden automatizar procesos del mundo real.

Estructura condicional IF
Para manejar condiciones en Visual Basic .Net, se utiliza la estructura IF, que traducido al
español quiere decir “Si”, pero es un si condicional y no un sí de afirmación.

La sentencia IF posee 5 variantes, las cuales detallaremos a continuación:

Primera variante: IF… THEN…

Evalúa una condición, y si ésta es verdadera, se ejecuta las instrucciones que se encuentran
dentro del bloque IF. Veamos el siguiente código:

El mensaje “A es mayor que B” únicamente se mostrará si la condición a>b es verdadera, en


el código mostrado anteriormente no se mostrará el mensaje ya que la condición es falsa. Sin
embargo, en el código propuesta en la parte inferior sí se mostraría el mensaje.

Modulo: Fundamentos de Programación Pag. 52


Programa: Programador .NET

Por otro lado, ¿Qué pasaría si ambas variables almacenarían el mismo valor?

Segunda variante: IF… THEN… ELSE…

En esta segunda variante, se evalúan las dos caras de la moneada, es decir, nos permite
realizar una determinada acción si la condición fuera verdadera, y otra acción si la condición
fuera false. Recordemos que la condición únicamente puede tomar el valor verdadero o
falso, en ningún caso tomará ambos valores y tampoco ninguno de ellos.

Veamos el siguiente fragmento de código:

En este caso el programa mostrará el primer mensaje “A es mayor que B”, ya que la
condición es verdadera.

Podemos deducir entonces que el bloque Else es opcional, incluso si revisamos en la


página de Microsoft la sintaxis de la estructura IF… THEN… ELSE, visualizaremos que
ELSE se muestra entre corchetes, eso indica que dicho bloque es opcional.

Ahora Ud. analice el siguiente código y trate de determinar cuál de ambos mensajes se
mostraría.

Modulo: Fundamentos de Programación Pag. 53


Programa: Programador .NET

Tercera variante: IF… THEN… ELSEIF… THEN…

En las dos primeras variantes se utiliza una sola condición, si lo que queremos es analizar
varias condiciones a la vez podemos utilizar ELSEIF. Veamos un ejemplo:

En este caso, se evalúa más de una condición gracias a ELSEIF, estamos evaluando las 3 únicas
posibilidades de comparación con respecto a dos números, es decir, que el primero sea mayor
al segundo, que el primero sea menor al segundo y que el tercero sea igual al segundo. Ahora
el mensaje mostrado será “A es mayor que B”.

Ésta estructura es también conocida como multicondicional y tiene un característica especial


denominada corto circuito, esto quiere decir que, basta con que una condición se cumpla
para que las demás queden desactivadas aunque sean verdaderas. En el código anterior como
se cumple la primera condición a>b, entonces las demás condiciones ya no se evalúan.

Cuarta variante: IF… THEN… ELSEIF… THEN… ELSE…

La cuarta variante es una combinación de la segunda y tercera variante, es decir, se combina


en un solo bloque de código a un IF, ELSEIF y ELSE. El código anterior que verifica como es un
número con respecto a otro, también se puede desarrollar de la siguiente manera:

El bloque ELSE se ejecutará únicamente si las condiciones anteriores son falsas, de esta
manera el resultado es similar al caso anterior.

Modulo: Fundamentos de Programación Pag. 54


Programa: Programador .NET

Debemos recordar que el orden es tal y como muestra el bloque de código anterior; no
se puede escribir primera un IF luego un ELSE y luego un ELSEIF.

Quinta variante: IF lineal

Se utiliza únicamente cuando luego de evaluar una condición, únicamente se desencadenará


una acción. Veamos un ejemplo:

Luego de evaluar la condición, únicamente se muestra el mensaje, por lo tanto solo se realiza
una acción. Además, un IF lineal no termina en End If como las variantes anteriores.

Operadores
Al igual que en lógica y matemática Visual Basic .Net permite el uso de operadores, éstos
generalmente se usan para evaluar dos o más condiciones. Los principales operadores son el
AND y OR, cuyas tablas de verdad de muestran a continuación:

Operador AND
V V V
V F F
F V F
F F F
Tabla N° 22

Operador OR
V V V
V F V
F V V
F F F
Tabla N° 23

Adicionalmente al operador AND y OR, existe un prefijo adicional de negación representado en


Visual Basic .Net a través de la palabra NOT, se utiliza normalmente para negar el resultado de
una condición.

Vamos a realizar algunos ejercicios de análisis para mejorar nuestra lógica de programación,
veamos el siguiente código:

Modulo: Fundamentos de Programación Pag. 55


Programa: Programador .NET

Dim a, b, c As Byte
a = 14
b = 20
c = 17
a = a + b
a = a + 1
b = a
c = b + a
c += 1
a = c + b
La pregunta es: ¿Cuáles son los valores de a,b y c al finalizar el código?

Analicemos el código de manera secuencial:

Figura N° 41

Por lo tanto a toma el valor de 106, b toma el valor de 35 y c toma el valor de 71.

Repita el ejercicio anterior pero considere los siguientes valores para a, b y c.

Para a=14, b=20, c=17 Resultado a=106, b=35, c=71


Para a=4, b=1, c=2
Para a=19, b=2, c=21
Para a=4, b=4, c=0
Tabla N° 24

Ahora agregamos condicionales para incrementar el proceso de análisis, veamos el siguiente


fragmento de código y tratemos de averiguar si se muestra el primer o segundo mensaje.

Dim a, b, c As Byte
a = a + 8
b = 17
c = a + 8
b = c + 9
If a > b Or b > c Then
MsgBox("Anita")
Else
MsgBox("Yuly")
End If

Modulo: Fundamentos de Programación Pag. 56


Programa: Programador .NET

Antes de ingresar al bloque If, las variables tienen los siguientes valores: a=8, b=25 y c=16,
luego se evalúa la primera condición tal y como se muestra en el siguiente gráfico:

Figura N° 42

Como el resultado de evaluar la condición a>b Or b>c es Verdadero, entonces se muestra el


mensaje con el nombre Anita.

Laboratorio N° 1

Vamos a realizar un ejercicio utilizando condicionales, lo primero es crear un proyecto de tipo


Windows Forms Application con el nombre FundProg_SS05_Lab01, en el único formulario
que tenemos vamos a diseñar la siguiente interfaz:

Figura N° 43

Asignamos las siguientes propiedades:

Nombre de control Tipo de control Propiedad : valor Descripción


Font: Tahoma, 18 pt Formato de fuente
lblTitulo Label
Text: Comparación de Texto a mostrar en la

Modulo: Fundamentos de Programación Pag. 57


Programa: Programador .NET

números etiqueta
nudNumero1 Font: Tahoma, 9 pt
NumericUpDown
nudNumero2 Font: Tahoma, 9 pt Formato de fuente
Font: Tahoma, 9 pt
btnEvaluar Button Texto a mostrar en el
Text: Evaluar
botón
Font: Tahoma, 9 pt Formato de fuente
lblNumero1 Texto a mostrar en la
Text: Número 1
etiqueta
Label
Font: Tahoma, 9 pt Formato de fuente
lblNumero2 Texto a mostrar en la
Text: Número 2
etiqueta
Activa un botón a
AcceptButton: btnEvaluar través de la tecla
Intro
Posición inicial del
formulario, si se
Form1 Form establece en
StartPosition: CenterScreen
CenterScreen se
muestra al centro de
la pantalla
Color de fondo del
BackColor: White
formulario
Tabla N° 25

Lo que pretendemos hacer es ingresar 2 números y mostrar si el primero es mayor al segundo


o viceversa, para ello vamos a dar doble click al botón Evaluar, y escribimos el siguiente
fragmento de código:

Dim n1, n2 As Byte


n1 = nudNumero1.Value
n2 = nudNumero2.Value
If n1 > n2 Then
MsgBox("n1 es mayor que n2")
Else
MsgBox("n1 es menor que n2")
End If

Como vemos, primero capturamos los números ingresados en las variables n1 y n2


respectivamente, luego utilizamos una condición (n1>n2) que en caso de ser verdadera
muestra el mensaje “n1 es mayor que n2”, si la condición fuera falsa se muestra el mensaje “n1
es menor que n2”.

Modulo: Fundamentos de Programación Pag. 58


Programa: Programador .NET

Recordemos que una condición puede tener 2 posibles valores, verdadero o falso,
nunca ambos valores ni ninguno de ellos.

Ahora ejecutamos el programa e ingresamos 2 números, recordemos que si queremos ingresar


números mayores a 100, los numericUpDown correspondientes a ambos números no lo
permitirá ya que su valor máximo (Propiedad Maximun) por defecto está establecido en 100,
por otro lado el valor mínimo (Minimun) es 0.

Figura N° 44

Sin embargo, que pasaría si ingresamos 2 números con el mismo valor, veamos el resultado:

Figura N° 45

Modulo: Fundamentos de Programación Pag. 59


Programa: Programador .NET

Como podemos apreciar el resultado no es del todo adecuado, ya que nuestra condición indica
n1>n2, y como 11 no es mayor a 11 el resultado de la condición es falso, es por ello que se
muestra el segundo mensaje. Para brindar una solución correcta vamos a realizar una ligera
modificación al código anterior, esta vez vamos a utilizar una estructura IF con ELSEIF para
evaluar más condiciones.

Dim n1, n2 As Byte


n1 = nudNumero1.Value
n2 = nudNumero2.Value
If n1 > n2 Then
MsgBox("n1 es mayor que n2")
ElseIf n1 < n2 Then
MsgBox("n1 es menor que n2")
ElseIf n1 = n2 Then
MsgBox("n1 es igual que n2")
End If
En este caso, se evalúan las 3 únicas alternativas de comparación entre 2 números, es decir,
que un número sea mayor, menor o igual a otro. Ejecutamos el programa para visualizar el
resultado.

Figura N° 46

En esta ocasión el programa funciona correctamente.

A continuación vamos a elaborar un programa que evalúe un número del 1 a 10 y muestre su


equivalente en números romanos. Para no crear un nuevo proyecto, vamos a agregar otro
formulario a nuestro proyecto, para ello vamos a dar un click derecho en el nombre del
proyecto, seleccionamos la opción Add y luego Windows Form. Recordemos que el nombre
del proyecto se muestra en negrita dentro del explorador de soluciones.

Modulo: Fundamentos de Programación Pag. 60


Programa: Programador .NET

Figura N° 47

Ahora Visual Studio nos presenta la siguiente ventana:

Figura N° 48

Dejamos el nombre del formulario en Form2 y hacemos click en el botón Add.

Modulo: Fundamentos de Programación Pag. 61


Programa: Programador .NET

Si deseamos agregar un nombre al formulario debemos utilizar de preferencia el prefijo


frm seguido de una palabra que haga referencia al contenido del formulario.

Para dar solución al ejercicio enunciado anteriormente vamos a diseñar la siguiente interfaz:

Figura N° 49

Establecemos las siguientes propiedades:

Nombre de control Tipo de control Propiedad : valor Descripción


Font: Tahoma, 18 pt Formato de fuente
lblTitulo Label Text: Conversión a formato Texto a mostrar en la
romano etiqueta
nudNumero NumericUpDown Font: Tahoma, 9 pt
Formato de fuente
Font: Tahoma, 9 pt
btnConvertir Button Texto a mostrar en el
Text: Convertir
botón
Font: Tahoma, 9 pt Formato de fuente
lblIngresar Label Texto a mostrar en la
Text: Ingrese número
etiqueta
Activa un botón a
AcceptButton: btnConvertir través de la tecla
Intro
Posición inicial del
formulario, si se
Form1 Form establece en
StartPosition: CenterScreen
CenterScreen se
muestra al centro de
la pantalla
Color de fondo del
BackColor: White
formulario
Tabla N° 26

Ingresamos al evento click del botón Convertir haciéndole un doble Click. Esta vez vamos a
implementar el programa sin hacer uso de una variable, veamos como:

Modulo: Fundamentos de Programación Pag. 62


Programa: Programador .NET

If nudNumero.Value = 1 Then
MsgBox("I")
ElseIf nudNumero.Value = 2 Then
MsgBox("II")
ElseIf nudNumero.Value = 3 Then
MsgBox("III")
ElseIf nudNumero.Value = 4 Then
MsgBox("IV")
ElseIf nudNumero.Value = 5 Then
MsgBox("V")
ElseIf nudNumero.Value = 6 Then
MsgBox("VI")
ElseIf nudNumero.Value = 7 Then
MsgBox("VII")
ElseIf nudNumero.Value = 8 Then
MsgBox("VIII")
ElseIf nudNumero.Value = 9 Then
MsgBox("IX")
ElseIf nudNumero.Value = 10 Then
MsgBox("X")
Else
MsgBox("Ingrese un número comprendido entre 1 y 10")
End If

Si ejecutamos el programa notaremos que se muestra el formulario anterior, para cambiar el


formulario de ejecución vamos a dar doble click en My Project ubicado en la parte inferior del
nombre del proyecto en el Explorador de soluciones (Solution Explorer).

Figura N° 50

Ahora cambiamos el formulario de inicio en la sección Startup Form.

Figura N° 51

Modulo: Fundamentos de Programación Pag. 63


Programa: Programador .NET

Una vez seleccionado Form2 cerramos la pestaña, ejecutamos el formulario e ingresamos un


número.

Figura N° 52

En caso de que ingresemos un número fuera del rango permitido se muestra el mensaje de
advertencia (esto gracias al bloque Else que se ejecuta en caso de que no se cumplan
ninguna de las condiciones anteriores).

Figura N° 53

Modulo: Fundamentos de Programación Pag. 64


Programa: Programador .NET

Asignación domiciliaria

Resuelva los siguientes ejercicios teniendo en cuenta lo siguiente:

 Debe utilizar correctamente los controles.

 En caso de utilizar variables, asigne el tipo de dato más adecuado.

 Debe tratar en todo momento de implementar código eficiente.

1. Desarrollar un programa que permita ingresar un número y determine si es positivo o


negativo.

2. Desarrollar un programa que calcule el resultado de la división de 2 números, en caso de que


el divisor sea 0, se debe mostrar un mensaje con el texto “No es posible una división entre 0”.
Considere que el resultado debe mostrarse a lo mucho con 2 decimales.

3. Desarrollar un programa que permita ingresar una edad entre 3 y 15 años, en caso de que el
número se encuentre entre fuera del rango establecido se debe mostrar un mensaje con el
texto “Edad fuera del rango”, en caso contrario se debe mostrar la cantidad de años que le
falta a la edad ingresada para cumplir 18 años.

4. Desarrollar un programa que ordene de manera descendente 2 números de 2 cifras. Si el


número no fuera de 2 cifras, se debe mostrar un mensaje de error al usuario.

5. Desarrollar un programa que solicite la cantidad de horas mensuales asignados a un docente y


el pago por hora. El programa debe calcular el monto total a pagar teniendo en cuenta que si
la cantidad de horas es mayor a 50, el monto de pago por hora se incremente en un 15%
únicamente para las horas adicionales.

Modulo: Fundamentos de Programación Pag. 65


Programa: Programador .NET

SESIÓN

Estructuras
Condicionales (II)
6

AL FINALIZAR LA PRESENTE SESIÓN, EL PARTICIPANTE ESTARÁ EN LA CAPACIDAD


DE:

 Identificar y diferenciar las principales estructuras condicionales.


 Aplicar correctamente la estructura IF… THEN… y sus variantes.
 Aplicar correctamente la estructura SELECT CASE…

TEMAS:

 Estructura SELECT CASE…

Modulo: Fundamentos de Programación Pag. 66


Programa: Programador .NET

Estructura SELECT CASE


SELECT CASE nos permite evaluar una expresión en base a varias opciones. Debemos recordar
que muchos casos que se implementan con SELECT CASE, también se pueden implementar con
la estructura IF. Entonces podemos decir que en algunos casos, utilizar un SELECT CASO o IF
es gusto del programador.

Para entender mejor el funcionamiento de SELECT CASE vamos a elaborar un programa que
permita ingresar un número que va a representar a una vocal, es decir, si se ingresa el número
1 se muestra la vocal “a”, si se ingresa el número 2 se muestra la vocal “e”, y así
sucesivamente, pero en caso de que el usuario ingrese un número que no está comprendido
entre 1 y 5, el programa mostrará un mensaje de error indicando que el número ingresado está
fuera del rango.

Lo primero que haremos es crear un proyecto con el nombre FundProg_SS06_Demo1, y


agregamos un formulario con el nombre frmEjemploSELECTCASE donde diseñaremos la
siguiente interfaz:

Figura N° 54

Luego de realizar el diseño, asignamos las siguientes propiedades:

Control Propiedad Valor

Font Tahoma, 18pt


lblTitulo
Text Ejemplo SELECT CASE
nudNumero Font Tahoma, 9pt
Font Tahoma, 9pt
btnMostrar
Text Mostrar
frmEjemploSELECTCASE Text Procedimientos y funciones
Tabla N° 27

Modulo: Fundamentos de Programación Pag. 67


Programa: Programador .NET

Ahora hacemos doble click en el botón mostrar para aperturar su evento Click.

Private Sub btnMostrar_Click(sender As Object, e As .....

End Sub

Ingresamos las siguientes líneas de código:

Dim numeroIngresado As Byte


numeroIngresado = nudNumero.Value
Select Case numeroIngresado
Case 1
MsgBox("Corresponde a la vocal A")
Case 2
MsgBox("Corresponde a la vocal E")
Case 3
MsgBox("Corresponde a la vocal I")
Case 4
MsgBox("Corresponde a la vocal O")
Case 5
MsgBox("Corresponde a la vocal U")
Case Else
MsgBox("El número ingresado se encuentra fuera del rango.")
End Select

Recordemos que al igual que la estructura IF, el bloque Else (para este caso CASE
ELSE) es opcional

Analicemos el modo de trabajo del código, por ejemplo si el usuario ingresa el número 3, la
variable numeroIngresado almacena dicho valor, luego se compara con cada uno de los
Case siguientes. Veamos las siguientes figuras:

Paso 1:

Figura N° 55

Modulo: Fundamentos de Programación Pag. 68


Programa: Programador .NET

Paso 2:

Figura N° 56

Paso 3:

Figura N° 57

Paso 4:

Figura N° 58

Modulo: Fundamentos de Programación Pag. 69


Programa: Programador .NET

Debemos recordar que la estructura SELECT CASE funciona bajo el modo corto circuito.

Vamos a ejecutar el programa e ingresamos el número 3.

Figura N° 59

Ahora ingresaremos un número fuera del rango, por ejemplo 7.

Figura N° 60

Modulo: Fundamentos de Programación Pag. 70


Programa: Programador .NET

Se recomienda al lector implementar el ejercicio anterior utilizando IF, y luego realizar


comparaciones entre ambas formas.

Alternativas adicionales

SELECT CASE permite utilizar algunas alternativas para mejorar la lectura de código y reducir
algunas líneas del mismo. En el siguiente gráfico se muestra un fragmento de código con su
respectivo análisis.

Figura N° 61

En el gráfico 61 la variable “x” toma el valor de 7, por lo que se ejecutaría las líneas de código
incluidas en el Bloque 2. Por otro lado, si “x” tomara el valor de 24 se ejecutaría el Bloque 4, si
“x” tomara el valor de 67 se ejecutaría el bloque 6, y si “x” tomara el valor de 10 no se
ejecutaría ningún bloque.

Se recomienda que el lector elabore el ejercicio del gráfico 49 utilizando la estructura


SELECT CASE

Modulo: Fundamentos de Programación Pag. 71


Programa: Programador .NET

SESIÓN

Estructuras
repetitivas (I) 7

AL FINALIZAR LA PRESENTE SESIÓN, EL PARTICIPANTE ESTARÁ EN LA CAPACIDAD


DE:

 Identificar y describir las principales estructuras repetitivas.


 Seleccionar y aplicar correctamente estructuras repetitivas de acuerdo al escenario.
 Desarrollar programas combinando estructuras repetitivas y condicionales.

TEMAS:

 Estructuras repetitivas
 Estructura repetitiva FOR… NEXT

Modulo: Fundamentos de Programación Pag. 72


Programa: Programador .NET

Estructuras repetitivas
Se denominan estructuras repetitivas porque ejecutan una porción de código un determinado
número de veces, es por eso que también reciben el nombre de bucles. Visual Basic .Net
permite hacer uso principalmente de 2 tipos de bucles:

 FOR… NEXT

 WHILE

Cada uno de ellos posee sus propias características y modo de trabajo, en las siguientes líneas
del presente material educativo analizaremos de una manera teórico-práctico las
particularidades, ventajas y desventajas de cada una de ellas.

Las estructuras repetitivas mostradas anteriormente también son muy utilizadas en


otros lenguajes de programación, la única diferencia es que la sintaxis podría ser
distinta, pero el modo de funcionamiento es muy similar

Estructura FOR… NEXT


La estructura FOR… NEXT permite ejecutar una porción de código una cantidad determinada
de veces, para su adecuado uso requiere un valor inicial, un valor final y opcionalmente un
intervalo. Veamos un ejemplo:

For x As Byte = 3 To 7 Step 2


MsgBox("Hola mundo")
Next

Variable Descripción

Determina el valor inicial de la estructura FOR, es decir, nos


x as Byte = 3 indica que una variable con el nombre “x” de tipo Byte y con
valor 3 es el inicio de nuestra estructura FOR.
Determina el valor límite superior, es decir, el valor final de la
to 7 estructura FOR. Indica que la variable ”x” que inicializa en 3
puede alcanzar como máximo el número 7.
Determina el incremente o decremento de la variable “x”, es
decir, “x” al inicio toma el valor de 3, luego el valor de 5 y
Step 2 finalmente el valor de 7.
No olvidemos que llega hasta 7 porque así lo indica el valor
final.
Tabla N° 28

Modulo: Fundamentos de Programación Pag. 73


Programa: Programador .NET

Por otro lado es bueno saber que FOR quiere decir PARA, mientras que NEXT quiere
decir SIGUIENTE.

Una vez terminado el análisis del contenido de la estructura FOR, podemos concluir que
mostrará 3 veces el mensaje con el texto “Hola mundo”, ¿Por qué? Bueno porque “x” inicia
en 3, luego toma el valor de 5 (se incremente en 2 por el intervalo representado por Step) y
finalmente toma el valor de 7 (ese es el límite indicado en el valor final), es decir, “x” toma
3 valores, que equivale a 3 repeticiones.

Una repetición recibe el nombre de iteración, que es un término muy usado dentro de
estructuras repetitivas.

A continuación se muestra una tabla con diversos ejemplos del uso de la estructura FOR y la
cantidad de iteraciones que realiza cada una, se recomienda al lector tratar de calcular
mentalmente la cantidad de iteraciones por cada FOR antes de visualizar el resultado en la
segunda columna.

Ejemplo Cantidad de iteraciones

For x As Byte = 10 To 12 Step 1


3
Next
For x As Byte = 11 To 19 Step 1
9
Next
For x As Byte = 0 To 4 Step 2
3
Next
For x As Byte = 0 To 7 Step 3
3
Next
For x As Byte = 5 To 9 Step 14
1
Next
3
For x As SByte = -10 To -18 Step -3

Next
Tabla N° 29

Modulo: Fundamentos de Programación Pag. 74


Programa: Programador .NET

La estructura FOR puede avanzar o retroceder (ascomo el último ejemplo de la tabla


anterior), recordemos que si lo que queremos es utilizar números negativos, debemos
utilizar un tipo de dato que lo soporte, como el SByte, Short, etc.

La estructura FOR puede avanzar o retroceder (así como el último ejemplo de la tabla
anterior), recordemos que si lo que queremos es utilizar números negativos, debemos utilizar
un tipo de dato que lo soporte, como el SByte, Short, etc.

Laboratorio N° 1

1. Crear un proyecto con el nombre FundProg_SS07_Lab01 y ubicarlo en una carpeta en el


disco duro.

2. Crear el siguiente formulario:

Figura N° 62

3. El ejemplo 1 nos solicita mostrar una sucesión desde el número 1 hasta 100, para ello
hacemos doble click en el botón btnEjemplo1 para abrir su evento Click.

Como la sucesión debe iniciar en 1, tomamos éste número como valor inicial y el valor final
es 100 ya que es el límite superior de la sucesión; luego establecemos el intervalo 1 para
mostrar un incremente en una unidad. Antes de mostrar la sucesión con la estructura FOR,
se recomienda limpiar el ListBox para que no se muestren varias sucesiones en caso

Modulo: Fundamentos de Programación Pag. 75


Programa: Programador .NET

el usuario haga Click varias veces en el botón btnEjemplo1. Por lo tanto, dentro del
evento Click escribimos las siguientes líneas de código:

lstDatos.Items.Clear()
For x As Byte = 1 To 100 Step 1
lstDatos.Items.Add(x)
Next
Luego ejecutamos el formulario, presionamos el botón correspondiente al ejemplo 1 y
visualizaremos correctamente el resultado.

Figura N° 63

No olvidemos que la variable “x” incluida dentro de la estructura FOR, es la que toma los
valores desde el valor inicial (1) hasta el valor final (100).

Si no incluimos Step 1 en el código anterior, el resultado es el mismo ya que se puede


obviar Step siempre y cuando el intervalo es 1.

4. Para el ejemplo 2 hacemos doble click en el botón correspondiente, y para dar solución al
ejercicio escribimos el siguiente fragmento de código:

lstDatos.Items.Clear()
For x As Byte = 4 To 80 Step 2
lstDatos.Items.Add(x)
Next

Con cualquiera de las alternativas propuestas anteriormente se resuelve da solución al


ejercicio, pero un buen desarrollador siempre debe buscar el código más eficiente. Para
este caso la forma más eficiente es la primera, ya que produce menos iteraciones que
la segunda.

Modulo: Fundamentos de Programación Pag. 76


Programa: Programador .NET

5. El ejemplo 3 muestra un mismo enunciado que el caso anterior, esta vez vamos a
desarrollarlo de una manera distinta:

lstDatos.Items.Clear()
For x As Byte = 4 To 80 Step 1
If x Mod 2 = 0 Then
lstDatos.Items.Add(x)
End If
Next
6. Para el ejemplo 4 también usaremos Mod.

lstDatos.Items.Clear()
For x As Byte = 0 To 100 Step 1
If x Mod 3 = 0 Then
lstDatos.Items.Add(x)
End If
Next

Se sugiere al lector completar el ejemplo 5

7. Para el ejemplo 6 usaremos un FOR hacia atrás.

lstDatos.Items.Clear()
For x As SByte = 50 To 4 Step -1
lstDatos.Items.Add(x)
Next

Se sugiere al lector completar el ejemplo 7

8. En el ejemplo 8, para alojar el valor de la suma usaremos una variable llamada Suma.

lstDatos.Items.Clear()
Dim suma As UShort
For x As Byte = 4 To 30
suma = suma + x
lstDatos.Items.Add(x)
Next
MsgBox(suma)

Se sugiere al lector completar el ejemplo 9

9. Para el último ejemplo usaremos un InputBox, que es similar al MsgBox, solo que en
lugar de mostrar un mensaje, solicita un texto.

lstDatos.Items.Clear()
For x As Byte = 1 To 15
x = InputBox("Ingrese número:")
lstDatos.Items.Add(x)
Next

Modulo: Fundamentos de Programación Pag. 77


Programa: Programador .NET

Asignación domiciliaria

Desarrollar los siguientes ejercicios:

1. Mostrar los números múltiplos de 3 y 14 comprendidos entre 2 valores ingresados.

2. Mostrar la suma de los números múltiplos de 7 de 3 cifras que no sean múltiplos de 3.

3. Mostrar la siguiente sucesión: 1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6… hasta un


determinado número ingresado.

No olvide utilizar correctamente los controles, así como también desarrollar el código fuente lo
más eficiente posible.

Modulo: Fundamentos de Programación Pag. 78


Programa: Programador .NET

SESIÓN

Estructuras
repetitivas (II) 8

AL FINALIZAR LA PRESENTE SESIÓN, EL PARTICIPANTE ESTARÁ EN LA CAPACIDAD


DE:

 Identificar y describir las principales estructuras repetitivas.


 Seleccionar y aplicar correctamente estructuras repetitivas de acuerdo al escenario.
 Desarrollar programas combinando estructuras repetitivas y condicionales.

TEMAS:

 Estructura repetitiva WHILE

Modulo: Fundamentos de Programación Pag. 79


Programa: Programador .NET

Estructura repetitiva WHILE


La estructura repetitiva WHILE ejecuta un fragmento de código en base a una condición, si ésta
es verdadera se ejecuta el código incluido dentro del bucle (Comprendido entre WHILE y END
WHILE), al ejecutar la última línea de código se vuelve a evaluar la condición, si sigue siendo
verdadera se vuelve a ejecutar el código, y así sucesivamente hasta que la condición sea
falsa.

Veamos el siguiente código:

Dim x As Byte
x = 18
While x <= 22
MsgBox("Hola...")
MsgBox("Mundo...")
End While

En la segunda línea de código la variable “x” toma el valor de 18, luego el bucle WHILE evalúa
la condición (en este caso si “x” es menor o igual a 22), como esta es verdadera se muestra el
mensaje con el texto Hola… y luego el mensaje con el texto Mundo…, luego se vuelve a
evaluar la condición y como sigue siendo verdadera se muestran nuevamente ambos mensajes
y así sucesivamente. Como podemos notar 18 siempre será menor o igual que 22 es por eso
que los mensajes se mostrarán siempre, a esto le conocemos como bucle infinito.

No se recomienda contar con bucles infinitos en nuestro programa, ya que consumen


recursos del computador y no tienen fin.

Para evitar los bucles infinitos se tiene que elaborar algún proceso que haga que la condición
sea falsa en algún momento. Vamos a modificar el código anterior para que no se produzca un
bucle infinito, veamos el siguiente fragmento de código:

Dim x As Byte
x = 18
While x <= 22
MsgBox("Hola...")
x = x + 1
End While
En el código anterior vemos que la variable “x” se incrementa en uno luego de mostrar el
mensaje, es decir, al inicio “x” toma el valor de 18 pero mientras el bucle WHILE se ejecuta va
incrementando su valor en 1, esto hace que en un momento determinado la variable “x” tome
los valores 18, 19, 20, 21, 22 y cuando llega a 23 el bucle termina porque la condición se torna
falsa (23<=22). Por lo tanto el mensaje se mostrará 5 veces lo cual indica que se produjeron 5
iteraciones (porque de 18 a 22 existen 5 números).

Para aplicar el bucle WHILE, vamos a crear un proyecto con el nombre


FundProg_SS08_Demo1 donde diseñaremos la siguiente interfaz:

Modulo: Fundamentos de Programación Pag. 80


Programa: Programador .NET

Figura N° 64

Vamos a codificar cada uno de los ejemplos de la siguiente manera:

Para el evento click del botón btnEjemplo1:

'Ejemplo 1: Mostrar los números comprendidos entre 1 y 10


Dim x As Byte = 1
lstNumeros.Items.Clear()
While x <= 10
lstNumeros.Items.Add(x)
x = x + 1
End While
Para el evento click del botón btnEjemplo2:

'Ejemplo 2: Mostrar los números pares entre 10 y 20


Dim x As Byte = 10
lstNumeros.Items.Clear()
While x <= 20
lstNumeros.Items.Add(x)
x = x + 2
End While
Para el evento click del botón btnEjemplo3:

'Ejemplo 3: Mostrar los números múltiplos de 3 y 7


'comprendidos entre 1 y 100, finalmente muestre la suma respectiva
Dim x As Byte = 1
lstNumeros.Items.Clear()
Dim suma As UShort
While x <= 100
If x Mod 3 = 0 And x Mod 7 = 0 Then
lstNumeros.Items.Add(x)
suma = suma + x
End If
x = x + 1
End While
MsgBox(suma)

Modulo: Fundamentos de Programación Pag. 81


Programa: Programador .NET

La principal diferencia entre un bucle FOR y WHILE es que el primero se usa generalmente
cuando se puede determinar la cantidad de iteraciones, por otro lado WHILE se usa
generalmente para situaciones donde no se puede determinar la cantidad de iteraciones.

Se recomienda al lector elaborar los ejercicios de la Figura N° 63 utilizando la estructura


WHILE en vez de la estructura FOR

Asignación domiciliaria

Desarrollar los ejercicios de la sesión anterior utilizando WHILE, no olvide utilizar correctamente
cada control y desarrollar el código fuente lo más eficiente posible.

Modulo: Fundamentos de Programación Pag. 82


Programa: Programador .NET

SESIÓN

Ejercicios
Propuestos 9

AL FINALIZAR LA PRESENTE SESIÓN, EL PARTICIPANTE ESTARÁ EN LA CAPACIDAD


DE:

 Aplicar las diferentes estructuras condicionales y repetitivas en la solución de situaciones


cotidianas.

TEMAS:

 Lista de ejercicios propuestos

Modulo: Fundamentos de Programación Pag. 83


Programa: Programador .NET

Lista de ejercicios propuestos


A continuación se muestra un conjunto de enunciados, se recomienda al lector desarrollar cada
uno de los ejercicios con ayuda del docente y utilizando correctamente los controles
abordados hasta el momento, así como también utilizar en todo momento las buenas
prácticas de programación y código eficiente.

Ejercicio N° 1

Ingrese los datos del participante considerando que todos son obligatorios a excepción del
correo electrónico, considere que el logo (puede reemplazarlo por cualquier imagen) ubicado en
la zona superior derecha viene a ser el logo del evento. Una vez que se presione el botón
Registrar se debe mostrar en la lista ubicada en la parte inferior, los nombres, apellidos del
participante y el sexo con la letra M o F de acuerdo a la opción seleccionada.

Modulo: Fundamentos de Programación Pag. 84


Programa: Programador .NET

Ejercicio N° 2

La siguiente tabla muestra el procedimiento que realiza cada botón:

Botón Descripción

>> Traslada todos los integrantes del equipo A al equipo B


> Traslada el elemento seleccionado del equipo A al equipo B
<< Traslada todos los integrantes del equipo B al equipo A
< Traslada el elemento seleccionado del equipo B al equipo A
Tabla N° 30

Ejercicio N° 3

Modulo: Fundamentos de Programación Pag. 85


Programa: Programador .NET

Se debe trasladar el nombre, apellido paterno y materno a la lista ubicada en la parte inferior,
con formato de nombre propio, es decir, con la primera letra en mayúscula. Si el apellido fuera
compuesto como por ejemplo “De la cruz”, se debe trasladar a la lista “De La Cruz”

Ejercicio N° 4

Elabora un programa que solicite “n” números. Una vez ingresado todos los números se debe
mostrar la cantidad de números positivos, negativos, pares, impares, múltiplos de 3 y primos.
Valide el programa para que “n” pueda tener como mínimo el valor de 5 y como máximo 20.

Modulo: Fundamentos de Programación Pag. 86


Programa: Programador .NET

SESIÓN

Matrices 10

AL FINALIZAR LA PRESENTE SESIÓN, EL PARTICIPANTE ESTARÁ EN LA CAPACIDAD


DE:

 Utilizar matrices para almacenar colecciones de datos.


 Aplicar técnicas para gestionar correctamente colecciones.

TEMAS:

 Visión general
 Matrices de una dimensión
 Matrices de múltiples dimensiones
 Ejercicios propuestos

Modulo: Fundamentos de Programación Pag. 87


Programa: Programador .NET

Visión general
Una variable de cualquier tipo de dato solamente puede almacenar un único valor durante su
periodo de vida, es decir, si la variable “x” de tipo Short toma una valor inicial de 17, y luego se
le asigna 45, automáticamente se reemplaza el 17 por el nuevo valor. Por otro lado, las
matrices permiten almacenar varios valores en posiciones diferentes, y si queremos
referirnos a algún elemento de la matriz simplemente utilizamos el nombre correspondiente a la
matriz y la posición.

Una matriz recibe el nombre alternativo de vector, array o arreglo; debemos recordar esas
nomenclaturas ya que en muchos libros y bibliografías digitales se usan de esa manera.

Matrices de una dimensión


Las matrices de una dimensión permiten almacenar una colección de datos en fila o columna,
además de que poseen dos partes importantes: Tamaño y longitud.

El tamaño permite establecer el índice (posición) máximo que podemos utilizar en la matriz,
veamos un ejemplo:

Dim miVector(4) As Byte

En este caso, el vector llamado miVector puede almacenar elementos hasta la posición 4
como máximo. Si queremos asignar elementos al vector podemos hacer lo siguiente:

Dim miVector(4) As Byte


miVector(0) = 9
miVector(1) = 5
miVector(2) = 87
miVector(3) = 12
miVector(4) = 8

Recordemos que Visual Basic .Net inicia el conteo en cero (0).

Si llevamos nuestra matriz a un esquema gráfico, podría resultar similar al siguiente:

miVector
0 9
1 5
2 87
3 12
4 8

Los números que se muestran en la primera columna vienen a ser las posiciones o índices de
la matriz.

Por otro lado, la longitud de un matriz viene representada por la cantidad de elementos
que puede almacenar, para el caso anterior la longitud de la matriz miVector es 5.

Modulo: Fundamentos de Programación Pag. 88


Programa: Programador .NET

Para recorrer matriz lo más común es utilizar un bucle FOR, para hacer la demostración
respectiva vamos a crear un proyecto con el nombre FundProg_SS10_Demo1, y
agregaremos un formulario con el nombre frmEjemploMatriz1 donde diseñaremos la
siguiente interfaz:

Figura N° 65

Ahora vamos a otorgar algunas propiedades:

Control Propiedad Valor

Font Tahoma, 18pt


lblTitulo
Text Matriz de una dimensión
Font Tahoma, 9pt
btnMostrar
Text Mostrar
Tabla N° 31

Luego vamos a dar doble click a btnMostrar para acceder a su evento Click, e insertamos el
siguiente código:

Dim notas(5) As Byte


notas(0) = 14
notas(1) = 8
notas(2) = 12
notas(3) = 9
notas(4) = 19
notas(5) = 17

Modulo: Fundamentos de Programación Pag. 89


Programa: Programador .NET

lstDatos.Items.Clear()
For i As Byte = 0 To 5
lstDatos.Items.Add(notas(i))
Next
El código anterior muestra en sus primeras líneas, la creación de una matriz (con tamaño 5) de
una sola dimensión llamada notas, donde se almacena 6 calificaciones distintas. Luego se
recorre la matriz utilizando un bucle FOR, cuyo valor inicial es cero (0) porque es la numeración
inicial de las matrices, observemos que la variable “i” tomará el valor desde 0 hasta 5 con lo
cual recorre la matriz completa, sin embargo, si la matriz cambiara su tamaño, también se
tendría que cambiar el valor final del bucle FOR, para evitar esto podemos realizar un cálculo
rápido del tamaño de la matriz a través de la siguiente fórmula:

Tamaño = Longitud – 1

Siguiendo la fórmula, podemos realizar una ligera modificación al código anterior de la siguiente
manera:

Dim notas(5) As Byte


notas(0) = 14
notas(1) = 8
notas(2) = 12
notas(3) = 9
notas(4) = 19
notas(5) = 17

lstDatos.Items.Clear()
For i As Byte = 0 To notas.Length - 1
lstDatos.Items.Add(notas(i))
Next

Ahora ejecutamos el programa para ver el resultado:

Figura N° 66

Modulo: Fundamentos de Programación Pag. 90


Programa: Programador .NET

Matrices de múltiples dimensiones


Generalmente se utiliza matrices de 2 dimensiones para trabajar con datos tipo tabla, es decir,
1 dimensión para la columna y otra para la fila, por ejemplo si queremos almacenar dos notas
de un conjunto de 30 alumnos se puede crear una matriz de 30 (cantidad de alumnos) por 3
(una columna para los nombres, otra para la nota 1 y una última para la nota 2).

Para crear matrices de varias dimensiones, se debe indicar el tamaño de cada dimensión entre
paréntesis, veamos el siguiente código que muestra la creación de una matriz de 2
dimensiones:

Dim x(2, 3) As Byte

El código muestra una matriz bidimensional con el nombre “x” de tipo Byte, esto implica que
únicamente puede almacenar valores comprendidos entre 0 y 255. Adicionalmente debemos
tener en cuenta que la cantidad de elementos que puede almacenar esta matriz es 12, ya
que la primera dimensión va desde 0 a 2, donde tenemos 3 posiciones y la segunda desde 0 a
3, donde tenemos 4 elementos.

Las matrices de 3 dimensiones o más se pueden usar para elaborar simulaciones o


quizás aplicaciones relacionadas a juegos.

Para almacenar elementos en una matriz de 2 dimensiones se debe utilizar la posición de fila y
columna respectiva. Ahora vamos a rellenar elementos en algunas posiciones de la matriz:

x(0, 2) = 9
x(2, 2) = 19
x(0, 1) = 23
x(2, 3) = 23

Por otro lado, si lo que deseamos es recorrer todos los elementos de la matriz “x”, debemos
usar 2 estructuras FOR (una para cada dimensión).

For i As Byte = 0 To x.GetUpperBound(0)


For j As Byte = 0 To x.GetUpperBound(1)
MsgBox(x(i, j))
Next
Next

El método GetUpperBound() retorna el indice máximo de una dimensión respectiva,


recordemos que para Visual Basic .Net la matriz “x” posee 2 dimensiones, la primera se
contabiliza como dimensión cero y la segunda como dimensión uno.

Modulo: Fundamentos de Programación Pag. 91


Programa: Programador .NET

Ejercicios propuestos
1. Desarrollar un programa que solicite una cantidad determinada de números y los almacene
en un vector, luego debe mostrar la suma de todos ellos.

2. Desarrollar un programa que permita mostrar el número mayor de un vector.

3. Desarrollar un programa que cree la siguiente matriz:

11

19

Luego se debe solicitar un número y se debe indicar si el número se encuentra o no en el


vector, en caso de que exista se debe mostrar la cantidad de veces que aparece el número
en la matriz.

4. Utilice la matriz del ejercicio anterior para desarrollar un programa que solicite un número,
si el número se encuentra dentro de la matriz se debe mostrar los elementos que se
encuentran a su alrededor, por ejemplo si se ingresa el número 5 se debe mostrar 11 y 7,
si se ingresa 8 se debe mostrar 9. Si el número no se encuentra en la matriz muestre un
mensaje de alerta.

5. Desarrollar un programa que cree la siguiente matriz:

18 19 16 7 401

17 18 1 53 6

9 15 18 210 109

5 4 122 245 13

Modulo: Fundamentos de Programación Pag. 92


Programa: Programador .NET

Luego se debe solicitar un número, si el número existe en la matriz entonces mostrar


aquellos números que se encuentran a su alrededor, por ejemplo si se ingresa 53 se debe
mostrar 16, 7, 401, 6, 109, 210, 18 y 1, en caso de que se repita 2 veces se debe emitir
una alerta indicando que ingrese otro número, en caso de que el número no exista se debe
mostrar un mensaje de error.

Si el número ingresado fuera 5, únicamente se debe mostrar 4, 9 y 15.

Modulo: Fundamentos de Programación Pag. 93


Programa: Programador .NET

SESIÓN

Procedimientos y
funciones 11

AL FINALIZAR LA PRESENTE SESIÓN, EL PARTICIPANTE ESTARÁ EN LA CAPACIDAD


DE:

 Reconocer y describir características y ventajas de dividir un programa utilizando


procedimientos y funciones
 Aplicar correctamente procedimientos y funciones en la implementación de programas.

TEMAS:

 Divide y vencerás
 Procedimientos
 Funciones

Modulo: Fundamentos de Programación Pag. 94


Programa: Programador .NET

Divide y vencerás
Divide y vencerás tiene sus orígenes en un refrán que sugiere dividir un problema grande
en problemas más pequeños, de esta manera si solucionamos los problemas menores
encontraremos la solución al problema mayor. En el mundo de los programadores es una buena
práctica realizar “divisiones”, no solamente para facilitar la resolución de un problema grande,
sino también para facilitar el mantenimiento de código y mejorar la legibilidad del código fuente
(que podría ser abundante de acuerdo a la complejidad del programa o sistema de información
que estemos implementando).

Para dividir un programa en subconjuntos se hace uso de procedimientos y funciones,


ambos agrupan una porción de código para luego hacer referencia al mismo a través de un
identificador o nombre. La principal diferencia entre ellos es que una función puede retornar
un valor, mientras que un procedimiento no devuelve valores.

Procedimientos
Como se mencionó anteriormente, un procedimiento se utiliza para empaquetar una porción
de código, además que no devuelve valores. Para conseguir un panorama más claro de la
aplicación de un procedimiento, vamos a crear un proyecto de tipo Windows Forms
Application con el nombre FunProg_SS11_Demo1, luego vamos a dibujar la siguiente
interfaz:

Figura N° 67

Luego establecemos algunas propiedades según la siguiente tabla:

Control Propiedad Valor

lblTitulo Font Tahoma, 18pt

Modulo: Fundamentos de Programación Pag. 95


Programa: Programador .NET

Text Simulador de bono de trabajador


Font Tahoma, 18pt
lblMontoBono
Text 0.00
chbCasado
chbMayor50Anios Font Tahoma, 9pt
chbConHijos
Form1 Text Procedimientos y funciones
Tabla N° 32

Recordemos que no es recomendable utilizar la letra “ñ” en el identificador de un


control, las buenas prácticas sugieren reemplazarlo por “ni”

Lo que pretendemos es que se calcule el bono del trabajador en base a los siguientes criterios:

Situación Bonificación

Casado Bono de S/. 400.00


Con hijos Bono de S/. 550.00
Mayor de 50 años Bono de S/. 650.00
Tabla N° 33

El programa tiene que ser dinámico, es decir, si el usuario marca o quita la marca de alguna
de las opciones (Casado, con hijos o mayor de 50 años) automáticamente se debe calcular la
bonificación, es por tal motivo que no se incluyó ningún botón durante el diseño del formulario.

Para iniciar con la escritura de código, hacemos doble click en la barra de título del formulario e
inmediatamente se apertura el evento Load (que se produce en el momento que el formulario
inicia).

Figura N° 68

Ahora vamos a crear un procedimiento que realice el cálculo de la bonificación. Debemos tener
en cuenta que los procedimientos o funciones se crean independientemente de los eventos,
pero deben estar incluidos dentro de los límites de la clase. El siguiente gráfico ilustra las zonas
donde podemos crear un procedimiento o una función:

Modulo: Fundamentos de Programación Pag. 96


Programa: Programador .NET

Figura N° 69

En cualquiera de las zonas indicadas con “CORRECTO”, vamos a agregar las siguientes líneas
de código:

Sub Calcular_Sueldo()
Dim sumaDeBonos As UShort
If chbCasado.Checked = True Then sumaDeBonos += 400
If chbConHijos.Checked = True Then sumaDeBonos += 550
If chbMayorDe50Anios.Checked = True Then sumaDeBonos += 650
lblMontoBono.Text = "S/. " & sumaDeBonos.ToString("0.00")
End Sub
Los procedimientos se crean por medio de la palabra reservada Sub seguido del nombre del
procedimiento (Calcular_Sueldo para el presente caso), y termina con End Sub. El contenido
del procedimiento muestra una variable llamada sumaDeBonos que acumula el bono de
acuerdo a las opciones que se selecciona a través de los controles CheckBox.

El siguiente paso es llamar al procedimiento, para ello hacemos doble click en chbCasado,
inmediatamente se apertura el evento CheckedChanged que se produce cada vez que se
marca o quita la marca de un CheckBox. Vamos a llamar al procedimiento aquí porque
necesitamos calcular el sueldo cada vez que el usuario marque o quite la marca de cada una de
las opciones. Para llamar al procedimiento simplemente utilizamos su nombre:

Private Sub chbCasado_CheckedChanged(sender As Object.....


Calcular_Sueldo()
End Sub
Hacemos el mismo proceso para las opciones restantes:

Private Sub chbConHijos_CheckedChanged(sender As Object.....


Calcular_Sueldo()
End Sub

Y finalmente,

Private Sub chbMayorDe50Anios_CheckedChanged(sender As Object.....


Calcular_Sueldo()
End Sub
Ahora ejecutamos la aplicación y notaremos que mientras marcamos o quitamos las marcas de
las opciones, automáticamente se calcula la bonificación respectiva.

Modulo: Fundamentos de Programación Pag. 97


Programa: Programador .NET

Figura N° 70

Funciones
Una función al igual que un procedimiento puede empaquetar una porción de código, pero la
gran diferencia es que una función debe retornar un valor a través de la palabra Return.

Para entenderlo mejor, vamos a solucionar el ejercicio anterior aplicando una función, debemos
considerar que la zona de creación de una función es la misma que un procedimiento, es decir,
tiene que estar ubicada independientemente de los eventos ero dentro de los límites de la
clase.

Para no mezclar el código, podemos agregar otro formulario a nuestro proyecto y diseñamos la
misma interfaz que el ejercicio anterior, incluyendo las mismas propiedades.

Una vez que la interfaz este lista, vamos a dar un doble click en la barra de título del
formulario, y luego ubicamos el siguiente código en una zona correcta, tal y como se muestra
en la figura N0.0

Function Calcular_Sueldo() As UShort


Dim sumaDeBonos As UShort
If chbCasado.Checked = True Then sumaDeBonos += 400
If chbConHijos.Checked = True Then sumaDeBonos += 550
If chbMayorDe50Anios.Checked = True Then sumaDeBonos += 650
Return sumaDeBonos
End Function

Como podemos apreciar, las funciones se crean con la palabra reservada Function, seguido
del nombre de la función (Calcular_Sueldo), adicionalmente se debe incluir el tipo de dato del
valor a retornar. Para el presente caso se usa el tipo de dato UShort que significa que la
función Calcular_Sueldo retorna un valor de tipo UShort.

El siguiente paso es agregar el siguiente fragmento de código en cada evento


CheckedChanged de cada una de las opciones.

lblMontoBono.Text = "S/. " & Calcular_Sueldo.ToString("0.00")

Ahora ejecutamos el programa para visualizar el resultado.

Modulo: Fundamentos de Programación Pag. 98


Programa: Programador .NET

Figura N° 71

Como podemos apreciar el resultado es el mismo.

¿Procedimiento o función?

Determinar el uso de un procedimiento o una función depende de la comodidad del


desarrollador, existen casos en que necesitamos hacer algo y a la vez retornar un valor, como
por ejemplo pagar la pensión de un alumno y a la vez determinar la cantidad de cuotas que
resta por pagar; para este caso lo más recomendable es utilizar una función. Por otro lado
algunos otros desarrolladores preferirían crear un procedimiento para pagar la pensión de un
alumno y muy aparte una función para calcular las cuotas que restan por pagar, como podemos
apreciar, cualquiera de ambos escenarios soluciona el problema.

En cualquiera de los escenarios mostrados anteriormente, si el cálculo del bono se


modificar, lo único que debemos hacer es actualizar el código del procedimiento o
función que estemos utilizando y automáticamente todas sus dependencias también se
actualizarían, ésta es la gran ventaja que tiene utilizar procedimientos y funciones.

Para el ejercicio anterior, nuestra función únicamente devuelve el valor del bono luego
nosotros decidimos que hacer con dicho valor, asignarlo a un Label, mostrarlo en un MsgBox,
etc. Mientras que el procedimiento incluye código para calcular el bono e inmediatamente
asignarlo al Label respectivo.

No se trata de concluir quien de ambos es mejor, se trata de utilizar con criterio las
posibilidades que tenemos para empaquetar código.

Modulo: Fundamentos de Programación Pag. 99


Programa: Programador .NET

SESIÓN

Ejercicio Final 12

AL FINALIZAR LA PRESENTE SESIÓN, EL PARTICIPANTE ESTARÁ EN LA CAPACIDAD


DE:

 Desarrollar programas básicos que brinden solución a situaciones cotidianas.

TEMAS:

 Ejercicio de repaso

Modulo: Fundamentos de Programación Pag. 100


Programa: Programador .NET

Ejercicio de repaso
Desarrollar el siguiente ejercicio con el apoyo del docente, considere que debe tratar en todo
momento de escribir código eficiente, así como también hacer uso correcto de cada control.

Elaborar el siguiente formulario de registro de libros para una biblioteca, considere únicamente
los siguientes géneros: Ficción, Drama, Comedia y Autoayuda.

Los datos obligatorios del formulario son el código (realice las validaciones del caso para que
sea único por cada libro), título, autor y género. Una vez presionado el botón registrar se debe
guardar internamente los datos ingresados del libro.

El botón resumen nos mostrará la lista de todos los libros que hemos registrado.

Modulo: Fundamentos de Programación Pag. 101


Programa: Programador .NET

Para el botón estadísticas, se mostrará la cantidad de libros por cada categoría, incluyendo sus
porcentajes:

Modulo: Fundamentos de Programación Pag. 102

También podría gustarte