Beruflich Dokumente
Kultur Dokumente
LENGUAJE DE PROGRAMACIÓN I
Tabla de contenidos
Página 2
Escuela de Tecnologias de la información
Lenguaje de Programacion 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.
Página 4
Escuela de Tecnologias de la información
Lenguaje de Programacion I
EQUIPOS Y MATERIALES
1. ORDEN DE EJECUCIÓN
2. OPERACIÓN
NORMAS DE SEGURIDAD
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 6
Escuela de Tecnologias de la información
Lenguaje de Programacion I
Página 8
Escuela de Tecnologias de la información
Lenguaje de Programacion I
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
Pasó 3.-
Name.- frm1
StartPosItion.- Center
Windows State.-
BackgroundImage
FormBorderStyle.- None
BackgroundImageLayout .- Stretch
Opacity = 50%
Resultado momentáneo
Página 10
Escuela de Tecnologias de la información
Lenguaje de Programacion I
Paso 4
Icon
Utiliza la palabra me
Me.BackColor = Color.DimGray
End Sub
End Sub
Me.WindowState = vbNormal
End If
End Sub
End Class
Página 12
Escuela de Tecnologias de la información
Lenguaje de Programacion I
TextBox1.Multiline = True
TextBox1.ScrollBars = ScrollBars.Vertical
TextBox1.AcceptsReturn = True
TextBox1.AcceptsTab = True
'Set WordWrap en True para permitir que el texto se ajuste a la siguiente línea.
TextBox1.WordWrap = True
Completar la descripción
Font
_____________________________________________________
_____________________________________________________
_____________________________________________________
BorderStyle
_____________________________________________________
_____________________________________________________
_____________________________________________________
Caso de Aplicación 2
Controles a utilizar
, Textbox2)
1 picturebox
Paso 2.-
Formulario
Name .- frmAplicacion1
PictureBox :
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
End Sub
End Sub
Dim edad%
MsgBox("Tu edad es " & edad & " años", 64, "Net2013")
End Sub
End Class
Tarea Propuesta
Controles a utilizar:
Panel
Etiquetas
Picturebox
Creacion de variables
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
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:
Página 18
Escuela de Tecnologias de la información
Lenguaje de Programacion I
A=5+2
A=5
B = 32
Caso de aplicación
Option Explicit On
MsgBox(mensaje)
End Sub
End Class
Pasos
Página 20
Escuela de Tecnologias de la información
Lenguaje de Programacion I
Si ya se cuenta con un proyecto y deseas agregar otro sin cerrar el anterior siga los
siguientes pasos
Pasos
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.-
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
Pasos
3.- hay encontrara todas las librerías según su necesidad activar tal como muestra la
pantalla
Agregando un proyecto C#
Pasos
1.-
2.-
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.- 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
Página 26
Escuela de Tecnologias de la información
Lenguaje de Programacion I
Componentes
Solo les muestro dos controles, que son los más usados.
Contenedores
Esta categoría se encuentran todos aquellos controles que sirven para contener otros
controles.
Página 28
Escuela de Tecnologias de la información
Lenguaje de Programacion I
Datos
Como se van a dar cuenta, cada control tiene su icono, nombre, prefijo y su descripción.
Como se van a dar cuenta, cada control tiene su icono, nombre, prefijo y su descripción.
Página 30
Escuela de Tecnologias de la información
Lenguaje de Programacion I
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
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
Etiqueta
Cuadro de texto
Pantallazo 01
Pantallazo 02
Controles utilizados:
Etiqueta
Cuadro de texto
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
Combobox
ListBox
ListView
Gridlines: true
Pantallazo 04
Controles utilizados:
Botón de comando
Etiqueta
Cuadro de texto
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
CheckBox
Pantallazo 06
Controles utilizados:
Botón de comando
Etiqueta
Cuadro de texto
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
Tab1
Tab2
Tab3
Propiedades asignadas
DatetimePicker.- Short
Name: dtpFechaNac
Name: txtdatos
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
MARCO TEORICO
¿Qué es un programa?
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.
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 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++.
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
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
Tareas de Investigacion
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:
CASO APLICATIVO
Página 44
Escuela de Tecnologias de la información
Lenguaje de Programacion I
Me.txtsuma.Text = suma
End Sub
End Class
CASO APLICATIVO
txtsuma.Text = suma
End Sub
En el agregaras los siguientes formularios como se muestra en las pantallas o como indique
el instructor:
1.- Diseñar
Página 46
Escuela de Tecnologias de la información
Lenguaje de Programacion I
Página 48
Escuela de Tecnologias de la información
Lenguaje de Programacion I
lbNombre.Text = txt1.Text
Página 50
Escuela de Tecnologias de la información
Lenguaje de Programacion I
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 2.-
Agregar 2 formularios al proyecto como muestra la pantalla
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:
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;
}
//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
}
}
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
CASO APLICATIVO
PASÓ 1.-
Diseñar
PASO 2.-
Programar
private void btnadicionar_Click(object sender, EventArgs e){
lstusuarios.Items.Add(txtnombre.Text);
lblnro.Text = lstusuarios.Items.Count.ToString();
}
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
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
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;
}
}
// 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)
{
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;
punto += 1;
if (punto > 1 && cadena.IndexOf(".") >= 0)
{
e.Handled = true;
}
}
else
{
e.Handled = true;
}
}
Página 64
Escuela de Tecnologias de la información
Lenguaje de Programacion I
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;
CASO APLICATIVO
PASO 1.-
Diseñar
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;
}
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 == "")
{
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 == "")
{
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";
}
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
PASO 1.-
PASO 2
Programar
private void button1_Click(object sender, EventArgs e)
{
label3.Text = "Button 1";
}
}
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;
}
}
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 76
Escuela de Tecnologias de la información
Lenguaje de Programacion I
CASO APLICATIVO
PASO 1.-
Diseñar
PASÓ 2.-
Programar:
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
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);
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
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)
{
Página 82
Escuela de Tecnologias de la información
Lenguaje de Programacion I
MARCO TEORICO
SN propiedades Descripción
adjuntará automáticamente a la
forma si se cambia el tamaño a un
punto que no todos sus controles son
visibles.
Página 84
Escuela de Tecnologias de la información
Lenguaje de Programacion I
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.
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
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.
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:
1 Activar
2 ActivateMdiChild
3 AddOwnedForm
4 Traer al frente
5 CenterToParent
6 CenterToScreen
7 Cerca
Cierra el formulario.
8 contiene
9 Atención
Página 88
Escuela de Tecnologias de la información
Lenguaje de Programacion I
10 Esconder
11 Refrescar
12 Escala (SizeF)
13 ScaleControl
14 ScaleCore
15 Seleccionar
Activa el control.
16 Enviar al fondo
17 SetAutoScrollMargin
18 SetDesktopBounds
19 SetDesktopLocation
20 SetDisplayRectLocation
21 Espectáculo
22 ShowDialog
Página 90
Escuela de Tecnologias de la información
Lenguaje de Programacion I
Prefijo txt
Propiedades de uso común del control de cuadro de texto:
SN Propiedad Descripción
Ninguna
Horizontal
Vertical
Ambos
Página 92
Escuela de Tecnologias de la información
Lenguaje de Programacion I
Izquierda
Derecha
Centrar
Boton de comando
Prefijo: Btn
SN Propiedad Descripción
Combobox
Prefijo: cb
S Propiedad Descripción
N
Página 94
Escuela de Tecnologias de la información
Lenguaje de Programacion I
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:
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
Condicional doble
If Condicion then
Secuencias1
…
Else
Secuencias2
…
Endif
Página 98
Escuela de Tecnologias de la información
Lenguaje de Programacion I
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)
{
// 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;
}
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
CASO APLICATIVO
PASO 1.-
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
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
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
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.
Objetos
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
110
Desarrollo de Software
Lenguaje de Programación I
MÁS EJERCICIOS CON CONDICIONALES
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
113
Desarrollo de Software
Lenguaje de Programación I
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
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
Tipos de Variables
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
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)
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))
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”
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
CASO APLICATIVO
124
Desarrollo de Software
Lenguaje de Programación I
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
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
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
126
Desarrollo de Software
Lenguaje de Programación I
CASOS APLICATIVOS
127
Desarrollo de Software
Lenguaje de Programación I
128
Desarrollo de Software
Lenguaje de Programación I
129
Desarrollo de Software
Lenguaje de Programación I
For i = 1 To num
numeros = numeros + 3
130
Desarrollo de Software
Lenguaje de Programación I
131
Desarrollo de Software
Lenguaje de Programación I
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
134
Desarrollo de Software
Lenguaje de Programación I
MARCO TEORICO
Instrucciones Repetitivas
135
Desarrollo de Software
Lenguaje de Programación I
Ejemplos:
Genere y visualize numeros del 10 al 90 y al final muestre la suma de ellos
3. - Do while
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
137
Desarrollo de Software
Lenguaje de Programación I
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
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());
139
Desarrollo de Software
Lenguaje de Programación I
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
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
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
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
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
152
Desarrollo de Software
Lenguaje de Programación I
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
154
Desarrollo de Software
Lenguaje de Programación I
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
156
Desarrollo de Software
Lenguaje de Programación I
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:
158
Desarrollo de Software
Lenguaje de Programación I
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
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
160
Desarrollo de Software
Lenguaje de Programación I
161
Desarrollo de Software
Lenguaje de Programación I
CASO APLICATIVO
Diseñar
Programacion
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
164
Desarrollo de Software
Lenguaje de Programación I
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
166
Desarrollo de Software
Lenguaje de Programación I
MARCO TEORICO
Función Descripción
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
167
Desarrollo de Software
Lenguaje de Programación I
168
Desarrollo de Software
Lenguaje de Programación I
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
Funciones numéricas
Aquí algunas
Funciones Matemáticas:
170
Desarrollo de Software
Lenguaje de Programación I
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
clase.
172
Desarrollo de Software
Lenguaje de Programación I
PASO 2
Programando en el modulo el ejemplo
Solo se programa lo que esta dentro del modulo
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
174
Desarrollo de Software
Lenguaje de Programación I
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
175
Desarrollo de Software
Lenguaje de Programación I
PASO 2
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.-
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
177
Desarrollo de Software
Lenguaje de Programación I
178
Desarrollo de Software
Lenguaje de Programación I
179
Desarrollo de Software
Lenguaje de Programación I
CASO APLICATIVO EN C#
180
Desarrollo de Software
Lenguaje de Programación I
181
Desarrollo de Software
Lenguaje de Programación I
182
Desarrollo de Software
Lenguaje de Programación I
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
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:
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
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
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:
190
Desarrollo de Software
Lenguaje de Programación I
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
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).
Para agregar un campo a una clase, el código podría ser como el que sigue.
Public x As Boolean
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
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.
193
Desarrollo de Software
Lenguaje de Programación I
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.
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
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
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
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
200
Desarrollo de Software
Lenguaje de Programación I
CASO APLICATIVO
Paso 1.-
Diseñar el formulario Frmlogin
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
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
CASO APLICATIVO
Paso 1.-
Diseñar el formulario Frmcalculadora
203
Desarrollo de Software
Lenguaje de Programación I
204
Desarrollo de Software
Lenguaje de Programación I
Paso 3
En el botón btnAceptar del formulario frmlogin crear el objeto oa(objeto acceso) como
se muestra en el siguiente script
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
Paso 4
Para cargar los productos y las cantidades a comprar implementar lo siguiente en el
evento load del formulario:
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
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
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
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
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
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.
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