Você está na página 1de 222

Lenguaje de Programacion I

LENGUAJE DE PROGRAMACIÓN I

MANUAL DEL PARTICIPANTE

Página 1 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Tabla de contenidos

TAREA 1.- Aprender a utilizar la interface de microsft visual studio .........4


1.1.Identificar las diversas herramientas del IDE ............................................. 9
1.2.Crear diversas soluciones y/o proyectos ................................................. 31

TAREA 2.- Diseñar e implementar WindowsForm ...................................43


2.1.Crear y configurar las propiedades de formularios. ................................... 44
2.2.Utilizar los controles básicos para formularios .......................................... 52
2.3.Utilizar e implementar las propiedades ................................................... 65
2.4.Implementar los eventos de los controles ............................................... 73

TAREA 3.- Elaborar programas utilizando estructuras condicionales y


Repetitivas .................….................…....................................97
3.1.Elaborar programas utilizando estructuras condicionales ........................... 98
3.2.Elaborar programas utilizando estructuras repetitivas .............................124
3.3.Elaborar programas utilizando estructuras selectivas .............................. 137

TAREA 4.- Utilizar funciones de cadena,numéricas y de fecha de NET…158


4.1.Concocer y utilizar diversas funciones de cadena en .NET: ...................... 159
4.2.Concocer y utilizar diversas funciones númericas en .NET ....................... 162
4.3.Conocer y utilizar diversas funciones de fecha en .NET ........................... 165

TAREA 5.-Diseñar programas utilizando la programación modular........172


5.1.Detallar las ventajas de la programación modular .................................. 173
5.2.Implementar el uso de métodos y funciones en .NET .............................. 180
5.3.Implementar el uso de módulos de clase .............................................. 183

Página 2
Escuela de Tecnologias de la información
Lenguaje de Programacion I

TAREA 6.- Diseñar programas utilizando la programación orientado a


objetos.................................................................................190
6.1.Definir los fundamentos de la P.O.O. .................................................... 191
6.2.Definir los conceptos de encapsulamiento y herencia .............................. 194
6.3.Elaborar programas utilizando P.O.O .................................................... 201

Página 3 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Capítulo

APRENDER A UTILIZAR LA
INTERFACE DE MICROSOFT
DE VISUAL STUDIO
El técnico profesional en Desarrollo de softwareal
término de esta tarea podrá identificar, reconocer
la interface general de Microsoft de visual studio
orientado a crear programas de entorno escritorio
y web esta tarea deberá desarrollar las siguientes
operaciones.

Identificar las diversas herramientas del IDE.


Crear diversas soluciones y proyectos.

Página 4
Escuela de Tecnologias de la información
Lenguaje de Programacion I

EQUIPOS Y MATERIALES

 1 Computador con tecnología Core 2 Duo - superiorcon velocidad de 3.16 Ghz –


Superior.
 Software Microsoft visual Net 12– Superior

1. ORDEN DE EJECUCIÓN

 Aprender a utilizar interface de microsoft visual studio


 Diseñar e implementar Windows form
 Elaborando programas utilizando estructuras condicionales repetitvas.
 Utilizar funciones de cadena, numéricas y de fecha de NET
 Diseñar programas utilizando la programación modular.
 Diseñar programas utilizando la programación orientada a objetos

2. OPERACIÓN

2.1. Normas de seguridad y protección ambiental

NORMAS DE SEGURIDAD

 Identifique el lugar de los extinguidores y la ubicación de las salidas del


laboratorio.
 Recuerda dónde está situado el botiquín.
 No pongas en funcionamiento un equipo de laboratorio sin que el instructor
haya revisado la instalación.
 No utilices ninguna herramienta o equipo sin conocer su uso, funcionamiento
y normas de seguridad específicas.
 Maneja con especial cuidado el material frágil.
 Informa al instructor del material roto o averiado.
 No fumar, comer o beber en el taller.
 Guarda tus prendas y los objetos personales y no los dejes sobre la mesa de
trabajo.
 Procura no andar de un lado para otro sin motivo y, sobre todo, no corras
dentro del laboratorio.

 Ten siempre tus manos limpias y secas. Si tienes alguna herida protégela.
 Mantenga su puesto de trabajo limpio y ordenado, para evitar
accidente.

Página 5 Escuela de Tecnologias de la Información


Lenguaje de Programación I

 Mantenga las herramientas ordenadas para evitar accidentes.

NORMAS DE PROTECCIÓN AMBIENTAL

 Los componentes electrónicos son tóxicos.


 Si salpicas la mesa, límpiala con agua y sécala después con un paño.
 Al acabar la práctica, limpia y ordena el material utilizado.

Los desechos tóxicos, generados en la tarea deben ser recolectados y entregados al


instructor para ser depositados en tacho de elementos tóxicos.

Página 6
Escuela de Tecnologias de la información
Lenguaje de Programacion I

IMPORTANTE – ENTORNO DE TRABAJO

Página 7 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Nota: Creacion del Proyecto

Cuadro de Herramientas categorizado

Página 8
Escuela de Tecnologias de la información
Lenguaje de Programacion I

1.- IDENTIFICAR LAS DIVERSAS HERRAMIENTAS DEL IDE

Entre las diversas herramientas que veras tendras la creación de aplicaciones según el tipo
de lenguaje, entre propiedades y controles asi como también el manejo de eventos a
continuación realizaras en ejemplo de aplicación para que conozcas todo el conjunto de
herramientas que tienes a disposición

Caso Aplicación 01
Paso 1

Crear un proyecto visual Basic net

Paso 2.- Asignar las Propiedades de un formulario en tiempo de Diseño

Botón derecho en el formulario y activar la opción propiedades

Página 9 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Pasó 3.-

Name.- frm1

Text.- controles básicos

StartPosItion.- Center

Windows State.-

BackgroundImage

FormBorderStyle.- None

BackgroundImageLayout .- Stretch

Opacity = 50%

TransparecyKey .- elije tu color favorito

Resultado momentáneo

Página 10
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Paso 4

Detener el formulario para continuar

Otras propiedades del formulario

Icon

Ahora en tiempo de ejecución seria:

Doble click en el formulario

Página 11 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Utiliza la palabra me

Public Class Frm1

Public x As Integer = 100

Public y As Integer = 100

Private Sub Frm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Me.Text = "Mi primera demostracion de Visual "

Me.BackColor = Color.DimGray

' Me.FormBorderStyle = Windows.Forms.FormBorderStyle.SizableToolWindow


'activar solo el icono cerrar

End Sub

Private Sub Frm1_Move(sender As Object, e As EventArgs) Handles Me.Move

'impide el movimiento del formulario

Me.Location = New Point(x, y)

End Sub

Private Sub Frm1_Resize(sender As Object, e As EventArgs) Handles Me.Resize

'desabilita el doble click en la barra de titulo

If Me.WindowState = FormWindowState.Maximized Then

Me.WindowState = vbNormal

End If

End Sub

End Class

Propiedades de un control Textbox

Página 12
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Propiedades en tiempo de ejecucion

'Establece la propiedad Multiline en true.

TextBox1.Multiline = True

'Añadir barras de desplazamiento vertical para el control TextBox.

TextBox1.ScrollBars = ScrollBars.Vertical

'Permitir la tecla de retorno para ser introducido en el control TextBox.

TextBox1.AcceptsReturn = True

'Permitir la tecla TAB para ser introducido en el control TextBox.

TextBox1.AcceptsTab = True

'Set WordWrap en True para permitir que el texto se ajuste a la siguiente línea.

TextBox1.WordWrap = True

'Establecer el texto predeterminado del control.

TextBox1.Text = "¡Bienvenido a Desarrollo .Net!" & _

vbNewLine & https://wordpress.com/stats/insights/hamla1.wordpress.com

Propiedades en tiempo de diseño

Readonly.- controla si se puede cambiar el texto en el cuadro de texto

PasswordChar.- indica el carácter que se debe de asignar cuando se escribe contraseñas

Maxlenght.- longitud máxima de caracteres

Completar la descripción

Font

_____________________________________________________
_____________________________________________________
_____________________________________________________

BorderStyle

_____________________________________________________
_____________________________________________________
_____________________________________________________

Página 13 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Caso de Aplicación 2

Crear un Proyecto Visual Basic. Net

Paso 1.- Diseñar el si

2 etiquetas (label1, label2)

2 cuadros de texto (Textbox1 guiente formulario

Controles a utilizar

, Textbox2)

1 picturebox

Paso 2.-

Asignar las siguientes propiedades a los controles:

Formulario

Name .- frmAplicacion1

PictureBox :

Image .- seleccionar su imagen favorita

Borderstyle .- Fixed3D

Botón de comando

Name .- btnAceptar

Name .- btnCalcular

Página 14
Escuela de Tecnologias de la información
Lenguaje de Programacion I

TextBox .-

Name .- txtNombre

Name .- txtFechanac

Paso 3

Codificar lo siguiente en el botón

Public Class frmAplicacion1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles MyBase.Load

MsgBox("Bienvenido a Visual Net ")

End Sub

Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnAceptar.Click

MsgBox(txtNombre.Text & " Bienvenido!", 64, "Net2013") '16,32,48,64

End Sub

Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnCalcular.Click

Dim edad%

edad = DateDiff(DateInterval.Day, CDate(txtFechanac.Text), Now) \ 365

MsgBox("Tu edad es " & edad & " años", 64, "Net2013")

End Sub

End Class

Página 15 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Tarea Propuesta

Ahora diseña eñ siguiente formulario

Controles a utilizar:

Panel

Etiquetas

Picturebox

Creacion de variables

Usaremos para ello la instrucción Dim. Su sintaxis será:

Dim [Nombre de variable] As [Tipo de variable]

Ejemplo

Dim x As Integer

Has declarado la variable x como tipo entero. También puedes usar la abreviatura
correspondiente al tipo Integer de esta forma:

Dim x%

Página 16
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Usar el símbolo % unido al nombre de la variable declarada equivale a escribir “As


Integer”, lo cual nos supone ahorrar unas cuantas pulsaciones de teclas.

En algunas versiones se permite declarar una variable para la que no se especifica tipo
de forma extendida o abreviada. Si esto se hiciera y fuera permitido, la variable es
automáticamente asignada por Visual Basic al tipo Variant. Así si escribimos:

Dim x

Hay dos opciones: bien obtenemos un error de compilación (si la versión de Visual Basic
que estemos usando no admite esta declaración), bien la variable Numerodeplantas es
considerada por Visual Basic como tipo Variant. Todavía no está definido si es de tipo
numérico (números) o alfanumérico (texto). En este caso la definición se producirá a
posteriori cuando asignemos contenido a la variable. Otra forma de declarar la variable
como tipo genérico (Variant u Object, según la versión) es usar la expresión:

Dim x As Variant (ó Dim x As Object)

CONTENIDO Y ASIGNACIÓN DE CONTENIDO A VARIABLES

Forma general de usar las equivalencias.

Página 17 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Ejemplos de asignación de contenidos son estos:

Declaración Ejemplo asignación contenidos

Dim A As Integer A = 123

Dim A As Single A = - 3323.57

Dim A As String A = “senati – Desarrollo de software”

Dim A As String A = “123 autos”

Dim A As String A = “Son 35,37 soles”

Dim Salario As Integer A = 3500

Dim Salario As Single A = 30500

Dim Salario As String A = “Se asignarán 30500 soles”

Página 18
Escuela de Tecnologias de la información
Lenguaje de Programacion I

A=5+2

Dim A%, B%, Suma% B = 32

Suma = A + B [Suma valdrá 39]

A=5

B = 32

Dim A%, B%, C%, D%, E% C=A*B [C toma el valor 160]

D=A+C [D toma el valor 165]

E=D [E toma el valor 165]

Dim Agotamiento As Boolean Agotamiento = True

Caso de aplicación

Agregando otro formulario al proyecto:

1.- click derecho en el nombre del proyecto

2.- seguir los pasos

3.-programar en el evento Load lo siguiente

Option Explicit On

Public Class Form2

Página 19 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Dim mensaje As String

Private Sub Form12_Load(sender As Object, e As EventArgs) Handles MyBase.Load

mensaje = "Bienvenido a mi primera declaracion de variable"

MsgBox(mensaje)

End Sub

End Class

Establecer un formulario de inicio

Pasos

1.- menú proyecto / propiedades del proyecto

2.- elegir el formulario que se desea ejecutar

Página 20
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Agregando un nuevo proyecto al existente

Si ya se cuenta con un proyecto y deseas agregar otro sin cerrar el anterior siga los
siguientes pasos

Pasos

1.- click en el menú archivo / agregar nuevo proyecto

Página 21 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Agregando componentes avanzados

Muy aparte de los componentes con los que cuenta la familia visual usted puede agregar
otros principalmente para el trabajo con un gestor de base de datos tal como indica los
pasos:

1.-

2.-

Tener activado los siguientes componentes

Administrando Paquetes Nuget

Nuget es una extensión de Visual Studio que permite la administración, de una forma
muy sencilla, de las referencias a otras librerías. Del mismo modo que se va a poder
agregar o quitar referencias, Nuget va a ser capaz de detectar si existen nuevas versiones
en el almacén y descargar la nueva versión previa aceptación de la solicitud de
consentimiento.

Página 22
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Aunque hemos empezado hablando de referencias, no son referencias “solo”. Vamos a


hablar de paquetes:

¿Qué es un paquete en Nuget?

Un paquete es el conjunto de ficheros (clases, referencias, carpetas…) que se van a


distribuir en conjunto desde Nuget. Podríamos decir que Nuget es un almacén común en
el que podemos encontrar proyectos y librerías que antiguamente, había que descargar
y agregar a tu proyecto en varios pasos, y que si existía una nueva actualización había
que hacer una búsqueda manual

Pasos

1.- click derecgo en el nombre del proyecto

2.-elegir la opción tal como muestra la pantalla administrar paquetes Nuget

3.- hay encontrara todas las librerías según su necesidad activar tal como muestra la
pantalla

Página 23 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Agregando un proyecto C#

Pasos

1.-

2.-

Administrando objeto de inicio en C#

Al igual que en visual basic. Net cuando se tiene más de 1 formulario en un proyecto se
debe configurar el formulario de inicio a través de los siguientes pasos:

1.- se cuenta en el siguiente proyecto con 2 formularios tal como se aprecia en la pantalla

Página 24
Escuela de Tecnologias de la información
Lenguaje de Programacion I

2.- doble click en el archivo programa.cs

Aparece por defecto :

2.- donde aparece: new Form1 debera cambiar por el nombre del formulario que desea
que se ejecute de forma automática

3.- como se cuenta con 2 proyectos deberar configurar el proyecto de csharp como
principal

Botón derecho en el nombre del proyecto / establecer como proyecto de inicio

Página 25 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Controles Comunes Mas Utilizados con Prefijo

Icono Nombre Prefijo Descripción

Button btn Se utiliza para iniciar, detener o


interrumpir un proceso.

CheckBox chk Muestra una casilla de verificación y una


etiqueta para texto. Se utiliza n general
para establecer opciones.

CheckedListBox clb Muestra una lista desplazable de


elementos, cada uno acompañado por
una casilla de verificación.

ComboBox cbo Muestra una lista desplegable de


elementos.

DateTimePicker dtp Muestra un calendario gráfico


desplegable, que permite que los
usuarios seleccionen una fecha o una
hora.

Página 26
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Label lbl Muestra texto que los usuarios no pueden


modificar directamente.

LinkLabel llbl Muestra texto en forma de vínculo de estilo


Web y desencadena un evento cuando el
usuario hace clic en el texto.

ListBox lst Muestra una lista de textos, también


llamados elementos.

ListView lstv Muestra los elementos ya sean texto solo o


con gráficos (iconos).

MaskedTextBox msk Captura texto escrito por el usuario, ya sea


teniendo un formato de entrada.

MonthCalender mnc Muestra un calendario gráfico que permite


que los usuarios seleccionen un intervalo de
fecha

NotifyIcon nti Muestra un icono, en el área de notificación


de estado de la barra de tareas, que
representa una aplicación que se ejecuta en
segundo plano.

NumericUpDown nud Muestra una lista de número a través de la


cual los usuarios se pueden desplazar
mediante botones hacia arriba y hacia abajo.

PictureBox pic Muestra archivos de imágenes, tales como


mapas bits e iconos, gifs, etc.

ProgressBar pgb Muestra una barra de progreso, mientras


realiza una instrucción.

RadioButton rdb Muestra un botón que puede activarse o


desactivarse.

RichTextBox rtb Habilita la presentación del texto con


formato de texto sencillo o de texto
enriquecido (RTF).

Página 27 Escuela de Tecnologias de la Información


Lenguaje de Programación I

TextBox txt Muestra texto escrito en tiempo de diseño


que puede ser editado por los usuarios en
tiempo de ejecución.

ToolTip ttp Este control activa la propiedad ToolTip en


los demás controles, su función es brindar
una pequeña información al pasar el Mouse
por el control que queramos.

TreeView trv Muestra una colección jerárquica de objetos


de nodo que puede constar de texto con
casilla de verificación o iconos opcionales.

WebBrowser wbr Permite crear un explorador de Internet con


fácil navegación, también se puede abrir
múltiples archivos.

Componentes

Solo les muestro dos controles, que son los más usados.

Icono Nombre Prefijo Descripción

ImageList img Es un contenedor de imágenes, para que


después se use con otros controles.

Timer tmr Sirve para realizar un conteo de tiempo, en


tiempo de ejecución.

Contenedores

Esta categoría se encuentran todos aquellos controles que sirven para contener otros
controles.

Icono Nombre Prefijo Descripción

FlowLayoutPanel flp Es un contenedor de controles que no


permite la modificación de la posición del
control.

Página 28
Escuela de Tecnologias de la información
Lenguaje de Programacion I

GroupBox gpb Agrupa un conjunto de controles (tales


como botones de opción) en un marco con
etiqueta.

Panel pnl Agrupa un conjunto de controles en un


marco sin etiqueta que permite el
desplazamiento.

SplitContainer spc Es un contenedor de controles con dos


paneles, en donde se puede insertar
cualquier tipo de control.

TabControl tbc Proporciona una página con fichas para


organizar y tener acceso a controles
agrupados de forma eficiente.

Es un organizador de controles, ya que


TableLayoutPanel tlp podemos añadir filas o columnas para
control que queramos.

Datos

Como se van a dar cuenta, cada control tiene su icono, nombre, prefijo y su descripción.

Icono Nombre Prefijo Descripción

BindingNavigator bgn Este control nos permite la navegación de


datos, conectada a una base de datos.

BindingSource bgs Este control nos permite la conexión y la


navegación de datos, de una base de
datos.

DataGripView dgv Nos permite visualizar los datos de una


tabla o de una base de datos.

DataSet dts Nos permite la creación y la conexión de


una base de datos.

Página 29 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Menús y Barras de Herramientas

Como se van a dar cuenta, cada control tiene su icono, nombre, prefijo y su descripción.

Icono Nombre Prefijo Descripción

ContextMenuStrip cms Implementa un menú que aparece


cuando el usuario hace clic en un objeto
con el botón secundario del Mouse.

MenuStrip mnu Proporciona una interfaz en tiempo de


diseño para la creación de menús.

StatusStrip sts Muestra información acerca del estado


actual de la aplicación mediante una
ventana con marco, habitualmente en
parte inferior de un formulario.

ToolStrip tls Contiene una colección de botones,


combos, etiquetas, etc.

ToolStripContainer tsc Muestra una interfaz de botones con


menú

Página 30
Escuela de Tecnologias de la información
Lenguaje de Programacion I

2. CREAR DIVERSAS SOLUCIONES Y/O PROYECTOS

Entre las diversas formas de crear soluciones la familia Microsoft ofrece multiples
plataformas dentro de los mas significativos se encuentras las soluciones de escritorio,
web, móvil tal como veremos a continuación para que apartir de el puedas realizar un
seguimiento según las necesidades o expectativas

Crear una solución en Visual Basic

Proyecto.- es un conjunto de librerías o archivos con diferentes formatos.

Solución.- es un contenedor de uno o varios proyectos.

Nombre de la solución: Senati_Vb_Net

Para comenzar agregar formularios al proyecto tal como se muestra en las pantallas
en el orden mostrado y siguiendo las indicaciones del instructor

Diseñando formularios

Paso 1

Asignarle las propiedades con los prefijos como se vio en el tema anterior aca se menciona
un ejemplo pero ten en cuenta que cada uno de ustedes deberá d asignar un prefijo
bastante referencial

Controles utilizados

Página 31 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Etiqueta

Cuadro de texto

Panel (para el titulo el marco rectangular)

Pantallazo 01

Pantallazo 02

Controles utilizados:

Etiqueta

Cuadro de texto

Panel (para el titulo el marco rectangular)

Combobox

ListBox

Página 32
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Pantallazo 03

Controles utilizados:

Botón de comando

Etiqueta

Cuadro de texto

Panel (para el titulo el marco rectangular)

Combobox

ListBox

ListView

ErrorProvider (se encuentra en la paleta Componentes)

Propiedades del listview:

Columns dentro del asignar width tal como esta en la pantalla:

Gridlines: true

Página 33 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Pantallazo 04

Controles utilizados:

Botón de comando

Etiqueta

Cuadro de texto

Panel (para el titulo el marco rectangular)

ListBox

Picturebox

Página 34
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Pantallazo 05

Controles utilizados:

Botón de comando

Etiqueta

Cuadro de texto

Panel (para el titulo el marco rectangular)

CheckBox

Página 35 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Pantallazo 06

Controles utilizados:

Botón de comando

Etiqueta

Cuadro de texto

Panel (para el titulo el marco rectangular)

RadioButton

ListView

Página 36
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Pantallazo 07

Controles utilizados:

Botón de comando

Etiqueta

Cuadro de texto

Pantallazo 08

Controles utilizados:

Botón de comando

Etiqueta

Cuadro de texto

TabControl (paleta de contenedores)

OpenFileDialog (paleta de cuadros de dialogo)

SaveFileDialog (para guardar los datos)

DateTimePicker(para la fecha como se encuentra en el tab2)

Tab1

Página 37 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Tab2

Tab3

Propiedades asignadas

DatetimePicker.- Short

Name: dtpFechaNac

Cuadro de texto del tab3

Name: txtdatos

Multiline : true (para contener multiples líneas )

Pantallazo 09

Controles utilizados:

Botón de comando

Etiqueta

Página 38
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Cuadro de texto

WebBrowser

Página 39 Escuela de Tecnologias de la Información


Lenguaje de Programación I

MARCO TEORICO

¿Qué es un programa?

Conjunto de instrucciones que entiende un computador para realizar una tarea o


actividad.Todo programa tiene un objetivo bien definido: un procesador de texto es un
programa que permite cargar, modificar e imprimir textos, un programa de ajedrez
permite jugar al ajedrez contra el ordenador u otro contrincante.para

Plataforma .NET

El entorno Net Provee la base para la nueva generación de software. Utiliza los Servicios
Web como un medio para poder interoperar a distintas tecnologías. Permite conectar
distintos sistemas operativos, dispositivos físicos, información y usuarios. Les da a los
desarrolladores las herramientas y tecnologías para hacer rápidamente soluciones de
negocios que involucran distintas aplicaciones, dispositivos físicos y organizaciones.

El nuevo modelo de computación basado en Internet implica que la empresas no


solamente tengan sitios donde el contenido puede ser accedido de manera visual como
hasta ahora, con un explorador de Internet. Si quieren ser exitosas deben crear
componentes que implementen servicios relacionados con su actividad para que usuarios
o sitios los integren y utilicen. Por ejemplo, una aerolínea puede hacer componentes para
la reserva de pasajes y desde una aplicación de una empresa de turismo llamar a este
componente. O un usuario desde un dispositivo móvil (por ejemplo un celular) puede
también invocar el componente de reserva de pasajes aéreos directamente para ver la
disponibilidad y hacer reservaciones. La empresa turística puede exponer un servicio Web
que incluya la llamada al servicio Web de la aerolínea. Cuando un servicio Web llama a
otros se crea lo que se llama federación de servicios Web y las posibilidades funcionales
se multiplican.

Página 40
Escuela de Tecnologias de la información
Lenguaje de Programacion I

tipo de
abrev. memoria requerida rango de valores equivalencia observaciones
dato
- 32768 a
32767 ó -
2 bytes ó 4 Uso en contadores,
Integer % 2.147.483.648 a Entero
bytes según versión control de bucles etc.
2.147.483.647
según versión

-
2147483648 a
Igual que integer pero
4 bytes ó 2147483647 ó -
Long & Entero admite un rango más
8 bytes según versión 9,2E+18 a
amplio
9,2E+18 según
versión

Hasta 6 decimales o más


Single ! 4 bytes - 3,4·1038 Real según versión. También
admite enteros

Hasta 14 decimales o
Double # 8 bytes - 1,79·10308 Real más según versión.
También admite enteros

False es el valor
No
Boolean 2 bytes True o false Booleano predeterminado y va
tiene
asociado a cero
Los del tipo
Variant
double para Admite números
(Object en No
Variable números o los No tiene enteros, decimales o
otras tiene
del tipo string texto
versiones)
para texto

NET Framework

NET Framework es un entorno para construir, instalar y ejecutar servicios Web y tras
aplicaciones.
Se compone de tres partes principales:

CLR .- Es una serie de librerías dinámicas (DLLs), también llamadas assemblies, que
hacen las veces de las DLLs del API de Windows así como las librerías runtime de Visual
Basic o C++.

Librería de clases.- conjunto de archivos

El Common Language Runtime, las clases Framework Ado net y ASP.NET" El .NET
Framework es el corazón de .NET, cualquier cosa que queramos hacer en cualquier
lenguaje .NET debe pasar por el filtro cualquiera de las partes integrantes

Del NET Framework.

Página 41 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Tipos de ejecutables.

Con Visual Basic .NET puedes crear básicamente estos dos tipos de ejecutables:

De consola, no gráfico, al estilo del viejo MS-DOS, y gráficos, como los que normalmente
estamos acostumbrados a ver en Windows.

En resumen el CLR seria como un compilador para todos los programas de net

En Visual Basic .NET sólo existe un tipo de fichero de código, el cual tiene la extensión
.vb este puede ser un módulo de clase, un formulario, un módulo de código, un control,
etc.

Metodo.- es una función automática que desencadena una tarea o acción automatica

Clase.- es un conjunto de propiedades, métodos y objetos.

Propiedad.- son características o atributos pertenecientes a una clase

Controles comunes de visual net

Tareas de Investigacion

1.- Crear un proyecto ahora en c# y diseñar los 3 primeros pantallazos

2.- averiguar los principales eventos que existe en visual Basic.Net

3.- detalle los pasos para crear un proyecto de solución web

4.- detalle los pasos que realizaría para crear una solución mobil

Página 42
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Capítulo

DISEÑAR E IMPLEMENTAR
WINDOWS FORM
En este capítulo se trataran los siguientes
temas:

Crear y configurar las propiedades de


formularios
Utilizar los controles básicos de
formulario
Utilizar e implemetar las propiedades
de controles
Implementar los eventos de controles

Página 43 Escuela de Tecnologias de la Información


Lenguaje de Programación I

3.- CREAR Y CONFIGURAR LAS PROPIEDADES DE


FORMULARIOS

A Continuacion comenzaras a implementar soluciones basadas en lenguaje de


programación Visual Basic y C# siendo estos los mas utilizados de la familia microsof.

CASO APLICATIVO

1.- crear un proyecto visual Basic de nombre Ejemplo01

2.- diseñar el siguiente formulario

Asignar las siguientes propiedades


Objeto Text Name
form1 Calcular la suma n primeros Form1
label1 Ingrese un número
La suma de los n primeros
label2 números es:
textbox1 txtnum
textbox2 txtsuma
button1 Calcular btncalcular

Implementar en el botón Calcular


Public Class Form1
Private Sub btncalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btncalcular.Click
Dim n, suma As Double
n = Val(Me.txtnum.Text)
suma = n * (n + 1) / 2

Página 44
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Me.txtsuma.Text = suma
End Sub
End Class

CASO APLICATIVO

1.- crear un proyecto visual Basic de nombre Ejemplo02

2.- diseñar el siguiente formulario

Asignar las siguientes propiedades


Objeto Text Name
form1 Calcular los n primeros numeros Form1
label1 Ingrese el número natural:
La suma de los n primeros
label2 números es:
textbox1 txtn
textbox2 txtsuma
button1 Nuevo btnnuevo
button2 Calcular btncalcular
button3 Cerrar btncerrar

3.- implementar en el botón Calcular, Nuevo y Cerrar


Public Class Form1
Private Sub btncalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btncalcular.Click
'Declarar variables
Dim n, suma As Double
'Inicializar variable
suma = 0
n = Val(txtn.Text)
'Calculo
suma = n * (n + 1) / 2
'Escribir

Página 45 Escuela de Tecnologias de la Información


Lenguaje de Programación I

txtsuma.Text = suma
End Sub

Private Sub btncerrar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btncerrar.Click
Dim mensaje As DialogResult
mensaje = MessageBox.Show("Desea Salir?", "Salida", MessageBoxButtons.OKCancel,
MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
If mensaje = DialogResult.OK Then
Me.Close()
End If
End Sub

Private Sub btnnuevo_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnnuevo.Click
txtn.Text = ""
txtsuma.Text = ""
End Sub
End Class

CASO APLICATIVO SOLUCION_FORM

1.- crear un Nuevo proyecto visual Basic de nombre SEMANA2_FORM

En el agregaras los siguientes formularios como se muestra en las pantallas o como indique
el instructor:

1.- Diseñar

2.- a criterio asignarle las propiedades a los controles

3.- implementar los botones de comando


Public Class Form1

Página 46
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click
Me.Label1.ForeColor = Color.Red
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Me.Label1.ForeColor = Color.Blue
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Me.Label1.ForeColor = Color.Green
End Sub
End Class

4.- agregar un nuevo formulario al proyecto y diseñar:

5.- programar en el botón Calcular


Public Class Form1
Private Sub BtnCalcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim n, s As Double
n = Val(Me.TextBox1.Text)
s = (n * (n + 1)) / 2
Me.Label3.Text = s
End Sub
End Class

6.- agregando más formularios al proyecto

Página 47 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Programar en el botón Ubica:


Public Class Form1
Private Sub btnnu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnnu.Click
'Declarar variables
Dim num As Integer
'inicializar variables
num = Val(Me.txtnum.Text)
If num <= 0 Then
MsgBox("dato no es numero")
Else
Select Case True
Case num Mod 2 = 0 : Me.cbopar.Items.Add(num)
Case num Mod 2 = 1 : Me.lstimpar.Items.Add(num)
End Select
End If
Me.txtnum.Clear() : Me.txtnum.Select()
End Sub
End Class

Agregando más formularios al Proyecto

Página 48
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Public Class Form2


Private Sub btn1_Click(sender As Object, e As
EventArgs) Handles btn1.Click
lb.Text = txt1.Text
End Sub
End Class

Public Class Form2


Private Sub btncambiar_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles btncambiar.Click
Dim val1
Dim val2
val1 = txtuno.Text
val2 = txtdos.Text
txtuno.Text = val2
txtdos.Text = val1
End Sub
End Class

Public Class Form2


Private Sub btn1_Click_1(sender As Object, e
As EventArgs) Handles btn1.Click
txt3.Text = (txt1.Text & "@" & txt2.Text)
End Sub
End Class

Página 49 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Public Class Form4


Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Lbres.Text = Val(txtn1.Text) +
Val(txtn2.Text)
End Sub
End Class

Public Class Form5


Private Sub btnPromedio_Click(sender As
Object, e As EventArgs) Handles
btnPromedio.Click
lb1.Text = (" su promedio es: " &
(Val(txt1.Text) + Val(txt2.Text) +
Val(txt3.Text)) / 3)
End Sub
End Class

Public Class Form6

Private Sub btnSueldo_Click(sender As


Object, e As EventArgs) Handles
btnSueldo.Click

lbNombre.Text = txt1.Text

lbDes.Text = Val(txt2.Text) * 8 / 100

lbAFP.Text = Val(txt2.Text) * 11 / 100

lbBoni.Text = Val(txt2.Text) * 4 / 100


lbSuNeto.Text = (Val(txt2.Text) +
Val(lbBoni.Text)) - (Val(lbDes.Text) +
Val(lbAFP.Text))
End Sub
End Class

Página 50
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Public Class Form5


Private Sub btngenerar_Click(ByVal sender
As System.Object, ByVal e As
System.EventArgs) Handles btngenerar.Click
Dim prec
prec = Val(txtvalor.Text)
lbdesc.Text = prec * 0.15
lbtotal.Text = prec + Val(lbdesc.Text)
End Sub
End Class

Página 51 Escuela de Tecnologias de la Información


Lenguaje de Programación I

4.- UTILIZAR LOS CONTROLES BÁSICOS DE FORMULARIO

Al igual que en la tarea anterior utilizaremos los controles pero a diferencia del anterior
crearas un proyecto en c# de esta forma ya conociendo los controles mencionados
experimentaras la técnica de otro lenguaje

CASO APLICATIVO

PASO 1.- Crear un proyecto en C#

PASO 2.-
Agregar 2 formularios al proyecto como muestra la pantalla

Los 2 formularios tendrán el siguiente diseño

Página 52
Escuela de Tecnologias de la información
Lenguaje de Programacion I

PASO 3.-

Tener presente los nombres de los controles que se aprecia en el código, ya con la
experiencia de los diseños anteriores identificar donde tendras que implementar los
métodos. Cualquier consulta comunica al instructor tener presente que no tendras que
codificar todo solo las líneas resaltadas con negrita:

Página 53 Escuela de Tecnologias de la Información


Lenguaje de Programación I

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form//en C# se hereda con =>:
{
public Form1()
{
InitializeComponent();
}
//declaraciones de variables
Int32 NroAprob,NroDesp,Ntotal;
Double SumaTot;

private void Form1_Load(object sender, EventArgs e){

}
//object sender=>es el objeto
//EventArgs e=>el evento a ejecutar
private void btnnuevo_Click(object sender, EventArgs e)
{
//recorre todos los controles
foreach (Control obj in this.Controls) {
if(obj is TextBox ){
obj.Text = "";//limpia el contenido delos controles

}
}
txtcodigo.Focus();
}

Página 54
Escuela de Tecnologias de la información
Lenguaje de Programacion I

private void btncalcular_Click(object sender, EventArgs e)


{
double pp, ep, ef, prom;
Ntotal += 1; //Ntotal=Ntotal+1
pp = Convert.ToDouble(txtpp.Text);//convertimos el tipo de dato a double
ep = Convert.ToDouble(txtep.Text);
ef = Convert.ToDouble(txtEF.Text);
prom=(pp+ep+2*ef)/4;
txtpromedio.Text = prom.ToString();
SumaTot += prom;//suma de promedios
if(prom>=10){
NroAprob += 1;
txtcondicion.Text = "Aprobado";
txtcondicion.ForeColor = Color.Blue;
}
else
{
NroDesp += 1;
txtcondicion.Text = "Desaprobado";
txtcondicion.ForeColor = Color.Red;//colocamos color de letra
}
}
private void bbtninforme_Click(object sender, EventArgs e)
{
//llamando al formulario informe
frminforme objinforme = new frminforme();

//n.ShowDialog();// ShowDialog() solo llama una ves al formulario cuando el formulario


esta activo no se puede llamar nuevamente al formulario
//asignando valores a las variables del form frminforme
objinforme.NroAprobI = NroAprob;
objinforme.NroDespI = NroDesp;
objinforme.SumaTotI = SumaTot ;
objinforme .Show();//Show llama varias veces al formulario
}

Página 55 Escuela de Tecnologias de la Información


Lenguaje de Programación I

private void Solonumeros(object sender, KeyPressEventArgs e) {


t32 Keyascii = Convert.ToInt32(e.KeyChar);
// MessageBox.Show(Keyascii.ToString () );
if((Keyascii>=48 && Keyascii<=57 )|| (Keyascii==8)){//que solo son numeros
e.Handled=false;//permite ingresar al valor
}else
{
e.Handled = true;
}
}

}
}

Ahora programar en el formulario Informe de Datos

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class frminforme : Form
{
public frminforme()
{
InitializeComponent();
}

//declaracion de variables
public Int32 NroAprobI, NroDespI, NroTotalI;
public double SumaTotI;

Página 56
Escuela de Tecnologias de la información
Lenguaje de Programacion I

private void frminforme_Load(object sender, EventArgs e)


{
txtaprobados.Text = NroAprobI .ToString();
txtdesaprobados.Text = NroDespI.ToString();
txtalumno.Text = NroTotalI.ToString();
double prom = Math.Round(SumaTotI/NroTotalI,2 );//redondeamos el numero a
dos decimales
txtpromedio.Text = prom.ToString();
}

private void btnaceptar_Click(object sender, EventArgs e)


{
this.Close();//cerrar formulario
}
private void btncancelar_Click(object sender, EventArgs e)
{
Application.Exit();//cerrar toda la aplicacion
}
}
}

CASO APLICATIVO

PASÓ 1.-
Diseñar

Página 57 Escuela de Tecnologias de la Información


Lenguaje de Programación I

PASO 2.-
Programar
private void btnadicionar_Click(object sender, EventArgs e){
lstusuarios.Items.Add(txtnombre.Text);
lblnro.Text = lstusuarios.Items.Count.ToString();
}

private void btneliminar_Click(object sender, EventArgs e)


{
lstusuarios.Items.Remove(lstusuarios.SelectedItem );
lblnro.Text = lstusuarios.Items.Count.ToString();
}

private void btnsalir_Click(object sender, EventArgs e)


{
this.Close();
}

CASO APLICATIVO
PASO 1
Diseñar un formulario Principal este contendrá una barra de menú y un conjunto de
opciones (submenús) tomar en cuenta la propiedad que tendrá el formulario :
IsMDIContainer : true (el cual va a determinar que el formulario se convierta en un
contenedore de otros formularios

Página 58
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Propiedad:

PASÓ 2.-
Para la barra de menú incluir:

PASO 3
Una vez agregado en el formulario proceder a insertat las opciones

Página 59 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Para la opción hoja de programación asignar la propiedad: ShortCutKeys (Metodo


Abreviado)
CTRL + 0

PASO 4.-
Si deseas llamar a un formulario desde una de las opciones por ejemplo Nuevo
Tendras que realizar doble click en la opción Nuevo y programar los siguiente:
private void nuevoToolStripMenuItem_Click(object sender, EventArgs e)
{
//Form1 es el formulario al cual quieres enlazarte
Form1 obj = new Form1();
obj.Visible= true;
}

CASO APLICATIVO
PASO 1.-
Diseñar

PASO2.-
Validar los controles recuerda tomar en cuenta donde tendras que programar
Tener en cuenta que hay partes del código que están comentadas ( // )dándote la opción
que elijas cualquiera de los métodos existentes:
Ahora a programar:

Página 60
Escuela de Tecnologias de la información
Lenguaje de Programacion I

private void SoloNumeros(object sender, KeyPressEventArgs e)


{ // capturas el ascii
//metodo1
// Int32 keyascii=Convert.ToInt32(e.KeyChar);
// // MessageBox.Show(keyascii.ToString());
// if((keyascii >= 48 && keyascii <= 57)||(keyascii==8))
// {
// e.Handled = false; // se realiza la accion sobre el control
// }
// else
// {
// e.Handled = true; // no se realiza la accion
// }
// Metodo nro 2
if (Char.IsLetter(e.KeyChar))
{
e.Handled = true;
}else

if (Char.IsDigit(e.KeyChar))
{
e.Handled = false;
}
else if(Char.IsControl(e.KeyChar))
{
e.Handled = false;
}
else if (Char.IsSeparator(e.KeyChar))
{
e.Handled = true;
}
else
{
e.Handled = true;
}
}

private void SoloLetras(object sender, KeyPressEventArgs e){

Página 61 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Int32 keyascii = Convert.ToInt32(e.KeyChar);


MessageBox.Show(keyascii.ToString());
//el ascii de a=97,z=122 y A=65 , Z=90 ,Barra espaciadora=32
//if ((keyascii >= 65 && keyascii <= 90) ||
//(keyascii >= 97 && keyascii <= 122) ||
//(keyascii == 32) || (keyascii == 8))
//{
// e.Handled = false;
//}
//else
//{
// e.Handled = true;
//}

// metodo nro 2
if (Char.IsLetter(e.KeyChar))
{
e.Handled = false;
}
else if (Char.IsControl(e.KeyChar))
{
e.Handled = false;
}
else if(Char.IsSeparator(e.KeyChar))
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}
Int16 punto;
private void ValidaPrecio(object sender, KeyPressEventArgs e)
{

//// capturas el ascii


//Int32 keyascii = Convert.ToInt32(e.KeyChar);

Página 62
Escuela de Tecnologias de la información
Lenguaje de Programacion I

// MessageBox.Show(keyascii.ToString());
//string cadena;
//TextBox txtCad = (TextBox)sender;
//cadena = txtCad.Text;
//46=.
//if ((keyascii >= 48 && keyascii <= 57) || (keyascii == 46) || (keyascii == 8))
//{
// e.Handled = false; // se realiza la accion sobre el control
// if (keyascii == 46)
// {
// punto += 1;
// if (punto > 1 && cadena.IndexOf(".") >= 0)
// {
// e.Handled = true;
// }
// }

//}
//else
//{
// e.Handled = true; // no se realiza la accion
//}
string cadena;
TextBox txtCad = (TextBox)sender;
cadena = txtCad.Text;
if (Char.IsDigit(e.KeyChar))
{
e.Handled = false;
}
else if (Char.IsControl(e.KeyChar))
{
e.Handled = false;
//txtPrecio.Text = "";
//punto = 0;
}
else if (Char.IsPunctuation(e.KeyChar))
{
e.Handled = false;

Página 63 Escuela de Tecnologias de la Información


Lenguaje de Programación I

punto += 1;
if (punto > 1 && cadena.IndexOf(".") >= 0)
{
e.Handled = true;
}
}
else
{
e.Handled = true;
}
}

private void txtDNI_Validating(object sender, CancelEventArgs e) {


if (txtDNI.Text.Length == 8)
{
errorProvider1.SetError(txtDNI, "");
}
else
{
errorProvider1.SetError(txtDNI, "Ingrese 8 digitos");
e.Cancel = true;
}
}

Página 64
Escuela de Tecnologias de la información
Lenguaje de Programacion I

5.- UTILIZAR E IMPLEMENTAR LAS PROPIEDADES DE CONTROLES


A continuacion utilizara palabras reservadas que demandara mucho de su parte en
analizar los conceptos

CASO APLICATIVO
PASO 1.-
Diseñar

PASO 2.-
Programar en el botón lo siguiente:
private void button2_Click(object sender, EventArgs e) {
Form currentForm = Form.ActiveForm;

// Recorrer todos los controles en el formulario activo.


for (int i = 0; i < currentForm.Controls.Count; i++){
// Desactivar cada control en la colección de controles forma activa.
currentForm.Controls[i].Enabled = false;
}
}

CASO APLICATIVO
PASO 1.-
Diseñar

Página 65 Escuela de Tecnologias de la Información


Lenguaje de Programación I

PASO 2.-
Programar
public partial class Form1 : Form
{
private string x; // variable x
private string y;
private string random_string;
private int x_number; //integer variable x_number
private int y_number;
private int random;
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
x = this.textBox1.Text;
y = this.textBox2.Text;
if (x == "") // Esta ve si x no tiene valor
{
x = "0";
}
if (y == "") // Esta ve si y no tiene valor
{
y = "0";
}
x_number = Convert.ToInt32(x);
y_number = Convert.ToInt32(y);
random = x_number + y_number;
random_string = Convert.ToString(random); this.label3.Text =
random_string;
}

private void radioButton2_CheckedChanged(object sender, EventArgs e)


{
x = this.textBox1.Text;
y = this.textBox2.Text;
if (x == "")
{
x = "0";
}

Página 66
Escuela de Tecnologias de la información
Lenguaje de Programacion I

if (y == "")
{
y = "0";
}
x_number = Convert.ToInt32(x);
y_number = Convert.ToInt32(y);
random = x_number - y_number;
random_string = Convert.ToString(random);
this.label3.Text = random_string;
}
private void radioButton4_CheckedChanged(object sender, EventArgs e)
{
x = this.textBox1.Text;
y = this.textBox2.Text;
if (x == "")
{
x = " 0";
}
if (y == "")
{
y = "0";
}
x_number = Convert.ToInt32(x);
y_number = Convert.ToInt32(y);
random = x_number * y_number;
random_string = Convert.ToString(random);
this.label3.Text = random_string;
}
private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
x = this.textBox1.Text;
y = this.textBox2.Text;
if (x == "")
{
x = "0";
}
if (y == "")
{

Página 67 Escuela de Tecnologias de la Información


Lenguaje de Programación I

y = "0";
}
x_number = Convert.ToInt32(x);
y_number = Convert.ToInt32(y);
if (y_number == 0) // Esto es para asegurarse de que no dividimos por 0
{
random_string = " Error de división por cero ";
}
else
{
random = x_number / y_number;
random_string = Convert.ToString(random);
}
this.label3.Text = random_string;
}
private void radioButton7_CheckedChanged(object sender, EventArgs e)
{
x = this.textBox1.Text;
y = this.textBox2.Text;
if (x == "")
{
x = "0";
}
if (y == "")
{
y = "0";
}
x_number = Convert.ToInt32(x);
y_number = Convert.ToInt32(y);
if (x_number == y_number) // Esto comprueba si el número entero es igual al
número
{
this.pictureBox1.Image =
global::Example_of_math_variables_and_if_statements.Properties.Resources.yes;
}
else
{

Página 68
Escuela de Tecnologias de la información
Lenguaje de Programacion I

this.pictureBox1.Image =
global::Example_of_math_variables_and_if_statements.Properties.Resources.no;
}
}
private void radioButton8_CheckedChanged(object sender, EventArgs e)
{
x = this.textBox1.Text;
y = this.textBox2.Text;
if (x == "")
{
x = "0";
}
if (y == "")
{
y = "0";
}
x_number = Convert.ToInt32(x);
y_number = Convert.ToInt32(y);
if (x_number > y_number) {
this.pictureBox1.Image =
global::Example_of_math_variables_and_if_statements.Properties.Resources.yes;
}
else
{
this.pictureBox1.Image =
global::Example_of_math_variables_and_if_statements.Properties.Resources.no;
}
}
private void radioButton6_CheckedChanged(object sender, EventArgs e)
{
x = this.textBox1.Text;
y = this.textBox2.Text;
if (x == "")
{
x = "0";
}
if (y == "")
{

Página 69 Escuela de Tecnologias de la Información


Lenguaje de Programación I

y = "0";
}
x_number = Convert.ToInt32(x);
y_number = Convert.ToInt32(y);
if (x_number < y_number) // Compruebe si el número entero es menor que el
número
{
this.pictureBox1.Image =
global::Example_of_math_variables_and_if_statements.Properties.Resources.yes;
}
else
{
this.pictureBox1.Image =
global::Example_of_math_variables_and_if_statements.Properties.Resources.no;
}
}
private void radioButton5_CheckedChanged(object sender, EventArgs e)
{
x = this.textBox1.Text;
y = this.textBox2.Text;
if (x == "")
{
x = "0";
}
if (y == "")
{
y = "0";
}
x_number = Convert.ToInt32(x);
y_number = Convert.ToInt32(y);
if (x_number >= y_number) {
this.pictureBox1.Image =
global::Example_of_math_variables_and_if_statements.Properties.Resources.yes;
}
else
{
this.pictureBox1.Image =
global::Example_of_math_variables_and_if_statements.Properties.Resources.no;

Página 70
Escuela de Tecnologias de la información
Lenguaje de Programacion I

}
}
private void radioButton9_CheckedChanged(object sender, EventArgs e)
{
x = this.textBox1.Text;
y = this.textBox2.Text;
if (x == "")
{
x = "0";
}
if (y == "")
{
y = "0";
}
x_number = Convert.ToInt32(x);
y_number = Convert.ToInt32(y);
if (x_number <= y_number) {
this.pictureBox1.Image =
global::Example_of_math_variables_and_if_statements.Properties.Resources.yes;
}
else
{
this.pictureBox1.Image =
global::Example_of_math_variables_and_if_statements.Properties.Resources.no;
}
}
private void radioButton10_CheckedChanged(object sender, EventArgs e)
{
x = this.textBox1.Text;
y = this.textBox2.Text;
if (x == "")
{
x = "0";
}
if (y == "")
{
y = "0";
}

Página 71 Escuela de Tecnologias de la Información


Lenguaje de Programación I

x_number = Convert.ToInt32(x);
y_number = Convert.ToInt32(y);
if (x_number != y_number {
this.pictureBox1.Image =
global::Example_of_math_variables_and_if_statements.Properties.Resources.yes;
}
else
{
this.pictureBox1.Image =
global::Example_of_math_variables_and_if_statements.Properties.Resources.no;
}
}

Página 72
Escuela de Tecnologias de la información
Lenguaje de Programacion I

6.- IMPLEMENTAR LOS EVENTOS DE CONTROLES


A continuacion utilizara terminos reservadas que demandara mucho de su parte en
analizar los conceptos para utilizar los eventos de cada uno de los controles existentes

PASO 1.-

PASO 2
Programar
private void button1_Click(object sender, EventArgs e)
{
label3.Text = "Button 1";
}

private void button2_Click(object sender, EventArgs e)


{
label3.Text = "Button 2";
}

// El orden "global" de pulsación es:


// KeyDown en formulario
// KeyDown en control
// KeyPress en formulario
// KeyPress en control
// KeyUp en formulario
// KeyUp en control
// para que detecte las pulsaciones en el formulario
// hay que asignar un valor True a la propiedad KeyPreview del formulario

Página 73 Escuela de Tecnologias de la Información


Lenguaje de Programación I

// en KeyDown no diferencia entre mayúsculas y minúsculas


// en KeyPess si distingue la diferencia

private void Form1_KeyPress(object sender, KeyPressEventArgs e)


{
switch (e.KeyChar)
{
case (char)Keys.W: // mayúsculas
case (char)(Keys.W + 32): // minúsculas
label3.Text += "\nTecla W en el formulario";
textBox3.Text += "\r\nTecla W en el formulario (KeyPress)";
break;
case (char)Keys.S:
case (char)(Keys.S + 32): // minúsculas
label3.Text += "\nTecla S en el formulario";
break;
}

}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
// da igual mayúsculas que minúsculas
switch (e.KeyCode)
{
case Keys.S:
label3.Text = "Tecla S en el formulario (KeyDown)";
break;
case Keys.W:
label3.Text = "Tecla W en el formulario (KeyDown)";
textBox3.Text += "\r\nTecla W en el formulario (KeyDown)";
break;
}
}

private void Form1_KeyUp(object sender, KeyEventArgs e) {

Página 74
Escuela de Tecnologias de la información
Lenguaje de Programacion I

switch (e.KeyValue)
{
case (char)Keys.S:
label3.Text = "Tecla S en el formulario (KeyUp)";
break;
case (char)Keys.W:
label3.Text = "Tecla W en el formulario (KeyUp)";
textBox3.Text += "\r\nTecla W en el formulario (KeyUp)";
break;
}
}
// el orden de pulsación es:
// KeyDown, KeyPress y KeyUp
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
// e.KeyValue el código numérico
textBox3.Text += "\r\ntextBox1_KeyDown, tecla: " + e.KeyCode;
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
textBox3.Text += "\r\ntextBox1_KeyPress, tecla: " + e.KeyChar;
}
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
textBox3.Text += "\r\ntextBox1_KeyUp, tecla: " + e.KeyValue;
}
Ahora realizando la comparación con Visual Seria desde luego crear un nuevo proyecto y
configúralo para que sea tu nuevo proyecto de inicio tal como vio en la semana1:
Te quedara de la siguiente manera

Página 75 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Programacion en visual Basic.Net


Public Class Form1
' El orden "global" de pulsación es:
' KeyDown en formulario
' KeyDown en control
' KeyPress en formulario
' KeyPress en control
' KeyUp en formulario
' KeyUp en control

' para que detecte las pulsaciones en el formulario


' hay que asignar un valor True a la propiedad KeyPreview del formulario

' en KeyDown no diferencia entre mayúsculas y minúsculas


' en KeyPess si distingue la diferencia

Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles


Me.KeyPress
Select Case e.KeyChar
Case ChrW(Keys.W), ChrW(Keys.W + 32) ' mayúsculas y minúsculas
label3.Text &= vbCrLf & "Tecla W en el formulario"
textBox3.Text &= vbCrLf & "Tecla W en el formulario (KeyPress)"
Case ChrW(Keys.S), ChrW(Keys.S + 32)
label3.Text &= vbCrLf & "Tecla S en el formulario"
End Select
End Sub
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles
MyBase.KeyDown
' da igual mayúsculas que minúsculas
Select Case e.KeyCode
Case Keys.S
label3.Text = "Tecla S en el formulario (KeyDown)"
Case Keys.W
label3.Text = "Tecla W en el formulario (KeyDown)"
textBox3.Text &= vbCrLf & "Tecla W en el formulario (KeyDown)"
End Select
End Sub

Página 76
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Private Sub Form1_KeyUp(sender As Object, e As KeyEventArgs) Handles Me.KeyUp


Select Case e.KeyCode
Case Keys.S
label3.Text = "Tecla S en el formulario (KeyUp)"
Case Keys.W
label3.Text = "Tecla W en el formulario (KeyUp)"
textBox3.Text &= vbCrLf & "Tecla W en el formulario (KeyUp)"
End Select
End Sub
' el orden de pulsación es: ' KeyDown, KeyPress y KeyUp
Private Sub textBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles
textBox1.KeyDown
' e.KeyValue el código numérico
textBox3.Text &= vbCrLf & "textBox1_KeyDown, tecla: " & e.KeyCode
End Sub
Private Sub textBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles
textBox1.KeyPress
textBox3.Text &= vbCrLf & "textBox1_KeyPress, tecla: " & e.KeyChar
End Sub

Private Sub textBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles


textBox1.KeyUp
textBox3.Text &= vbCrLf & "textBox1_KeyUp, tecla: " & e.KeyValue
End Sub
End Class

CASO APLICATIVO
PASO 1.-
Diseñar

Página 77 Escuela de Tecnologias de la Información


Lenguaje de Programación I

PASÓ 2.-
Programar:

//Crear las variables


int _selectedIndex;
string _text;
//evento TextChanged
private void comboBox1_TextChanged(object sender, EventArgs e)
{
// Llamado cuando cambia el texto.
_text = comboBox1.Text;
Display();
}
//implementado un nuevo metodo de visualizacion
void Display()
{
this.Text = string.Format("Text: {0}; SelectedIndex: {1}",
_text,
_selectedIndex);
}
//evento SelectedIndexChanged
private void comboBox1_SelectedIndexChanged_1(object sender, EventArgs e)
{
// Se llama cuando se selecciona un nuevo índice.
_selectedIndex = comboBox1.SelectedIndex;
Display();
}
}

RESULTADO SE PODRA VISUALIZAR EN LA BARRA DE TITULO A MEDIDA QUE


SELECCIONES UNA OPCION

Página 78
Escuela de Tecnologias de la información
Lenguaje de Programacion I

CASO APLICATIVO
Control: DateTimePicker

PASO 1.-
Diseñar

PASÓ 2.-
Programar:
private void Frm3_Load(object sender, EventArgs e)
{
// Inicializar el selector de de fecha.
DateTime result = DateTime.Today.Subtract(TimeSpan.FromDays(1));
dateTimePicker1.Value = result; }
private void dateTimePicker1_ValueChanged_1(object sender, EventArgs e)
{
// Establecer barra de título hasta la fecha seleccionada.
DateTime result = dateTimePicker1.Value;
label1.Text = result.ToString();
}

CASO APLICATIVO
PASO 1.-
Diseñar un control Treeview en el formulario

Página 79 Escuela de Tecnologias de la Información


Lenguaje de Programación I

PASO 2.-
Programar:
private void Frm4_Load(object sender, EventArgs e) {
// Este es el primer nodo en la vista.
TreeNode treeNode = new TreeNode("Windows");
treeView1.Nodes.Add(treeNode);

// Otro nodo siguiente al primer nodo.


treeNode = new TreeNode("Linux");
treeView1.Nodes.Add(treeNode);
//
// Creacion de un array
// Añadir el tercer nodo, y especificar las sub opciones.
//
TreeNode node2 = new TreeNode("C#");
TreeNode node3 = new TreeNode("VB.NET");
TreeNode[] array = new TreeNode[] { node2, node3 };
//
// Modo Final.
//
treeNode = new TreeNode("Despliegue: ", array);
treeView1.Nodes.Add(treeNode); }

CASO APLICATIVO
Control:
FolderBrowserDialog

Página 80
Escuela de Tecnologias de la información
Lenguaje de Programacion I

PASO 1.-
Diseñar : el control que aparece en la parte inferior

PASO 2.-
Programar:
Importar la librería
using System.IO;
private void Frm5_Load(object sender, EventArgs e){
//
// Este controlador de eventos se ha creado haciendo doble clic en la ventana en
el diseñador.
// Se ejecuta en la rutina de inicio del programa.
//
DialogResult result = folderBrowserDialog1.ShowDialog();
if (result == DialogResult.OK)
{
// creando el array
string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
MessageBox.Show("Archivos encontrados: " + files.Length.ToString(), "Mensaje");
}
}

CASO APLICATIVO
Control:
SaveFileDialog

Página 81 Escuela de Tecnologias de la Información


Lenguaje de Programación I

PASO 1.-
Diseñar : el control que aparece en la parte inferior

PASO 2.-
Programar
Importar la librería
using System.IO;
private void button1_Click(object sender, EventArgs e)
{
saveFileDialog1.ShowDialog();
}
private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
{

string name = saveFileDialog1.FileName;


File.WriteAllText(name, "test");
}

Página 82
Escuela de Tecnologias de la información
Lenguaje de Programacion I

MARCO TEORICO

1.- Formulario (Form)


Prefijo Frm
Propiedades
Propiedades asociadas con un control de formulario:

SN propiedades Descripción

1 AcceptButton El botón que se activa


automáticamente al pulsar Intro, no
importa que el control tiene el foco
en el momento. Por lo general, el
botón OK en un formulario se
establece como AcceptButton de un
formulario.

2 CancelButton El botón que se activa


automáticamente cuando se pulse
la tecla Esc.

Por lo general, el botón Cancelar en


un formulario se establece como
CancelButton de un formulario.

3 Auto escala Esta propiedad Booleana determina


si los controles que coloque en el
formulario se escalan
automáticamente a la altura de la
fuente actual. El valor
predeterminado de esta propiedad es
True. Esta es una característica de la
forma, sino que afecta a los
controles en el formulario.

4 Desplazamiento Esta propiedad booleana indica si las


automático barras de desplazamiento se

Página 83 Escuela de Tecnologias de la Información


Lenguaje de Programación I

adjuntará automáticamente a la
forma si se cambia el tamaño a un
punto que no todos sus controles son
visibles.

5 AutoScrollMinSize Esta propiedad le permite especificar


el tamaño mínimo de la forma, antes
de que las barras de desplazamiento
se adjuntan.

6 AutoScrollPosition El AutoScrollPosition es el número de


píxeles de las dos barras de
desplazamiento fueron desplazadas
de sus lugares iniciales.

7 BackColor Establece el color de fondo del


formulario.

8 Estilo de borde La propiedad BorderStyle determina


el estilo del borde de la forma y la
apariencia de la forma:

 Ninguno: ventana sin bordes


que no se pueden cambiar de
tamaño.

 Sizable: Este es el valor


predeterminado y se utiliza
para la ventana de tamaño
variable que se utiliza para la
visualización de formas
regulares.

 Fixed3D: Ventana con un


borde visible, "levantado" en
relación con el área
principal. En este caso, las
ventanas no se pueden
cambiar de tamaño.

Página 84
Escuela de Tecnologias de la información
Lenguaje de Programacion I

 FixedDialog: Una ventana


fija, usado para crear cuadros
de diálogo.

 FixedSingle: Una ventana


fija con una sola línea de
frontera.

 FixedToolWindow: Una
ventana fija con solamente un
botón Cerrar. Parece que la
barra de herramientas
mostrada por las aplicaciones
de dibujo y de imagen.

 SizableToolWindow: Igual
que el FixedToolWindow pero
de tamaño variable.Además,
su fuente de los subtítulos es
menor que el habitual.

9 Caja de control Por defecto, esta propiedad es True y


se puede establecer en False para
ocultar el icono y desactivar el menú
de control.

10 habilitado Si es verdadero, permite la forma de


responder a eventos de ratón y
teclado; Si es falso, desactiva el
formulario.

11 Fuente Esta propiedad especifica el tipo de


fuente, estilo, tamaño

12 HelpButton Determina si un botón de ayuda se


debe mostrar en el cuadro de título
del formulario.

13 Altura Esta es la altura de la forma en


píxeles.

Página 85 Escuela de Tecnologias de la Información


Lenguaje de Programación I

14 MinimizeBox Por defecto, esta propiedad es True y


se puede establecer en False para
ocultar el botón Minimizar en la barra
de título.

15 MaximizeBox Por defecto, esta propiedad es True y


se puede establecer en False para
ocultar el botón Maximizar en la
barra de título.

dieciséis MinimumSize Esto indica la altura mínima y el


ancho de la ventana se puede
minimizar.

17 Tamaño máximo Esto especifica la máxima altura y la


anchura de la ventana a maximizar.

18 Nombre Este es el nombre real del


formulario.

19 Posición de salida Esta propiedad determina la posición


inicial de la forma cuando se muestra
por primera vez. Tendrá cualquiera
de los siguientes valores:

 CenterParent: El formulario
se centra en el área de su
formulario primario.

 CenterScreen: La forma se
centra en el monitor.

 Manual: La ubicación y el
tamaño de la forma
determinarán su posición de
partida.

 WindowsDefaultBounds:La
forma está colocado en la
ubicación predeterminada y el

Página 86
Escuela de Tecnologias de la información
Lenguaje de Programacion I

tamaño determinado por


Windows.

 WindowsDefaultLocation:El
formulario está ubicado en la
posición predeterminada de
Windows y tiene las
dimensiones que se ha fijado
en tiempo de diseño.

20 Texto El texto, que aparecerá en la barra


de título del formulario.

21 Arriba a la izquierda Estas dos propiedades establecer o


devolver las coordenadas de la
esquina superior izquierda de la
forma en píxeles.

22 Más alto Esta propiedad es un valor


Verdadero / Falso que le permite
especificar si el formulario se
mantendrá en la parte superior de
todas las otras formas de la
aplicación. Su propiedad
predeterminada es False.

23 Anchura Este es el ancho de la forma en


pixel.

Métodos de formulario

Los siguientes son algunos de los métodos utilizados para el Formulario class.You puede
hacer referencia a la documentación de Microsoft para obtener una lista completa de los
métodos asociados con el control de las formas:

SN Nombre del método y Descripción

1 Activar

Página 87 Escuela de Tecnologias de la Información


Lenguaje de Programación I

Activa el formulario y le transfiere el enfoque.

2 ActivateMdiChild

Activa el MDI secundario de un formulario.

3 AddOwnedForm

Agrega una forma de propiedad de esta forma.

4 Traer al frente

Trae el control de la parte frontal del orden z.

5 CenterToParent

Centra la posición del formulario dentro de los límites de la forma


del padre.

6 CenterToScreen

Centra el formulario a la pantalla actual.

7 Cerca

Cierra el formulario.

8 contiene

Recupera un valor que indica si el control especificado es un


elemento secundario del control.

9 Atención

Establece el foco de entrada al control.

Página 88
Escuela de Tecnologias de la información
Lenguaje de Programacion I

10 Esconder

Oculta el control al usuario.

11 Refrescar

Obliga al control a invalidar su área cliente e inmediatamente


volver a dibujar como los de los controles secundarios.

12 Escala (SizeF)

Escala el control y todos los controles secundarios por el factor de


escala especificado.

13 ScaleControl

Escala la ubicación, el tamaño, el relleno y el margen de un


control.

14 ScaleCore

Realiza la escala de la forma.

15 Seleccionar

Activa el control.

16 Enviar al fondo

Envía el control a la parte posterior de la orden z.

17 SetAutoScrollMargin

Establece el tamaño de los márgenes de desplazamiento


automático.

Página 89 Escuela de Tecnologias de la Información


Lenguaje de Programación I

18 SetDesktopBounds

Establece los límites de la forma en coordenadas del escritorio.

19 SetDesktopLocation

Establece la ubicación de la forma en coordenadas del escritorio.

20 SetDisplayRectLocation

Posiciona la ventana de visualización en el valor especificado.

21 Espectáculo

Muestra el control al usuario.

22 ShowDialog

Muestra el formulario como un cuadro de diálogo modal.

Página 90
Escuela de Tecnologias de la información
Lenguaje de Programacion I

2.- Cuadro de texto

Prefijo txt
Propiedades de uso común del control de cuadro de texto:

SN Propiedad Descripción

1 AcceptsReturn Obtiene o establece un valor que indica si al pulsar


ENTER en un control TextBox de varias líneas crea una
nueva línea de texto en el control o se activa el botón
predeterminado para el formulario.

2 AutoCompleteCustomSource Obtiene o establece un


System.Collections.Specialized.StringCollection
personalizada para utilizar cuando el
AutoCompleteSourceproperty se establece en
CustomSource.

3 AutoCompleteMode Obtiene o establece una opción que controla la forma


en la terminación automática funciona para el cuadro
de texto.

4 AutoCompleteSource Obtiene o establece un valor que especifica la fuente de


cadenas completas utilizadas para la terminación
automática.

5 CharacterCasing Obtiene o establece si el control Cuadro de texto


modifica el caso de los personajes a medida que se
escriben.

6 Fuente Obtiene o establece el tipo de letra del texto que


muestra el control.

Página 91 Escuela de Tecnologias de la Información


Lenguaje de Programación I

7 FontHeight Obtiene o establece el alto de la fuente del control.

8 Color primario Obtiene o establece el color de primer plano del control.

9 Líneas Obtiene o establece las líneas de texto en un control de


cuadro de texto.

10 Multilínea Obtiene o establece un valor que indica si se trata de


un control de cuadro de texto de varias líneas.

11 PasswordChar Obtiene o establece el carácter utilizado para


enmascarar caracteres de una contraseña en un control
TextBox de una sola línea.

12 Solo lectura Obtiene o establece un valor que indica si el texto en el


cuadro de texto es de sólo lectura.

13 ScrollBars Obtiene o establece que las barras de desplazamiento


deben aparecer en un control de cuadro de texto de
varias líneas. Esta propiedad tiene valores:

 Ninguna

 Horizontal

 Vertical

 Ambos

14 ÍndiceDeTabulación Obtiene o establece el orden de tabulación del control


en su contenedor.

15 Texto Obtiene o establece el texto actual en el cuadro de


texto.

Página 92
Escuela de Tecnologias de la información
Lenguaje de Programacion I

16 Texto alineado Obtiene o establece el modo de texto se alinea en un


control de cuadro de texto. Esta propiedad tiene
valores:

 Izquierda

 Derecha

 Centrar

17 TextLength Obtiene la longitud del texto en el control.

18 Ajuste de línea Indica si un control de cuadro de texto de varias líneas


se ajusta automáticamente palabras al comienzo de la
siguiente línea cuando sea necesario.

Boton de comando
Prefijo: Btn

SN Propiedad Descripción

1 AutoSizeMode Obtiene o establece el modo por el que el botón


cambia de tamaño automáticamente.

2 BackColor Obtiene o establece el color de fondo del control.

3 Imagen de fondo Obtiene o establece la imagen de fondo que


aparecerá en el control.

4 DialogResult Obtiene o establece un valor que se devuelve a la


forma de los padres cuando se hace clic en el
botón. Esto se utiliza al crear cuadros de diálogo.

5 Color primario Obtiene o establece el color de primer plano del


control.

Página 93 Escuela de Tecnologias de la Información


Lenguaje de Programación I

6 Imagen Obtiene o establece la imagen que se visualiza en un


control de botón.

7 Ubicación Obtiene o establece las coordenadas de la esquina


superior izquierda del control respecto a la esquina
superior izquierda de su contenedor.

8 ÍndiceDeTabulación Obtiene o establece el orden de tabulación del control


en su contenedor.

9 Texto Obtiene o establece el texto asociado a este control.

Combobox
Prefijo: cb

S Propiedad Descripción
N

1 AllowSelection Obtiene un valor que indica si la lista


Permite la selección de los elementos de la lista.

2 AutoCompleteCustomSour Obtiene o establece un


ce system.Collections.Specialized.StringCollection
personalizada para utilizar cuando el
AutoCompleteSourceproperty se establece
En CustomSource.

3 AutoCompleteMode Obtiene o establece una opción que


controla la forma en la terminación automática
Funciona para el cuadro combinado.

4 AutoCompleteSource Obtiene o establece un valor que


especifica la fuente de cadenas completas
Utilizadas para la terminación automática.

Página 94
Escuela de Tecnologias de la información
Lenguaje de Programacion I

5 DataBindings Obtiene los enlaces de datos para el control.

6 Administrador de datos Obtiene el CurrencyManager asociado a este control.

7 Fuente de datos Obtiene o establece la fuente de datos


para este cuadro combinado.

8 DropDownHeight Obtiene o define la altura en píxeles


de la parte desplegable del cuadro combinado.

9 DropDownStyle Obtiene o establece un valor que especifica


el estilo del cuadro combinado.

10 dropdownWidth Obtiene o establece el ancho de la


Parte desplegable de un cuadro combinado.

11 Cayó Obtiene o establece un valor que indica


si el cuadro combinado está mostrando
su parte desplegable.

12 FlatStyle Obtiene o establece la apariencia del cuadro


Combinado.

13 ItemHeight Obtiene o define la altura de un elemento


en el cuadro combinado.

14 Artículos Obtiene un objeto que representa el conjunto


de los elementos contenidos en este cuadro combinado.

15 MaxDropDownItems Obtiene o establece el número máximo de elementos


que se mostrará en la parte desplegable
del cuadro combinado.

16 Longitud máxima Obtiene o establece el número máximo de


caracteres que un usuario puede introducir en el
área de edición de un cuadro combinado.

Página 95 Escuela de Tecnologias de la Información


Lenguaje de Programación I

17 SelectedIndex Obtiene o establece el índice que especifica


El elemento actualmente seleccionado.

18 Item seleccionado Obtiene o conjuntos seleccionados


Actualmente elemento en el cuadro combinado.

19 SelectedText Obtiene o establece el texto que se


Selecciona en la parte editable de un ComboBox.

20 SelectedValue Obtiene o establece el valor de la propiedad


de miembro especificado por la propiedad
ValueMember.

21 SelectionLength Obtiene o establece el número de caracteres


seleccionados en la porción de edición
Del cuadro combinado.

22 SelectionStart Obtiene o establece el índice a partir del texto


Seleccionado en el cuadro combinado.

23 Ordenado Obtiene o establece un valor que indica


Si los elementos en el cuadro combinado se ordenan.

24 Texto Obtiene o establece el texto asociado a este control.

Página 96
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Capítulo

ELABORAR PROGRAMAS
UTILIZANDO ESTRUCTURAS
CONDICIONALES Y
REPETITIVAS
En este capítulo se trataran los siguientes
temas:

Elaborar programas utilizando


estructuras condicionales
Elaborar programas utilizando
estructuras repetitivas
Elaborar programas utilizando
estructuras selectivas

Página 97 Escuela de Tecnologias de la Información


Lenguaje de Programación I

7.- ELABORAR PROGRAMAS UTILIZANDO ESTRUCTURAS


CONDICIONALES

A continuación a través de esta tarea se aplicara una de las estructuras de control mas
utilizadas en todo lenguaje de programación la cual se encarga de tomar desiciones para
ejecutar líneas de instrucción
Sintaxis:

Condicional simple en VB

If Condicion then Expresion1

Condicional doble
If Condicion then
Secuencias1

Else
Secuencias2

Endif

Condicional multiple anidada


If Condicion then
Secuencias1

ElseIf Condicion2 then
Secuencias2

Elseif Condicion3 then
Secuencias3

Else
Secuencias4

Endif

Página 98
Escuela de Tecnologias de la información
Lenguaje de Programacion I

Condicional multiple por bloque


SELECT CASE (En caso)

Select case(var)
Case valor1:
(programacion)
Case valor3:
(programacion)
Case valor...N:
(programacion)
Case else:
(programacion)
End select

SINTAXIS EN C#
Condicional simple en C#

CONDICIONAL SIMPLE
if (condicion)
{
}

CONDICIONAL DOBLE

if (condicion)
{
//codigo
}
else
{
//codigo
}
CONDICIONAL MULTIPLE
if (Condicion)
{
// Condicion is true.
}
else if (Condicion)

Página 99 Escuela de Tecnologias de la Información


Lenguaje de Programación I

{
// Condicion es false and Condicion2 is true.
}
else if (Condicion){
//evalua otra condicion
}
else
{
// Condición por defecto
}
CONDICIONAL POR BLOQUE
switch (EXPRESION)
{
case 1:
//CODIGO
break;
case 2:
//CODIGO
break;
default:
//CODIGO
break;
}

CASO DE APLICACIÓN CON CONDICIONALES


CASO APLICATIVO
PASO 1.-
Crear un proyecto esta vez en VB de nombre Semana3
Ejercicio: Ingresar 2 numeros y calcular el mayor

Página 100
Escuela de Tecnologias de la información
Lenguaje de Programacion I

CODIGO :
PublicClass Form1
Inherits System.Windows.Forms.Form
‘Código generado por el Diseñador de Windows Forms
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
txtN1.Clear()
txtN2.Clear()
LblMayor.Text = ""
txtN1.Focus()
EndSub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button2.Click
Dim N1 AsInteger, N2 AsInteger
N1 = Val(txtN1.Text)
N2 = Val(txtN2.Text)
If N1 > N2 Then
LblMayor.Text = N1
Else
LblMayor.Text = N2
EndIf
EndSub
PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button3.Click
Me.Close()
EndSub
EndClass

Página 101 Escuela de Tecnologias de la Información


Lenguaje de Programación I

CASO APLICATIVO
PASO 1.-

Ejemplo:Se ingresara un monto de ahí se podra sacar el 18,20,22% al monto, al final el


monto final sera la suma de los % mas el monto.

CODIGO
Private Sub CmdCalcular_Click()
Dim monto as integer
monto = Val(txtmonto)
If chk18.Checked=true Then
txt18.text = monto * 0.18
Else
txt18.text = 0
End If
If chk20.Checked =trueThen
txt20.text = monto * 0.2
Else
txt20.text = 0
End If
If chk22.checked=true Then
txt22.text = monto * 0.22
Else
txt22.text = 0
End If
txtfinal.text = Val (txt18.text) + Val (txt20.text) + Val (txt22.text)
End Sub

Página 102
Escuela de Tecnologias de la información
Lenguaje de Programación

CASO APLICATIVO
RADIOBUTTON (botones de opción)
Los botones de opción (OptionButton), también permiten presentar opciones al
usuario, pero con la particularidad que sólo puedes seleccionar una de las opciones al

mismo tiempo.
Si quieres que en un mismo formulario se pueda seleccionar más de un botón de
opción, tienes que crear distintos conjuntos de botones de opción.
El botón de opción sólo puede tener dos valores en la propiedad CHECKED (True y
False), true si está activado y false si está desactivado.
PASO 1.-
Ejemplo: Seleccione una categoría y al hacer clic muestre que categoría se ha
seleccionado

Private Sub CmdVer_Click()


If Option1.Checked = True Then
Txtcat.text = "A"
Else
If Option2.Checked = True Then
Txtcat.text = "B"
Else
Txtcat.text = "C"
End If
End If
End Sub

Paginá 103 Escuela de Tecnologias de la información


Lenguaje de Programación I

CASO APLICATIVO

1.- Ingrese codigo del suministro y los kw consumidos al hacer clic en Calcular debe salir el
Importe Inicial que es el 10% del Basico, el alumbrado publico 3.5% del Bascio, Mantenimiento
1.5% del basico, reajuste 4.8% del basico, Igv 19% del basico y Total a pagar.
El basico sera = Kw consumidos x = 0.09

CASOS PROPUESTOS DESARROLLAR AL MENOS 3 EJERCICIOS EN FORMA LIBRE


2.- Ingrese por teclado en una caja de texto la hora en formato de 24 horas y en otra caja de
texto la cantidad de minutos al hacer clic en un boton debera salir la hora en formato de 12
horas por ejemplo si se ingresa 23 en una caja y en la otra 12 el resultado seria 11:12:PM

3.- Ingrese la cantidad de minutos hablados por una persona y escoja el tipo de llamada (Local,
Nacional, Internacional).Se visualizara el importe de la llamada sabiendo que por los 3
primeros minutos se paga S/ 1.00 y por cada minuto adicional se paga 0.50 en caso sea local si
es nacional se incrementa el 25% y si es internacional se incrementa el 60% a los precios por
minuto.

104
Desarrollo de Software
Lenguaje de Programacion I

4.- Ingresar el nombre de un trabajador, la cantidad de hijos y su sueldo, si este tiene hijos se
le dará una bonificación de S./40.00 por hijo y si no tiene hijos se le dara el 25% de su sueldo
se deberá mostrar la bonificación y el sueldo final.

5.- Ingrese por teclado dos números y al escoger un signo de operación se debera mostrar el
resultado de la operación.

6.- Ingrese un numero máximo de 2 cifras si el numero es de una cifra se deberá mostrar
cuanto falta para convertirse en un numero de 2 cifras, y si es de 2 cifras se deberá mostrar
cuanto falta para convertirse en un numero de 3 cifras.

7.- Ingrese un numero cualquiera y muestre la cantidad de cifras que tiene según sea el caso.
Ejemplo: 203 = “Tiene 3 cifras”, 45678 = “Tiene 5 cifras” tome en cuenta que el numero
máximo a ingresar es un millon..

8.- Ingrese por teclado el nombre, año de nacimiento y sexo de una persona (M o F),se deberá
mostrar uno de los siguientes mensajes.
- Varon mayor de edad
- Varon menor de edad
- Dama mayor de edad
-Dama menor de edad

9.- Ingrese un número y visualícelo en romano.


10.- Ingrese por teclado el día de nacimiento y el mes de nacimiento de una persona al hacer
clic se deberá mostrar su signo zodiacal así como también deberá aparecer la imagen del signo
Zodiacal en un control PictureBox.

11.- Se deberá desarrollar un algoritmo en el cual se deberá ingresar el nombre de un alumno


y se deberá escoger el turno en el que estudia (M , T y N) asi como tambien el ciclo (I, II, III,
IV, V, VI y SIDET) y la carrera (CI, Enfermeria y Administración) se debera calcular el pago de
su pension en base a los siguientes datos:
el precio por carrera es:
CI = 320.00
Enfermeria = 280.00

Desarrollo de Software 105


Lenguaje de Programación I

Administración = 270.00
Ademas que dependiendo del ciclo en el que estan se pagara un recargo del precio de
10,20,30,40,50,60 y 70% (para sidet). Asi como tambien si es del turno “M” se debera
recargar 10% mas solo si esta en I, II, o III ciclo, si es del turno “T” se recarga el 15 % mas
solo si esta en I, o II y por utlimo si es del turno “N” se se la hara un descuento del 15 % solo
si esta en SIDET
Al finalizar solo se debe mostrar el monto de la pension.

CASO APLICATIVO
PASO 1.-Diseñar el siguiente formulario:
.

106
Desarrollo de Software
Lenguaje de Programacion I

Se deberá ingresar el largo y el ancho del terreno y conforme vayan digitándo deberá salir el
total (Largo * ancho)

CASO APLICATIVO
Deberá ingresar el precio por metro y al escoger una categoría el precio se incrementara en un
10, 20, y 30 % respectivamente según la categoria, ademas de salir el precio total que sera el
total de area * el precio y si se escogio en tipo de alquiler Contado se le hara un Descuento de
10% al precio total y si es credito se le hara un recargo de 15 %.
Finalmente se deberá escoger si se pagara alumbrado, parques o serenazgo sacando los %
correspondientes al precio total según indica el fomulario el precio final debera salir al hacer
clic en el boton calcular.

Al ingresar un número indicar si es Par o es Impar.


Diseño

Objetos

Desarrollo de Software 107


Lenguaje de Programación I
Programacion
Public Class frmpar

Private Sub btnnuevo_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnnuevo.Click
Me.txtn.Text = ""
Me.lblr.Text = "Resultado"
Me.txtr.Text = ""
Me.txtn.Select()
End Sub

Private Sub btncalcular_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btncalcular.Click
Dim n, parimpar As Integer
Dim mensaje As String
n = Val(Me.txtn.Text)
mensaje = ""
parimpar = n Mod 2 'cálcula resto
If parimpar = 0 Then
mensaje = "el numero: " + CStr(n) + " es PAR"
Else
mensaje = "el numero: " + CStr(n) + " es IMPAR"
End If
Me.lblr.Text = mensaje
Me.txtr.Text = mensaje
End Sub

Private Sub btncerrar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btncerrar.Click
Me.Close()
End Sub
End Class

108
Desarrollo de Software
Lenguaje de Programación I
CASO APLICATIVO
Dim sueldo, bon, incen, desc, total As Double
Private Sub txtempleado_KeyPress(sender
As Object, e As KeyPressEventArgs) Handles
txtempleado.KeyPress
If Char.IsNumber(e.KeyChar) = True
Then
MsgBox("Solo se aceptan letras", 64,
"Servicios")
e.Handled = True
End If
End Sub
Private Sub
chkboni_CheckedChanged(sender As Object,
e As EventArgs) Handles
chkboni.CheckedChanged,
chkincen.CheckedChanged,
chkdescuento.CheckedChanged
If chkboni.Checked = True Then
Label3.Text = txtsueldo.Text * 0.04
Else
Label3.Text = 0
End If
If chkincen.Checked = True Then
Label4.Text = txtsueldo.Text *
0.032
Else
Label4.Text = 0
End If
If chkdescuento.Checked = True Then
Label5.Text = txtsueldo.Text *
0.045
Else
Label5.Text = 0
End If
End Sub

109
Desarrollo de Software
Lenguaje de Programación I
Private Sub btnprocesar_Click(sender As
Object, e As EventArgs) Handles
btnprocesar.Click
bon = Label3.Text
incen = Label4.Text
desc = Label5.Text
total = bon + incen - desc
Label7.Text = txtsueldo.Text + total
End Sub

CASO APLICATIVO
Validar que en la caja de texto TXTDNI se ingrese solo numeros y al presionar enter
que tome enfoque TXTNOM

Private Sub TxtDni_KeyPress(ByVal sender AsObject, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles TxtDni.KeyPress
Dim tecla AsInteger
tecla = Asc(e.KeyChar) ‘Aqui convertimos a ASCII el valor de e.keychar
SelectCase tecla
Case 48 To 57 ‘si en caso es un numero
Case 13 ‘si en caso es Enter
Txtnom.focus();
Case Else ‘Cualquier otra tecla
MsgBox("error")
e.Handled = True

esto quiere decir que el valor que se haya presionado no aparecera en la


caja de texto
EndSelect
End Sub
Private Sub TxtDni_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtDni.TextChanged
TxtObs.Text = TxtDni.Text
EndSub

En este ejemplo lo que se va ingresando en el texto DNI aparecerá en el texto TXTOBS

110
Desarrollo de Software
Lenguaje de Programación I
MÁS EJERCICIOS CON CONDICIONALES

Public Class Form6


Private Sub verificar_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles verificar.Click
If Val(txtn1.Text) > Val(txtn2.Text)
Then
lbres.Text = txtn1.Text
ElseIf Val(txtn2.Text) > Val(txtn1.Text)
Then
lbres.Text = txtn2.Text
End If
End Sub
End Class
Public Class Form6
Private Sub verificar_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles verificar.Click
If txtn1.Text = txtn2.Text Then
lbres.Text = "son iguales"
Else
lbres.Text = "son diferentes"
End If
End Sub
End Class

111
Desarrollo de Software
Lenguaje de Programación I
Dim total#, comision#, monto#
Private Sub
txtempleado_KeyPress(sender As Object,
e As KeyPressEventArgs) Handles
txtempleado.KeyPress
If Char.IsNumber(e.KeyChar) Then
MsgBox("Solo se aceptan letras",
64, "Servicios")
e.Handled = True
End If
End Sub
Private Sub
rbnorte_CheckedChanged(sender As
Object, e As EventArgs) Handles
rbnorte.CheckedChanged,
rbcentro.CheckedChanged,
rbsur.CheckedChanged
If rbnorte.Checked = True Then
total = txtmontoven.Text * 0.05
ElseIf rbcentro.Checked = True Then
total = txtmontoven.Text * 0.08
ElseIf rbsur.Checked = True Then
total = txtmontoven.Text * 0.012
End If
End Sub
Private Sub btncalcular_Click(sender As
Object, e As EventArgs) Handles
btncalcular.Click
comision = total + txtmontoven.Text
Label4.Text = comision
End Sub

112
Desarrollo de Software
Lenguaje de Programación I

Public Class Form2


Private Sub btnNumero_Click(sender
As Object, e As EventArgs) Handles
btnSNumero.Click
If txt1.Text >= 1 And txt1.Text <= 20
Then
lbRes.Text = ("Si esta en el rango")
Else
lbRes.Text = ("No esta en el Rango")
End If
End Sub
End Class

113
Desarrollo de Software
Lenguaje de Programación I

Public Class Form2


Private Sub btnNumero_Click(sender As
Object, e As EventArgs) Handles
btnSNumero.Click

Select Case txt1.Text


Case 1 : lbRes.Text = "enero"
Case 2 : lbRes.Text = "Febrero"
Case 3 : lbRes.Text = "Marzo"
Case 4 : lbRes.Text = "Abril"
Case 5 : lbRes.Text = "Mayo"
Case 6 : lbRes.Text = "Junio"
Case 7 : lbRes.Text = "Julio"
Case 8 : lbRes.Text = "Agosto"
Case 9 : lbRes.Text = "Setiembre"
Case 10 : lbRes.Text = "Octubre"
Case 11 : lbRes.Text = "Noviembre"
Case 12 : lbRes.Text = "Diciembre"
Case Else
lbRes.Text = "No existe ese
mes"

End Select
End Sub
End Class

114
Desarrollo de Software
Lenguaje de Programación I
Dim precio#, fle#, igv#, desc#, tot#
Private Sub txtproducto_KeyPress(sender As Object,
e As KeyPressEventArgs) Handles txtproducto.KeyPress
If Char.IsNumber(e.KeyChar) Then
MsgBox("Solo se aceptan Letras", 64,
"Servicios")
e.Handled = True
End If
End Sub
Private Sub txtprecio_KeyPress(sender As Object, e
As KeyPressEventArgs) Handles txtprecio.KeyPress
If Char.IsLetter(e.KeyChar) Or
Char.IsWhiteSpace(e.KeyChar) Then
MsgBox("Solo se aceptan números",
MsgBoxStyle.Critical, "Servicios")
e.Handled = True
End If
End Sub
Private Sub chkdescuento_CheckedChanged(sender As
Object, e As EventArgs) Handles
chkdescuento.CheckedChanged,
chkflete.CheckedChanged, chkigv.CheckedChanged
precio = txtprecio.Text
If chkdescuento.Checked = True Then
desc = precio * 0.03
Label3.Text = desc
Else
Label3.Text = 0
End If
If chkflete.Checked = True Then
fle = precio * 0.045
Label4.Text = fle
Else
Label4.Text = 0
End If
If chkigv.Checked = True Then

115
Desarrollo de Software
Lenguaje de Programación I
igv = precio * 0.018
Label5.Text = igv
Else
Label5.Text = 0
End If
End Sub
Private Sub btnprocesar_Click(sender As Object, e
As EventArgs) Handles btnprocesar.Click
tot = (precio + fle + igv) - desc
Label7.Text = tot
End Sub

116
Desarrollo de Software
Lenguaje de Programación I
Dim cambio%, afina%, cali%, mot%, sis%,
sus%, inter%, exter%, ence%, tot%
Private Sub chklavaex_CheckedChanged(sender
As Object, e As EventArgs) Handles
chklavaex.CheckedChanged,
chklimpin.CheckedChanged,
chkence.CheckedChanged,
chkcambiace.CheckedChanged,
chkafi.CheckedChanged, _
chkcali.CheckedChanged,
chkdelmo.CheckedChanged,
chkdelasus.CheckedChanged,
chkdelsiste.CheckedChanged
'limpieza
If chklavaex.Checked = True Then
exter = 200
Else
exter = 0
End If
If chklimpin.Checked = True Then
inter = 300
Else
inter = 0
End If
If chkence.Checked = True Then
ence = 100
Else
ence = 0
End If
'mantenimiento
If chkcambiace.Checked = True Then
cambio = 60
Else
cambio = 0
End If
If chkafi.Checked = True Then

117
Desarrollo de Software
Lenguaje de Programación I
afina = 50
Else
afina = 0
End If
If chkcali.Checked = True Then
cali = 70
Else
cali = 0
End If
'reparacion
If chkdelmo.Checked = True Then
mot = 150
Else
mot = 0
End If
If chkdelasus.Checked = True Then
sus = 160
Else
sus = 0
End If
If chkdelsiste.Checked = True Then
sis = 155
Else
sis = 0
End If
End Sub
Private Sub btncalcular_Click(sender As Object,
e As EventArgs) Handles btncalcular.Click
tot = cambio + afina + cali + mot + sis +
sus + inter + exter + ence
Label8.Text = tot
End Sub

118
Desarrollo de Software
Lenguaje de Programación I
MARCO TEORICO

Evento Keypress y Textchanged

Evento Keypress
Este evento sucede cuando se presiona alguna tecla.
En este evento el vb automáticamente dara un valor a una variable del sistema
llamada e.keychar que sera la tecla que se presiono
Ejemplo:
Si se presiono la A e.keychar tomara el valor de “A”
Evento TextChanged
Este evento sucede cuando cambia la estructura de las cajas de texto(TextBox)
Es decir conforme vayamos cambiando el contenido del texto se ejecutara el vento
CHANGE

Variables, constantes, Tipo de Datos y conversiones de tipo de datos


Una variable es un nombre que designa a una zona de memoria (se trata por tanto
de un identificador),a, las variables pueden cambiar su valor a lo largo de la
ejecución de un programa. Completando a las variables existe lo que se denomina
constantes las cuales son identificadores pero con la particularidad de que el valor
que se encuentra en ese lugar de la memoria sólo puede ser asignado una única vez.
El tratamiento y tipos de datos es igual al de las variables.
Para declarar un dato como constante únicamente es necesario utilizar la palabra
Const en la declaración de la variable. Si durante la ejecución se intenta variar su
valor se producirá un error.

Tipos de Variables

Tipo Espacio Observacion

Boolean 2 bytes Un valor verdadero o falso.


Valores:True o False.
Dim x As Boolean = True
Byte 1 byte Un valor positivo, sin signo, para
contener datos binarios.
Valores: de 0 a 255
Dim x As Byte = 129

119
Desarrollo de Software
Lenguaje de Programación I
Date 8 bytes Una fecha.
Las fechas deben representarse entre
almohadillas # y por lo habitual usando
el formato norteamericano: #m-d-
yyyy#
Dim x As Date = #10-27-2001#
Decimal 16 bytes Un número decimal.
Dim unDecimal As Decimal
Double 8 bytes Un número de coma flotante de doble
precisión.
Dim unDoble As Double = 987456.01
Integer 4 bytes Un número entero (sin decimales)
Dim unEntero As Integer = 2555
Long 8 bytes Un entero largo (o grande)
(entero Dim unLong As Long = 12345678
largo)
String Depende de Una cadena de caracteres
(cadenas de la plataforma
longitud
variable)

Ejemplo 1:
Dim A as String=”20” ‘Tenemos en A una cadena
Dim B as integer ‘Tenemos B que es entero
B=A ‘queremos guardar en B el valor de A de esta forma no se puede ya que a y b no
son del mismo tipo
B=CINT(A) ‘Esta es la forma correcta
Ejemplo 2:
Dim a as string=”01/01/01” ‘Tenemos a que es cadena
Dim b as date=CDATE(a) ‘Aqui declaramos B que es date y esta guardando el valor de
A que es cadena
Ejemplo 3:
Dim a as integer=12 ‘Tenemos a que es entero
Dim b as string=CSTR(a) ‘Aqui declaramos B que es cadena y esta guardando el valor
de A que es numerico

120
Desarrollo de Software
Lenguaje de Programación I
5.- Operadores

^ Exponenciacion Otros operadores complementarios


* ,/ Multiplicacion y divison real Asigna y opera
+=, -= ,*= , /= , ^=
\ división entera
a=a+5 equivale a+=5
Mod residuo de una divison entera

A=23\4 la respuesta es 5

A= 23 mod 4 resultado 3

Operadores de comparación

Igualdad (=)
Desigualdad (<>)
Menor o mayor que (<,>)
Mayor o igual que (>=)
Menor o igual que (<=)
Like
Explicación
TypeOf...Is
Conversión de tipos
Var = CType(Val("10 * 25"), Integer)

Con esto le estamos diciendo al VB que primero convierta la cadena en un número


mediante la función Val, (que devuelve un número de tipo Double), después le decimos
que ese número Double lo convierta en un valor Integer.
También podríamos hacerlo de esta otra forma:
i = CInt(Val("10 * 25"))

Instrucciones Condicionales
IF.(Si)
Sintaxis:

If condicion then
(programacion)
else
(programacion)

121
Desarrollo de Software
Lenguaje de Programación I

end if

Esta sentencia puede tener 2 o mas condiciones solo se debera poner los
operadores logicos (and,or)

Ejemplo: Se tiene un numero si este es mayor que 300 y menor 500 se debera
incrementar en un 10% de lo contrario se debera disminuir en un 20%
Dim num as integer
Num = 450
If Num >300 and Num < 500 then
Num = num + (num * 0.10)
Else
Num = num - (num * 0.20)
End if

IIF.(Doble si)
Sintaxis:
Var = IIf(condicion,verdad,falso)
Cuando se utiliza el IIF el resultado de este se debe guardar en una variable de lo
contrario saldrá error.
Ejemplo: Utilizaremos el mismo ejemplo del If y la solución sería la siguiente.
Dim Num = 450
Num = iif(num >300 and num < 500, num + (num *0.10), num – (num * 0.20))

Condicion Verdad Falso


Esta sentencia se lee asi: en la variable num se va a guardar dependiendo de la
condicion si la cumple se guardara num incrementado en un 10% si no se guardara
num disminuido en un 20%

SELECT CASE (En caso)


Select case(var)
Case valor1:
(programacion)
Case valor3:
(programacion)
Case valor...N:

122
Desarrollo de Software
Lenguaje de Programación I

(Programacion)
Case else:
(Programacion)
End select
Ejemplo: Ingrese un numero y según cumpla una de las condiciones en otra variable
se deberá almacenar un mensaje.
Si el numero es 0 el mensaje sera “Neutro”
Si es 2,4,6,8 el mensaje sera “Par menor a 10”
Si el numero es mayor que 9 y menor que 100 el mensaje sera “entre 10 y 99 “
Si es mayor a 499 y menor a 901 o es el numero 998 el mensaje sera “Menor a mil”
Si no cumple ninguna de las condiciones saldra el mensaje “No cumple condicion”

Controles CheckBox y RadioButton

CHECKBOX (Casillas de verificación).- Nos dán la oportunidad de poder elegir entre


distintas opciones. Las casillas de verificación (CheckBox), permiten establecer opciones

que no son excluyentes entre sí, es decir, puedes seleccionar una o más de una.
Una casilla de verificación puede estar activada o desactivada.
La propiedad que tiene estos valores es CHECKED
El evento más utilizado en este tipo de objetos es el momento en el que se pulsa en la
casilla. En esta situación el usuario quiere indicar que desea activar o desactivar la
casilla, dependiendo del valor que tenga en ese momento.

123
Desarrollo de Software
Lenguaje de Programación I

8.- ELABORAR PROGRAMAS UTILIZANDO ESTRUCTURAS


REPETITIVAS

CASO APLICATIVO

Public Class Form1


Private Sub verificar_Click(sender As Object,
e As EventArgs) Handles verificar.Click
Dim v As Double
Dim s As Double
s=1
Dim valor
valor = txtNumero.Text
For v = 1 To CInt(valor)
s=s*v
Next
lstvalores.Items.Add(s)
End Sub
End Class
Public Class Form2
Private Sub Button1_Click(sender As Object,
e As EventArgs) Handles Button1.Click
Dim iu, id, a As Double
iu = txtn1.Text
id = txtn2.Text

While (iu Mod id <> 0)


a = iu
iu = id
id = a Mod id
End While
lbres.Text = id
End Sub
End Class

124
Desarrollo de Software
Lenguaje de Programación I

Public Class Modulo1


Private Sub btnDivisores_Click(ByVal sender
As System.Object, ByVal e As
System.EventArgs) Handles
btnDivisores.Click
Dim num As Integer
num = txtNumero.Text
Dim s As String
s = ""
For i As Integer = 1 To num
If num Mod i = 0 Then
s=s&""&i
End If
Next
lbDivisores.Text = s

End Sub
End Class

Desarrolle un programa el cual muestre el primer número primo que hay entre 10 y 90
Diseñe ud su propio formulario

Dim num As Integer, cd As Integer, i As Integer


'El primer for ira del 10 al 90
For num = 10 To 90
'Se inicializa la variable cd que contara los divisores de num
cd = 0
'Este for es para dividir consecutivamente num/1, num/2, num/3 asi sucesivamente
Para ver cuales son sus divisores

For i = 1 To num
'Si el residuo es 0 es divisible y el contador se incrementa

125
Desarrollo de Software
Lenguaje de Programación I

If num Mod i = 0 Then


cd = cd + 1
End If
Next
'Si la cantidad de divisores es 2 quiere decir que es primo
If cd = 2 Then
Msgbox "El primer primo es " & num
'Como ya encontro el primer primo rompe el for de num
Exit For
End If
Next

CASO APLICATIVO
Desarrollar un algoritmo que permita mostrar los numeros Amstrong que hay del 1 al
1000 se dice que son numeros amstrong cuando la suma del cubo de sus cifras es igual
al mismo numeros. Ejemplo :153 = 1^3 + 5^3 + 3^3 serian iguales

Private Sub Form_Load ()


Dim Num%, NumAux%, Suma%, R%
For Num = 1 To 1000
NumAux = Num
Suma = 0
Do While NumAux > 0
R = NumAux Mod 10
Suma = Suma + (R ^ 3)
NumAux = NumAux \ 10
Loop
If Suma = Num Then
Lblcant = Val(Lblcant) + 1

126
Desarrollo de Software
Lenguaje de Programación I

lblnumeros = lblnumeros & Num & ","


End If
Next
End Sub

Private Sub CmdBin_Click()


Dim cad$
Dim n%
n = Val(Text1)
cad = ""
Do While n <> 0
r = n Mod 2
n=n\2
cad = cad + Str(r)
Loop
LBR1 = StrReverse(cad)
End Sub

Aplicación con Procesos repetitivos.-

CASOS APLICATIVOS

127
Desarrollo de Software
Lenguaje de Programación I

Public Class Form1


Private Sub verificar_Click(sender As Object,
e As EventArgs) Handles verificar.Click
Dim v As Double
Dim s As Double
s=1
Dim valor
valor = txtNumero.Text
For v = 1 To CInt(valor)
s=s*v
Next
lstvalores.Items.Add(s)
End Sub
End Class
Public Class Form2
Private Sub Button1_Click(sender As Object, e As
EventArgs) Handles Button1.Click
Dim iu, id, a As Double
iu = txtn1.Text
id = txtn2.Text
While (iu Mod id <> 0)
a = iu
iu = id
id = a Mod id
End While
lbres.Text = id
End Sub
End Class

128
Desarrollo de Software
Lenguaje de Programación I

Public Class Modulo1


Private Sub btnDivisores_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles btnDivisores.Click
Dim num As Integer
num = txtNumero.Text
Dim s As String
s = ""
For i As Integer = 1 To num
If num Mod i = 0 Then
s=s&""&i
End If
Next
lbDivisores.Text = s
End Sub
End Class
End Class

129
Desarrollo de Software
Lenguaje de Programación I

Private Sub Button1_Click(sender As Object, e As


EventArgs) Handles Button1.Click
'declarar
Dim num As Integer
Dim com As Boolean = True
'asignamos valor a num
num = txtnum.Text
'hacemos for
For i As Integer = 2 To num - 1
If num Mod i = 0 Then
com = False
End If
Next
If com = False Then
MsgBox("no es primo")
Else
MsgBox("es primo ")
End If
End Sub
End Class

Public Class Form1

Private Sub Button1_Click(sender As


Object, e As EventArgs) Handles
Button1.Click
Dim num
num = txtn1.Text

Dim numeros, suma, i As Integer

For i = 1 To num
numeros = numeros + 3

130
Desarrollo de Software
Lenguaje de Programación I

suma = suma + numeros


Next
lbres.Text = suma
End Sub
End Class
Private Sub btn1_Click(sender As Object, e
As EventArgs) Handles btn1.Click
Dim a, b As String
Dim cont1 As Integer = 0
Dim cont2 As Integer = 0
Dim cont3 As Integer = 0
a = txt1.Text
For i As Integer = 1 To a.Length
b = GetChar(a, i)
If ((b = "a") Or (b = "e") Or (b = "i") Or (b
= "o") Or (b = "u")) Then
cont1 = cont1 + 1
End If
Next
Label2.Text = cont1
End Sub
Private Sub btngenerar_Click(sender As
Object, e As EventArgs) Handles
btngenerar.Click
Dim caracter As String = ""
Dim resul As String = ""
Dim k As Integer
Dim num As Integer
caracter = Val(txtcaracter.Text)
num = txtnumero.Text
For k = 0 To caracter
resul = resul + caracter
Next
Label3.Text = resul
End Sub

131
Desarrollo de Software
Lenguaje de Programación I

Private Sub variable(sender As Object, e As


KeyEventArgs) Handles Txt1.KeyDown
Dim a, b As String
Dim k As Integer
a = Txt1.Text
For k = 1 To a.Length
b = GetChar(a, k)
Next
ListBox1.Items.Add("b")
End Sub
Private Sub variable(sender As Object, e As
KeyEventArgs) Handles Txt1.KeyDown
Dim a As String
a = Txt1.Text
Dim b As Integer
b = a.Length
If e.KeyCode = Keys.Enter Then
While b >= 1
ListBox1.Items.Add(Mid(a, 1, b))
b -= 1
End While
End If

132
Desarrollo de Software
Lenguaje de Programación I
Dim num(30) As String
Dim n = 0
Private Sub Button1_Click(sender As Object, e
As EventArgs) Handles Button1.Click
num(n) = txtnombre.Text
Dim cad1, cad2 As String
Dim i As Integer
n=n+1
cad2 = ""
For i = 0 To n - 1
cad1 = num(i)
cad2 = cad2 + " " + cad1
Label2.Text = cad2
Next
txtnombre.Text = ""
txtnombre.Focus()
End Sub
Dim num(25) As Integer
Dim n = 0
Private Sub Button1_Click(sender
As Object, e As EventArgs) Handles
Button1.Click
num(n) = txtnumero.Text
Dim cad1, cad2 As String
Dim i As Integer
n=n+1
cad2 = ""
For i = 0 To n - 1
cad1 = num(i)
cad2 = cad2 + cad1
Label2.Text = cad2
Next

txtnumero.Text = ""
End Sub

133
Desarrollo de Software
Lenguaje de Programación I

Public Function Productos()


Dim producto() As String = {"Mouse",
"Scanner", "Parlantes"}
Return producto
End Function
Private Sub Problema67_Load(sender As
Object, e As EventArgs) Handles MyBase.Load
cbopr.Items.AddRange(Productos)
End Sub
Private Sub
cbopr_SelectedIndexChanged(sender As
Object, e As EventArgs) Handles
cbopr.SelectedIndexChanged
Dim n, s As Integer
If cbopr.Text = "Mouse" Then
lista1.Items.Add(cbopr.SelectedItem)
txt.Text = 12
lista2.Items.Add(txt.Text)
ElseIf cbopr.Text = "Scanner" Then
lista1.Items.Add(cbopr.SelectedItem)
txt.Text = 48
lista2.Items.Add(txt.Text)
ElseIf cbopr.Text = "Parlantes" Then
lista1.Items.Add(cbopr.SelectedItem)
txt.Text = 15
lista2.Items.Add(txt.Text)
End If
For n = 0 To lista2.Items.Count - 1
s = s + lista2.Items(n)
Next
txt2.Text = s
End Sub

134
Desarrollo de Software
Lenguaje de Programación I

MARCO TEORICO

Instrucciones Repetitivas

For, While, For each

1.- FOR.(Para Hasta)


Sintaxis:
For var=valorinicial to valorfinal step(incremento)
(programacion)
Next var
El For es una sentencia repetitiva donde var es la variable de control que dara las
vueltas.
Ejemplos:
Visualize en el formulario los numeros pares del 100 al 2(100,98,96..)
For i=100 to 2 step –2
ListBox1.Items.Add(i)
Next I
Visualize en el formulario los numeros impares del 1 al 99(1,3,4..)
For i=1 to 99 step 2
ListBox1.Items.Add(i)
Next

Genere y visualize numeros del 10 al 90 y al final muestre la suma de ellos


Dim suma as integer,i as integer
Ejemplo:
Suma=0 Sumar= 3+5+7+...+81
For I=10 to 99 Sm=0
ListBox1.Items.Add(i) For N=3 to 81 Step 3
Sm=Sm+n
Suma=Suma + i
Next
Next Msgbox “la suma “ & Sm
Msgbox( “La suma es “ & suma)
‘el & concatena

NOTA: El step es opcional , si se omite se supone que el FOR avanzara de 1 en 1


LISTBOX1 se supone que es un control (Listbox) el cual sirve para agregar varios
elementos, se agrega mediante su propiedad Items.Add

135
Desarrollo de Software
Lenguaje de Programación I

2. - DO WHILE.…LOOP.(Hacer mientras) , DO…. LOOP UNTIL(Hacer Hasta)


Sintaxis:
Do while condicion
(programacion)
Loop
Do
(programacion)
Loop Until Condicion

Ejemplos:
Genere y visualize numeros del 10 al 90 y al final muestre la suma de ellos

3. - Do while

Dim i as integer,suma as integer


Suma=0
i=10
Do while i <= 90
ListBox1.Items.Add(i)
Suma= Suma + i
i= i +1
Loop
Msgbox( “La suma es “ & suma)

Do Loop until
Dim i as integer,suma as integer
Suma=0
i=10
Do
ListBox1.Items.Add(i)
Suma= Suma + I
i= i +1
Loop Until i > 90
Msgbox( “La suma es “ & suma)

136
Desarrollo de Software
Lenguaje de Programación I

4.- FOR EACH


Repite un grupo de instrucciones para cada elemento de una matriz o colección.
Sintaxis:
FOR EACH elemento IN grupo
(Instrucciones)
NEXT
Ejemplo: Poner a las cajas de texto color de fondo rojo
Private Sub CmdCambiar_Click()
'Se declara una varibale de tipo Object
Dim obj As Object
'Por cada objeto que se encuentre en el formulario actual
'Este for dara vueltas segun la cantidad de objetos que hay en le formulario
For Each obj In Me.Controls
'Pregunta si el objeto es un Textbox si lo es cambia de color de fondo
If TypeOf obj Is TextBox Then
obj.BackColor = vbRed
End If
Next
End Sub
Sentencia EXIT
La sentencia EXIT permitira salir de un bucle, funcion, procedimiento,
etc.Dependiendo de donde se quiere salir se aplicará la sentencia:
Exit For. - Sale de un for
Exit Do. - Sale de un Do
Exit Sub.- Sale de un procedimiento
Exit Function.- Sale de una funcion, etc.

137
Desarrollo de Software
Lenguaje de Programación I

9.- ELABORAR PROGRAMAS UTILIZANDO ESTRUCTURAS


SELECTIVAS

IMPLEMENTAR LAS SIGUIENTES APLICACIONES UTILIZANDO AHORA EL LENGUAJE C # Y VB

RESPECTIVAMENTE

CASO APLICATIVO

Propiedades
TXTNOMBRE
TXTPP
TXTEP
TXTEF

138
Desarrollo de Software
Lenguaje de Programación I

CBOCURSO
TXTAPOR.Text
TXTDES2.Text
TXTAPROBADO.Text
TXTDESRP3

Programacion

static int contador1 = 0, contador2 = 0, contador3 = 0,contador4 = 0;


private void button1_Click(object sender, EventArgs e)
{

string nombre, curso;


Int32 pp, ep, ef, prom;

nombre = TXTNOMBRE.Text;
pp = Convert.ToInt32(TXTPP.Text);
ep = Convert.ToInt32(TXTEP.Text);
ef = Convert.ToInt32(TXTEF.Text);
curso = CBOCURSO.SelectedItem.ToString();
LTSNOMBRE.Items.Add(nombre);

LSTCURSO.Items.Add(curso);
prom = (pp + ep + (2*ef)) / 4;

LSTPROMEDIO.Items.Add(prom.ToString());

if(curso=="ASP.NET" && (prom>10 && prom <=20)){


contador1 = contador1 + 1;
}
if (curso == "ASP.NET" && (prom <= 10))
{
contador2 = contador2 + 1;
}

139
Desarrollo de Software
Lenguaje de Programación I

if (curso == "VB.NET" && (prom > 10 && prom <= 20))


{
contador3 = contador3 + 1;
}
if (curso == "VB.NET" && (prom <= 10))
{
contador4 = contador4 + 1;
}
TXTAPOR.Text = Convert.ToString(contador1);
TXTDES2.Text = Convert.ToString(contador2);
TXTAPROBADO.Text = Convert.ToString(contador3);
TXTDESRP3.Text = Convert.ToString(contador4);
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
groupBox1.Visible = true;
}
private void Form1_Load(object sender, EventArgs e)
{
groupBox1.Visible = false;
}
private void button2_Click(object sender, EventArgs e)
{
Form2 obj = new Form2();
obj.ShowDialog();
}
private void solonumeros(object sender, KeyPressEventArgs e)
{
Int32 cod = Convert.ToInt32(e.KeyChar);
if ((cod >= 48 && cod <= 57) || (cod == 8))
{
e.Handled = false;
} else {
e.Handled = false;
}
}

140
Desarrollo de Software
Lenguaje de Programación I

CASO APLICATIVO
Ingresar el sueldo de una persona, si supera los 3000 pesos mostrar un mensaje en
pantalla indicando que debe abonar impuestos.
Diseño

Las propiedades a través de los ejemplos anteriores o a través de su criterio se


encargara de asignar a cada uno de los controles

O de lo contrario podras observar los nombres que se ha asignado al ejemplo

Programando en el Boton Veriicar

private void button1_Click(object sender, EventArgs e){


float sueldo;
string linea;

linea = txtsueldo.Text;
sueldo = float.Parse(linea);
if (sueldo > 3000){
MessageBox.Show("Esta persona debe abonar impuestos",
"impuestos",MessageBoxButtons.OK,MessageBoxIcon.Information);
}

141
Desarrollo de Software
Lenguaje de Programación I

CASO APLICATIVO
Realizar un programa que solicite ingresar dos números distintos y muestre por
pantalla el mayor de ellos
Diseño

Programacion
private void btnverificar_Click(object sender, EventArgs e){
int num1, num2;
string linea;
num1 = int.Parse(txtn1.Text);
num2 = int.Parse(txtn2.Text);
if (num1 > num2){
MessageBox.Show("mayor es " + num1, "MAYOR", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}else{
MessageBox.Show("mayor es " + num2, "MAYOR", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}

CASO APLICATIVO
Crear un programa que pida el ingreso de tres notas de un alumno, calcule el
promedio e imprima alguno de estos mensajes:
Si el promedio es >=17 mostrar "Excelente".
Si el promedio es >=12 y <17 mostrar "Regular".
Si el promedio es <11 mostrar "Desaprobado".
Diseño

142
Desarrollo de Software
Lenguaje de Programación I

Programacion
private void ver_Click(object sender, EventArgs e){
int nota1,nota2,nota3;

nota1=int.Parse(txtn1.Text);
nota2 = int.Parse(txtn2.Text);
nota3 = int.Parse(txtn3.Text);
int promedio=(nota1 + nota2 + nota3) / 3;
if (promedio>=17){
MessageBox.Show("Excelente " , "promedio", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}else{
if (promedio>=12){
MessageBox.Show("Regular " , "promedio", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}else{
MessageBox.Show("Desaprobado " , "promedio", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
}

143
Desarrollo de Software
Lenguaje de Programación I

Ahora con visual Basic


Diseñar

Programacion en el botón ingresar

Private Sub btnregistrar_Click(sender As Object, e As EventArgs) Handles


btnregistrar.Click
Try
Dim user As String
Dim clave As String
user = txtuser.Text
clave = txtclave.Text
If user.Equals("hugo") And clave.Equals("1234") Then
MsgBox("Bienvenido " & user, 64, "Ok")
sistema.Show()
Me.Hide()
Else
MsgBox("Usuario Incorrecto ", 16, "Credenciales Incorrectas")
txtuser.Clear()
txtclave.Clear()
txtuser.Focus()
End If
Catch ex As Exception
End Try
End Sub

144
Desarrollo de Software
Lenguaje de Programación I

CASO APLICATIVO
Diseñar

Controles
Listview
Cuadros de texto
Botones de comando
Programacion
Public Class registroClientes
'implementanndo un procedimiento de nombre registrar
Public Sub registrar(ByVal n$, ByVal t$, ByVal r$, ByVal lista As ListView)
With lista.Items.Add(n)
.SubItems.Add(t)
.SubItems.Add(r)
End With
End Sub
'procedimiento para limpiar los controles de un solo Click
Private Sub limpiacajas()
For Each obj As Control In Me.GroupBox1.Controls
If TypeOf (obj) Is TextBox Then
obj.Text = ""
End If
Next
txtnombre.Focus()
End Sub

145
Desarrollo de Software
Lenguaje de Programación I

'validando los controles (es opcional)


Private Sub txtnombre_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtnombre.KeyPress
If Not Char.IsLetter(e.KeyChar) And Not Char.IsWhiteSpace(e.KeyChar) Then
'e.KeyChar captuta el caracter presionado
MsgBox("Se acepta solo letras", 64, "Clientes")
e.Handled = True 'cancela la entrada

End If
End Sub
Private Sub txttelefono_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txttelefono.KeyPress,
txtruc.KeyPress
If Not Char.IsDigit(e.KeyChar) Then
MsgBox("Se acepta solo numeros", 64, "Clientes")
e.Handled = True
End If
End Sub
Private Sub txtruc_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles txtruc.Validating
If txtruc.Text.Length <> 11 Then
epv.SetError(txtruc, "Se acepta solo 11 caracteres")
e.Cancel = True 'cancela la entrada
ElseIf txtruc.Text.StartsWith("10") Or txtruc.Text.StartsWith("20") Then
epv.SetError(txtruc, "")
e.Cancel = False
Else
epv.SetError(txtruc, "Debe iniciar con 10 o 20")
e.Cancel = True
End If
End Sub
'boton Registrar
Private Sub btnRegistrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnRegistrar.Click
If txtnombre.Text = "" Or txttelefono.Text = "" Or txtruc.Text = "" Then
MsgBox("Verifique sus datos", 64, "Clientes")

146
Desarrollo de Software
Lenguaje de Programación I

txtnombre.Focus()
Else
registrar(txtnombre.Text, txttelefono.Text, txtruc.Text, lsvClientes)
Call limpiacajas()
End If
End Sub
'boton cancelar
Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCancelar.Click
lsvClientes.Items.Remove(lsvClientes.FocusedItem)
End Sub
End Class

CASO APLICTIVO
Diseñar

147
Desarrollo de Software
Lenguaje de Programación I

Controles
Listbox
pictureBox
ComboBox
Botones de comando
Programacion

Public Class sesionDePersonas


'contador de visitas en lista
Private Sub contar()
txtA.Text = lstAnalistas.Items.Count
txtP.Text = lstProgramadores.Items.Count
End Sub
'validacion
Private Sub txtnombre_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtnombre.KeyPress
If Not Char.IsLetter(e.KeyChar) And Not Char.IsWhiteSpace(e.KeyChar) And Not
Char.IsControl(e.KeyChar) Then
MsgBox("Se acepta solo letras", 64, "Clientes")
e.Handled = True 'cancela la entrada
End If
End Sub
'boton registrar
Private Sub btnRegistrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnRegistrar.Click
If txtnombre.Text = "" Or cboEspecialidad.Text = "" Then
MsgBox("Ingrese los datos completos", 64, "Personal")
txtnombre.Focus()
Else
If cboEspecialidad.Text = "Analistas" Then
lstAnalistas.Items.Add(txtnombre.Text)
txtnombre.Focus()
Else
lstProgramadores.Items.Add(txtnombre.Text)
txtnombre.Focus()

148
Desarrollo de Software
Lenguaje de Programación I

End If
txtnombre.Text = ""
Call contar()
End If
End Sub
'boton izquierda
Private Sub btnIzq_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnIzq.Click
Try

lstAnalistas.Items.Add(lstProgramadores.Items.Item(lstProgramadores.SelectedIndex)
)
lstProgramadores.Items.RemoveAt(lstProgramadores.SelectedIndex)
Call contar()
Catch ex As Exception
MsgBox("Seleccione un programador", 64, "Personal")
End Try
End Sub
'boton derecha
Private Sub btnDer_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnDer.Click
Try

lstProgramadores.Items.Add(lstAnalistas.Items.Item(lstAnalistas.SelectedIndex))
lstAnalistas.Items.RemoveAt(lstAnalistas.SelectedIndex)
Call contar()
Catch ex As Exception
MsgBox("Seleccione un analista", 64, "Personal")
End Try
End Sub
End Class

149
Desarrollo de Software
Lenguaje de Programación I

CASO APLICATIVO

Controles
ListView
RadioButton
Botones de comando
Cuadros de texto
Etiquetas

150
Desarrollo de Software
Lenguaje de Programación I

Programacion
Public Class ofertaDescuento
'creacion de una funciones
Public Function porcentaje(ByVal b%) As String
Dim p$ = ""
Select Case b
Case 1 : p = "0%"
Case 2 : p = "25%"
Case 3 : p = "50%"
Case 4 : p = "75%"
Case 5 : p = "100%"
End Select
Return p
End Function
Public Function descuento(ByVal b%, ByVal c#) As Double
Dim d# = 0
Select Case b
Case 1 : d = 0
Case 2 : d = c * 0.25
Case 3 : d = c * 0.5
Case 4 : d = c * 0.75
Case 5 : d = c
End Select
Return d
End Function
Public Sub registrar_venta(ByVal n$, ByVal d$, ByVal mc$, ByVal bolita$, ByVal
porc$, ByVal dscto$, ByVal t$, ByVal lista As ListView)
With lista.Items.Add(n)
.SubItems.Add(d)
.SubItems.Add(mc)
.SubItems.Add(bolita)
.SubItems.Add(porc)
.SubItems.Add(dscto)
.SubItems.Add(t)
End With
End Sub

151
Desarrollo de Software
Lenguaje de Programación I

'creacion de un procedimiento limpiar cajas


Private Sub limpiar_cajas()
For Each obj As Control In Me.GroupBox1.Controls
If TypeOf (obj) Is TextBox Then
obj.Text = ""
End If
Next
For Each obj As Control In Me.GroupBox2.Controls
If TypeOf (obj) Is TextBox Then
obj.Text = ""
End If
rdbB.Checked = False
rdbA.Checked = False
rdbN.Checked = False
rdbZ.Checked = False
rdbR.Checked = False
Next
For Each obj As Control In Me.GroupBox3.Controls
If TypeOf (obj) Is TextBox Then
obj.Text = ""
End If
Next
txtnombre.Focus()
End Sub
'validando controles
Private Sub txtnombre_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtnombre.KeyPress
If Not Char.IsLetter(e.KeyChar) And Not Char.IsWhiteSpace(e.KeyChar) And Not
Char.IsControl(e.KeyChar) Then 'e.KeyChar captuta el caracter presionado
MsgBox("Se acepta solo letras", 64, "Descuentos")
e.Handled = True 'cancela la entrada
End If
End Sub
Private Sub txtdni_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtdni.KeyPress
If Not Char.IsDigit(e.KeyChar) Then

152
Desarrollo de Software
Lenguaje de Programación I

MsgBox("Se acepta solo numeros", 64, "Descuentos")


e.Handled = True
End If
End Sub
'programacion en los radiobutton
Private Sub rdbB_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles rdbB.CheckedChanged, rdbA.CheckedChanged,
rdbN.CheckedChanged, rdbR.CheckedChanged, rdbZ.CheckedChanged
Try
If sender Is rdbB Then
txtporcentaje.Text = porcentaje(1)
txtdscto.Text = FormatCurrency(descuento(1, txtCompra.Text))
ElseIf sender Is rdbA Then
txtporcentaje.Text = porcentaje(2)
txtdscto.Text = FormatCurrency(descuento(2, txtCompra.Text))
ElseIf sender Is rdbN Then
txtporcentaje.Text = porcentaje(3)
txtdscto.Text = FormatCurrency(descuento(3, txtCompra.Text))
ElseIf sender Is rdbZ Then
txtporcentaje.Text = porcentaje(4)
txtdscto.Text = FormatCurrency(descuento(4, txtCompra.Text))
Else
txtporcentaje.Text = porcentaje(5)
txtdscto.Text = FormatCurrency(descuento(5, txtCompra.Text))
End If
txtTotal.Text = FormatCurrency(txtCompra.Text - txtdscto.Text)

Catch ex As Exception
End Try
End Sub
'programando en el boton registrar
Private Sub btnRegistrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnRegistrar.Click
If txtnombre.Text = "" Or txtdni.Text = "" Or txtCompra.Text = "" Then
MsgBox("Ingrese los datos completos", 64, "Descuentos")
Else

153
Desarrollo de Software
Lenguaje de Programación I

If rdbB.Checked = False And rdbA.Checked = False And rdbN.Checked = False


And rdbZ.Checked = False And rdbR.Checked = False Then
MsgBox("Seleccione una bolita", 64, "Descuentos")
ElseIf rdbB.Checked = True Then
registrar_venta(txtnombre.Text, txtdni.Text,
FormatCurrency(txtCompra.Text), rdbB.Text, txtporcentaje.Text, txtdscto.Text,
txtTotal.Text, lstDescuentos)
limpiar_cajas()
ElseIf rdbA.Checked = True Then
registrar_venta(txtnombre.Text, txtdni.Text,
FormatCurrency(txtCompra.Text), rdbA.Text, txtporcentaje.Text, txtdscto.Text,
txtTotal.Text, lstDescuentos)
limpiar_cajas()
ElseIf rdbN.Checked = True Then
registrar_venta(txtnombre.Text, txtdni.Text,
FormatCurrency(txtCompra.Text), rdbN.Text, txtporcentaje.Text, txtdscto.Text,
txtTotal.Text, lstDescuentos)
limpiar_cajas()
ElseIf rdbZ.Checked = True Then
registrar_venta(txtnombre.Text, txtdni.Text,
FormatCurrency(txtCompra.Text), rdbZ.Text, txtporcentaje.Text, txtdscto.Text,
txtTotal.Text, lstDescuentos)
limpiar_cajas()
Else
registrar_venta(txtnombre.Text, txtdni.Text,
FormatCurrency(txtCompra.Text), rdbR.Text, txtporcentaje.Text, txtdscto.Text,
txtTotal.Text, lstDescuentos)
limpiar_cajas()
End If
End If
End Sub
End Class

154
Desarrollo de Software
Lenguaje de Programación I

Ejemplo Calcular Pago


Enunciado
algoritmo

Nuevo
Me.txtcant.Text = "" : Me.txtprecio.Text = ""
Me.txtdesc.Text = "" : Me.txtapagar.Text = ""
Me.lbldesc.Text = "Descuento"
Me.txtcant.Select()
Cerrar
Me.Close()
Calcular
Dim precio, desc, apagar AsSingle
Dim cant AsByte
Dim Tasa2, Tasa3, Tasa4 AsSingle
ConstTasa2 = 0.1 : Tasa3 = 0.15 : Tasa4 = 0.2
cant = Val(Me.txtcant.Text)
precio = Val(Me.txtprecio.Text)
SelectCase cant
Case 1 : desc = 0

155
Desarrollo de Software
Lenguaje de Programación I

Case 2 : desc = Tasa2 * precio * cant


Case 3 : desc = Tasa3 * precio * cant
Case 4 : desc = Tasa4 * precio * cant
CaseElse : desc = 0
EndSelect
SelectCase cant
Case 1 : Me.lbldesc.Text = "Sin descuento"
Case 2 : Me.lbldesc.Text = CStr(Tasa2 * 100) + "%"
Case3 : Me.lbldesc.Text = CStr(Tasa3 * 100) + "%"
Case 4 : Me.lbldesc.Text = CStr(Tasa4 * 100) + "%"
CaseElse : Me.lbldesc.Text = "Sin descuento"
EndSelect
apagar = precio * cant - desc
If cant <5Then
Me.txtdesc.Text = desc : Me.txtapagar.Text = apagar
Else
Me.txtdesc.Text = "" : Me.txtapagar.Text = ""
MsgBox("No más de 4 entradas", MsgBoxStyle.Information + MsgBoxStyle.OkOnly,
"Observacion")
EndIf

CASO APLICATIVO PROPUESTO


DISEÑAR

156
Desarrollo de Software
Lenguaje de Programación I

PROGRAMAR UTILIZANDO EL LENGUAJE C#

157
Desarrollo de Software
Lenguaje de Programación I

Capítulo

UTILIZAR FUNCIONES DE
CADENA NUMERICAS Y DE
FECHA DE NET
En este capítulo se trataran los
siguientes temas:

Conocer y utilizar diversas funciones


de cadena en Net
Conocer y utilizar diversas funciones
numericas en Net
Conocer y utilizar diversas funciones
de fecha en Net

158
Desarrollo de Software
Lenguaje de Programación I

10.- CONOCER Y UTILIZAR DIVERSAS FUNCIONES DE CADENA EN NET

CASO APLICATIVO
Diseñar

Programacion
Public Class Form1
'mayuscula
Private Sub mayuscula(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Me.TextBox1.CharacterCasing = CharacterCasing.Upper
End Sub

Private Sub minuscula(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button2.Click
Me.TextBox1.CharacterCasing = CharacterCasing.Lower
End Sub
'ocultar
Private Sub ocultar(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button3.Click
Me.TextBox1.Hide()
End Sub
'mostrar
Private Sub mostrar(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button4.Click
Me.TextBox1.Show()
End Sub

159
Desarrollo de Software
Lenguaje de Programación I

'seleccion
Private Sub seleccion(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button5.Click
Me.TextBox1.Select()
End Sub
'limpiar
Private Sub limpiar(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button6.Click
Me.TextBox1.Clear()
End Sub
End Class

CASO APLICATIVO

Programacion

Public Class Form2


'izquierda
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim x As String, res As String
x = TextBox1.Text
res = Microsoft.VisualBasic.Left(x, 3)
TextBox1.Text = res
End Sub
'derecha
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

160
Desarrollo de Software
Lenguaje de Programación I

Dim x As String, res As String


x = TextBox1.Text
res = Microsoft.VisualBasic.Right(x, 3)
TextBox1.Text = res
End Sub
'mid
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim x As String, res As String
x = TextBox1.Text
res = Microsoft.VisualBasic.Mid(x, 3, 2)
TextBox1.Text = res
End Sub
'trim
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim x As String, res As String
x = TextBox1.Text
res = Microsoft.VisualBasic.Trim(x)
TextBox1.Text = res
End Sub
'strconv
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Dim x As String, res As String
x = TextBox1.Text
res = Microsoft.VisualBasic.StrConv(x, vbProperCase)
TextBox1.Text = res
End Sub

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click


Dim cad1 As String, cad2 As String, res As String
cad1 = TextBox1.Text
cad2 = "Senati Eti"
res = Microsoft.VisualBasic.InStr(cad1, cad2, CompareMethod.Text)
TextBox1.Text = res
End Sub
End Class

161
Desarrollo de Software
Lenguaje de Programación I

11.- CONOCER Y UTILIZAR DIVERSAS FUNCIONES NUMERICAS EN NET

CASO APLICATIVO
Diseñar

Programacion

Public Class Func_Num


'round
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim cad1 As String, cad2 As String, res As String
cad1 = TextBox1.Text
cad2 = "Senati Eti"
res = Microsoft.VisualBasic.InStr(cad1, cad2, CompareMethod.Text)
TextBox1.Text = res

End Sub
'rnd generando valores del 1 al 10
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim x As Integer
x = CInt((10 * Rnd() + 1))
TextBox1.Text = x
End Sub
'abs
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim x As Decimal
Dim n1 As Integer

162
Desarrollo de Software
Lenguaje de Programación I

n1 = TextBox1.Text
x = CDbl(Math.Abs(n1))
TextBox1.Text = x
End Sub
'Fix
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim x As Decimal
Dim n1 As Integer
n1 = TextBox1.Text
x = CDbl(Fix(n1))
TextBox1.Text = x
End Sub
'int
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Dim x As Decimal
Dim n1 As Integer
n1 = TextBox1.Text
x = Int(n1)
TextBox1.Text = x
End Sub
'sqr
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
Dim x As Decimal, n1 As Integer
n1 = TextBox1.Text
x = Math.Sqrt(n1)
TextBox1.Text = x
End Sub
End Class

163
Desarrollo de Software
Lenguaje de Programación I

Propuesto programar en cada botón como el ejemplo anterior

164
Desarrollo de Software
Lenguaje de Programación I

12.- CONOCER Y UTILIZAR DIVERSAS FUNCIONES DE FECHA EN NET

CASO APLICATIVO

PROGRAMANDO
Public Class Func_Fecha
'año
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim x As Date
x = CStr(Date.Now())
TextBox1.Text = x.ToString
End Sub
'mes
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim x As Integer
x = Month(Date.Now)
TextBox1.Text = x.ToString
End Sub
'dia
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim x As Integer
x = Microsoft.VisualBasic.DateAndTime.Day(Date.Now)
TextBox1.Text = x.ToString
End Sub
'datediff comparando 2 fechas y devolviendo el rango de dias
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim WD As Long = DateDiff(DateInterval.Day, CDate("6 / 7 / 2016"), Now)

165
Desarrollo de Software
Lenguaje de Programación I

TextBox1.Text = WD.ToString
End Sub
'programando el boton como Time
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
TextBox1.Text = TimeString.ToString
End Sub
'programando en el timer
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
TextBox1.Text = TimeString.ToString
End Sub
End Class

Propuesto funciones de fecha programar en cada botón como el ejemplo


anterior

166
Desarrollo de Software
Lenguaje de Programación I

MARCO TEORICO

Las funciones de cadena

Función Descripción

Left Toma los primeros n caracteres de la cadena.Forma de uso:


cadena1 = Left(cadena, n)

Right Toma los últimos n caracteres de la cadena.cadena1 =


Right(cadena, n)

Mid Toma los n caracteres indicados a partir de la posición p. Si no se


indica el número de caracteres, se tomará desde la posición
p.cadena1 = Mid(cadena, p, n)
cadena1 = Mid(cadena, p)

Mid Asigna la cadena que hay después del signo igual al trozo indicado
desde la posición p contando n caracteres, si n no se indica, asigna
desde la posición p.Mid(cadena1, p, n) = cadena2
Mid(cadena1, p) = cadena2

LTrim Quita los espacios en blanco del principio de la cadena.cadena1 =


LTrim(cadena)

RTrim Quita los espacios en blanco finales de la cadena.cadena1 =


RTrim(cadena)

Trim Quita los espacios en blanco del principio y del final.cadena1 =


Trim(cadena)

Len Devuelve el número de caracteres de la cadena.entero =


Len(cadena)

LCase Convierte en minúscula la cadena.cadena1 = LCase(cadena)

UCase Convierte una cadena en mayúsculas.cadena1 = UCase(cadena)

StrConv Convierte una cadena en otra según el tipo de conversión a


realizar, opcionalmente se puede indicar el ID de localización.

167
Desarrollo de Software
Lenguaje de Programación I

cadena1 = StrConv(cadena, conversion)Los valores principales de


"conversion" (enumeración vbStrConv) son:

vbLowerCase Convierte a minúsculas

vbUpperCase Convierte a mayúsculas

vbPropperCase Pone en mayúsculas la primera letra de cada


palabra

InStr Devuelve la posición de una cadena dentro de otra, buscando desde


el principio de cadena1 si está cadena2. Opcionalmente se puede
indicar desde que posición de cadena1 debe hacer la comprobación
de si está cadena2, así como si se debe hacer distinción entre
mayúsculas y minúsculas (Binary) o no (Text), por defecto se usa
el valor de Option Compare que suele ser Binary.entero =
InStr(cadena1, cadena2)
entero = InStr(cadena1, cadena2, CompareMethod)
entero = InStr(p, cadena1, cadena2)
entero = InStr(p, cadena1, cadena2, CompareMethod)

InStrRev Devuelve la posición de una cadena dentro de otra, buscando desde


el final de cadena1 si está cadena2. Opcionalmente se puede
indicar desde que posición de cadena1 se realiza la búsqueda y si
se debe comprobar sin diferenciar mayúsculas o minúsculas, por
defecto se usa CompareMethod.Binary.entero = InStrRev(cadena1,
cadena2)
entero = InStrRev(cadena1, cadena2, p)
entero = InStrRev(cadena1, cadena2, p, CompareMethod)
entero = InStrRev(cadena1, cadena2, , CompareMethod)

StrComp Devuelve un valor según la comparación de dos cadenas.


Opcionalmente se puede indicar si en la comparación se distingue
entre mayúsculas y minúsculas, por defecto se usa el valor de
Option Compare que suele ser Binary.
El valor devuelto será:
0 si son iguales
1 si la cadena1 es mayor que la cadena2

168
Desarrollo de Software
Lenguaje de Programación I

-1 si la cadena1 es menor que la cadena2entero =


StrComp(cadena1, cadena2)
entero = StrComp(cadena1, cadena2, CompareMethod)

Space Devuelve una cadena con los espacios que se haya


indicado.cadena1 = Space(n)

StrDup Devuelve una cadena con tantos caracteres como se indique. El


segundo parámetro puede ser una cadena o un carácter, si es una
cadena solo se usará el primer carácter.cadena2 = StrDup(n,
cadena1)

Replace Reemplaza en una cadena buscando una cadena y reemplazándola


por otra, opcionalmente se puede indicar desde que posición de
cadena1 se busca y cuantas sustituciones se harán, además de
poder indicar si se diferencia entre mayúsculas y minúsculas, el
valor usado por defecto será el indicado en Option Compare, que
suele ser Binary.cadena1 = Replace(cadena, cadenaBuscar,
cadenaPoner)
cadena1 = Replace(cadena, cadenaBuscar, cadenaPoner, , ,
CompareMethod)

Split Crea un array de tipo String con la cadena troceada por el carácter
o cadena indicada. Opcionalmente se puede indicar el número
máximo de elementos y si se diferencia entre mayúsculas y
minúsculas, por defecto el valor es Binary, osea que si se
diferencia.cadenas = Split(cadena, cadena1)
cadenas = Split(cadena, cadena1, , CompareMethod)
Si cadena1 tiene más de un carácter, se usarán todos para trocear.
Si no se indica, se usará el espacio.

Join Une un array de tipo String en una cadena, usando como separador
de cada elemento del array el carácter o la cadena que se indique.
Esta función puedes tomarla como la complementaria de Split, ya
que hace lo contrario que aquella.cadena2 = Join(cadenas,
cadena1)
Mismos comentarios que para Split.

169
Desarrollo de Software
Lenguaje de Programación I

Asc, AscW Convierte un carácter (o el primer carácter de una cadena) en el


valor entero que representa ese carácter.entero = Asc(cadena)
entero = AscW(cadena)
La diferencia entre estas funciones, es que AscW devuelve un
carácter Unicode, mientras que Asc depende de la página de código
que se esté usando, ya que esos caracteres pueden ser simples (de
0 a 255) o dobles (de -32768 a 32767).

Chr, ChrW Convierte un valor entero en un carácter.caracter = Chr(entero)


caracter = ChrW(entero)
El valor indicado en Chr debe ser de 0 a 255 y para ChrW puede ser
de -32768 a 65535.

Format Devuelve una cadena con el formato indicado en el segundo


parámetro.
Ese formato puede ser de números, fechas y horas y otros que
puedas crear usando los caracteres de formato.cadena1 =
Format(expresión, formato)
El primer parámetro puede ser cualquier expresión, ya sea
numérica o del tipo que sea, se evaluará la expresión y será a lo
que se dará el formato.
Para los números puedes usar # y/o 0 además de , para los miles y
. para los decimales (independientemente de la configuración
regional).
Para las fechas y horas puedes usar d para el día, M para el mes, y
para el año, h para la hora, m para el minuto y s para el segundo.

Funciones numéricas
Aquí algunas

Funciones Matemáticas:

Abs(Number): devuelve el valor absoluto del número pasado por argumento.


Atn(Number): devuelve el arcotangente del ángulo pasado por argumento.
Cos(Number): devuelve el coseno del ángulo pasado por argumento.

170
Desarrollo de Software
Lenguaje de Programación I

Exp(Number): devuelve el resultado de e (base de los logaritmos neperianos) a una


potencia especificada por el argumento Number.
Fix(Number): devuelve la parte entera de un número.
Int(Number): devuelve el argumento Number redondeado a un entero.
Log(Number): devuelve el logaritmo natural de un número.
Randomize([Number]): inicia el generador de números aleatorios.
Rnd([Number]): devuelve un número aleatorio.
Round(Number,[NumDigitsAfterDecimal]): devuelve el argumento Number redondeado
al número de lugares decimales especificado en el segundo argumento.
Sgn(Number): devuelve -1, 0 o 1 según si el argumento Number es menor, igual o
mayor que cero, respectivamente.
Sin(Number): devuelve el seno de un número.
Sqr(Number): devuelve la raíz cuadrada de un número.
Tan(Number): devuelve la tangente de un número.

Funciones de Fecha
Cbool(expression): convierte una expresión a un valor Boolean.
Cbyte(expression): convierte una expresión a un valor Byte.
Ccur(expression): convierte una expresión a un valor Currency.
Cdate(expression): convierte una expresión a un valor Date.
Cdbl(expression): convierte una expresión a un valor Double.
Cint(expression): convierte una expresión a un valor Integer.
Clng(expression): convierte una expresión a un valor Long.
Csng(expression): convierte una expresión a un valor Single.
Cstr(expression): convierte una expresión a un valor String.
Cvar(expression): convierte una expresión a un valor Variant.
Hex(Number): devuelve el valor hexadecimal de un número (Variant).
Hex$(Number): devuelve el valor hexadecimal de un número (String).
Oct(Number): devuelve el valor octal de un número (Variant).
Oct$(Number): devuelve el valor octal de un número (String).
Str(Number): devuelve la representación de cadena de un número.
Val(String): devuelve los números contenidos en una cadena.

171
Desarrollo de Software
Lenguaje de Programación I

Capítulo

DISEÑAR PROGRAMAS
UTILIZANDO LA
PROGRAMACION MODULAR

En este capítulo se trataran los


siguientes temas:

Detalla la ventaja de programación


modular
Implementar el uso de métodos y
fuciones en Net.
Implementar el uso de modulos de

clase.

172
Desarrollo de Software
Lenguaje de Programación I

13.- DETALLA LA VENTAJA DE PROGRAMACIÓN MODULAR

Uno de los métodos más conocidos para resolver un problema es dividirlo en


problemas más pequeños

CASO APLICATIVO DE PROGRAMACION MODULAR


PASO 1
Crear un modulo 1 como se aprecia en la pantalla en una carpeta de nombre Modulo el
nombre del modulo asígnale por ejemplo Module1

PASO 2
Programando en el modulo el ejemplo
Solo se programa lo que esta dentro del modulo

Importante: asígnale Public para que el procedimiento tenga ámbito publico


Module Module1
Public Sub mi_nombre()
Dim nombre As String = InputBox("¿Cual es tu nombre?", "Nombre")
MsgBox("Mi nombre es " & nombre, vbInformation, "Nombre")
End Sub
End Module
PASO 3
Diseñar

173
Desarrollo de Software
Lenguaje de Programación I

En el botón codificar:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
mi_nombre()
End Sub

Debera aparecer en pantalla

174
Desarrollo de Software
Lenguaje de Programación I

CASO APLICATIVO: Limpiando controles


PASO 1 .- diseñar

Programacion en el modulo
Public Sub limpiar_controles(ByVal f As Form)
For Each c As Control In f.Controls
If TypeOf c Is TextBox Then
c.Text = "" ' eliminar el texto
End If
Next
End Sub
Programacion en el botón limpiar del formulario

'limpiando los datos de las cajas


Private Sub Button2_Click(sender As Object, e As EventArgs) Handles
btnlimpiar.Click
limpiar_controles(Me)
TextBox1.Focus()
End Sub

175
Desarrollo de Software
Lenguaje de Programación I

CASO APLICATIVO: sumando 2 numeros


Diseñar
PASO 1

PASO 2

Programar en el modulo utilizando funciones


Public Function suma(n1%, n2%) As Integer
Return n1 + n2
End Function

Programando en el botón +
Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click
Dim n1 As Integer, n2 As Integer
n1 = CInt(TextBox1.Text)
n2 = CInt(TextBox2.Text)
MsgBox("La sumita es " & suma(n1, n2), vbInformation, "suma")
End Sub

CASO APLICATIVO
PASO 1.- agregar un formulario nada mas y 1 control PictureBox (agregar 1 imagen)

PASO 2.-

En un nuevo modulo (Modulo2) programar lo siguiente:

176
Desarrollo de Software
Lenguaje de Programación I

PASO 3.-
Programacion en el modulo
Module Module2
Public Sub Saludo()
MsgBox("Saludos a todos los instructores senatinos fecha: 15 de Julio ",
vbInformation, "modulo2")
End Sub

Public Sub Comunicado()


MsgBox("Charla de 5 minutos en todas las sesiones de clases estimados",
vbInformation, "modulo2")
End Sub

Public Sub Despedida()


MsgBox("Agradecimientos por participar en esta institucion prestigiosa",
vbInformation, "modulo2")
End Sub
End Module
Programacion en el formulario
Private Sub Frmmodulo2_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
MsgBox("Comunicado de la empresa", vbInformation, "Programacion Modular")
Saludo() 'Invocación del procedimiento Saludo
Comunicado() 'Invocación del procedimiento Comunicado
Despedida() 'Invocación del procedimiento Despedida
End Sub

177
Desarrollo de Software
Lenguaje de Programación I

Deberá mostrar los pantallazos

178
Desarrollo de Software
Lenguaje de Programación I

179
Desarrollo de Software
Lenguaje de Programación I

14.-IMPLEMENTAR EL USO DE MÉTODOS Y FUCIONES EN NET.

CASO APLICATIVO EN C#

Programacion de los métodos a través del formulario


public partial class Form1 : Form{
public int color;// propieda color
public System.Drawing.Graphics graphics; //objeto graphics
public Form1() {
InitializeComponent();
//estas lineas tambien se programa
graphics = this.CreateGraphics();
color = 0;
}
//metodo drawEmpty
private void drawEmpty()
{
System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(20, 20, 50,
150);
//graphics.DrawRectangle(System.Drawing.Pens.Black, rectangle);
//Aqui empiezo a inventar :P Fondo del semaforo color negro

180
Desarrollo de Software
Lenguaje de Programación I

graphics.FillRectangle(System.Drawing.Brushes.Black, 15, 15, 60, 160);


//Dibujando un cuadrito para que se vea como que está en la pared :P
graphics.FillRectangle(System.Drawing.Brushes.Black, 0, 70, 20, 40);
//Ya temrmine :3
graphics.FillEllipse(System.Drawing.Brushes.Gray, 20, 20, 50, 50);
graphics.DrawEllipse(System.Drawing.Pens.Black, 20, 20, 50, 50);
graphics.FillEllipse(System.Drawing.Brushes.Gray, 20, 70, 50, 50);
graphics.FillEllipse(System.Drawing.Brushes.Gray, 20, 120, 50, 50);
}
//metodo timer1_Tick
private void timer1_Tick(object sender, EventArgs e){
label1.Text = DateTime.Now.ToShortTimeString();
drawEmpty();
switch (color)
{
case 0: graphics.FillEllipse(System.Drawing.Brushes.Red, 20, 20, 50, 50);
timer1.Interval = 5000;
color = 2;
break;
case 1: graphics.FillEllipse(System.Drawing.Brushes.Yellow, 20, 70, 50, 50);
timer1.Interval = 2000;
color = 0;
break;
case 2: graphics.FillEllipse(System.Drawing.Brushes.GreenYellow, 20, 120, 50, 50);
timer1.Interval = 3000;
color = 1;
break;
}
}
// el boton dibujar
private void button1_Click(object sender, EventArgs e)
{
drawEmpty();
}

181
Desarrollo de Software
Lenguaje de Programación I

//en el boton encender


private void button2_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}
}

182
Desarrollo de Software
Lenguaje de Programación I

15.- IMPLEMENTAR EL USO DE MODULOS DE CLASE .

Creacion de clases
PASO 1
Crear la clase como se muestra a continuación

PASO 2
Crear una carpeta y crear las siguientes clases

183
Desarrollo de Software
Lenguaje de Programación I

CASO APLICATIVO CON SQL SERVER


PASO 1
Crear una base de datos como muestra la pantalla

Nombre de la base de datos al

Ahora crear la siguiente tabla con los siguientes campos

PASO 2
Agregar al formulario el control Datagridview

184
Desarrollo de Software
Lenguaje de Programación I

PASO 3
El formulario quedara de la siguiente manera:

PASO 4
Programar lo siguiente en evento Load:

Private Sub ListarEmpleados(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
‘ las 2 lineas de abajo va en una sola linea
Using con As New SqlConnection("integrated
security=SSPI;server=HUGO_PC\HUGO_PC;database=al")
con.Open()
Dim cmd As New SqlCommand _
("Select EmployeeID,LastName,FirstName From Employees", con)
Dim drd As SqlDataReader = cmd.ExecuteReader
Dim bs As New BindingSource
bs.DataSource = drd
dgvEmpleado.DataSource = bs
End Using
End Sub

185
Desarrollo de Software
Lenguaje de Programación I

Resultado

CASO APLICATIVO
PASO 1 Diseñar

PASO 2
En el mismo botón programar los métodos
Public Class Form1
Delegate Function MatOperator(ByVal x As Double, ByVal y As Double) As Double
Function suma(ByVal x As Double, ByVal y As Double) As Double
Return x + y
End Function
Function resta(ByVal x As Double, ByVal y As Double) As Double
Return x - y
End Function
Sub Delegatetest(ByVal x As Double, ByVal op As MatOperator, ByVal y As Double)

186
Desarrollo de Software
Lenguaje de Programación I

Dim ret As Double


ret = op.Invoke(x, y)
MsgBox(ret)
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Button1.Click
' invoco al delegado
Delegatetest(4, AddressOf suma, 3)
Delegatetest(5, AddressOf resta, 3)
End Sub
End Class

CASO APLICATIVO
Uso de un modulo para trabajar con archivo a través de un procedimiento de nombre
main
PASO 1
Imports System.IO
Module Module5
Sub main()
Try
REM stream reader es para leer un archivo
Dim sr As StreamReader = New StreamReader("c:\text.txt")
MsgBox(sr.ReadToEnd)
Catch ex As System.IO.FileNotFoundException
MsgBox("el archivo no ha sidoencontrado")
Catch ex As System.UnauthorizedAccessException
MsgBox("No tiene permisos suficientes sobre el archivo ")
Catch ex As Exception
MsgBox("Error de lectura :" + ex.Message)
End Try
Console.ReadLine()
End Sub
End Module

187
Desarrollo de Software
Lenguaje de Programación I

MARCO TEORICO

Modulo
Las aplicaciones sencillas pueden consistir en un único formulario y todo el código de la
aplicación reside en ese módulo de formulario. A medida que sus aplicaciones vayan
creciendo y siendo más sofisticadas, agregará formularios adicionales. A veces tendrá
código común que deseará ejecutar en varios formularios. No querrá duplicar el código
en ambos formularios, por lo que creará un módulo independiente que contenga un
procedimiento que ejecuta el código común. Este módulo independiente debe ser un
módulo estándar. Con el tiempo, puede construir una biblioteca de módulos que
contenga los procedimientos compartidos

Procedimiento
Un procedimiento es un subprograma que realiza una tarea específica. Para invocarlo,
es decir, para hacer que se ejecute, basta con escribir su nombre en el cuerpo de otro
procedimiento o en el programa principal. Pero, hay que tener muy en cuenta que su
declaración debe hacerse antes de que sea llamado por otro módulo.
Una vez que has construido varios programas, crear un procedimiento no es nada
complicado, pues tiene prácticamente la misma estructura que un programa.
Los módulos de clase (extensión de nombre de archivo .vb) son la base de la
programación orientada a objetos en Visual Basic. Puede escribir código en módulos de
clase para crear nuevos objetos. Estos objetos nuevos pueden incluir propiedades y
métodos personalizados. En realidad, los formularios sólo son módulos de clase que
pueden tener controles y que pueden mostrar ventanas de formulario
Una instrucción Module define un tipo de referencia disponible en su espacio de
nombres.Un módulo (a veces denominado módulo estándar) es similar a una clase pero
con algunas distinciones importantes.Cada módulo tiene exactamente una instancia y
no necesita ser creado ni asignado a una variable.Los módulos no admiten la herencia
ni implementan interfaces.Tenga en cuenta que un módulo no es un tipo en el sentido
en que lo son una clase o una estructura; es decir, no puede declarar que un elemento
de programación tenga el tipo de datos de un módulo.
Sólo puede utilizar Module en el nivel de espacio de nombres.Esto significa que
el contexto de la declaración de un módulo debe ser un archivo de código fuente o
espacio de nombres y no puede ser una clase, estructura, módulo, interfaz,

188
Desarrollo de Software
Lenguaje de Programación I

procedimiento o bloque.No puede anidar un módulo dentro de otro módulo ni dentro de


cualquier tipo.

189
Desarrollo de Software
Lenguaje de Programación I

Capítulo

DISEÑAR PROGRAMAS
UTILIZANDO LA
PROGRAMACION
ORIENTADA A OBJETOS
En este capítulo se trataran los
siguientes temas:

Definir los fundamentos de la POO


Definir los conceptos de
encapsulamiento y herencia.
Elaborar programas utilizando POO

190
Desarrollo de Software
Lenguaje de Programación I

16. - DEFINIR LOS FUNDAMENTOS DE LA POO

Fundamentos
La POO es una técnica para desarrollar soluciones computacionales utilizando
componentes de software (objetos de software).
Objeto: Componente o código de software que contiene en sí mismo tanto sus
características (campos) como sus comportamientos (métodos); se accede a través de
su interfaz o signatura.
Campo: Es una característica de un objeto, que ayuda a definir su estructura y permite
diferenciarlo de otros objetos. Se define con un identificador y un tipo, el cual indica los
valores que puede almacenar. El conjunto de valores de los campos definen el estado
del objeto.
Método: Es la implementación de un algoritmo que representa una operación o función
que un objeto realiza. El conjunto de los métodos de un objeto determinan el
comportamiento del objeto.
La POO es un paradigma de la programación de computadores; esto hace referencia al
conjunto de teorías, estándares, modelos y métodos que permiten organizar el
conocimiento, proporcionando un medio bien definido para visualizar el dominio del
problema e implementar en un lenguaje de programación la solución a ese problema.
La POO se basa en el modelo objeto donde el elemento principal es el objeto, el cual es
una unidad que contiene todas sus características y comportamientos en sí misma, lo
cual lo hace como un todo independiente pero que se interrelaciona con objetos de su
misma clase o de otras clase, como sucede en el mundo real.
Anterior al paradigma de objetos, está el paradigma algorítmico o de procesos, el cual
se fundamenta en los procesos o funciones que se llevan a cabo en el mundo real dentro
del dominio del problema analizado. Se refiere a lo que entra, como lo maneja el proceso,
y lo que sale del proceso. La programación tradicional la sustentan los procesos,
algoritmos, bloques de construcción modulares cuya abstracción va de lo general a lo
particular, mientras que en la POO tiene como marco de referencia conceptual el objeto,
el cual pertenece a una clase que agrupa a todos compañeros con las mismas
características y un comportamiento similar.

191
Desarrollo de Software
Lenguaje de Programación I

Campos y procedimientos de propiedad

Los campos son variables públicas dentro de una clase que se pueden establecer o leer
desde fuera de la clase. Resultan de utilidad para propiedades que no se tienen que
validar, por ejemplo, un valor "Boolean" (True o False).

En el caso de la clase Persons, se puede tener una propiedad Boolean denominada x,


que especifica si una persona está soltera o casada, puesto que hay sólo dos valores
posibles.

Para agregar un campo a una clase, el código podría ser como el que sigue.

Public x As Boolean

Otra forma de declarar


Public propiedad_nombre as string
Public propiedad_valor as integer

Ejemplos
Class Clases_Tutorial_POO_1
Public nombre as string
Public valor as integer
Public Sub Mensaje(byval msj asstring)
system.console.write(msj)
End Sub
Public Function Suma(byval n1 asinteger, byval n2 as integer) asinteger

Dim resul as integer = 0


resul = n1 + n2
return resul
End Function
End Class

192
Desarrollo de Software
Lenguaje de Programación I

Recursividad
La recursividad, es un concepto bastante importante y bien básico de la programación.
Sin embargo es bastante difícil de asimilar al principio. Se supone que es algo que se va
entendiendo con práctica y tiempo.

Uno de los ejemplos más clásicos es el factorial de un número. Intenta seguir la


explicación razonando cada paso. Para cualquier entero positivo N, el factorial de N (que
se expresa como N!) es el producto (multiplicación) de todos los enteros menor a él:
 1! = 1
 2! = 1 x 2 = 2
 3! = 1 x 2 x 3 = 6
 4! = 1 x 2 x 3 x 4 = 24
 5! = 1 x 2 x 3 x 4 x 5 = 120

Ejemplo para calcular el factorial


Forma 1
int factorial(int n){
return n * factorial(n - 1);
}
Forma 2
int factorial(int n){
if n==1{
return 1;
}else{
return n * factorial(n-1);
}
}
Forma 3
int factorial(int n){
while (n!=1){
return n * factorial(n-1);
}
return 1;
}

193
Desarrollo de Software
Lenguaje de Programación I

17.- DEFINIR LOS CONCEPTOS DE ENCAPSULAMIENTO Y


HERENCIA.

Encapsulamiento en VB.Net
En todos los lenguajes el encapsulamiento se consigue con los operadores de ámbito,
private, protected, pero visualmente va más allá. Supongamos que queremos que el
valor de una cierta propiedad pueda ser leído externamente pero no modificado, o bien
que cada vez que se modifique pueda controlar el nuevo valor para saber si es válido.
Para solucionar esto VB.NET nos proporciona la definición de las propiedades tal y cómo
nosotros las necesitamos.

Definición de una propiedad

La definición se efectúa con la palabra Property, tras la cual dispondremos el nombre de


la propiedad, la palabra As y el tipo. Opcionalmente, delante de Property es posible usar
los modificadores de ámbito.

El final de la definición vendrá marcada por End Property. En el cuerpo de la propiedad


introduciremos dos apartados, llamados Get y Set, que serán ejecutados cuando se
recupere el valor de la propiedad y se asigne, respectiva- mente. Se asume que el
apartado Get devolverá un valor del tipo indicado en la cabecera de la propiedad,
mientras que Set tomará dicho parámetro. Lo habitual es que el valor se almacene
internamente en alguna variable y se devuelva cuando sea necesario, aunque en realidad
nada nos impide implementar una funcionalidad distinta.

Nota: En .NET solo existe herencia simple

194
Desarrollo de Software
Lenguaje de Programación I

Sintaxis:
Ambito Property Nombre_Propiedad () As Tipo
Get
....
End Get
Set
...
End Set
End Property

CASO APLICATIVO
Paso 1
Crear la clase de nombre por defecto Class1
Public Class Class1
Private _nombre As String
Public Property Nombre() As String 'property para identificar la propiedad
Get 'Es lo que se ejecuta cuando recuperamos el valor de la propiedad
Return _Nombre
End Get
Set(ByVal Value As String) 'es cuando asignamos un valor
_Nombre = Value
End Set
End Property
End Class
Paso 2
Crear la clase e implementar los property

195
Desarrollo de Software
Lenguaje de Programación I

CASO APLICATIVO
Crear un programa utilizando encapsulamiento que permita calcular las 4 operaciones
básicas de la aritmética

Paso 1
Diseñar el programa

Paso 2
Crear la clase e implementar los property

Public Class ClaseCalculadora


'creando 2 variables
Private _n1, _n2 As Double
'definiendo las propiedades get y Set
Public Property n1 As Double
Get
Return _n1
End Get
Set(ByVal value As Double)
_n1 = value 'atrapando el valor y almacenando en _n1
End Set

196
Desarrollo de Software
Lenguaje de Programación I

End Property
Public Property n2 As Double
Get
Return _n2
End Get
Set(ByVal value As Double)
_n2 = value
End Set
End Property

Paso 3
En el formulario codificar lo siguiente:
Public Class Frmcalc
'creando el objeto oc(objeto calculadora)
Dim oc As New ClaseCalculadora
Private Sub btnSuma_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSuma.Click
oc.n1 = txt1.Text 'envia datos a la clase
oc.n2 = txt2.Text
txt3.Text = oc.n1 + oc.n2
End Sub
End Class

Paso 4
Ejecutar la aplicación y probar el botón de la suma

197
Desarrollo de Software
Lenguaje de Programación I

CASO APLICATIVO HERENCIA


Paso 1
Diseñar el formulario

Paso 2
Implementar una clase de Class1 :
Public Class Class1
Private _nombre As String
Public Property Nombre() As String 'property para identificar la propiedad
Get 'Es lo que se ejecuta cuando recuperamos el valor de la propiedad
Return _Nombre
End Get
Set(ByVal Value As String) 'es cuando asignamos un valor
_Nombre = Value
End Set
End Property
End Class
Implementar una segunda clase de nombre Herencia
Public Class Herencia
Inherits Class1
End Class

198
Desarrollo de Software
Lenguaje de Programación I

Paso 3
Implementar en el botón Aceptar del formulario
Public Class FrmHerencia
Dim objherencia As New Herencia
Private Sub btnaceptar (sender As Object, e As EventArgs) Handles Button1.Click
objherencia.Nombre = TextBox1.Text
Label2.Text = objherencia.Nombre
End Sub
End Class

CASO APLICATIVO HERENCIA 2


Paso 1
Diseñar el formulario

Paso 2
Implementar la clase: Her_Ejemplos
Public Class Her_Ejemplos
' La variable se hace pública
Public Shared Contador As Int16 = 0
Public Sub Incrementa()
Contador += 1
End Sub
Public Sub Resta()
Contador -= 1
End Sub
Public Sub Visualiza()
MsgBox("Numero " & Contador, vbInformation, "DEMO APLICACION HERENCIA
VB 2013")
End Sub
End Class

199
Desarrollo de Software
Lenguaje de Programación I

Implementa ahora en la clase Sub_Her_Ejemplos


Public Class Sub_Her_Ejemplos
Inherits Her_Ejemplos
End Class
Paso 3
En el formulario realizar la programación en el botón Mostrar
Public Class FrmHerencia2
Dim obj As New Sub_Her_Ejemplos
Private Sub Mostrar(sender As Object, e As EventArgs) Handles Button1.Click
obj.Visualiza()
obj.Incrementa()
obj.Visualiza()
End Sub
End Class

200
Desarrollo de Software
Lenguaje de Programación I

18.- ELABORAR PROGRAMAS UTILIZANDO POO

CASO APLICATIVO
Paso 1.-
Diseñar el formulario Frmlogin

Pasó 2.- crear la clase


Click derecho en el nombre del proyecto / agregar clase

Paso 3
Nombre de la clase ClaseLogin
Implementar la clase con el siguiente codigo:
Public Class ClaseLogin
‘creacion de variable de ámbito publico
Private _usr, _pwd As String
‘creacion de propiedades Get y Set

201
Desarrollo de Software
Lenguaje de Programación I

Public Property usr As String


Get
Return _usr
End Get
Set(ByVal value As String)
_usr = value
End Set
End Property
Public Property pwd As String
Get
Return _pwd
End Get
Set(ByVal value As String)
_pwd = value
End Set
End Property
‘creacion de una método a nivel de función
Public Function acceso() As Boolean
If usr = "admin" And pwd = "1234" Then
Return True
ElseIf usr = "Juan Perez" And pwd = "juan4" Then
Return True
Else
Return False

End If
End Function

End Class
Paso 4
En el botón btnAceptar del formulario frmlogin crear el objeto oa(objeto acceso) como
se muestra en el siguiente script
Public Class frmLogin
Dim oa As New ClaseLogin

202
Desarrollo de Software
Lenguaje de Programación I

Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnAceptar.Click
Try
oa.usr = txtusuario.Text
oa.pwd = txtPwd.Text
If oa.acceso Then
Me.Hide()
frmMDIPrincipal.Show()
frmMDIPrincipal.st1.Text &= Now.ToString("dd/MM/yyyy")
frmMDIPrincipal.st2.Text &= oa.usr
Else
MsgBox("Usuario/Contraseña incorrectos", 64, "Login")
txtusuario.Clear()
txtPwd.Clear()
txtusuario.Focus()
End If
Catch ex As Exception
End Try
End Sub
End Class

CASO APLICATIVO
Paso 1.-
Diseñar el formulario Frmcalculadora

Pasó 2.- crear la clase

203
Desarrollo de Software
Lenguaje de Programación I

Click derecho en el nombre del proyecto / agregar clase


Nombre de la clase : ClaseCalculadora

Public Class ClaseCalculadora


'creando 3 variables
Private _n1, _n2 As Double
'definiendo las propiedades get y Set
Public Property n1 As Double
Get
Return _n1
End Get
Set(ByVal value As Double)
_n1 = value 'atrapando el valor y almacenando en _n1
End Set
End Property
Public Property n2 As Double
Get
Return _n2
End Get
Set(ByVal value As Double)
_n2 = value
End Set
End Property
'creando el metodo a nivel de funcion para invocar a las propiedades n1 y n2
Public Function suma() As Double
Return n1 + n2 'realizando la operacion suma y devolviendo el resultado a traves
del valor de retorno (return)
End Function
Public Function resta() As Double
Return n1 - n2
End Function
Public Function multiplica() As Double
Return n1 * n2
End Function

204
Desarrollo de Software
Lenguaje de Programación I

Public Function divide() As Double


Return n1 / n2
End Function
End Class

Paso 3
En el botón btnAceptar del formulario frmlogin crear el objeto oa(objeto acceso) como
se muestra en el siguiente script

Public Class frmCalculadora


'creando el objeto oc(objeto calculadora)
Dim oc As New ClaseCalculadora
Private Sub btnSuma_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles _
btnSuma.Click, btnResta.Click, btnMultiplica.Click, btnDivide.Click ' llamar a cada
uno de los controles
'forma automatica de programar a traves de un boton pero con acciones
diferentes
Try
oc.n1 = txt1.Text 'envia datos a la clase
oc.n2 = txt2.Text
If sender Is btnSuma Then ' sender es un objeto del sistema
txt3.Text = oc.suma
ElseIf sender Is btnResta Then
txt3.Text = oc.resta
ElseIf sender Is btnMultiplica Then
txt3.Text = oc.multiplica
Else
txt3.Text = oc.divide
End If
Catch ex As Exception
'MsgBox(ex.Message)
MsgBox("Error de datos", 64, "Net2015")
txt1.Clear()
txt2.Clear()

205
Desarrollo de Software
Lenguaje de Programación I

txt1.Focus()
End Try
End Sub
End Class

CASO APLICATIVO
Paso 1.-
Diseñar el formulario Frmventas

Paso 2
Crear la clase ClaseVentas
E implementar el siguiente código :
Public Class ClaseVentas
‘aplicando la herencia de la clase ClaseCalculadora

206
Desarrollo de Software
Lenguaje de Programación I

Inherits ClaseCalculadora
'propiedades
'metodos
'metodo para cargar productos en un combo mediante arreglo
Public Function productos()
Dim prod() As String = {"Zapatillas", "Pelotas", "Camisetas", "Maletines"}
Return prod

End Function
'metodo para cargar cantidades
Public Function cantidad()
Dim cant(99)
For i = 0 To 99
cant(i) = i + 1

Next
Return cant
End Function
'metodo para obtener precio
Public Function precios(ByVal p%) As Double
Dim precio As Double
Select Case p
Case 0 : precio = 150.0
Case 1 : precio = 45.0
Case 2 : precio = 75.0
Case 3 : precio = 100.0
End Select
Return precio
End Function
'metodo para obtener ventas acumuladas
Private total#
Public Function totales(ByVal venta#) As Double
total += venta
Return total
End Function
End Class

207
Desarrollo de Software
Lenguaje de Programación I

Paso 3
En el formulario crear el objeto como se muestra en la pantalla

Dim ov As New ClaseVentas

Paso 4
Para cargar los productos y las cantidades a comprar implementar lo siguiente en el
evento load del formulario:

Private Sub frmVentas_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
cboProducto.Items.AddRange(ov.productos)
cboCantidad.Items.AddRange(ov.cantidad)
End Sub
Paso 5
Para mostrar el precio codificar en el combobox evento SelectedIndexChanged lo
siguiente:

Private Sub cboProducto_SelectedIndexChanged(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles cboProducto.SelectedIndexChanged
txtprecio.Text = ov.precios(cboProducto.SelectedIndex)
End Sub
Paso 6
Para mostrar el tipo de venta si compra a crédito o al contado seria :
If cboTipo.Text = "Contado" Then
Label11.Text = "Dscto.10%"
Else
Label11.Text = "Recargo 10%"
End If

208
Desarrollo de Software
Lenguaje de Programación I

Paso 7
Codificar en el botón realizar Venta
Private Sub btnVender_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnVender.Click
Try
If txtnombre.Text = "" Then
MsgBox("Ingrese nombre", 64, "Ventas")
txtnombre.Focus()
ElseIf txtdni.Text = "" Then
MsgBox("Ingrese DNI", 64, "Ventas")
txtdni.Focus()
ElseIf cboTipo.Text = "" Then
MsgBox("Selecciones el tipo de venta", 64, "Ventas")
cboTipo.Focus()
ElseIf cboProducto.Text = "" Then
MsgBox("Selecciones producto", 64, "Ventas")
cboProducto.Focus()
ElseIf cboCantidad.Text = "" Then
MsgBox("Seleccione cantidad", 64, "Ventas")
cboCantidad.Focus()
Else
If cboTipo.Text = "Contado" Then
ov.n1 = txtprecio.Text * 0.9 'DESCUENTO 10%
Else
ov.n1 = txtprecio.Text * 1.1 'RECARGO 10%
End If
ov.n2 = cboCantidad.Text
txtimporte.Text = ov.multiplica
txtigv.Text = ov.multiplica * 0.19
txttotal.Text = ov.multiplica * 1.19
btnRegistrar.Enabled = True
End If
Catch ex As Exception
MsgBox("Error de datos", 64, "Ventas")
End Try
End Sub

209
Desarrollo de Software
Lenguaje de Programación I

Paso 8
Programar en el botón registrar venta
Private Sub btnRegistrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnRegistrar.Click
lstCliente.Items.Add(txtnombre.Text & " " & txtdni.Text)
lstProducto.Items.Add(cboProducto.Text)
lstTotal.Items.Add(txttotal.Text)
btnRegistrar.Enabled = False
txttotales.Text = ov.totales(txttotal.Text)
End Sub

CASO APLICATIVO
Paso 1.-
Diseñar el formulario Frmservicios

Paso 2
Agregar la clase ClaseServicio
E implementar lo siguiente:
Public Class ClaseServicios
REM creacion del procedimiento realizar_pago con 7 parametros siendo el ultimo de
tipo ListView(clase)

210
Desarrollo de Software
Lenguaje de Programación I

Public Sub realizar_pago(ByVal n$, ByVal d$, ByVal l$, ByVal a$, ByVal t$, ByVal
tpago$, ByVal lista As ListView)
'Agregando los datos al listview
With lista.Items.Add(n)
.SubItems.Add(d)
.SubItems.Add(l)
.SubItems.Add(a)
.SubItems.Add(t)
.SubItems.Add(tpago)
End With
End Sub
Private total# 'creando la variable de tipo long
Public Function totales(ByVal venta#) As Double
total += venta ' totalizando la variable total para que se vaya acumulando los
montos finales
Return total ' devolviendo el total final
End Function
End Class

Paso 3
En el formulario implementar un procedimiento limpiacajas y total para que de esa
manera cada vez que se limpie los controles se invoque al procedimiento limpiacajas y
total respectivamente :
Private Sub limpiacajas()
For Each obj As Control In Me.GroupBox1.Controls
If TypeOf (obj) Is TextBox Then
obj.Text = ""
End If
Next

chkluz.Checked = False
chkagua.Checked = False
chktelefono.Checked = False
txtnombre.Focus()
End Sub
Private Sub total()

211
Desarrollo de Software
Lenguaje de Programación I

Dim luz, agua, telefono As Double


luz = Val(txtluz.Text)
agua = Val(txtagua.Text)
telefono = Val(txttelefono.Text)
txttotal.Text = FormatCurrency(luz + agua + telefono)
End Sub

Paso 4
Implementar en los checkbox
Private Sub chkluz_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles chkluz.CheckedChanged, chkagua.CheckedChanged,
chktelefono.CheckedChanged
If sender Is chkluz Then
If chkluz.Checked = True Then
txtluz.Text = 50
Else
txtluz.Text = 0
End If
ElseIf sender Is chkagua Then
If chkagua.Checked = True Then
txtagua.Text = 65
Else
txtagua.Text = 0
End If
ElseIf sender Is chktelefono Then
If chktelefono.Checked = True Then
txttelefono.Text = 50
Else
txttelefono.Text = 0
End If
End If
Call total()
End Sub

212
Desarrollo de Software
Lenguaje de Programación I

Paso 5
Implementar en el botón btnPagar
Private Sub btnPagar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnPagar.Click
If txtnombre.Text = "" Or txtdni.Text = "" Then
MsgBox("Ingrese sus datos completos", 64, "Servicios")
ElseIf txtluz.Text = 0 And txtagua.Text = 0 And txttelefono.Text = 0 Then
MsgBox("Seleccione por lo menos un servicio", 64, "Servicios")
Else
os.realizar_pago(txtnombre.Text, txtdni.Text, FormatCurrency(txtluz.Text),
FormatCurrency(txtagua.Text), FormatCurrency(txttelefono.Text), txttotal.Text,
lsvServicios)
txtsumatotales.Text = FormatCurrency(os.totales(txttotal.Text))
Call limpiacajas()
End If
End Sub
Paso 6
Validando los controles para impedir el ingreso de dato incorrectos
Private Sub txtnombre_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtnombre.KeyPress
If Not Char.IsLetter(e.KeyChar) And Not Char.IsWhiteSpace(e.KeyChar) And Not
Char.IsControl(e.KeyChar) Then 'e.KeyChar captuta el caracter presionado
MsgBox("Se acepta solo letras", 64, "Servicios")
e.Handled = True 'cancela la entrada
End If
End Sub
En el cuadro de texto txtdni evento KeyPress
Private Sub txtdni_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtdni.KeyPress
If Not Char.IsNumber(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then
MsgBox("Se acepta solo numeros", 64, "Servicios")
e.Handled = True
End If
End Sub

213
Desarrollo de Software
Lenguaje de Programación I

Por ultimo en el botón cerrar será:


Private Sub btnCerrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCerrar.Click
Me.Close()
End Sub
Propuesto manos a la obra
Paso 1.-
Diseñar
Nota: utilizar el control GroupBox (inserte 3 como esta en el diseño)

pasó 2
implementar la clase ClaseDsctos
Public Class ClaseDsctos
'metodo para obtener porcentajes
Public Function porcentaje(ByVal b%) As String
Dim p$ = ""
Select Case b
Case 1 : p = "0%"
Case 2 : p = "25%"
Case 3 : p = "50%"
Case 4 : p = "75%"
Case 5 : p = "100%"
End Select
Return p

214
Desarrollo de Software
Lenguaje de Programación I

End Function
Public Function descuento(ByVal b%, ByVal c#) As Double
Dim d# = 0
Select Case b
Case 1 : d = 0
Case 2 : d = c * 0.25
Case 3 : d = c * 0.5
Case 4 : d = c * 0.75
Case 5 : d = c
End Select
Return d
End Function
Public Sub registrar_venta(ByVal n$, ByVal d$, ByVal mc$, ByVal bolita$, ByVal
porc$, ByVal dscto$, ByVal t$, ByVal lista As ListView)
With lista.Items.Add(n)
.SubItems.Add(d)
.SubItems.Add(mc)
.SubItems.Add(bolita)
.SubItems.Add(porc)
.SubItems.Add(dscto)
.SubItems.Add(t)
End With
End Sub
End Class
Pasó 3
Implementar ahora en el formulario
Private Sub limpiar_cajas()
For Each obj As Control In Me.GroupBox1.Controls
If TypeOf (obj) Is TextBox Then
obj.Text = ""
End If
Next
For Each obj As Control In Me.GroupBox2.Controls
If TypeOf (obj) Is TextBox Then
obj.Text = ""
End If

215
Desarrollo de Software
Lenguaje de Programación I

rdbB.Checked = False
rdbA.Checked = False
rdbN.Checked = False
rdbZ.Checked = False
rdbR.Checked = False
Next
For Each obj As Control In Me.GroupBox3.Controls
If TypeOf (obj) Is TextBox Then
obj.Text = ""
End If
Next
txtnombre.Focus()
End Sub
Después
Pasó 4
Crear el objeto y programar en el control respectivo
Dim od As New ClaseDsctos
Private Sub rdbB_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles rdbB.CheckedChanged, rdbA.CheckedChanged,
rdbN.CheckedChanged, rdbR.CheckedChanged, rdbZ.CheckedChanged
Try
If sender Is rdbB Then
txtporcentaje.Text = od.porcentaje(1)
txtdscto.Text = FormatCurrency(od.descuento(1, txtCompra.Text))
ElseIf sender Is rdbA Then
txtporcentaje.Text = od.porcentaje(2)
txtdscto.Text = FormatCurrency(od.descuento(2, txtCompra.Text))
ElseIf sender Is rdbN Then
txtporcentaje.Text = od.porcentaje(3)
txtdscto.Text = FormatCurrency(od.descuento(3, txtCompra.Text))
ElseIf sender Is rdbZ Then
txtporcentaje.Text = od.porcentaje(4)
txtdscto.Text = FormatCurrency(od.descuento(4, txtCompra.Text))
Else
txtporcentaje.Text = od.porcentaje(5)
txtdscto.Text = FormatCurrency(od.descuento(5, txtCompra.Text))

216
Desarrollo de Software
Lenguaje de Programación I

End If
txtTotal.Text = FormatCurrency(txtCompra.Text - txtdscto.Text)
Catch ex As Exception
End Try
'txtporcentaje.Text = od.porcentaje(rdbA.Checked, rdbB.Checked, rdbN.Checked,
rdbZ.Checked, rdbR.Checked)
End Sub
Private Sub btnRegistrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnRegistrar.Click
If txtnombre.Text = "" Or txtdni.Text = "" Or txtCompra.Text = "" Then
MsgBox("Ingrese los datos completos", 64, "Descuentos")
Else
If rdbB.Checked = False And rdbA.Checked = False And rdbN.Checked = False And
rdbZ.Checked = False And rdbR.Checked = False Then
MsgBox("Seleccione una bolita", 64, "Descuentos")
ElseIf rdbB.Checked = True Then
od.registrar_venta(txtnombre.Text, txtdni.Text,
FormatCurrency(txtCompra.Text), rdbB.Text, txtporcentaje.Text, txtdscto.Text,
txtTotal.Text, lstDescuentos)
limpiar_cajas()
ElseIf rdbA.Checked = True Then
od.registrar_venta(txtnombre.Text, txtdni.Text,
FormatCurrency(txtCompra.Text), rdbA.Text, txtporcentaje.Text, txtdscto.Text,
txtTotal.Text, lstDescuentos)
limpiar_cajas()
ElseIf rdbN.Checked = True Then
od.registrar_venta(txtnombre.Text, txtdni.Text,
FormatCurrency(txtCompra.Text), rdbN.Text, txtporcentaje.Text, txtdscto.Text,
txtTotal.Text, lstDescuentos)
limpiar_cajas()
ElseIf rdbZ.Checked = True Then
od.registrar_venta(txtnombre.Text, txtdni.Text,
FormatCurrency(txtCompra.Text), rdbZ.Text, txtporcentaje.Text, txtdscto.Text,
txtTotal.Text, lstDescuentos)
limpiar_cajas()
Else

217
Desarrollo de Software
Lenguaje de Programación I

od.registrar_venta(txtnombre.Text, txtdni.Text,
FormatCurrency(txtCompra.Text), rdbR.Text, txtporcentaje.Text, txtdscto.Text,
txtTotal.Text, lstDescuentos)
limpiar_cajas()
End If
End If
End Sub
Pasó 5
Validando los controles cuadros de texto
Private Sub txtnombre_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtnombre.KeyPress
If Not Char.IsLetter(e.KeyChar) And Not Char.IsWhiteSpace(e.KeyChar) And Not
Char.IsControl(e.KeyChar) Then 'e.KeyChar captuta el caracter presionado
MsgBox("Se acepta solo letras", 64, "Descuentos")
e.Handled = True 'cancela la entrada

End If
End Sub
Private Sub txtdni_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtdni.KeyPress
If Not Char.IsDigit(e.KeyChar) Then
MsgBox("Se acepta solo numeros", 64, "Descuentos")
e.Handled = True

End If
End Sub

218
Desarrollo de Software
Lenguaje de Programación I

MARCO TEORICO

Bases de la Programación Orientada a Objetos


¿Que es la poo?
La programación orientada a objetos, es, desde su raíz, una forma de concebir un programa de
computadora. Un programa es una serie de instrucciones que le indican a la computadora que hacer.
La manera en que la POO ve a un programa es como un conjunto de objetos que operan juntos en
formas predefinidas para realizar tareas.

En la POO todo su programa está formado por objetos


CLASE
Un objeto es un elemento independiente de un programa de computadora, que
representa a un grupo asociado de características y esta diseñado para realizar tareas
específicas. A los objetos también se les conoce como instancias
Existen 3 conceptos fundamentales dentro de la Programación Orientada a Objetos que
se relacionan entre sí y que le permitirán conocer más aun el tema

Todos los lenguajes basados en objetos, deben cumplir estos tres requisitos:

 Herencia
 Encapsulación
 Polimorfismo

HERENCIA
la herencia es uno de los conceptos de mayor importancia en la programación orientada
a objetos y tiene un efecto directo en la manera en que diseñas y escribas tus programas.

La herencia es un mecanismo que hace posible que una clase herede todo el
comportamiento y los atributos de otra clase.
A través de la herencia, una clase tiene inmediatamente toda la funcionalidad de una
clase existente. Debido a esto, las nuevas clases se pueden crear indicando únicamente
en que se diferencian de la clase existente.

A una clase que hereda de otra clase se le denomina subclase y a la clase que proporciona
la herencia se le llama superclase.

219
Desarrollo de Software
Lenguaje de Programación I

Encapsulación

"La encapsulación es la capacidad de contener y controlar el acceso a un grupo de


elementos asociados. Las clases proporcionan una de las formas más comunes de
encapsular elementos."

Cuando usamos las clases, éstas tienen una serie de características (los datos que
manipula) así como una serie de comportamientos (las acciones a realizar con esos
datos). La encapsulación es esa capacidad de la clase de ocultarnos sus interioridades
para que sólo veamos lo que tenemos que ver, sin tener que preocuparnos de cómo está
codificada para que haga lo que hace... simplemente nos debe importar que lo hace

Polimorfismo

Según la documentación de Visual Studio.NET:


"El polimorfismo se refiere a la posibilidad de definir múltiples clases con funcionalidad
diferente, pero con métodos o propiedades denominados de forma idéntica, que
pueden utilizarse de manera intercambiable mediante código cliente en tiempo de
ejecución."

Dicho de otra manera, puede tener múltiples clases que se pueden utilizar de forma
intercambiable, si bien cada clase implementa las mismas propiedades o los mismos
métodos de maneras diferentes. El polimorfismo es importante en la programación
orientada a objetos puesto que permite usar elementos que tienen el mismo nombre,
independientemente del tipo de objeto que se esté utilizando en ese momento.

220
Desarrollo de Software
Lenguaje de Programación I

JERARQUIA DE CLASES

Constructores
Los constructores son métodos de clase que se ejecutan automáticamente cuando se
crea un objeto de un tipo determinado. Normalmente, los constructores inicializan los
miembros de datos del nuevo objeto. Un constructor se puede ejecutar sólo una vez
cuando se crea una clase. Además, el código del constructor siempre se ejecuta antes
que cualquier otro código en una clase. Sin embargo, puede crear varias sobrecargas
del constructor de la misma forma que para cualquier otro método.
Arquitectura de 3 capas.

El objetivo principal de este planteamiento es separar y, por lo tanto independizar, las


reglas del negocio de las aplicaciones que las utilicen. De esta forma, es posible utilizar
las mismas reglas del negocio para diferentes aplicaciones, corriendo sobre distintas
plataformas. La capa de aplicación corresponde a programas interactivos o procesos,
que realicen alguna acción sobre los componentes del negocio. La capa intermedia estará
formada por las clases del negocio, quienes interactúan con el medio de almacenamiento

221
Desarrollo de Software
Lenguaje de Programación I

que está repreentado en la capa de datos. Una arquitectura pura de tres capas no
permite ninguna forma de comunicación directa entre la aplicación y la capa de datos;
esto es, entre los programas de usuario y la base de datos. Los programas de aplicación
deben solicitar todos sus requerimientos a la capa del negocio, a través de la invocación
de servicios, que corresponden a los métodos definidos para cada clase. La separación
propuesta por este modelo de capas nos da una clara guía de la forma en que podemos
enfrentar la programación de un sistema en Visual Basic.

222
Desarrollo de Software

Você também pode gostar