Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programador
.NET 2012
AUMENTA TU PRODUCTIVIDAD
Centro de Educación Continua
Universidad Continental
Material para fines de Estudio del Programa: Programador .NET
Elaborado por: Ing. Rolando R. Zapata Maraví
SESIÓN
Introducción 1
TEMAS:
Sistemas de información
Programador
Paradigmas de programación
Lenguaje de programación
Visual Basic .Net
Entorno de Desarrollo Integrado (IDE)
Visual Studio 2012
.Net Framework
Introducción
El computador consta principalmente de 2 partes fundamentales: Hardware y Software. El
primero está relacionado con los elementos tangibles del computador, así como el monitor,
mouse, teclado, impresora o cualquier otro dispositivo físico que se encuentre conectado al
equipo. Por otro lado, el software está conformado por programas que vienen a ser elementos
lógicos del computador, entre ellos tenemos a Microsoft Word, Microsoft Excel, Adobe Flash
Professional, Microsoft Project, AutoCAD, etc. A continuación se muestra una tabla con una
breve descripción de cada software mencionado anteriormente:
Se pretende que el estudiante por medio de las sesiones presenciales y la lectura del
presente material, pueda implementar sus propias aplicaciones para fines personales
o comerciales.
Sistema de Información
Control de asistencia
Propósito: Gestionar información relacionada al ingreso y salida del personal, en relación
a su horario de trabajo.
Programador
Al igual que muchos oficios y profesiones, existe un día al año que agasaja al
programador. Ésta fecha es el día número 256 del año, que puede ser el 12 o 13 de
septiembre de acuerdo a si el año es bisiesto o no.
Paradigmas de programación
Programación estructurada
Programación Orientada a Objetos (POO)
Programación modular
Programación funcional
Programación declarativa
Programación Orientada a Aspectos (POA)
Durante el desarrollo del presente módulo se abordará de manera teórica y práctica los
fundamentos, características y ventajas de la Programación Orientada a Objetos.
Lenguaje de programación
Para poder comunicarnos con los demás hacemos uso del idioma español, de ésta manera
intercambiamos ideas y experiencias con otras personas. Por otro lado, si lo que necesitamos es
transmitir alguna petición u orden a un computador, debemos aprender un lenguaje de
programación, ya que éste nos permitirá por medio de comandos transmitir órdenes
específicas al computador y de ésta manera sacar provecho del mismo.
Al igual que en todo el mundo existen diversos idiomas, también existen diversos lenguajes de
programación, cada uno cuenta con sus propias características, ventajas y desventajas. Si por
un lado tenemos al idioma español, inglés, francés, alemán, etc; por el lado de los lenguajes de
programación tenemos a C#, Visual Basic, C++, Java, Cobol, Fortran, Pascal, PHP,
Action Script, etc.
Cada idioma en el mundo tiene sus propias reglas, esto determina que tan fácil o difícil puede
ser aprender un nuevo idioma. Los lenguajes de programación no son ajenos a éste detalle, por
ejemplo el lenguaje de programación Java es más estricto que Visual Basic .Net, ya que el
primero distingue mayúsculas y minúsculas, entre otras características.
Anteriormente se describió al paradigma orientado a objetos, pues bien Visual Basic .Net,
C# .Net y Java son ejemplos clásicos de lenguajes orientados a objetos.
El presente material está orientado a aprender programación utilizando Visual Basic .Net, que
es sencillo, amigable y potente.
Algunas bibliografías físicas y digitales mencionan que Visual Basic .Net es la evolución
de Visual Basic.
Visual Studio, permite crear aplicaciones utilizando C# .Net, Visual Basic .Net, C++ y F#)
Una característica del lenguaje de programación Java es que se puede utilizar en diversos
IDEs como NetBeans, Eclipse, JCreator, JBuilder, etc; algo parecido a lo que sucede con el
lenguaje de programación PHP.
Visual Studio es un entorno de desarrollo integrado (IDE) muy potente que facilita y agiliza
el desarrollo de aplicaciones. Funciona bajo plataforma Windows y soporta múltiples
lenguajes de programación como Visual Basic .Net, C# .Net, C++ y J#.
Visual Studio permite a los desarrolladores crear diversos tipos de aplicaciones de acuerdo a la
necesidad de información que se requiera. A continuación se muestra una breve descripción de
los principales tipos de aplicaciones que pueden implementarse con esta potente herramienta:
Aplicaciones de consola
Aplicaciones basadas en la veterana consola de Windows, estas aplicaciones se caracterizan
por mostrar una interfaz bastante simple y quizás limitada, pero la gran ventaja de este
tipo de aplicaciones es que generalmente requiere pocos recursos para su funcionamiento.
Aplicaciones Web
Son aplicaciones orientadas a funcionar sobre Internet, un ejemplo muy clásico es el portal
de Amazon http://www.amazon.com/ o Facebook http://www.facebook.com/, ya que
guardan gran cantidad de información en una base de datos que es consultada y
modificada desde formularios Web. Por ejemplo, cada foto que subimos a nuestra cuenta
de Facebook es alojada dentro de una base de datos, incluyendo los comentarios y las
etiquetas que podrían agregarse, de ésta manera nuestra información puede ser consultada
en cualquier momento desde cualquier computador que cuente con conexión a Internet y
desde cualquier parte del mundo.
La mayoría de sitios Web en internet que se usan para comercio electrónico vienen a ser
ejemplos sencillos de aplicaciones Web.
Bibliotecas de clases
A medida que vamos implementando aplicaciones, vamos generando código fuente que
sería útil en el desarrollo de aplicaciones futuras. Una biblioteca de clases nos permite
empaquetar código en un archivo con extensión dll y de esa manera reutilizarlo
posteriormente ahorrando así tiempo y esfuerzo.
Éste tipo de proyecto es también utilizado para implementar soluciones con capas, el
concepto de “clase” y “capas” lo abordaremos más adelante.
Aplicaciones Silverlight
Silverlight está orientado a la creación de aplicaciones Web ricas en contenido visual,
permite el trabajo con gráficos vectoriales, reproducción de video, animaciones, etc.
Para conocer los tipos de proyectos que podemos crear con Visual Studio 2012, el primer paso
será abrir el programa, para ello hacemos click en el botón inicio, luego click en “All
programs” y visualizaremos la carpeta perteneciente a Visual Studio 2012 tal como muestra la
Figura N° 1. Para iniciar el programa hacemos click en Visual Studio 2012.
Figura N° 1
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
Barra de título
Si algún proyecto o solución se encuentra abierto entonces se muestra su nombre
1 respectivo, en caso contrario se muestra el texto Start Page - Microsoft Visual
Studio.
Barra de menú
Comprende lo que se muestra desde File hasta Help. En ésta sección podemos
2 encontrar una serie de opciones disponibles para las soluciones que estemos
trabajando.
Barra de herramientas
3 Contiene los principales comandos utilizados durante la implementación de
aplicaciones.
Proyectos recientes
4 Una lista con los proyectos o soluciones que se estuvieron trabajando
recientemente.
El siguiente paso es crear un proyecto, para ello podemos optar por una de las siguientes
formas:
Forma 1
Click en el enlace New Project ubicado en la zona central izquierda de la pantalla de inicio del
programa.
Figura N° 4
Forma 2
Figura N° 5
Figura N° 6
.NET Framework
En términos sencillos, viene a ser una biblioteca de recursos que permite la compilación y
ejecución de aplicaciones bajo entorno Windows. Es un componente esencial para el
desarrollo de aplicaciones en cualquiera de los lenguajes que proporciona Visual Studio.
El .NET Framework viene incluido en el instalador de Visual Studio 2012, sin embargo debemos
saber que Windows 8 también incluye por defecto el .NET Framework 4.5, así como Windows 7
incluye el .NET Framework 3.5 SP1. Por el lado de los sistemas operativos de servidor, Windows
Server 2012 incluye por defecto el .NET Framework 4.5.
Para complementar el aprendizaje de ésta primera sesión introductoria, se sugiere al lector realizar
las siguientes actividades:
Asignación domiciliaria
1. Elaborar una lista de diferencias entre Programador Junior, Programador Semi Senior
y Programador Senior.
Autoevaluación
3. ¿Por qué se escogió el día 256 del año para celebrar el día del programador?
4. Si queremos realizar un pequeño programa utilizando Visual Basic .Net como lenguaje de
programación, ¿Podremos implementarla sin hacer uso de Visual Studio?
6. Describa brevemente con sus propias palabras los tipos de aplicaciones (únicamente
los detallados en la presente sesión) que se pueden construir con Visual Studio 2012.
7. ¿Cuáles son las ventajas de contar con un sistema de información en una empresa?
10. ¿Cuál es la última versión de Visual Studio? ¿En qué fecha fue lanzada al mercado?
SESIÓN
Conceptos básicos
De Programación
2
TEMAS:
Figura N° 7
Los datos que debemos ingresar en cada una de las casillas son:
Name: DemostracionInicial
Location: Cualquier ubicación en el disco duro
Una vez que ingresamos los datos correctamente hacemos click en el botón OK o presionamos
la tecla Intro. Luego Visual Studio nos mostrará su interfaz principal de trabajo, que está
caracterizada por utilizar un estilo metro (de manera similar a Windows 8).
Figura N° 8
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
Cuadro de herramientas
Figura N° 10
Área de trabajo
Está conformada por la vista donde apreciamos el diseño del formulario, en él
podemos ir agregando controles (aquellos elementos que se encuentran en el cuadro de
herramientas mostrado en la Figura N° 10) para capturar o mostrar datos al usuario.
Primera forma:
Si deseamos eliminar un control, lo único que tenemos que hacer es seleccionarlo con un click y
luego presionar el botón Suprimir.
Segunda forma:
Figura N° 13
Tercera forma:
Figura N° 14
Luego de dibujar los controles deseados con cualquiera de las formas mostradas anteriormente
podemos reubicarlos arrastrándolos con el puntero del mouse en cualquier posición dentro del
formulario.
Controles básicos
Revisión de los principales controles
Los formularios están compuestos de diversos controles para gestionar datos, durante el
desarrollo del presente módulo conoceremos una serie de controles que nos van a permitir
elaborar adecuadas interfaces para interactuar con el usuario.
La siguiente tabla detalla algunos controles básicos para crear un programa sencillo:
Cada control en nuestro formulario debe tener asignado un nombre único para su correcta
identificación, en dicho nombre se sugiere agregar un prefijo que haga referencia a la
naturaleza del control, por ejemplo, si agregamos un TextBox para capturar el correo
electrónico de un cliente, el nombre más adecuado a asignarle es txtCorreoElectronico, en caso
de que necesitemos capturar la edad del cliente, podemos utilizar un NumericUpDown (porque la
edad es un valor netamente numérico) cuyo nombre adecuado es nudEdad.
Para asignar el nombre a cada control, primero debemos seleccionar el control con un solo click,
luego cambiar el valor incluido en la propiedad name del panel propiedades.
Figura N° 15
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.
Figura N° 16
Laboratorio N° 1
Ejercicio N° 1:
Para aplicar lo aprendido hasta el momento, vamos a diseñar un formulario básico de registro de
datos de acuerdo a lo que se detalla a continuación:
b) En el único formulario del proyecto, elaborar la siguiente interfaz para el registro de personal.
Figura N° 17
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:
Ejercicio N° 2
Ahora vamos a mejorar la presentación de nuestro formulario, agregaremos una imagen que
puede representar al logo de la empresa, un título resaltante al formulario y convertir el TextBox
perteneciente a las observaciones en una caja de texto de múltiples líneas ya que las
observaciones ingresadas pueden ser algo extensas.
a) Para agregar una imagen agregamos un control PictureBox en la parte superior derecha del
formulario.
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
Figura N° 20
Figura N° 21
Se mostrará una ventana de búsqueda para ubicar la imagen deseada, para éste caso
podemos seleccionar cualquier imagen disponible en el disco duro, que luego se mostrará en la
lista ubicada en la parte superior al botón Importar, tal y como se muestra en la Figura N°
22.
Figura N° 22
Figura N° 23
Figura N° 24
Figura N° 25
c) Ahora vamos a agregar un título a nuestro formulario, para ello dibujamos un Label en el
encabezado tal y como se muestra en la Figura N° 26.
Figura N° 26
Figura N° 27
d) Como toque final vamos a asignar algunas propiedades adicionales al formulario para mejorar
su presentación, para esto seleccionamos el formulario (con un click en la barra de título del
mismo) y nos ubicamos en el panel propiedades para asignar los valores establecidos de
acuerdo a la siguiente tabla:
Eventos
Un evento es una reacción de un control ante alguna acción que realiza el usuario. Visual
Studio cuenta con una gran cantidad de eventos por cada tipo de control.
En fin, cuando trabajamos con cualquier sistema operativo siempre estamos desencadenando
eventos.
Para aplicar de manera práctica los conceptos anteriormente mencionados, vamos a crear un
nuevo proyecto con el nombre DEMO01_FundProg_SS02, luego en el único formulario que
se nos muestra vamos a dibujar un botón tal y como muestra la siguiente figura:
Figura N° 28
Propiedad Valor
Name btnAceptar
Text Aceptar
Para acceder a los eventos del botón, vamos a seleccionar el botón btnAceptar y luego
hacemos click al icono en forma de rayo que se encuentra en la cabecera del panel
propiedades.
Figura N° 29
A continuación se muestra una lista de eventos pertenecientes al control seleccionado (en este
caso el botón btnAceptar), debemos comprender que la cantidad de eventos puede ser
diferente en cada control. De la lista que tenemos vamos a ubicar el evento MouseMove y
luego le vamos a dar doble click en su definición.
Figura N° 30
Figura N° 31
Variables y constantes
Cualquier aplicación o sistema de información maneja datos como materia prima para brindar
resultados, para poder capturarlos y luego procesarlos se hace uso de variables y constantes,
éstas nos permiten tomar los datos ingresados por los usuarios y luego manipularlos
internamente para obtener resultados.
Variables
Una variable almacena un valor, que puede ser cualquier dato del mundo real como por
ejemplo el nombre completo de un alumno, la edad de un cliente, el tipo de sangre de un
paciente, la fecha de inscripción de un participante, el DNI de un pasajero, etc. Se denomina
variable porque si valor puede cambiar a lo largo de la ejecución del programa.
Para crear una variable en Visual Basic .Net se hace uso de la palabra Dim, seguido del nombre
de la variable (conocido también como identificador) y el tipo de dato respectivo (concepto que
veremos más adelante).
Ejemplo:
El tipo de dato Byte se utiliza para cantidad numéricas pequeñas entre 0 y 255, por lo tanto es
óptimo para representar la edad de una persona. Además, debemos tener en cuenta que el
valor inicial de toda variable con tipo de dato numérico es cero.
El subrayado verde indica que la variable midEdad no se ha utilizado aún, Visual Studio advierte
sobre variables sin utilizar ya que cada variable creada ocupa un lugar en memoria.
Con respecto al nombre de una variable, debemos recordar las siguientes reglas:
No se puede usar una palabra reservada, como por ejemplo Public, Class, Private, Sub,
Dim, etc.
Constantes
Una constante tiene las mismas características que una variable, con la única diferencia de que
al momento de declararlas se les asigna un valor que no puede ser modificado durante la
ejecución del programa.
Ejemplo:
Al igual que las variables, las constantes también requieren de un tipo de dato, el tipo de dato
Single representa a números decimales de precisión (cantidad de decimales) baja.
Adicionalmente podemos observar que la constante requiere de un valor inicial.
Tipos de datos
Ser recomienda que las variables y constantes que utilizamos en nuestros programas estén
acompañadas de un tipo de dato respectivo, en el apartado anterior abordamos ligeramente los
tipos de datos Byte y Single, el primero de ellos se usa para número enteros pequeños (ya que
su rango es desde 0 a 255) y el segundo se usa para números decimales con precisión
(cantidad de decimales) simple. Sin embargo, Visual Basic .Net nos ofrece una amplia variedad
de tipos de datos que podemos utilizar en nuestras aplicaciones.
La siguiente tabla muestra una lista de los principales tipos de datos para representar números.
Tipo de
Almacenamiento Intervalo
dato
Byte 1 byte 0 a 255
SByte 1 byte -128 a 127
Números enteros
Short 2 bytes -32768 a 32767
UShort 2 bytes 0 a 65535
Integer 4 bytes -2.147.483.648 a 2.147.483.647
UInteger 4 bytes 0 a 4.294.967.295
-9.223.372.036.854.775.808 a
Long 8 bytes
9.223.372.036.854.775.807
ULong 8 bytes 0 a 18.446.744.073.709.551.615
-3,4028235E+38 a -1,401298E-45 † para los
Números con decimales (Números de
valores negativos;
Single 4 bytes
1,401298E-45 a 3,4028235E+38 † para los
valores positivos
-1,79769313486231570E+308 a -
punto flotante)
Se denomina cadena a los datos que son representados mediante texto, por ejemplo: Los
nombres, apellidos, correo electrónico, sexo, tipo de sangre, etc. Una cadena está conformada
por un conjunto de caracteres, y un caracter puede ser una letra, un número o un símbolo. Por
ejemplo el nombre “Avril“ viene a ser una cadena de caracteres tipo letra, mientras que un
correo electrónico como avrilLynda2013@hotmail.com viene a ser una cadena de caracteres de
tipo letra, número y símbolo.
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.
El tipo de dato lógico se caracteriza por almacenar únicamente dos posibles valores, Verdadero
o Falso, algunos lo conocen como el tipo de dato booleano.
Recordemos que la asignación del tipo de dato correcto es una buena práctica de
programación, por ejemplo, como vimos anteriormente si deseamos capturar la edad de
una persona en una variable, lo más recomendable es utilizar un tipo de dato Byte ya que
se ajusta de mejor forma al contenido de la edad, por otro lado, un programa que otorga
un tipo de dato Integer a una edad, también funciona, pero no es eficiente porque en un
sistema de información no vamos a trabajar con 1 o 2 variables sino con muchas, en ese
momento es donde podemos observar el real rendimiento de una aplicación.
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
El siguiente paso es codificar en el evento Click del botón Cerrar, para ingresar al evento
podemos hacer un doble click en el botón cerrar, o sino hacemos un click en el botón cerrar
y por medio del panel propiedades, sección eventos (para acceder a ésta sección hacer un
click en el icono del rayo ubicado en la zona inicial del panel propiedades), y luego ubicamos de
la lista el evento llamado Click, y finalmente le damos un doble Click.
Dentro del bloque donde el cursor parpadea vamos a escribir Close(), éste método se utiliza
para cerrar el formulario actual.
Ahora vamos a realizar un procedimiento similar con el botón aceptar, actualmente estamos en
la ventana de código, así que para visualizar nuevamente la interfaz (conocida también como
vista diseño) vamos a dar un click en la pestaña Form1.vb[Design]. Una vez realizado el
cambio vamos a dar doble click al botón Calcular para acceder a su evento Click.
Cuando se hace un doble click a cualquier control, por defecto se nos dirige a un evento
predeterminado, en caso de los botones es el evento Click. Si lo que queremos es
acceder a otro evento, lo podemos realizar por medio del panel propiedades sección
eventos.
Figura N° 33
Al hacer doble click en el botón Calcular, automáticamente Visual Studio nos muestra su evento
Click.
Ahora vamos a crear una variable llamada edadEnAnios para capturar la edad que ingresa el
usuario en nudEdad, debemos considerar que para obtener el valor ingresado en un
NumericUpDown se utiliza la propiedad Value.
De esta manera concluimos con la codificación del programa, ahora procederemos a ejecutarlo
para realizar las pruebas respectivas. Para ejecutar el programa presionamos la tecla F5 o sino
hacemos click en el botón Start
Figura N° 34
Una vez ejecutado el programa, ingresamos una edad respectiva, luego hacemos click en el
botón Calcular y el programa muestra el equivalente en meses en txtEdadEnMeses.
Figura N° 35
Para conocer un poco más sobre fundamentos de programación, puede revisar el manual de Visual
Basic .Net del sitio Web de El Guille e ingresar al curso de programación de la Academia Virtual de
Microsoft:
http://www.microsoftvirtualacademy.com/Home.aspx
http://www.elguille.info/NET/cursoVB.NET/default.aspx
Asignación domiciliaria
Autoevaluación
13. ¿Por qué existen tantos tipos de datos en Visual Basic .Net?
18. ¿Cuáles son las reglas que debemos tomar en cuenta para asignar nombres a variables?
SESIÓN
Funciones
Incorporadas
3
Aplicar las principales librerías que tiene Visual Studio para el trabajo con operaciones
matemáticas, cadenas y fechas.
TEMAS:
Visión general
Funciones matemáticas
Funciones de cadena
Funciones de fecha
Visión general
A menudo los sistemas de información requieren realizar diversos tipos de operaciones, ya sean
matemáticas, con texto (cadenas) o con fechas. De acuerdo al tipo de aplicación que estemos
desarrollando, estas operaciones pueden variar en complejidad, sea cual sea el caso Visual
Basic .Net nos provee las librerías necesarias para facilitar el cálculo de operaciones.
A continuación se muestra una tabla con algunas operaciones que se pueden presentar a la
hora de implementar aplicaciones.
Funciones matemáticas
Para el trabajo con operaciones matemáticas, Visual Studio nos ofrece la librería Math, que
también está presente en versiones anteriores del mismo programa. Para acceder a esta
librería, lo único que debemos hacer es escribir Math seguido de un punto y luego el nombre
de la función matemática que se desee utilizar, a continuación se muestra un cuadro con las
operaciones más comunes de la librería Math.
Math.Pow(2,4)
√ Math.Sqrt(9)
Redondear 8.98871
Math.Round(8.98871,2)
a 2 decimales
Obtener el valor de
Math.PI
Pi
Obtener el valor
Math.Abs(-10)
absoluto de -10
Funciones de cadena
Las funciones de cadena se pueden aplicar a cualquier elemento de tipo cadena (String), para
mostrar las distintas funciones de cadena, imaginemos que creamos una variable de tipo String
y le asignamos un valor inicial, tal y como muestra la siguiente línea:
Las variables de tipo String tienen vacío como valor inicial, pero en la segunda línea del código
anterior se le asigna a la variable miNombreCompleto el valor de “Mari Fernanda Casas
Zamudio”.
Recordemos que para asignar un valor de tipo cadena a una variable de tipo String,
debemos utilizar comillas dobles
Aplicación Resultado
miNombreCompleto.SubString(0,2).ToUpper() MA
miNombreCompleto.ToLower().SubString(7,4) erna
miNombreCompleto.ToLower().SubString(7,4).Length 4
Funciones de fecha
De igual manera que las funciones de cadena, éste tipo de funciones de cadena se pueden
aplicar a cualquier elemento de tipo Date, esta vez vamos a crear una variable de tipo Date tal
y como se muestra a continuación:
SESIÓN
Programación
Orientada a 4
objetos
TEMAS:
Visión general
Programación Orientada a Objetos es un paradigma que tuvo sus inicios en los años 80, pero
tuvieron que pasar 10 años para que se le otorgara la importancia respectiva. Su popularidad
radica en que su estilo de programación se asemeja mucho a la realidad.
Clase
Propiedades
Métodos
Vienen a ser acciones que puede realizar la clase, se les conoce también como operaciones
o comportamientos.
Objeto
Los objetos se crean a partir de una clase, es decir, la plantilla o molde es la clase y los
elementos que puedo crear a partir de dicho molde son los objetos.
Se dice que las clases son genéricas mientras que los objetos vienen a ser específicos, ya que
una clase ALUMNO puede incluir la propiedad NOMBRE, por ende un objeto de la clase
Veamos a continuación un esquema gráfico para entender mejor la relación entre clases y
objetos:
Unicidad
Cada objeto es único, incluso si existiera otro objeto con los mismos valores específicos en sus
propiedades y tuviera los mismos métodos.
Ejemplo:
Ud. adquiere un lapicero punta fina color azul en marca Pilot, sin embargo su colega de trabajo
adquiere un lapicero con características similares (punta fina color azul en marca Pilot),
ambos lapiceros serán idénticos al momento de realizar la compra, sin embargo, son 2
objetos (que provienen de la clase LAPICERO) distintos por más que sus
características sean iguales.
Figura N° 36
Los 3 botones en realidad son 3 objetos de la clase Button, y la pregunta es: ¿Dónde se
encuentra la clase Button?, pues en el .NET Framework, es por ello que se dice que el .NET
Framework es una biblioteca de CLASES, éstas pueden ser utilizadas para crear nuestras
aplicaciones.
Principios de la POO
POO como paradigma maneja algunas reglas o principios para su correcto uso, los principales
son:
Abstracción
Nombres
Apellido paterno
Apellido materno
Correo electrónico
Edad
Sexo
Tipo de sangre
Colegio de procedencia
Licencia de conducir
En realidad la mayoría de datos son importantes para la Universidad, pero el dato Tipo de
sangre o Licencia de conducir, ¿Es necesario para la universidad?, la respuesta más aproximada
es NO, si tomamos ésta alternativa no sería necesario incluir el Tipo de sangre ni la Licencia de
conducir en nuestra codificación. Éste proceso se denomina Abstracción, es decir, únicamente
capturamos los datos que realmente necesitamos.
Herencia
En resumen la herencia es reutilización de código, es decir, que se puede crear clases que son
reutilizables en otros escenarios. Veamos un ejemplo, en el ejercicio anterior que comprendía la
creación de un software de matrícula podemos crear una clase Alumno y otra clase Docente,
pero, ¿Existen datos en común entre ambas clases?, claro que sí, aquellos datos comunes
podemos agruparlos en una clase independiente denominada Persona, luego podemos hacer
que Alumno y Docente hereden los miembros de la clase Persona, adicionalmente, aquellos
datos que no son comunes entre ambas clases podemos agregarlos de manera separa en cada
una de sus respectivas clases.
Los datos comunes entre la clase Alumno y Docente son Nombres, Apellidos, Edad y Sexo; es
por ello que se ha agrupado dichos datos en una clase Persona, adicionalmente se necesita
incluir el DNI del docente pero como no es un dato común se agregar directamente en la clase
Docente, los mismo sucede con el código del alumno.
Técnicamente la clase Persona se denomina clase padre o clase base, y las clases Docente y
Alumno reciben el nombre de clases hijas o sub clases.
La clase persona no solamente podría ser útil para el sistema de matrícula propuesto
como ejemplo, si posteriormente tenemos que desarrollar un sistema para el control de
pacientes de un hospital, o un sistema relacionado a una entidad financiera, podemos
reutilizar clase Persona, de esa manera ahorramos tiempo y esfuerzo.
Polimorfismo
Encapsulamiento
Se refiere a la capacidad que tiene una clase de ocultar su complejidad interna. Por ejemplo,
muchos estudiantes y docentes de la Universidad Continental utilizan los laboratorios de
cómputo para realizar sus labores diarias, al momento de encender el equipo se presiona un
pequeño botón ubicado en el CASE del ordenador, la pregunta es la siguiente: Cuando
presionamos ese pequeño botón, ¿Qué esperas que suceda?, la respuesta es obviamente que el
equipo encienda, entonces se dice que el computador ha ocultado su complejidad interna.
A la persona que presiona el botón de encendido del computador poco o nada le importa que
suceda detrás de ese botón, y tampoco tiene porque saberlo para utilizar una computadora.
En términos técnicos, una clase encapsula su complejidad interna y provee al exterior una
interfaz sencilla y amigable para su adecuado uso, lo mismo que el ordenador encapsula su
complejidad de encendido y provee al exterior una interfaz sencilla llamada botón.
Por otro lado, los controles ubicados en el cuadro de herramientas también vienen a ser clases
que podemos utilizar dentro de nuestras aplicaciones, ésta se torna compleja e interesante
cuando empezamos a combinar clases que incluye el .NET Framework como Button, TextBox,
Label, etc; con clases que nosotros mismos creamos, como por ejemplo alumno, docente,
curso, aula, salón, etc.
Éste sitio Web contiene abundante información sobre programación en Visual Basic .Net,
C# .Net y otros similares. Existe una sección del sitio donde se hace una explicación
interesante y didáctica de POO, el enlace directo es el siguiente:
http://www.elguille.info/NET/cursoCSharpErik/index.htm
Asignación domiciliaria
5. Elaborar una lista de 10 clases, cada una de ellas con 6 propiedades y 6 métodos.
6. Realice una descripción de los 4 principios de la POO con sus propias palabras.
Autoevaluación
21. ¿Por qué se dice que Visual Basic .Net es orientado a objetos?
26. ¿Por qué se dice que las clases son genéricas y los objetos específicos?
28. Elabora una lista de propiedades y métodos de las siguientes clases: Disco duro,
computadora, celular, lapicero, foco y televisor.
SESIÓN
Estructuras
Condicionales (I)
5
TEMAS:
Visión general
Estructuras condicionales
Estructura IF… THEN
Ejercicio de aplicación
Visión general
Una condición expresa un enunciado que puede ser correcto o incorrecto (en términos de
programación Verdadero o Falso). A diario hacemos uso de condiciones en el momento de
tomar una decisión, por ejemplo, en el instante de cruzar una calle observamos el semáforo y
analizamos interiormente: “Si el semáforo muestra una luz roja, cruzo, en caso
contrario espero”, acabamos de tomar una decisión
Resultado
Condición
Verdadero Falso
Si me levanto temprano Voy caminando a mi colegio Tomaré un bus
Te compraré un helado Te irás a la cama sin ver
Si te portas bien
mañana televisión
Si apruebo el curso Obtendré mi certificado Repetiré el curso
Si ingreso correctamente
Retiro dinero Se bloquea mi cuenta
mi clave de acceso
Tabla N° 21
Estructura condicional IF
Para manejar condiciones en Visual Basic .Net, se utiliza la estructura IF, que traducido al
español quiere decir “Si”, pero es un si condicional y no un sí de afirmación.
Evalúa una condición, y si ésta es verdadera, se ejecuta las instrucciones que se encuentran
dentro del bloque IF. Veamos el siguiente código:
Por otro lado, ¿Qué pasaría si ambas variables almacenarían el mismo valor?
En esta segunda variante, se evalúan las dos caras de la moneada, es decir, nos permite
realizar una determinada acción si la condición fuera verdadera, y otra acción si la condición
fuera false. Recordemos que la condición únicamente puede tomar el valor verdadero o
falso, en ningún caso tomará ambos valores y tampoco ninguno de ellos.
En este caso el programa mostrará el primer mensaje “A es mayor que B”, ya que la
condición es verdadera.
Ahora Ud. analice el siguiente código y trate de determinar cuál de ambos mensajes se
mostraría.
En las dos primeras variantes se utiliza una sola condición, si lo que queremos es analizar
varias condiciones a la vez podemos utilizar ELSEIF. Veamos un ejemplo:
En este caso, se evalúa más de una condición gracias a ELSEIF, estamos evaluando las 3 únicas
posibilidades de comparación con respecto a dos números, es decir, que el primero sea mayor
al segundo, que el primero sea menor al segundo y que el tercero sea igual al segundo. Ahora
el mensaje mostrado será “A es mayor que B”.
El bloque ELSE se ejecutará únicamente si las condiciones anteriores son falsas, de esta
manera el resultado es similar al caso anterior.
Debemos recordar que el orden es tal y como muestra el bloque de código anterior; no
se puede escribir primera un IF luego un ELSE y luego un ELSEIF.
Luego de evaluar la condición, únicamente se muestra el mensaje, por lo tanto solo se realiza
una acción. Además, un IF lineal no termina en End If como las variantes anteriores.
Operadores
Al igual que en lógica y matemática Visual Basic .Net permite el uso de operadores, éstos
generalmente se usan para evaluar dos o más condiciones. Los principales operadores son el
AND y OR, cuyas tablas de verdad de muestran a continuación:
Operador AND
V V V
V F F
F V F
F F F
Tabla N° 22
Operador OR
V V V
V F V
F V V
F F F
Tabla N° 23
Vamos a realizar algunos ejercicios de análisis para mejorar nuestra lógica de programación,
veamos el siguiente código:
Dim a, b, c As Byte
a = 14
b = 20
c = 17
a = a + b
a = a + 1
b = a
c = b + a
c += 1
a = c + b
La pregunta es: ¿Cuáles son los valores de a,b y c al finalizar el código?
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.
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
Antes de ingresar al bloque If, las variables tienen los siguientes valores: a=8, b=25 y c=16,
luego se evalúa la primera condición tal y como se muestra en el siguiente gráfico:
Figura N° 42
Laboratorio N° 1
Figura N° 43
números etiqueta
nudNumero1 Font: Tahoma, 9 pt
NumericUpDown
nudNumero2 Font: Tahoma, 9 pt Formato de fuente
Font: Tahoma, 9 pt
btnEvaluar Button Texto a mostrar en el
Text: Evaluar
botón
Font: Tahoma, 9 pt Formato de fuente
lblNumero1 Texto a mostrar en la
Text: Número 1
etiqueta
Label
Font: Tahoma, 9 pt Formato de fuente
lblNumero2 Texto a mostrar en la
Text: Número 2
etiqueta
Activa un botón a
AcceptButton: btnEvaluar través de la tecla
Intro
Posición inicial del
formulario, si se
Form1 Form establece en
StartPosition: CenterScreen
CenterScreen se
muestra al centro de
la pantalla
Color de fondo del
BackColor: White
formulario
Tabla N° 25
Recordemos que una condición puede tener 2 posibles valores, verdadero o falso,
nunca ambos valores ni ninguno de ellos.
Figura N° 44
Sin embargo, que pasaría si ingresamos 2 números con el mismo valor, veamos el resultado:
Figura N° 45
Como podemos apreciar el resultado no es del todo adecuado, ya que nuestra condición indica
n1>n2, y como 11 no es mayor a 11 el resultado de la condición es falso, es por ello que se
muestra el segundo mensaje. Para brindar una solución correcta vamos a realizar una ligera
modificación al código anterior, esta vez vamos a utilizar una estructura IF con ELSEIF para
evaluar más condiciones.
Figura N° 46
Figura N° 47
Figura N° 48
Para dar solución al ejercicio enunciado anteriormente vamos a diseñar la siguiente interfaz:
Figura N° 49
Ingresamos al evento click del botón Convertir haciéndole un doble Click. Esta vez vamos a
implementar el programa sin hacer uso de una variable, veamos como:
If nudNumero.Value = 1 Then
MsgBox("I")
ElseIf nudNumero.Value = 2 Then
MsgBox("II")
ElseIf nudNumero.Value = 3 Then
MsgBox("III")
ElseIf nudNumero.Value = 4 Then
MsgBox("IV")
ElseIf nudNumero.Value = 5 Then
MsgBox("V")
ElseIf nudNumero.Value = 6 Then
MsgBox("VI")
ElseIf nudNumero.Value = 7 Then
MsgBox("VII")
ElseIf nudNumero.Value = 8 Then
MsgBox("VIII")
ElseIf nudNumero.Value = 9 Then
MsgBox("IX")
ElseIf nudNumero.Value = 10 Then
MsgBox("X")
Else
MsgBox("Ingrese un número comprendido entre 1 y 10")
End If
Figura N° 50
Figura N° 51
Figura N° 52
En caso de que ingresemos un número fuera del rango permitido se muestra el mensaje de
advertencia (esto gracias al bloque Else que se ejecuta en caso de que no se cumplan
ninguna de las condiciones anteriores).
Figura N° 53
Asignación domiciliaria
3. Desarrollar un programa que permita ingresar una edad entre 3 y 15 años, en caso de que el
número se encuentre entre fuera del rango establecido se debe mostrar un mensaje con el
texto “Edad fuera del rango”, en caso contrario se debe mostrar la cantidad de años que le
falta a la edad ingresada para cumplir 18 años.
SESIÓN
Estructuras
Condicionales (II)
6
TEMAS:
Para entender mejor el funcionamiento de SELECT CASE vamos a elaborar un programa que
permita ingresar un número que va a representar a una vocal, es decir, si se ingresa el número
1 se muestra la vocal “a”, si se ingresa el número 2 se muestra la vocal “e”, y así
sucesivamente, pero en caso de que el usuario ingrese un número que no está comprendido
entre 1 y 5, el programa mostrará un mensaje de error indicando que el número ingresado está
fuera del rango.
Figura N° 54
Ahora hacemos doble click en el botón mostrar para aperturar su evento Click.
End Sub
Recordemos que al igual que la estructura IF, el bloque Else (para este caso CASE
ELSE) es opcional
Analicemos el modo de trabajo del código, por ejemplo si el usuario ingresa el número 3, la
variable numeroIngresado almacena dicho valor, luego se compara con cada uno de los
Case siguientes. Veamos las siguientes figuras:
Paso 1:
Figura N° 55
Paso 2:
Figura N° 56
Paso 3:
Figura N° 57
Paso 4:
Figura N° 58
Debemos recordar que la estructura SELECT CASE funciona bajo el modo corto circuito.
Figura N° 59
Figura N° 60
Alternativas adicionales
SELECT CASE permite utilizar algunas alternativas para mejorar la lectura de código y reducir
algunas líneas del mismo. En el siguiente gráfico se muestra un fragmento de código con su
respectivo análisis.
Figura N° 61
En el gráfico 61 la variable “x” toma el valor de 7, por lo que se ejecutaría las líneas de código
incluidas en el Bloque 2. Por otro lado, si “x” tomara el valor de 24 se ejecutaría el Bloque 4, si
“x” tomara el valor de 67 se ejecutaría el bloque 6, y si “x” tomara el valor de 10 no se
ejecutaría ningún bloque.
SESIÓN
Estructuras
repetitivas (I) 7
TEMAS:
Estructuras repetitivas
Estructura repetitiva FOR… NEXT
Estructuras repetitivas
Se denominan estructuras repetitivas porque ejecutan una porción de código un determinado
número de veces, es por eso que también reciben el nombre de bucles. Visual Basic .Net
permite hacer uso principalmente de 2 tipos de bucles:
FOR… NEXT
WHILE
Cada uno de ellos posee sus propias características y modo de trabajo, en las siguientes líneas
del presente material educativo analizaremos de una manera teórico-práctico las
particularidades, ventajas y desventajas de cada una de ellas.
Variable Descripción
Por otro lado es bueno saber que FOR quiere decir PARA, mientras que NEXT quiere
decir SIGUIENTE.
Una vez terminado el análisis del contenido de la estructura FOR, podemos concluir que
mostrará 3 veces el mensaje con el texto “Hola mundo”, ¿Por qué? Bueno porque “x” inicia
en 3, luego toma el valor de 5 (se incremente en 2 por el intervalo representado por Step) y
finalmente toma el valor de 7 (ese es el límite indicado en el valor final), es decir, “x” toma
3 valores, que equivale a 3 repeticiones.
Una repetición recibe el nombre de iteración, que es un término muy usado dentro de
estructuras repetitivas.
A continuación se muestra una tabla con diversos ejemplos del uso de la estructura FOR y la
cantidad de iteraciones que realiza cada una, se recomienda al lector tratar de calcular
mentalmente la cantidad de iteraciones por cada FOR antes de visualizar el resultado en la
segunda columna.
Next
Tabla N° 29
La estructura FOR puede avanzar o retroceder (así como el último ejemplo de la tabla
anterior), recordemos que si lo que queremos es utilizar números negativos, debemos utilizar
un tipo de dato que lo soporte, como el SByte, Short, etc.
Laboratorio N° 1
Figura N° 62
3. El ejemplo 1 nos solicita mostrar una sucesión desde el número 1 hasta 100, para ello
hacemos doble click en el botón btnEjemplo1 para abrir su evento Click.
Como la sucesión debe iniciar en 1, tomamos éste número como valor inicial y el valor final
es 100 ya que es el límite superior de la sucesión; luego establecemos el intervalo 1 para
mostrar un incremente en una unidad. Antes de mostrar la sucesión con la estructura FOR,
se recomienda limpiar el ListBox para que no se muestren varias sucesiones en caso
el usuario haga Click varias veces en el botón btnEjemplo1. Por lo tanto, dentro del
evento Click escribimos las siguientes líneas de código:
lstDatos.Items.Clear()
For x As Byte = 1 To 100 Step 1
lstDatos.Items.Add(x)
Next
Luego ejecutamos el formulario, presionamos el botón correspondiente al ejemplo 1 y
visualizaremos correctamente el resultado.
Figura N° 63
No olvidemos que la variable “x” incluida dentro de la estructura FOR, es la que toma los
valores desde el valor inicial (1) hasta el valor final (100).
4. Para el ejemplo 2 hacemos doble click en el botón correspondiente, y para dar solución al
ejercicio escribimos el siguiente fragmento de código:
lstDatos.Items.Clear()
For x As Byte = 4 To 80 Step 2
lstDatos.Items.Add(x)
Next
5. El ejemplo 3 muestra un mismo enunciado que el caso anterior, esta vez vamos a
desarrollarlo de una manera distinta:
lstDatos.Items.Clear()
For x As Byte = 4 To 80 Step 1
If x Mod 2 = 0 Then
lstDatos.Items.Add(x)
End If
Next
6. Para el ejemplo 4 también usaremos Mod.
lstDatos.Items.Clear()
For x As Byte = 0 To 100 Step 1
If x Mod 3 = 0 Then
lstDatos.Items.Add(x)
End If
Next
lstDatos.Items.Clear()
For x As SByte = 50 To 4 Step -1
lstDatos.Items.Add(x)
Next
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)
9. Para el último ejemplo usaremos un InputBox, que es similar al MsgBox, solo que en
lugar de mostrar un mensaje, solicita un texto.
lstDatos.Items.Clear()
For x As Byte = 1 To 15
x = InputBox("Ingrese número:")
lstDatos.Items.Add(x)
Next
Asignación domiciliaria
No olvide utilizar correctamente los controles, así como también desarrollar el código fuente lo
más eficiente posible.
SESIÓN
Estructuras
repetitivas (II) 8
TEMAS:
Dim x As Byte
x = 18
While x <= 22
MsgBox("Hola...")
MsgBox("Mundo...")
End While
En la segunda línea de código la variable “x” toma el valor de 18, luego el bucle WHILE evalúa
la condición (en este caso si “x” es menor o igual a 22), como esta es verdadera se muestra el
mensaje con el texto Hola… y luego el mensaje con el texto Mundo…, luego se vuelve a
evaluar la condición y como sigue siendo verdadera se muestran nuevamente ambos mensajes
y así sucesivamente. Como podemos notar 18 siempre será menor o igual que 22 es por eso
que los mensajes se mostrarán siempre, a esto le conocemos como bucle infinito.
Para evitar los bucles infinitos se tiene que elaborar algún proceso que haga que la condición
sea falsa en algún momento. Vamos a modificar el código anterior para que no se produzca un
bucle infinito, veamos el siguiente fragmento de código:
Dim x As Byte
x = 18
While x <= 22
MsgBox("Hola...")
x = x + 1
End While
En el código anterior vemos que la variable “x” se incrementa en uno luego de mostrar el
mensaje, es decir, al inicio “x” toma el valor de 18 pero mientras el bucle WHILE se ejecuta va
incrementando su valor en 1, esto hace que en un momento determinado la variable “x” tome
los valores 18, 19, 20, 21, 22 y cuando llega a 23 el bucle termina porque la condición se torna
falsa (23<=22). Por lo tanto el mensaje se mostrará 5 veces lo cual indica que se produjeron 5
iteraciones (porque de 18 a 22 existen 5 números).
Figura N° 64
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.
Asignación domiciliaria
Desarrollar los ejercicios de la sesión anterior utilizando WHILE, no olvide utilizar correctamente
cada control y desarrollar el código fuente lo más eficiente posible.
SESIÓN
Ejercicios
Propuestos 9
TEMAS:
Ejercicio N° 1
Ingrese los datos del participante considerando que todos son obligatorios a excepción del
correo electrónico, considere que el logo (puede reemplazarlo por cualquier imagen) ubicado en
la zona superior derecha viene a ser el logo del evento. Una vez que se presione el botón
Registrar se debe mostrar en la lista ubicada en la parte inferior, los nombres, apellidos del
participante y el sexo con la letra M o F de acuerdo a la opción seleccionada.
Ejercicio N° 2
Botón Descripción
Ejercicio N° 3
Se debe trasladar el nombre, apellido paterno y materno a la lista ubicada en la parte inferior,
con formato de nombre propio, es decir, con la primera letra en mayúscula. Si el apellido fuera
compuesto como por ejemplo “De la cruz”, se debe trasladar a la lista “De La Cruz”
Ejercicio N° 4
Elabora un programa que solicite “n” números. Una vez ingresado todos los números se debe
mostrar la cantidad de números positivos, negativos, pares, impares, múltiplos de 3 y primos.
Valide el programa para que “n” pueda tener como mínimo el valor de 5 y como máximo 20.
SESIÓN
Matrices 10
TEMAS:
Visión general
Matrices de una dimensión
Matrices de múltiples dimensiones
Ejercicios propuestos
Visión general
Una variable de cualquier tipo de dato solamente puede almacenar un único valor durante su
periodo de vida, es decir, si la variable “x” de tipo Short toma una valor inicial de 17, y luego se
le asigna 45, automáticamente se reemplaza el 17 por el nuevo valor. Por otro lado, las
matrices permiten almacenar varios valores en posiciones diferentes, y si queremos
referirnos a algún elemento de la matriz simplemente utilizamos el nombre correspondiente a la
matriz y la posición.
Una matriz recibe el nombre alternativo de vector, array o arreglo; debemos recordar esas
nomenclaturas ya que en muchos libros y bibliografías digitales se usan de esa manera.
El tamaño permite establecer el índice (posición) máximo que podemos utilizar en la matriz,
veamos un ejemplo:
En este caso, el vector llamado miVector puede almacenar elementos hasta la posición 4
como máximo. Si queremos asignar elementos al vector podemos hacer lo siguiente:
miVector
0 9
1 5
2 87
3 12
4 8
Los números que se muestran en la primera columna vienen a ser las posiciones o índices de
la matriz.
Por otro lado, la longitud de un matriz viene representada por la cantidad de elementos
que puede almacenar, para el caso anterior la longitud de la matriz miVector es 5.
Para recorrer matriz lo más común es utilizar un bucle FOR, para hacer la demostración
respectiva vamos a crear un proyecto con el nombre FundProg_SS10_Demo1, y
agregaremos un formulario con el nombre frmEjemploMatriz1 donde diseñaremos la
siguiente interfaz:
Figura N° 65
Luego vamos a dar doble click a btnMostrar para acceder a su evento Click, e insertamos el
siguiente código:
lstDatos.Items.Clear()
For i As Byte = 0 To 5
lstDatos.Items.Add(notas(i))
Next
El código anterior muestra en sus primeras líneas, la creación de una matriz (con tamaño 5) de
una sola dimensión llamada notas, donde se almacena 6 calificaciones distintas. Luego se
recorre la matriz utilizando un bucle FOR, cuyo valor inicial es cero (0) porque es la numeración
inicial de las matrices, observemos que la variable “i” tomará el valor desde 0 hasta 5 con lo
cual recorre la matriz completa, sin embargo, si la matriz cambiara su tamaño, también se
tendría que cambiar el valor final del bucle FOR, para evitar esto podemos realizar un cálculo
rápido del tamaño de la matriz a través de la siguiente fórmula:
Tamaño = Longitud – 1
Siguiendo la fórmula, podemos realizar una ligera modificación al código anterior de la siguiente
manera:
lstDatos.Items.Clear()
For i As Byte = 0 To notas.Length - 1
lstDatos.Items.Add(notas(i))
Next
Figura N° 66
Para crear matrices de varias dimensiones, se debe indicar el tamaño de cada dimensión entre
paréntesis, veamos el siguiente código que muestra la creación de una matriz de 2
dimensiones:
El código muestra una matriz bidimensional con el nombre “x” de tipo Byte, esto implica que
únicamente puede almacenar valores comprendidos entre 0 y 255. Adicionalmente debemos
tener en cuenta que la cantidad de elementos que puede almacenar esta matriz es 12, ya
que la primera dimensión va desde 0 a 2, donde tenemos 3 posiciones y la segunda desde 0 a
3, donde tenemos 4 elementos.
Para almacenar elementos en una matriz de 2 dimensiones se debe utilizar la posición de fila y
columna respectiva. Ahora vamos a rellenar elementos en algunas posiciones de la matriz:
x(0, 2) = 9
x(2, 2) = 19
x(0, 1) = 23
x(2, 3) = 23
Por otro lado, si lo que deseamos es recorrer todos los elementos de la matriz “x”, debemos
usar 2 estructuras FOR (una para cada dimensión).
Ejercicios propuestos
1. Desarrollar un programa que solicite una cantidad determinada de números y los almacene
en un vector, luego debe mostrar la suma de todos ellos.
11
19
4. Utilice la matriz del ejercicio anterior para desarrollar un programa que solicite un número,
si el número se encuentra dentro de la matriz se debe mostrar los elementos que se
encuentran a su alrededor, por ejemplo si se ingresa el número 5 se debe mostrar 11 y 7,
si se ingresa 8 se debe mostrar 9. Si el número no se encuentra en la matriz muestre un
mensaje de alerta.
18 19 16 7 401
17 18 1 53 6
9 15 18 210 109
5 4 122 245 13
SESIÓN
Procedimientos y
funciones 11
TEMAS:
Divide y vencerás
Procedimientos
Funciones
Divide y vencerás
Divide y vencerás tiene sus orígenes en un refrán que sugiere dividir un problema grande
en problemas más pequeños, de esta manera si solucionamos los problemas menores
encontraremos la solución al problema mayor. En el mundo de los programadores es una buena
práctica realizar “divisiones”, no solamente para facilitar la resolución de un problema grande,
sino también para facilitar el mantenimiento de código y mejorar la legibilidad del código fuente
(que podría ser abundante de acuerdo a la complejidad del programa o sistema de información
que estemos implementando).
Procedimientos
Como se mencionó anteriormente, un procedimiento se utiliza para empaquetar una porción
de código, además que no devuelve valores. Para conseguir un panorama más claro de la
aplicación de un procedimiento, vamos a crear un proyecto de tipo Windows Forms
Application con el nombre FunProg_SS11_Demo1, luego vamos a dibujar la siguiente
interfaz:
Figura N° 67
Lo que pretendemos es que se calcule el bono del trabajador en base a los siguientes criterios:
Situación Bonificación
El programa tiene que ser dinámico, es decir, si el usuario marca o quita la marca de alguna
de las opciones (Casado, con hijos o mayor de 50 años) automáticamente se debe calcular la
bonificación, es por tal motivo que no se incluyó ningún botón durante el diseño del formulario.
Para iniciar con la escritura de código, hacemos doble click en la barra de título del formulario e
inmediatamente se apertura el evento Load (que se produce en el momento que el formulario
inicia).
Figura N° 68
Ahora vamos a crear un procedimiento que realice el cálculo de la bonificación. Debemos tener
en cuenta que los procedimientos o funciones se crean independientemente de los eventos,
pero deben estar incluidos dentro de los límites de la clase. El siguiente gráfico ilustra las zonas
donde podemos crear un procedimiento o una función:
Figura N° 69
En cualquiera de las zonas indicadas con “CORRECTO”, vamos a agregar las siguientes líneas
de código:
Sub Calcular_Sueldo()
Dim sumaDeBonos As UShort
If chbCasado.Checked = True Then sumaDeBonos += 400
If chbConHijos.Checked = True Then sumaDeBonos += 550
If chbMayorDe50Anios.Checked = True Then sumaDeBonos += 650
lblMontoBono.Text = "S/. " & sumaDeBonos.ToString("0.00")
End Sub
Los procedimientos se crean por medio de la palabra reservada Sub seguido del nombre del
procedimiento (Calcular_Sueldo para el presente caso), y termina con End Sub. El contenido
del procedimiento muestra una variable llamada sumaDeBonos que acumula el bono de
acuerdo a las opciones que se selecciona a través de los controles CheckBox.
El siguiente paso es llamar al procedimiento, para ello hacemos doble click en chbCasado,
inmediatamente se apertura el evento CheckedChanged que se produce cada vez que se
marca o quita la marca de un CheckBox. Vamos a llamar al procedimiento aquí porque
necesitamos calcular el sueldo cada vez que el usuario marque o quite la marca de cada una de
las opciones. Para llamar al procedimiento simplemente utilizamos su nombre:
Y finalmente,
Figura N° 70
Funciones
Una función al igual que un procedimiento puede empaquetar una porción de código, pero la
gran diferencia es que una función debe retornar un valor a través de la palabra Return.
Para entenderlo mejor, vamos a solucionar el ejercicio anterior aplicando una función, debemos
considerar que la zona de creación de una función es la misma que un procedimiento, es decir,
tiene que estar ubicada independientemente de los eventos ero dentro de los límites de la
clase.
Para no mezclar el código, podemos agregar otro formulario a nuestro proyecto y diseñamos la
misma interfaz que el ejercicio anterior, incluyendo las mismas propiedades.
Una vez que la interfaz este lista, vamos a dar un doble click en la barra de título del
formulario, y luego ubicamos el siguiente código en una zona correcta, tal y como se muestra
en la figura N0.0
Como podemos apreciar, las funciones se crean con la palabra reservada Function, seguido
del nombre de la función (Calcular_Sueldo), adicionalmente se debe incluir el tipo de dato del
valor a retornar. Para el presente caso se usa el tipo de dato UShort que significa que la
función Calcular_Sueldo retorna un valor de tipo UShort.
Figura N° 71
¿Procedimiento o función?
Para el ejercicio anterior, nuestra función únicamente devuelve el valor del bono luego
nosotros decidimos que hacer con dicho valor, asignarlo a un Label, mostrarlo en un MsgBox,
etc. Mientras que el procedimiento incluye código para calcular el bono e inmediatamente
asignarlo al Label respectivo.
No se trata de concluir quien de ambos es mejor, se trata de utilizar con criterio las
posibilidades que tenemos para empaquetar código.
SESIÓN
Ejercicio Final 12
TEMAS:
Ejercicio de repaso
Ejercicio de repaso
Desarrollar el siguiente ejercicio con el apoyo del docente, considere que debe tratar en todo
momento de escribir código eficiente, así como también hacer uso correcto de cada control.
Elaborar el siguiente formulario de registro de libros para una biblioteca, considere únicamente
los siguientes géneros: Ficción, Drama, Comedia y Autoayuda.
Los datos obligatorios del formulario son el código (realice las validaciones del caso para que
sea único por cada libro), título, autor y género. Una vez presionado el botón registrar se debe
guardar internamente los datos ingresados del libro.
El botón resumen nos mostrará la lista de todos los libros que hemos registrado.
Para el botón estadísticas, se mostrará la cantidad de libros por cada categoría, incluyendo sus
porcentajes: