You are on page 1of 104

Programador

.NET 2012



















1
AUMENTA TU PRODUCTIVIDAD




































Centro de Educacin Continua
Universidad Continental
Material para fines de Estudio del Programa: Programador .NET
Elaborado por: Ing. Rolando R. Zapata Marav

Queda prohibida la reproduccin total o parcial del contenido de este documento en
cualquiera de sus formas, sean electrnicas o mecnicas, sin el consentimiento previo y
por escrito del autor y el Centro de Educacin Continua.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 1



Introduccin






AL FINALIZAR LA PRESENTE SESIN, EL PARTICIPANTE ESTAR EN LA CAPACIDAD DE:

Identificar y describir los conceptos bsicos relacionados a desarrollo de software.
Comprender la importancia de los sistemas de informacin en las organizaciones.
Reconocer el rol que cumple Visual Studio en el desarrollo de sistemas de informacin.

TEMAS:

Sistemas de informacin
Programador
Paradigmas de programacin
Lenguaje de programacin
Visual Basic .Net
Entorno de Desarrollo Integrado (IDE)
Visual Studio 2012
.Net Framework



SESIN
1
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 2
Introduccin
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 fsico que se encuentre conectado al
equipo. Por otro lado, el software est conformado por programas que vienen a ser elementos
lgicos del computador, entre ellos tenemos a Microsoft Word, Microsoft Excel, Adobe Flash
Professional, Microsoft Project, AutoCAD, etc. A continuacin se muestra una tabla con una
breve descripcin de cada software mencionado anteriormente:
Software Propietario Propsito
Microsoft Word MICROSOFT
Procesar textos (Cartas, libros, artculos,
resmenes, tesis, etc.)
Microsoft Excel MICROSOFT
Elaborar hojas de clculo (Cuadre de caja,
estados financieros, boletas de notas, control de
asistencia, inventario de almacn, etc.)
Adobe Flash Professional ADOBE
Disear e implementar animaciones (Para
pginas Web, exposiciones con diapositivas,
comerciales, etc.)
Microsoft Project MICROSOFT
Gestionar proyectos, ya sean pequeos como un
campeonato escolar, o de gran complejidad
como la construccin de una carretera.
AutoCAD AUTODESK
Diseo de formas en 2D y 3D (Formas, planos,
visitas guiadas en 3D, edificaciones, etc.)
Tabla N 1
El presente mdulo est orientado a la implementacin de software, es decir, as como
Microsoft cre Microsoft Word para procesar textos, el objetivo del presente mdulo 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 Informacin
Es un conjunto de elementos relacionados que tienen como propsito almacenar y procesar
datos, generando como resultado final lo que conocemos como informacin. Adems,
debemos entender que los elementos del sistema de informacin comprenden hardware,
software y el personal. Los sistemas de informacin cumplen un rol muy importante a nivel
empresarial, ya que permite almacenar y obtener informacin en corto tiempo, con mayor
precisin y alta confiabilidad.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 3
A continuacin se describen algunos ejemplos de sistemas de informacin muy comunes en las
organizaciones:
Control de asistencia
Propsito: Gestionar informacin relacionada al ingreso y salida del personal, en relacin
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 grficos estadsticos referentes a la
asistencia del personal, registrar un nuevo empleado, cambiar el horario de trabajo, etc.
Control bsico de almacn
Propsito: Controlar informacin sobre la entrada y salida de productos de almacn.
Procesos principales: Registrar entrada de productos, registrar salida de productos,
imprimir listas de productos de acuerdo a ciertos filtros (fecha de caducidad, categora,
marca, entre otros), mostrar alertas para los productos que han alcanzado el stock mnimo,
etc.
Gestin de recursos humanos
Propsito: Procesar informacin relacionada con el personal de la empresa.
Procesos principales: Registro de un nuevo personal, edicin de datos del personal,
resmenes de informacin por trabajador, bsqueda del personal por nombre, apellido
paterno, DNI, etc.

Programador
Se denomina programador a aquella persona que desarrolla programas informticos, stos
se encuentran constituidos por un conjunto de instrucciones conocido como cdigo fuente. El
programador es el encargado de escribir, depurar (corregir) y dar mantenimiento al cdigo
fuente de un programa informtico. Adicionalmente, el programador recibe el nombre
alternativo de desarrollador.
Cuando lo que se quiere es implementar un sistema de informacin de alta complejidad,
generalmente se constituye un equipo de 3 o 4 programadores (ms o menos de acuerdo a
la dificultad y el tiempo establecido) para su desarrollo.
Al igual que muchos oficios y profesiones, existe un da al ao que agasaja al
programador. sta fecha es el da nmero 256 del ao, que puede ser el 12 o 13 de
septiembre de acuerdo a si el ao es bisiesto o no.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 4
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 informacin que se pretende implementar.

Paradigmas de programacin
En trminos sencillos, un paradigma de programacin es un estilo o forma de implementar
un programa. Existen diversos paradigmas en el mercado informtico, a continuacin se listan
algunos de ellos:
Programacin estructurada
Programacin Orientada a Objetos (POO)
Programacin modular
Programacin funcional
Programacin declarativa
Programacin Orientada a Aspectos (POA)

El paradigma ms 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 sesin nmero 4 del
presente material se abordar con ms detalle las caractersticas de la Programacin Orientada
a Objetos y sus principales elementos.
Durante el desarrollo del presente mdulo se abordar de manera terica y prctica los
fundamentos, caractersticas y ventajas de la Programacin Orientada a Objetos.

Lenguaje de programacin
Para poder comunicarnos con los dems hacemos uso del idioma espaol, de sta manera
intercambiamos ideas y experiencias con otras personas. Por otro lado, si lo que necesitamos es
transmitir alguna peticin u orden a un computador, debemos aprender un lenguaje de
programacin, ya que ste nos permitir por medio de comandos transmitir rdenes
especficas al computador y de sta manera sacar provecho del mismo.
Al igual que en todo el mundo existen diversos idiomas, tambin existen diversos lenguajes de
programacin, cada uno cuenta con sus propias caractersticas, ventajas y desventajas. Si por
un lado tenemos al idioma espaol, ingls, francs, alemn, etc; por el lado de los lenguajes de
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 5
programacin 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 fcil o difcil puede
ser aprender un nuevo idioma. Los lenguajes de programacin no son ajenos a ste detalle, por
ejemplo el lenguaje de programacin Java es ms estricto que Visual Basic .Net, ya que el
primero distingue maysculas y minsculas, entre otras caractersticas.
Anteriormente se describi al paradigma orientado a objetos, pues bien Visual Basic .Net,
C# .Net y Java son ejemplos clsicos de lenguajes orientados a objetos.
Debemos recordar que en el mundo existen centenares de lenguajes de programacin, algunos
ms populares que otros a nivel mundial.

VISUAL BASIC .Net
VISUAL BASIC .Net es un lenguaje de programacin potente y orientado a objetos. Con l
podemos implementar aplicaciones pequeas, medianas o complejas. Un punto importante a
considerar es que Visual Basic .Net es diferente de Visual Basic, ste ltimo es una
extensin de un lenguaje conocido como BASIC (Beginners All Purpose Symbolic Intruction
Code), pero Visual Basic .Net no es una extensin de BASIC ni de Visual Basic, sino que ha sido
remodelado en su mayor parte para crear un lenguaje que sintcticamente es muy parecido a
su antecesor pero diferente en funcionamiento interno.
El presente material est orientado a aprender programacin utilizando Visual Basic .Net, que
es sencillo, amigable y potente.
Algunas bibliografas fsicas y digitales mencionan que Visual Basic .Net es la evolucin
de Visual Basic.

Entorno de desarrollo integrado
Conocido tambin como IDE (Integrated Development Environment), es un software que
provee un conjunto de herramientas para crear programas informticos en uno o
varios lenguajes de programacin.
Algunos de los IDEs ms 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.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 6
Una caracterstica del lenguaje de programacin 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 programacin 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 mltiples
lenguajes de programacin 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 informacin que se requiera. A continuacin se muestra una breve descripcin 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 quizs 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 ms atractivas visualmente ya que tienen la capacidad de implementar dentro
de su interfaz una gran variedad de controles que combinan imgenes, colores,
cursores personalizados, diversos tipos de fuente, etc.
Aplicaciones WPF (Windows Presentation Foundation)
ste tipo de aplicaciones tiene un contenido mucho ms atractivo que una aplicacin
Windows, adems de ser catalogada como la nueva generacin de aplicaciones, permite
implementar formularios que incluyan animaciones y efectos que dan como resultado
una aplicacin bastante rica en contenido visual.
Aplicaciones Web
Son aplicaciones orientadas a funcionar sobre Internet, un ejemplo muy clsico es el portal
de Amazon http://www.amazon.com/ o Facebook http://www.facebook.com/, ya que
guardan gran cantidad de informacin 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 podran agregarse, de sta manera nuestra informacin puede ser consultada
en cualquier momento desde cualquier computador que cuente con conexin a Internet y
desde cualquier parte del mundo.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 7
La mayora de sitios Web en internet que se usan para comercio electrnico vienen a ser
ejemplos sencillos de aplicaciones Web.
Bibliotecas de clases
A medida que vamos implementando aplicaciones, vamos generando cdigo fuente que
sera til en el desarrollo de aplicaciones futuras. Una biblioteca de clases nos permite
empaquetar cdigo en un archivo con extensin dll y de esa manera reutilizarlo
posteriormente ahorrando as tiempo y esfuerzo.
ste tipo de proyecto es tambin utilizado para implementar soluciones con capas, el
concepto de clase y capas lo abordaremos ms adelante.
Aplicaciones Silverlight
Silverlight est orientado a la creacin de aplicaciones Web ricas en contenido visual,
permite el trabajo con grficos vectoriales, reproduccin 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 botn 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 versin y
edicin instalada (para el presente material contamos con la versin 2012 en edicin Ultimate)
tal como se muestra en la Figura N 2.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 8

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

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 9
1
Barra de ttulo
Si algn proyecto o solucin se encuentra abierto entonces se muestra su nombre
respectivo, en caso contrario se muestra el texto Start Page - Microsoft Visual
Studio.
2
Barra de men
Comprende lo que se muestra desde File hasta Help. En sta seccin podemos
encontrar una serie de opciones disponibles para las soluciones que estemos
trabajando.
3
Barra de herramientas
Contiene los principales comandos utilizados durante la implementacin de
aplicaciones.
4
Proyectos recientes
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
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 10
Click en el men File opcin New opcin 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
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 11
En trminos sencillos, viene a ser una biblioteca de recursos que permite la compilacin y
ejecucin 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 tambin 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 investigacin
Para complementar el aprendizaje de sta primera sesin 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
tecnologas Microsoft.
2. Investigar definiciones y trminos relacionados a algoritmos.
Conceptos como algoritmo, pseudocdigo, diagramas de flujo y diagramas N/S (stos 3
ltimos vienen a ser medios para representar algoritmos)
Asignacin domiciliaria
1. Elaborar una lista de diferencias entre Programador Junior, Programador Semi Senior
y Programador Senior.
2. Elaborar una lnea 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 caractersticas de cada edicin de Visual
Studio 2012.
Autoevaluacin
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 12
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 da 256 del ao para celebrar el da del programador?
4. Si queremos realizar un pequeo programa utilizando Visual Basic .Net como lenguaje de
programacin, Podremos implementarla sin hacer uso de Visual Studio?
5. Cul es el paradigma de programacin ms utilizado actualmente?
6. Describa brevemente con sus propias palabras los tipos de aplicaciones (nicamente
los detallados en la presente sesin) que se pueden construir con Visual Studio 2012.
7. Cules son las ventajas de contar con un sistema de informacin en una empresa?
8. Elabore una lista con un mnimo de 10 lenguajes de programacin.
9. Cul es la importancia de utilizar un IDE?
10. Cul es la ltima versin de Visual Studio? En qu fecha fue lanzada al mercado?





Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 13



Conceptos bsicos
De Programacin





AL FINALIZAR LA PRESENTE SESIN, EL PARTICIPANTE ESTAR EN LA CAPACIDAD DE:

Reconocer las partes principales del entorno de Visual Studio 2010.
Identificar los principales controles en una aplicacin.
Crear y utilizar variables y constantes.

TEMAS:

Entorno de trabajo de Visual Studio 2012
Controles bsicos
Eventos
Variables y constantes
Tipos de datos






SESIN
2
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 14
Entorno de trabajo de Visual Studio 2012
Durante el primer tramo del presente mdulo, aprenderemos a programar utilizando Visual
Basic .Net, conoceremos sus caractersticas, 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 opcin 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 (seccin
name) que preferentemente debe guardar relacin con el tipo de aplicacin que vamos a
implementar, luego seleccionamos una ubicacin en el disco duro para alojar el proyecto
por medio del botn Browse, y opcionalmente agregamos un nombre a la solucin (seccin
Solution name), ms adelante tocaremos la diferencia entre Nombre y Nombre de la
solucin, 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 ubicacin en el disco duro
Solution name: DemostracionInicial

Se recomienda establecer el Nombre del proyecto sin considerar espacios en blanco. Si
desea utilizar una separacin puede usar el carcter _. 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 botn 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).
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 15

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


Al inicio se muestra un formulario (Form1.vb), pero este panel crece considerablemente
mientras vamos avanzando con el desarrollo de la aplicacin, es decir, agregando nuevos
formularios, mdulos, clases, carpetas, entre otros elementos que colaboran entre s para
cubrir un objetivo.




Figura N 9
Muestra una lista de todos los proyectos que
forman parte de nuestra solucin,
adicionalmente, cada proyecto puede contener
sus propios elementos como formularios,
carpetas, mdulos, clases, referencias, informes,
archivos de texto, etc.

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 16
Cuadro de herramientas



Panel propiedades




A medida que vamos implementando la interfaz grfica
de nuestra aplicacin, usaremos una serie de controles
para capturar o mostrar informacin al usuario,
estos controles se encuentran desplegados a lo largo
del cuadro de herramientas. Cada control tiene una
caracterstica 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 nmeros) para
capturar su edad.
El cuadro de herramientas se encuentra dividido en
categoras (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 categora.
Muestra las caractersticas del objeto
seleccionado. Por ejemplo, si se selecciona el
formulario que aparece en la parte central (con un
solo click en la barra de ttulo o en una zona vaca),
el panel propiedades mostrar todas las
caractersticas del formulario seleccionado como
por ejemplo BackColor (Color de fondo), Text
(Texto que se muestra en la barra de ttulo), Size
(Ancho y alto del formulario), Opacity (Nivel de
transparencia del formulario), FormBorderStyle
(Apariencia del borde y la barra de ttulo del
formulario), Name (Nombre de identificacin del
formulario), etc.
Figura N 10
Figura N 11
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 17
rea de trabajo
Est conformada por la vista donde apreciamos el diseo 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 algn 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.

Si deseamos eliminar un control, lo nico que tenemos que hacer es seleccionarlo con un click y
luego presionar el botn Suprimir.
Segunda forma:
Arrastrar el control deseado a una posicin determinada en el formulario.


Figura N 13
Figura N 12
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 18
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 arrastrndolos con el puntero del mouse en cualquier posicin dentro del
formulario.

Controles bsicos
Revisin de los principales controles
Los formularios estn compuestos de diversos controles para gestionar datos, durante el
desarrollo del presente mdulo conoceremos una serie de controles que nos van a permitir
elaborar adecuadas interfaces para interactuar con el usuario.
La siguiente tabla detalla algunos controles bsicos para crear un programa sencillo:

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 19
Control Prefijo Descripcin breve
TextBox txt Permite el ingreso de un conjunto de caracteres (nmero,
letras o smbolos), es esencial para el proceso de captura de
datos. Por ejemplo, se puede utilizar varios controles Textbox
para capturar datos bsicos de un alumno como el nombre,
apellido paterno, apellido materno, correo electrnico,
observaciones, etc.
NumericUpDown nud Es un control preparado para el ingreso de valores
numricos, ya sean enteros o decimales.
Label lbl Es una etiqueta que comnmente se usa para mostrar ttulos
o algn contenido especfico.
Button btn Generalmente se realiza un click sobre ste control para
desencadenar acciones, por ejemplo: Enviar un correo
electrnico, anular una boleta de venta, matricular a un
alumno, imprimir un informe, etc.
ListBox lst Permite manejar una coleccin de elementos.
ComboBox cmb De manera similar a la anterior, permite manejar colecciones de
elementos pero su forma grfica 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 seran Masculino y
Femenino, y el usuario podra 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
identificacin, 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
electrnico de un cliente, el nombre ms 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 numrico) 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 prctica de
programacin, no solamente se recomienda utilizarlo en Visual Basic .Net, sino tambin
en cualquier lenguaje de programacin y en cualquier tipo de aplicacin.

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 20

Figura N 15

El nombre de un control no puede incluir espacios en blanco, ni iniciar con un nmero o
algunos smbolos (@, #, $, entre otros), ni ser una palabra reservada (palabra que
pertenece al lenguaje de programacin 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.

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 21

Figura N 16

Laboratorio N 1
Ejercicio N 1:
Para aplicar lo aprendido hasta el momento, vamos a disear un formulario bsico de registro de
datos de acuerdo a lo que se detalla a continuacin:
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
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 22
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 Descripcin
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 opcin masculino
rbFemenino RadioButton Representa a la opcin 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 presentacin de nuestro formulario, agregaremos una imagen que
puede representar al logo de la empresa, un ttulo resaltante al formulario y convertir el TextBox
perteneciente a las observaciones en una caja de texto de mltiples lneas 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.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 23
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.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 24



Figura N 20

Ahora un click al botn Importar


Figura N 21

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 25
Se mostrar una ventana de bsqueda 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 botn Importar, tal y como se muestra en la Figura N
22.

Figura N 22

Finalmente hacemos click en el botn Aceptar y obtenemos el siguiente resultado:

Figura N 23

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 26
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 vrtices y lados del PictureBox), y la segunda solucin es
acoplar la imagen incrustada al tamao del control, para esto nuevamente hacemos click en
la etiqueta inteligente, desplegamos Modo de tamao y seleccionamos la opcin
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 (tambin denominado SmartTag) es una
caracterstica que se encuentra en la mayora de controles que proporciona Visual
Studio, y nos permite acceder a las propiedades ms comunes de cada control.


c) Ahora vamos a agregar un ttulo a nuestro formulario, para ello dibujamos un Label en el
encabezado tal y como se muestra en la Figura N 26.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 27

Figura N 26

Seleccionamos el Label que acabamos de agregar y le asignamos las propiedades mostradas
en la siguiente tabla:

Propiedad Valor Descripcin
Text Registro de personal Indica el texto que se muestra dentro del control
ForeColor Blue
Se utiliza para asignar un determinado color de
fuente
Font Tahoma, 16pt
Define el formato de fuente del control, como por
ejemplo tipo y tamao 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, opcin Center in form y luego
Horizontalmente, de esta manera obtenemos un resultado similar al siguiente:


Figura N 27
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 28

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

Propiedad Valor Descripcin
BackColor White Color de fondo del formulario
FormBorderStyle FixedToolWindow Estilo de borde del formulario
Text Primer Programa
Texto que se muestra en la barra de ttulo del
formulario
StartPosition CenterScreen
Posicin en que se muestra el formulario al
ejecutarse
Opacity 90% Nivel de transparencia del formlario



Eventos
Un evento es una reaccin de un control ante alguna accin 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 descripcin breve sobre el
tamao del mismo y su fecha de modificacin, 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 botn inicio, mientras vamos
escribiendo algn texto en su interior, automticamente 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 prctica 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 botn tal y como muestra la siguiente figura:
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 29

Figura N 28

Ahora vamos otorgar las siguientes propiedades:
Propiedad Valor
Name btnAceptar
Text Aceptar
Para acceder a los eventos del botn, vamos a seleccionar el botn btnAceptar y luego
hacemos click al icono en forma de rayo que se encuentra en la cabecera del panel
propiedades.


Figura N 29

A continuacin se muestra una lista de eventos pertenecientes al control seleccionado (en este
caso el botn 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 definicin.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 30



Figura N 30
A continuacin se mostrar la ventana de cdigo con el evento MouseMove del btnAceptar.
ste evento se produce cuando el usuario ubica el mouse por encima del rea que ocupa el
botn, para hacer una pequea 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 aplicacin presionando F5 o haciendo click en el botn Iniciar
Depuracin ubicado en la barra de herramientas. Cuando se muestra el formulario, podemos
ubicar el puntero del mouse dentro del rea del botn 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
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 31
Cualquier aplicacin o sistema de informacin 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 inscripcin de un participante, el DNI de un pasajero, etc. Se denomina
variable porque si valor puede cambiar a lo largo de la ejecucin del programa.
Para crear una variable en Visual Basic .Net se hace uso de la palabra Dim, seguido del nombre
de la variable (conocido tambin como identificador) y el tipo de dato respectivo (concepto que
veremos ms adelante).
Ejemplo:

El tipo de dato Byte se utiliza para cantidad numricas pequeas entre 0 y 255, por lo tanto es
ptimo para representar la edad de una persona. Adems, debemos tener en cuenta que el
valor inicial de toda variable con tipo de dato numrico es cero.
El subrayado verde indica que la variable midEdad no se ha utilizado an, 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 nmeros, y algunos smbolos (@, #, $, entre otros).
No se puede usar una palabra reservada, como por ejemplo Public, Class, Private, Sub,
Dim, etc.

Constantes
Una constante tiene las mismas caractersticas 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
ejecucin del programa.
Ejemplo:

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 32
Al igual que las variables, las constantes tambin requieren de un tipo de dato, el tipo de dato
Single representa a nmeros decimales de precisin (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 estn
acompaadas 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 nmero enteros pequeos (ya que
su rango es desde 0 a 255) y el segundo se usa para nmeros decimales con precisin
(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 numricos
La siguiente tabla muestra una lista de los principales tipos de datos para representar nmeros.
Tipo de
dato
Almacenamiento Intervalo

Byte 1 byte 0 a 255
N

m
e
r
o
s

e
n
t
e
r
o
s
SByte 1 byte -128 a 127
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
Long 8 bytes
-9.223.372.036.854.775.808 a
9.223.372.036.854.775.807
ULong 8 bytes 0 a 18.446.744.073.709.551.615
Single 4 bytes
-3,4028235E+38 a -1,401298E-45

para los
valores negativos;
1,401298E-45 a 3,4028235E+38

para los
valores positivos
N

m
e
r
o
s

c
o
n

d
e
c
i
m
a
l
e
s

(
N

m
e
r
o
s

d
e

p
u
n
t
o

f
l
o
t
a
n
t
e
)

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

sin separador decimal; 0 a +/-


7,9228162514264337593543950335 con 28
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 33
posiciones a la derecha del decimal;
el nmero distinto de cero ms pequeo 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 electrnico, sexo, tipo de sangre, etc. Una cadena est conformada
por un conjunto de caracteres, y un caracter puede ser una letra, un nmero o un smbolo. Por
ejemplo el nombre Avril viene a ser una cadena de caracteres tipo letra, mientras que un
correo electrnico como avrilLynda2013@hotmail.com viene a ser una cadena de caracteres de
tipo letra, nmero y smbolo.
La siguiente tabla muestra los tipos de datos para representar cadenas:
Tipo de dato Almacenamiento Intervalo
Char 2 bytes 0 a 65535
String
En funcin de la
plataforma de
implementacin
0 a 2.000 millones de caracteres Unicode
aprox.
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 lgico y fecha
Para representar una fecha se puede utilizar el siguiente tipo de dato:
Tipo de dato Almacenamiento Intervalo
Date 8 bytes
0:00:00 (medianoche) del 1 de enero de
0001 a 11:59:59 p.m. del 31 de diciembre de
9999
El tipo de dato lgico 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 funcin de la plataforma de implementacin True o False
Recordemos que la asignacin del tipo de dato correcto es una buena prctica de
programacin, por ejemplo, como vimos anteriormente si deseamos capturar la edad de
una persona en una variable, lo ms 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, tambin funciona, pero no es eficiente porque en un
sistema de informacin no vamos a trabajar con 1 o 2 variables sino con muchas, en ese
momento es donde podemos observar el real rendimiento de una aplicacin.

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 34
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
Descripcin
lblEdadEnAnios Label
Font: Tahoma, 9pt Cambia el tipo de fuente
ForeColor: Blue
Establece el color de fuente
a azul
nudEdad NumericUpDown
Font: Tahoma, 9pt Cambia el tipo de fuente
Minimum: 0 Valor mnimo permitido
Maximum: 100 Valor mximo permitido
Value: 18 Valor mostrado por defecto
Increment: 2
Unidades para el
incremento o decremento
del control
lblEdadEnMeses Label
Font: Tahoma, 9pt Cambia el tipo de fuente
ForeColor: Red
Establece el color de fuente
a azul
txtEdadEnMeses TextBox
Font: Tahoma, 9pt Cambia el tipo de fuente
Readonly: True
Establece que el contenido
del TextBox en modo Slo
lectura
btnCalcular Button Text: Calcular
Texto que se muestra en el
botn
btnCerrar Button Text: Cerrar
Texto que se muestra en el
botn

El siguiente paso es codificar en el evento Click del botn Cerrar, para ingresar al evento
podemos hacer un doble click en el botn cerrar, o sino hacemos un click en el botn cerrar
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 35
y por medio del panel propiedades, seccin eventos (para acceder a sta seccin 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 mtodo se utiliza
para cerrar el formulario actual.

Ahora vamos a realizar un procedimiento similar con el botn aceptar, actualmente estamos en
la ventana de cdigo, as que para visualizar nuevamente la interfaz (conocida tambin como
vista diseo) vamos a dar un click en la pestaa Form1.vb[Design]. Una vez realizado el
cambio vamos a dar doble click al botn 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 seccin
eventos.

Figura N 33

Al hacer doble click en el botn Calcular, automticamente 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.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 36

Ahora procederemos a calcular el equivalente en meses de la edad ingresada en aos, 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 codificacin 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 botn Start

Figura N 34

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

Figura N 35

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 37
Temas sugeridos de investigacin
Para conocer un poco ms sobre fundamentos de programacin, puede revisar el manual de Visual
Basic .Net del sitio Web de El Guille e ingresar al curso de programacin de la Academia Virtual de
Microsoft:
3. Microsoft Virtual Academy
http://www.microsoftvirtualacademy.com/Home.aspx
4. Manual de programacin en Visual Basic .Net de El Guille
http://www.elguille.info/NET/cursoVB.NET/default.aspx

Asignacin 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 crculo.
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 promocin existe un descuento del 15.25%.
4. Desarrollar un programa que permita ingresar un monto en soles y muestre su
equivalente en dlares y euros.
5. Desarrollar un programa permite ingresar un tiempo en minutos y luego muestre su
equivalente en segundos, milisegundos, horas y das.



Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 38
Autoevaluacin
11. Por qu debo asignar prefijos a los controles de un formulario?
12. Qu es un nmero de punto flotante?
13. Por qu existen tantos tipos de datos en Visual Basic .Net?
14. Qu son las buenas prcticas de programacin?
15. Qu es un evento?
16. Qu es una cadena?
17. Qu indica el subrayado verde y azul en una lnea de cdigo?
18. Cules son las reglas que debemos tomar en cuenta para asignar nombres a variables?





Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 39



Funciones
Incorporadas





AL FINALIZAR LA PRESENTE SESIN, EL PARTICIPANTE ESTAR EN LA CAPACIDAD DE:

Aplicar las principales libreras que tiene Visual Studio para el trabajo con operaciones
matemticas, cadenas y fechas.

TEMAS:

Visin general
Funciones matemticas
Funciones de cadena
Funciones de fecha






SESIN
3
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 40
Visin general
A menudo los sistemas de informacin requieren realizar diversos tipos de operaciones, ya sean
matemticas, con texto (cadenas) o con fechas. De acuerdo al tipo de aplicacin que estemos
desarrollando, estas operaciones pueden variar en complejidad, sea cual sea el caso Visual
Basic .Net nos provee las libreras necesarias para facilitar el clculo de operaciones.
A continuacin se muestra una tabla con algunas operaciones que se pueden presentar a la
hora de implementar aplicaciones.
Sistema Proceso Tipo
Sistema de control
de notas
Redondear el promedio de dos notas a 2 decimales
Operacin
matemtica
Sistema para
control de
pacientes
Al registrar un paciente, generar su cdigo uniendo
su nmero de DNI, las tres primeras letras del
nombre y las dos primeras letras de su apellido
Operacin con
texto
Sistema contable Emitir una alerta 7 das antes que termine cada mes
Operacin con
fechas

Funciones matemticas
Para el trabajo con operaciones matemticas, Visual Studio nos ofrece la librera Math, que
tambin est presente en versiones anteriores del mismo programa. Para acceder a esta
librera, lo nico que debemos hacer es escribir Math seguido de un punto y luego el nombre
de la funcin matemtica que se desee utilizar, a continuacin se muestra un cuadro con las
operaciones ms comunes de la librera Math.
Operacin En Visual Basic .Net

Math.Pow(2,4)

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


Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 41
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 lnea:

Las variables de tipo String tienen vaco como valor inicial, pero en la segunda lnea del cdigo
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 continuacin se detallan las principales funciones de cadena:
Funcin Descripcin Aplicacin Resultado
ToUpper
Convierte una cadena a
maysculas
miNombreCompleto.ToUpper()
MARIA FERNANDA
CASAS ZAMUDIO
ToLower
Convierte una cadena a
minsculas
miNombreCompleto.ToLower()
maria Fernanda
casas zamudio
Trim
Elimina espacios en el
inicio y final de una
cadena
miNombreCompleto.Trim()
Maria Fernanda
Casas Zamudio
SubString
Extrae cierta cantidad
de caracteres de una
cadena en base a una
posicin (que inicia en
0 para el primer
carcter) y una
longitud (cantidad de
caracteres a obtener)
miNombreCompleto.SubString(0,2) Ma
Length
Retorna la cantidad de
caracteres de una
cadena
miNombreCompleto.Length 28
Incluso se puede anidar algunas funciones de la siguiente manera:
Aplicacin Resultado
miNombreCompleto.SubString(0,2).ToUpper() MA
miNombreCompleto.ToLower().SubString(7,4) erna
miNombreCompleto.ToLower().SubString(7,4).Length 4

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 42
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 continuacin:

Veamos las funciones de fecha ms utilizadas:
Funcin Descripcin Aplicacin Resultado
Date Devuelve la fecha miFechaDeRegistro.Date 05/12/2013
Month
Devuelve el nmero
de mes
miFechaDeRegistro.Month 12
Day
Devuelve el nmero
de da
miFechaDeRegistro.Day 5
Hour Devuelve la hora miFechaDeRegistro.Hour
Minute Devuelve el minuto miFechaDeRegistro.Minute 25
DayOfWeek
Devuelve el nmero
de da con respecto a
la semana
miFechaDeRegistro.DayOfWeek 4
DayOfYear
Devuelve el nmero
de da con respecto al
ao
miFechaDeRegistro.DayOfYear 339
Year Devuelve el ao miFechaDeRegistro.Year 2013
















Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 43


Programacin
Orientada a
objetos




AL FINALIZAR LA PRESENTE SESIN, EL PARTICIPANTE ESTAR EN LA CAPACIDAD DE:

Identificar y describir las principales caractersticas de la Programacin Orientada a Objetos
(POO)
Conocer la razn por la cual se dice que un determinado lenguaje de programacin es
orientado a objetos.

TEMAS:

Visin general (Definiciones, clases y objetos)
Principios de la POO
Visual Studio y POO






Visin general
SESIN
4
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 44
Programacin Orientada a Objetos es un paradigma que tuvo sus inicios en los aos 80, pero
tuvieron que pasar 10 aos para que se le otorgara la importancia respectiva. Su popularidad
radica en que su estilo de programacin se asemeja mucho a la realidad.
Muchos lenguajes de programacin 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 mdulo aplicaremos en todo momento ste paradigma
muy reconocido a nivel mundial.
POO se basa en 2 conceptos fundamentales, clase y objeto, que detallaremos a continuacin:
Clase
Permite representar cualquier elemento de la realidad, ya sea un individuo como un alumno,
libro, automvil o un proceso como matrcula, venta, entre otros. Algunos autores definen a
una clase como un plantilla donde bsicamente se definen 2 elementos:
Propiedades
Vienen a ser caractersticas de una clase, tambin reciben el nombre alternativo de
atributos.
Mtodos
Vienen a ser acciones que puede realizar la clase, se les conoce tambin como operaciones
o comportamientos.
Veamos algunos ejemplos de ambos elementos:
Clase Propiedades Mtodos
Automvil
Color, nmero de placa, modelo,
marca, cantidad de puertas
Acelerar, frenar, encender, cargar
gasolina
Alumno
Nombres, apellidos, cdigo, fecha
de registro, estatura
Matricular, pagar pensin, reservar
matrcula, actualizar datos
Lpiz Color, marca, modelo Escribir, borrar

Tanto las propiedades y mtodos 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 genricas mientras que los objetos vienen a ser especficos, ya que
una clase ALUMNO puede incluir la propiedad NOMBRE, por ende un objeto de la clase
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 45
ALUMNO incluir la propiedad NOMBRE y adicionalmente un valor especfico como por
ejemplo AMY.
Veamos a continuacin un esquema grfico para entender mejor la relacin entre clases y
objetos:

Unicidad
Cada objeto es nico, incluso si existiera otro objeto con los mismos valores especficos en sus
propiedades y tuviera los mismos mtodos.
Ejemplo:
Ud. adquiere un lapicero punta fina color azul en marca Pilot, sin embargo su colega de trabajo
adquiere un lapicero con caractersticas similares (punta fina color azul en marca Pilot),
ambos lapiceros sern idnticos al momento de realizar la compra, sin embargo, son 2
objetos (que provienen de la clase LAPICERO) distintos por ms que sus
caractersticas sean iguales.
Lo mismo sucede cuando dibujamos interfaces grficas en Visual Studio, observemos
atentamente la siguiente imagen:


Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 46

Figura N 36

Los 3 botones en realidad son 3 objetos de la clase Button, y la pregunta es: Dnde 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, matrcula, etc.).

Principios de la POO
POO como paradigma maneja algunas reglas o principios para su correcto uso, los principales
son:
Abstraccin
Consiste en capturar las caractersticas ms importantes de un determinado escenario, por
ejemplo: Si a Ud. le solicitan desarrollar un software de matrcula para la Universidad
Continental, Cules de los siguientes datos del alumno debe guardar?
Nombres
Apellido paterno
Apellido materno
Correo electrnico
Edad
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 47
Sexo
Tipo de sangre
Colegio de procedencia
Licencia de conducir

En realidad la mayora de datos son importantes para la Universidad, pero el dato Tipo de
sangre o Licencia de conducir, Es necesario para la universidad?, la respuesta ms aproximada
es NO, si tomamos sta alternativa no sera necesario incluir el Tipo de sangre ni la Licencia de
conducir en nuestra codificacin. ste proceso se denomina Abstraccin, es decir, nicamente
capturamos los datos que realmente necesitamos.

Herencia
En resumen la herencia es reutilizacin de cdigo, es decir, que se puede crear clases que son
reutilizables en otros escenarios. Veamos un ejemplo, en el ejercicio anterior que comprenda la
creacin de un software de matrcula podemos crear una clase Alumno y otra clase Docente,
pero, Existen datos en comn 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 grfico 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 comn se agregar directamente en la clase
Docente, los mismo sucede con el cdigo del alumno.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 48
Tcnicamente 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 podra ser til para el sistema de matrcula 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 descomposicin del nombre, obtenemos como resultado diferentes
comportamientos, sta definicin es exacta ya que ste principio nos permite inculcar
diversos comportamientos de acuerdo a ciertos parmetros. Veamos el siguiente esquema
grfico, que muestra una clase padre (MedioTransporte) con tres clases hijas (Barco, Avin,
Auto):

De acuerdo a la definicin de herencia, si la clase padre MedioTransporte tiene un mtodo
denominado Arrancar, las clases hijas reciben el mismo mtodo, pero surge la siguiente
pregunta: Arrancar en un Auto es similar a Arrancar en un Barco o en un Avin?, la respuesta
es NO, los tres medios de transporte tienen su propia forma del mtodo Arrancar, ste es un
ejemplo claro de polimorfismo, es decir, las 3 subclases tienen el mismo mtodo pero en cada
uno de ellos se comporta de manera distinta. En trminos tcnicos se dice que el nombre del
mtodo es el mismo, pero la implementacin 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
cmputo para realizar sus labores diarias, al momento de encender el equipo se presiona un
pequeo botn ubicado en el CASE del ordenador, la pregunta es la siguiente: Cuando
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 49
presionamos ese pequeo botn, 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 botn de encendido del computador poco o nada le importa que
suceda detrs de ese botn, y tampoco tiene porque saberlo para utilizar una computadora.
En trminos tcnicos, 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 botn.

Visual Studio y POO
Los lenguajes ms populares de Visual Studio, Visual Basic .Net y C# .Net aplican en todo
momento Programacin 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 lnea de cdigo 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 tambin 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, saln, etc.

Temas sugeridos de investigacin
Programacin Orientada a Objetos es un tema bastante extenso, en el presente material de
estudio se tocan los tpicos 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 informacin sobre programacin en Visual Basic .Net,
C# .Net y otros similares. Existe una seccin del sitio donde se hace una explicacin
interesante y didctica de POO, el enlace directo es el siguiente:
http://www.elguille.info/NET/cursoCSharpErik/index.htm
La direccin en la parte superior comprende un Manual de Programacin en C#, pero
tambin se aborda la POO de manera especfica.

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 50
Asignacin domiciliaria
5. Elaborar una lista de 10 clases, cada una de ellas con 6 propiedades y 6 mtodos.
6. Realice una descripcin de los 4 principios de la POO con sus propias palabras.

Autoevaluacin
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. Cul es la diferencia entre un objeto y una clase?
24. Puedo utilizar POO en otros lenguajes de programacin?
25. Una clase es ms importante que un objeto? O viceversa?
26. Por qu se dice que las clases son genricas y los objetos especficos?
27. Por qu cree Ud. que es importante la abstraccin?
28. Elabora una lista de propiedades y mtodos de las siguientes clases: Disco duro,
computadora, celular, lapicero, foco y televisor.















Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 51



Estructuras
Condicionales (I)





AL FINALIZAR LA PRESENTE SESIN, EL PARTICIPANTE ESTAR EN LA CAPACIDAD DE:

Identificar y diferenciar las principales estructuras condicionales.
Aplicar correctamente la estructura IF THEN y sus variantes.

TEMAS:

Visin general
Estructuras condicionales
Estructura IF THEN
Ejercicio de aplicacin







SESIN
5
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 52
Visin general
Una condicin expresa un enunciado que puede ser correcto o incorrecto (en trminos de
programacin Verdadero o Falso). A diario hacemos uso de condiciones en el momento de
tomar una decisin, por ejemplo, en el instante de cruzar una calle observamos el semforo y
analizamos interiormente: Si el semforo muestra una luz roja, cruzo, en caso
contrario espero, acabamos de tomar una decisin
Condicin
Resultado
Verdadero Falso
Si me levanto temprano Voy caminando a mi colegio Tomar un bus
Si te portas bien
Te comprar un helado
maana
Te irs a la cama sin ver
televisin
Si apruebo el curso Obtendr mi certificado Repetir el curso
Si ingreso correctamente
mi clave de acceso
Retiro dinero Se bloquea mi cuenta
Tabla N 21
Como podemos apreciar en el cuadro anterior, las condiciones estn presentes en
nuestra vida diaria. Por ende, tambin estn presentes en los sistemas de informacin 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
espaol quiere decir Si, pero es un si condicional y no un s de afirmacin.
La sentencia IF posee 5 variantes, las cuales detallaremos a continuacin:
Primera variante: IF THEN
Evala una condicin, y si sta es verdadera, se ejecuta las instrucciones que se encuentran
dentro del bloque IF. Veamos el siguiente cdigo:

El mensaje A es mayor que B nicamente se mostrar si la condicin a>b es verdadera, en
el cdigo mostrado anteriormente no se mostrar el mensaje ya que la condicin es falsa. Sin
embargo, en el cdigo propuesta en la parte inferior s se mostrara el mensaje.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 53

Por otro lado, Qu pasara si ambas variables almacenaran el mismo valor?

Segunda variante: IF THEN ELSE
En esta segunda variante, se evalan las dos caras de la moneada, es decir, nos permite
realizar una determinada accin si la condicin fuera verdadera, y otra accin si la condicin
fuera false. Recordemos que la condicin nicamente puede tomar el valor verdadero o
falso, en ningn caso tomar ambos valores y tampoco ninguno de ellos.
Veamos el siguiente fragmento de cdigo:

En este caso el programa mostrar el primer mensaje A es mayor que B, ya que la
condicin es verdadera.
Podemos deducir entonces que el bloque Else es opcional, incluso si revisamos en la
pgina 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 cdigo y trate de determinar cul de ambos mensajes se
mostrara.

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 54
Tercera variante: IF THEN ELSEIF THEN
En las dos primeras variantes se utiliza una sola condicin, si lo que queremos es analizar
varias condiciones a la vez podemos utilizar ELSEIF. Veamos un ejemplo:

En este caso, se evala ms de una condicin gracias a ELSEIF, estamos evaluando las 3 nicas
posibilidades de comparacin con respecto a dos nmeros, 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 tambin conocida como multicondicional y tiene un caracterstica especial
denominada corto circuito, esto quiere decir que, basta con que una condicin se cumpla
para que las dems queden desactivadas aunque sean verdaderas. En el cdigo anterior como
se cumple la primera condicin a>b, entonces las dems condiciones ya no se evalan.

Cuarta variante: IF THEN ELSEIF THEN ELSE
La cuarta variante es una combinacin de la segunda y tercera variante, es decir, se combina
en un solo bloque de cdigo a un IF, ELSEIF y ELSE. El cdigo anterior que verifica como es un
nmero con respecto a otro, tambin 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.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 55
Debemos recordar que el orden es tal y como muestra el bloque de cdigo 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 condicin, nicamente se desencadenar
una accin. Veamos un ejemplo:

Luego de evaluar la condicin, nicamente se muestra el mensaje, por lo tanto solo se realiza
una accin. Adems, un IF lineal no termina en End If como las variantes anteriores.

Operadores
Al igual que en lgica y matemtica Visual Basic .Net permite el uso de operadores, stos
generalmente se usan para evaluar dos o ms condiciones. Los principales operadores son el
AND y OR, cuyas tablas de verdad de muestran a continuacin:
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 negacin representado en
Visual Basic .Net a travs de la palabra NOT, se utiliza normalmente para negar el resultado de
una condicin.
Vamos a realizar algunos ejercicios de anlisis para mejorar nuestra lgica de programacin,
veamos el siguiente cdigo:
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 56
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: Cules son los valores de a,b y c al finalizar el cdigo?
Analicemos el cdigo 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 anlisis, veamos el siguiente
fragmento de cdigo 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
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 57
Antes de ingresar al bloque If, las variables tienen los siguientes valores: a=8, b=25 y c=16,
luego se evala la primera condicin tal y como se muestra en el siguiente grfico:

Figura N 42
Como el resultado de evaluar la condicin 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 disear la siguiente interfaz:

Figura N 43

Asignamos las siguientes propiedades:
Nombre de control Tipo de control Propiedad : valor Descripcin
lblTitulo Label
Font: Tahoma, 18 pt Formato de fuente
Text: Comparacin de Texto a mostrar en la
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 58
nmeros etiqueta
nudNumero1
NumericUpDown
Font: Tahoma, 9 pt
Formato de fuente nudNumero2 Font: Tahoma, 9 pt
btnEvaluar Button
Font: Tahoma, 9 pt
Text: Evaluar
Texto a mostrar en el
botn
lblNumero1
Label
Font: Tahoma, 9 pt Formato de fuente
Text: Nmero 1
Texto a mostrar en la
etiqueta
lblNumero2
Font: Tahoma, 9 pt Formato de fuente
Text: Nmero 2
Texto a mostrar en la
etiqueta
Form1 Form
AcceptButton: btnEvaluar
Activa un botn a
travs de la tecla
Intro
StartPosition: CenterScreen
Posicin inicial del
formulario, si se
establece en
CenterScreen se
muestra al centro de
la pantalla
BackColor: White
Color de fondo del
formulario
Tabla N 25
Lo que pretendemos hacer es ingresar 2 nmeros y mostrar si el primero es mayor al segundo
o viceversa, para ello vamos a dar doble click al botn Evaluar, y escribimos el siguiente
fragmento de cdigo:
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 nmeros ingresados en las variables n1 y n2
respectivamente, luego utilizamos una condicin (n1>n2) que en caso de ser verdadera
muestra el mensaje n1 es mayor que n2, si la condicin fuera falsa se muestra el mensaje n1
es menor que n2.


Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 59
Recordemos que una condicin puede tener 2 posibles valores, verdadero o falso,
nunca ambos valores ni ninguno de ellos.

Ahora ejecutamos el programa e ingresamos 2 nmeros, recordemos que si queremos ingresar
nmeros mayores a 100, los numericUpDown correspondientes a ambos nmeros no lo
permitir ya que su valor mximo (Propiedad Maximun) por defecto est establecido en 100,
por otro lado el valor mnimo (Minimun) es 0.


Figura N 44
Sin embargo, que pasara si ingresamos 2 nmeros con el mismo valor, veamos el resultado:

Figura N 45
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 60
Como podemos apreciar el resultado no es del todo adecuado, ya que nuestra condicin indica
n1>n2, y como 11 no es mayor a 11 el resultado de la condicin es falso, es por ello que se
muestra el segundo mensaje. Para brindar una solucin correcta vamos a realizar una ligera
modificacin al cdigo anterior, esta vez vamos a utilizar una estructura IF con ELSEIF para
evaluar ms 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 evalan las 3 nicas alternativas de comparacin entre 2 nmeros, es decir,
que un nmero sea mayor, menor o igual a otro. Ejecutamos el programa para visualizar el
resultado.

Figura N 46

En esta ocasin el programa funciona correctamente.
A continuacin vamos a elaborar un programa que evale un nmero del 1 a 10 y muestre su
equivalente en nmeros 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 opcin Add y luego Windows Form. Recordemos que el nombre
del proyecto se muestra en negrita dentro del explorador de soluciones.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 61

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 botn Add.

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 62
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 solucin al ejercicio enunciado anteriormente vamos a disear la siguiente interfaz:

Figura N 49

Establecemos las siguientes propiedades:
Nombre de control Tipo de control Propiedad : valor Descripcin
lblTitulo Label
Font: Tahoma, 18 pt Formato de fuente
Text: Conversin a formato
romano
Texto a mostrar en la
etiqueta
nudNumero NumericUpDown Font: Tahoma, 9 pt
Formato de fuente
btnConvertir Button
Font: Tahoma, 9 pt
Text: Convertir
Texto a mostrar en el
botn
lblIngresar Label
Font: Tahoma, 9 pt Formato de fuente
Text: Ingrese nmero
Texto a mostrar en la
etiqueta
Form1 Form
AcceptButton: btnConvertir
Activa un botn a
travs de la tecla
Intro
StartPosition: CenterScreen
Posicin inicial del
formulario, si se
establece en
CenterScreen se
muestra al centro de
la pantalla
BackColor: White
Color de fondo del
formulario
Tabla N 26
Ingresamos al evento click del botn Convertir hacindole un doble Click. Esta vez vamos a
implementar el programa sin hacer uso de una variable, veamos como:
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 63
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 nmero comprendido entre 1 y 10")
End If

Si ejecutamos el programa notaremos que se muestra el formulario anterior, para cambiar el
formulario de ejecucin 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 seccin Startup Form.

Figura N 51
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 64
Una vez seleccionado Form2 cerramos la pestaa, ejecutamos el formulario e ingresamos un
nmero.

Figura N 52

En caso de que ingresemos un nmero 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

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 65
Asignacin 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 ms adecuado.
Debe tratar en todo momento de implementar cdigo eficiente.
1. Desarrollar un programa que permita ingresar un nmero y determine si es positivo o
negativo.
2. Desarrollar un programa que calcule el resultado de la divisin de 2 nmeros, en caso de que
el divisor sea 0, se debe mostrar un mensaje con el texto No es posible una divisin 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 aos, en caso de que el
nmero 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 aos que le
falta a la edad ingresada para cumplir 18 aos.
4. Desarrollar un programa que ordene de manera descendente 2 nmeros de 2 cifras. Si el
nmero 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.


Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 66



Estructuras
Condicionales (II)





AL FINALIZAR LA PRESENTE SESIN, 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



SESIN
6
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 67
Estructura SELECT CASE
SELECT CASE nos permite evaluar una expresin en base a varias opciones. Debemos recordar
que muchos casos que se implementan con SELECT CASE, tambin 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 nmero que va a representar a una vocal, es decir, si se ingresa el nmero
1 se muestra la vocal a, si se ingresa el nmero 2 se muestra la vocal e, y as
sucesivamente, pero en caso de que el usuario ingrese un nmero que no est comprendido
entre 1 y 5, el programa mostrar un mensaje de error indicando que el nmero 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 disearemos la
siguiente interfaz:

Figura N 54

Luego de realizar el diseo, asignamos las siguientes propiedades:
Control Propiedad Valor
lblTitulo
Font Tahoma, 18pt
Text Ejemplo SELECT CASE
nudNumero Font Tahoma, 9pt
btnMostrar
Font Tahoma, 9pt
Text Mostrar
frmEjemploSELECTCASE Text Procedimientos y funciones
Tabla N 27
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 68
Ahora hacemos doble click en el botn mostrar para aperturar su evento Click.
Private Sub btnMostrar_Click(sender As Object, e As .....

End Sub
Ingresamos las siguientes lneas de cdigo:
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 nmero 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 cdigo, por ejemplo si el usuario ingresa el nmero 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
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 69
Paso 2:

Figura N 56
Paso 3:

Figura N 57
Paso 4:

Figura N 58
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 70
Debemos recordar que la estructura SELECT CASE funciona bajo el modo corto circuito.

Vamos a ejecutar el programa e ingresamos el nmero 3.

Figura N 59

Ahora ingresaremos un nmero fuera del rango, por ejemplo 7.

Figura N 60
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 71
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 cdigo y reducir
algunas lneas del mismo. En el siguiente grfico se muestra un fragmento de cdigo con su
respectivo anlisis.

Figura N 61

En el grfico 61 la variable x toma el valor de 7, por lo que se ejecutara las lneas de cdigo
incluidas en el Bloque 2. Por otro lado, si x tomara el valor de 24 se ejecutara el Bloque 4, si
x tomara el valor de 67 se ejecutara el bloque 6, y si x tomara el valor de 10 no se
ejecutara ningn bloque.
Se recomienda que el lector elabore el ejercicio del grfico 49 utilizando la estructura
SELECT CASE

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 72



Estructuras
repetitivas (I)





AL FINALIZAR LA PRESENTE SESIN, 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



SESIN
7
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 73
Estructuras repetitivas
Se denominan estructuras repetitivas porque ejecutan una porcin de cdigo un determinado
nmero de veces, es por eso que tambin 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 caractersticas y modo de trabajo, en las siguientes lneas
del presente material educativo analizaremos de una manera terico-prctico las
particularidades, ventajas y desventajas de cada una de ellas.
Las estructuras repetitivas mostradas anteriormente tambin son muy utilizadas en
otros lenguajes de programacin, la nica diferencia es que la sintaxis podra ser
distinta, pero el modo de funcionamiento es muy similar

Estructura FOR NEXT
La estructura FOR NEXT permite ejecutar una porcin de cdigo 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 Descripcin
x as Byte = 3
Determina el valor inicial de la estructura FOR, es decir, nos
indica que una variable con el nombre x de tipo Byte y con
valor 3 es el inicio de nuestra estructura FOR.
to 7
Determina el valor lmite superior, es decir, el valor final de la
estructura FOR. Indica que la variable x que inicializa en 3
puede alcanzar como mximo el nmero 7.
Step 2
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
finalmente el valor de 7.
No olvidemos que llega hasta 7 porque as lo indica el valor
final.
Tabla N 28
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 74
Por otro lado es bueno saber que FOR quiere decir PARA, mientras que NEXT quiere
decir SIGUIENTE.

Una vez terminado el anlisis 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 lmite indicado en el valor final), es decir, x toma
3 valores, que equivale a 3 repeticiones.
Una repeticin recibe el nombre de iteracin, que es un trmino muy usado dentro de
estructuras repetitivas.

A continuacin 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

Next
3
For x As Byte = 11 To 19 Step 1

Next
9
For x As Byte = 0 To 4 Step 2

Next
3
For x As Byte = 0 To 7 Step 3

Next
3
For x As Byte = 5 To 9 Step 14

Next
1
For x As SByte = -10 To -18 Step -3

Next
3
Tabla N 29
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 75
La estructura FOR puede avanzar o retroceder (ascomo el ltimo ejemplo de la tabla
anterior), recordemos que si lo que queremos es utilizar nmeros 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 nmeros 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 sucesin desde el nmero 1 hasta 100, para ello
hacemos doble click en el botn btnEjemplo1 para abrir su evento Click.

Como la sucesin debe iniciar en 1, tomamos ste nmero como valor inicial y el valor final
es 100 ya que es el lmite superior de la sucesin; luego establecemos el intervalo 1 para
mostrar un incremente en una unidad. Antes de mostrar la sucesin con la estructura FOR,
se recomienda limpiar el ListBox para que no se muestren varias sucesiones en caso
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 76
el usuario haga Click varias veces en el botn btnEjemplo1. Por lo tanto, dentro del
evento Click escribimos las siguientes lneas de cdigo:
lstDatos.Items.Clear()
For x As Byte = 1 To 100 Step 1
lstDatos.Items.Add(x)
Next
Luego ejecutamos el formulario, presionamos el botn 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 cdigo 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 botn correspondiente, y para dar solucin al
ejercicio escribimos el siguiente fragmento de cdigo:
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 solucin al
ejercicio, pero un buen desarrollador siempre debe buscar el cdigo ms eficiente. Para
este caso la forma ms eficiente es la primera, ya que produce menos iteraciones que
la segunda.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 77
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 tambin 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 atrs.
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 nmero:")
lstDatos.Items.Add(x)
Next


Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 78
Asignacin domiciliaria
Desarrollar los siguientes ejercicios:
1. Mostrar los nmeros mltiplos de 3 y 14 comprendidos entre 2 valores ingresados.
2. Mostrar la suma de los nmeros mltiplos de 7 de 3 cifras que no sean mltiplos de 3.
3. Mostrar la siguiente sucesin: 1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6 hasta un
determinado nmero ingresado.
No olvide utilizar correctamente los controles, as como tambin desarrollar el cdigo fuente lo
ms eficiente posible.

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 79



Estructuras
repetitivas (II)





AL FINALIZAR LA PRESENTE SESIN, 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



SESIN
8
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 80
Estructura repetitiva WHILE
La estructura repetitiva WHILE ejecuta un fragmento de cdigo en base a una condicin, si sta
es verdadera se ejecuta el cdigo incluido dentro del bucle (Comprendido entre WHILE y END
WHILE), al ejecutar la ltima lnea de cdigo se vuelve a evaluar la condicin, si sigue siendo
verdadera se vuelve a ejecutar el cdigo, y as sucesivamente hasta que la condicin sea
falsa.
Veamos el siguiente cdigo:
Dim x As Byte
x = 18
While x <= 22
MsgBox("Hola...")
MsgBox("Mundo...")
End While

En la segunda lnea de cdigo la variable x toma el valor de 18, luego el bucle WHILE evala
la condicin (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 condicin 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 mostrarn 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 algn proceso que haga que la condicin
sea falsa en algn momento. Vamos a modificar el cdigo anterior para que no se produzca un
bucle infinito, veamos el siguiente fragmento de cdigo:
Dim x As Byte
x = 18
While x <= 22
MsgBox("Hola...")
x = x + 1
End While
En el cdigo 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 condicin 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 nmeros).
Para aplicar el bucle WHILE, vamos a crear un proyecto con el nombre
FundProg_SS08_Demo1 donde disearemos la siguiente interfaz:
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 81

Figura N 64

Vamos a codificar cada uno de los ejemplos de la siguiente manera:
Para el evento click del botn btnEjemplo1:
'Ejemplo 1: Mostrar los nmeros 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 botn btnEjemplo2:
'Ejemplo 2: Mostrar los nmeros 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 botn btnEjemplo3:
'Ejemplo 3: Mostrar los nmeros mltiplos 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)


Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 82
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


Asignacin domiciliaria
Desarrollar los ejercicios de la sesin anterior utilizando WHILE, no olvide utilizar correctamente
cada control y desarrollar el cdigo fuente lo ms eficiente posible.

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 83



Ejercicios
Propuestos





AL FINALIZAR LA PRESENTE SESIN, EL PARTICIPANTE ESTAR EN LA CAPACIDAD
DE:
Aplicar las diferentes estructuras condicionales y repetitivas en la solucin de situaciones
cotidianas.
TEMAS:
Lista de ejercicios propuestos



SESIN
9
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 84
Lista de ejercicios propuestos
A continuacin 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 tambin utilizar en todo momento las buenas
prcticas de programacin y cdigo eficiente.
Ejercicio N 1
Ingrese los datos del participante considerando que todos son obligatorios a excepcin del
correo electrnico, 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 botn
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 opcin seleccionada.





Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 85
Ejercicio N 2

La siguiente tabla muestra el procedimiento que realiza cada botn:
Botn Descripcin
>> 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

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 86
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 mayscula. 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 nmeros. Una vez ingresado todos los nmeros se debe
mostrar la cantidad de nmeros positivos, negativos, pares, impares, mltiplos de 3 y primos.
Valide el programa para que n pueda tener como mnimo el valor de 5 y como mximo 20.




Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 87



Matrices






AL FINALIZAR LA PRESENTE SESIN, EL PARTICIPANTE ESTAR EN LA CAPACIDAD
DE:
Utilizar matrices para almacenar colecciones de datos.
Aplicar tcnicas para gestionar correctamente colecciones.
TEMAS:
Visin general
Matrices de una dimensin
Matrices de mltiples dimensiones
Ejercicios propuestos



SESIN
10
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 88
Visin 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, automticamente 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 algn elemento de la matriz simplemente utilizamos el nombre correspondiente a la
matriz y la posicin.
Una matriz recibe el nombre alternativo de vector, array o arreglo; debemos recordar esas
nomenclaturas ya que en muchos libros y bibliografas digitales se usan de esa manera.
Matrices de una dimensin
Las matrices de una dimensin permiten almacenar una coleccin de datos en fila o columna,
adems de que poseen dos partes importantes: Tamao y longitud.
El tamao permite establecer el ndice (posicin) mximo 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 posicin 4
como mximo. 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 grfico, podra resultar similar al siguiente:
miVector
0 9
1 5
2 87
3 12
4 8
Los nmeros 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.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 89
Para recorrer matriz lo ms comn es utilizar un bucle FOR, para hacer la demostracin
respectiva vamos a crear un proyecto con el nombre FundProg_SS10_Demo1, y
agregaremos un formulario con el nombre frmEjemploMatriz1 donde disearemos la
siguiente interfaz:

Figura N 65

Ahora vamos a otorgar algunas propiedades:
Control Propiedad Valor
lblTitulo
Font Tahoma, 18pt
Text Matriz de una dimensin
btnMostrar
Font Tahoma, 9pt
Text Mostrar
Tabla N 31

Luego vamos a dar doble click a btnMostrar para acceder a su evento Click, e insertamos el
siguiente cdigo:
Dim notas(5) As Byte
notas(0) = 14
notas(1) = 8
notas(2) = 12
notas(3) = 9
notas(4) = 19
notas(5) = 17

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 90
lstDatos.Items.Clear()
For i As Byte = 0 To 5
lstDatos.Items.Add(notas(i))
Next
El cdigo anterior muestra en sus primeras lneas, la creacin de una matriz (con tamao 5) de
una sola dimensin 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 numeracin
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 tamao, tambin se
tendra que cambiar el valor final del bucle FOR, para evitar esto podemos realizar un clculo
rpido del tamao de la matriz a travs de la siguiente frmula:
Tamao = Longitud 1
Siguiendo la frmula, podemos realizar una ligera modificacin al cdigo 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
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 91
Matrices de mltiples dimensiones
Generalmente se utiliza matrices de 2 dimensiones para trabajar con datos tipo tabla, es decir,
1 dimensin 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 tamao de cada dimensin entre
parntesis, veamos el siguiente cdigo que muestra la creacin de una matriz de 2
dimensiones:
Dim x(2, 3) As Byte
El cdigo 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 dimensin 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 ms se pueden usar para elaborar simulaciones o
quizs aplicaciones relacionadas a juegos.

Para almacenar elementos en una matriz de 2 dimensiones se debe utilizar la posicin 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 dimensin).
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 mtodo GetUpperBound() retorna el indice mximo de una dimensin respectiva,
recordemos que para Visual Basic .Net la matriz x posee 2 dimensiones, la primera se
contabiliza como dimensin cero y la segunda como dimensin uno.

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 92
Ejercicios propuestos
1. Desarrollar un programa que solicite una cantidad determinada de nmeros y los almacene
en un vector, luego debe mostrar la suma de todos ellos.
2. Desarrollar un programa que permita mostrar el nmero mayor de un vector.
3. Desarrollar un programa que cree la siguiente matriz:
8
9
11
5
7
1
5
19
Luego se debe solicitar un nmero y se debe indicar si el nmero se encuentra o no en el
vector, en caso de que exista se debe mostrar la cantidad de veces que aparece el nmero
en la matriz.
4. Utilice la matriz del ejercicio anterior para desarrollar un programa que solicite un nmero,
si el nmero se encuentra dentro de la matriz se debe mostrar los elementos que se
encuentran a su alrededor, por ejemplo si se ingresa el nmero 5 se debe mostrar 11 y 7,
si se ingresa 8 se debe mostrar 9. Si el nmero 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
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 93

Luego se debe solicitar un nmero, si el nmero existe en la matriz entonces mostrar
aquellos nmeros 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 nmero, en caso de que el nmero no exista se debe
mostrar un mensaje de error.
Si el nmero ingresado fuera 5, nicamente se debe mostrar 4, 9 y 15.


Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 94



Procedimientos y
funciones





AL FINALIZAR LA PRESENTE SESIN, EL PARTICIPANTE ESTAR EN LA CAPACIDAD
DE:
Reconocer y describir caractersticas y ventajas de dividir un programa utilizando
procedimientos y funciones
Aplicar correctamente procedimientos y funciones en la implementacin de programas.
TEMAS:
Divide y vencers
Procedimientos
Funciones



SESIN
11
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 95
Divide y vencers
Divide y vencers tiene sus orgenes en un refrn que sugiere dividir un problema grande
en problemas ms pequeos, de esta manera si solucionamos los problemas menores
encontraremos la solucin al problema mayor. En el mundo de los programadores es una buena
prctica realizar divisiones, no solamente para facilitar la resolucin de un problema grande,
sino tambin para facilitar el mantenimiento de cdigo y mejorar la legibilidad del cdigo fuente
(que podra ser abundante de acuerdo a la complejidad del programa o sistema de informacin
que estemos implementando).
Para dividir un programa en subconjuntos se hace uso de procedimientos y funciones,
ambos agrupan una porcin de cdigo para luego hacer referencia al mismo a travs de un
identificador o nombre. La principal diferencia entre ellos es que una funcin puede retornar
un valor, mientras que un procedimiento no devuelve valores.

Procedimientos
Como se mencion anteriormente, un procedimiento se utiliza para empaquetar una porcin
de cdigo, adems que no devuelve valores. Para conseguir un panorama ms claro de la
aplicacin 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 segn la siguiente tabla:
Control Propiedad Valor
lblTitulo Font Tahoma, 18pt
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 96
Text Simulador de bono de trabajador
lblMontoBono
Font Tahoma, 18pt
Text 0.00
chbCasado
Font Tahoma, 9pt chbMayor50Anios
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 prcticas sugieren reemplazarlo por ni

Lo que pretendemos es que se calcule el bono del trabajador en base a los siguientes criterios:
Situacin Bonificacin
Casado Bono de S/. 400.00
Con hijos Bono de S/. 550.00
Mayor de 50 aos Bono de S/. 650.00
Tabla N 33
El programa tiene que ser dinmico, es decir, si el usuario marca o quita la marca de alguna
de las opciones (Casado, con hijos o mayor de 50 aos) automticamente se debe calcular la
bonificacin, es por tal motivo que no se incluy ningn botn durante el diseo del formulario.
Para iniciar con la escritura de cdigo, hacemos doble click en la barra de ttulo 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 clculo de la bonificacin. Debemos tener
en cuenta que los procedimientos o funciones se crean independientemente de los eventos,
pero deben estar incluidos dentro de los lmites de la clase. El siguiente grfico ilustra las zonas
donde podemos crear un procedimiento o una funcin:
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 97

Figura N 69

En cualquiera de las zonas indicadas con CORRECTO, vamos a agregar las siguientes lneas
de cdigo:
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 travs 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 aplicacin y notaremos que mientras marcamos o quitamos las marcas de
las opciones, automticamente se calcula la bonificacin respectiva.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 98

Figura N 70

Funciones
Una funcin al igual que un procedimiento puede empaquetar una porcin de cdigo, pero la
gran diferencia es que una funcin debe retornar un valor a travs de la palabra Return.
Para entenderlo mejor, vamos a solucionar el ejercicio anterior aplicando una funcin, debemos
considerar que la zona de creacin de una funcin es la misma que un procedimiento, es decir,
tiene que estar ubicada independientemente de los eventos ero dentro de los lmites de la
clase.
Para no mezclar el cdigo, podemos agregar otro formulario a nuestro proyecto y diseamos 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 ttulo del
formulario, y luego ubicamos el siguiente cdigo 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 funcin (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
funcin Calcular_Sueldo retorna un valor de tipo UShort.
El siguiente paso es agregar el siguiente fragmento de cdigo 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.
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 99

Figura N 71
Como podemos apreciar el resultado es el mismo.
Procedimiento o funcin?
Determinar el uso de un procedimiento o una funcin 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 pensin de un alumno y a la vez determinar la cantidad de cuotas que
resta por pagar; para este caso lo ms recomendable es utilizar una funcin. Por otro lado
algunos otros desarrolladores preferiran crear un procedimiento para pagar la pensin de un
alumno y muy aparte una funcin 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 clculo del bono se
modificar, lo nico que debemos hacer es actualizar el cdigo del procedimiento o
funcin que estemos utilizando y automticamente todas sus dependencias tambin se
actualizaran, sta es la gran ventaja que tiene utilizar procedimientos y funciones.

Para el ejercicio anterior, nuestra funcin 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 cdigo 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 cdigo.

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 100



Ejercicio Final






AL FINALIZAR LA PRESENTE SESIN, EL PARTICIPANTE ESTAR EN LA CAPACIDAD
DE:
Desarrollar programas bsicos que brinden solucin a situaciones cotidianas.
TEMAS:
Ejercicio de repaso



SESIN
12
Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 101
Ejercicio de repaso
Desarrollar el siguiente ejercicio con el apoyo del docente, considere que debe tratar en todo
momento de escribir cdigo eficiente, as como tambin hacer uso correcto de cada control.
Elaborar el siguiente formulario de registro de libros para una biblioteca, considere nicamente
los siguientes gneros: Ficcin, Drama, Comedia y Autoayuda.

Los datos obligatorios del formulario son el cdigo (realice las validaciones del caso para que
sea nico por cada libro), ttulo, autor y gnero. Una vez presionado el botn registrar se debe
guardar internamente los datos ingresados del libro.
El botn resumen nos mostrar la lista de todos los libros que hemos registrado.

Programa: Programador .NET


Modulo: Fundamentos de Programacin Pag. 102
Para el botn estadsticas, se mostrar la cantidad de libros por cada categora, incluyendo sus
porcentajes:

You might also like