Manual Lenguaje de Programacion 1
Manual Lenguaje de Programacion 1
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