You are on page 1of 32

II Semestre

Programacin

Programacin Programacin
Contenido
Programacin .............................................................................................................. 2 I. Renta Automvil ............................................................................................... 4 Unidad I.- Excepciones ................................................................................................. 5 FormatException. ...................................................................................................... 5 OverFlowException. ................................................................................................... 5 Lanzamiento de Excepciones....................................................................................... 6 ApplicationException .................................................................................................. 6 Exception ................................................................................................................. 6 II. Calendario ......................................................................................................... 7 III. IV. VI. Teatro........................................................................................................... 9 Tienda de descuentos ................................................................................... 11 Calificaciones ............................................................................................... 13

V. Mantenimiento de flotillas ................................................................................ 12 Conversin byte TryParse ......................................................................................... 14 Unidad II.- Herencia y Polimorfismo ............................................................................. 15 Herencia ................................................................................................................ 15 Polimorfismo ........................................................................................................... 15 VII. IX. XI. Venta de Persianas ....................................................................................... 16 Saln de eventos ......................................................................................... 20 Anuncios en Guas Telefnicas ....................................................................... 22 VIII. Viajes ......................................................................................................... 18 X. Transportes de Coahuila S.A ............................................................................. 21 Unidad III.- Arreglos .................................................................................................. 23 Ciclos ..................................................................................................................... 23 For ........................................................................................................................ 23 Iteracin ................................................................................................................ 23 Ejercicio .............................................................................................................. 23 Acumulador ............................................................................................................ 24 Contador ................................................................................................................ 24 While ..................................................................................................................... 25 Ciclo. Do While........................................................................................................ 26 XII. Numero Factorial .......................................................................................... 26 2

Programacin
Unidad III.- Arreglos .................................................................................................. 27 XIII. Arreglo ....................................................................................................... 29 XIV. TAMAO ..................................................................................................... 29 XVI. Llenar Nmeros Azar ...................................................................................... 30 Foreach .................................................................................................................. 31

Programacin
I. Renta Automvil
RENTA + + + + Km Inicial: uint Km Final: uint Km Recorrido: uint Total: Decimal

Una compaa renta automviles y el cobro lo hace de la siguiente manera: Cuando el cliente llega a entregar el automvil rentado, el encargado de la compaa introduce el kilometraje recorrido. Si el kilometraje es menor o igual a 120, se le cobra alguna tarifa fija de 350 pesos.

Si el kilometraje es mayor a 120 se le cobra $350 de la tarifa fija de $15 P/KM excedido. Crear una clase que permita calcula el monto a cobrar por la renta del automvil y un formulario para acabar. CLASE
class RentaAuto { private ushort kminicio; public ushort kmi { set { kminicio = value; } get { return kminicio; } } private ushort kmfinal; public ushort kmf { set { kmfinal = value; } get { return kmfinal; } } public int kmtotal { get { return kmfinal-kminicio; } } public ushort kmexedido { get { return (ushort)(kmtotal > 120 ? kmtotal - 120 : 0); } } public decimal MontoPagar { get { return kmtotal <= 120 ? 350 : 15 * kmexedido + 350;} } }

Botn calcular e INSTANCIAR


{ //1.- Instanciar RentaAuto MiRenta = new RentaAuto(); //2.- Entradas MiRenta.kmi = ushort.Parse(txtkmi.Text); MiRenta.kmf = ushort.Parse(txtkmf.Text); //3.- Salidas txtkmt.Text = MiRenta.kmtotal.ToString(); txtkme.Text = MiRenta.kmexedido.ToString(); txtMP.Text = MiRenta.MontoPagar.ToString("$0.00"); }

Programacin Unidad I.- Excepciones

FormatException.
Capturar Excepciones; Cualquier tipo de carcter.

Una excepcin es aquella que puede interrumpir el flujo de un programa

try { //Sintaxis que pueda crear una excepcion } catch()//Tipo de forma de excepcion para atraprla{ //sirve para mostrar la propiedad mensage (//Dialogo) }
{ try { //Sintaxis; Instanciar Botn. } catch (FormatException) { MessageBox.Show("Escriba solo Numeros"); } }

OverFlowException.
Captura Excepciones; Valores que no concuerdan con el tipo de dato esperado ya sea mayor o menor.
{ try { //Sintaxis. Instanciar Botn. } catch (OverflowException ex) { MessageBox.Show(ex.Message); } }

Programacin

Lanzamiento de Excepciones. ApplicationException


Utilizado para que el programador pueda crear excepciones o condiciones. Sintaxis
Throw new ApplicationException (Msg); kmFinal { Set {

Sintaxis Clase
private ushort kmfinal; public ushort kmf { get { return kmfinal; } set { if (value > kminicio) { kmfinal = value; } else { throw new ApplicationException("El kilometraje Final debe ser mayor al kilometraje Inicial"); } } }

Sintaxis Instanciar Botn


{ try { //Sintaxis. Instanciar Botn. } catch (ApplicationException) //ApplicationException //Utilizado para que el programador pueda crear excepciones o condiciones { MessageBox.Show("El kilometraje Final debe ser mayor al kilometraje Inicial"); } }

Exception
Se utiliza para controlar cualquier otra de excepcin que el programador no ah identificado.
catch (Exception ERROR) { MessageBox.Show(ERROR.Message); }

Programacin
II. Calendario
Crear una clase que reciba un nmero correspondiente a un mes y que regrese cuantos das tiene ese mes y su nombre. Suponga que febrero tiene 28 das. Los nmeros validos para los meses sern del 1 al 12. CLASE
class mes { private byte numeromes; public byte Numeromes { set { if(value <13&& value >0) {numeromes =value ;} else { throw new ApplicationException("Solo se permiten nmeros del 1 al 12"); } } get { return numeromes; } } public string NombreMes { get { switch (numeromes) { case 1: return "Enero"; case 2: return "Febrero"; case 3: return "Marzo"; case 4: return "Abril"; case 5: return "Mayo"; case 6: return "Junio"; case 7: return "Julio"; case 8: return "Agosto"; case 9: return "Septiembre"; case 10: return "Octubre"; case 11: return "Noviembre"; default : return "Diciembre"; //case = swuitch // default = si no } } } public byte DiasMes { get { switch (numeromes) { case 2: return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; } } } }

Programacin
INSTANCIAR
try { mes mimes = new mes(); mimes.Numeromes = byte.Parse(txtnum.Text); txtnomb.Text = mimes.NombreMes; txtDia.Text = mimes.DiasMes.ToString(); txtnum.Enabled = true; } catch (FormatException) { MessageBox.Show("Escriba solo nmeros", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (OverflowException) { MessageBox.Show("Valor Invalido", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (ApplicationException) { MessageBox.Show("Solo se permiten nmeros del 1 al 12", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception exception) { MessageBox.Show(exception.Message); } }

Programacin
III. Teatro
Un teatro otorga descuentos de acuerdo a la edad del cliente. Realiza una clase que a partir del costo de un boleto y de la edad del cliente, permita calcular el pago que se realizara si los descuentos se hacen tomando en cuenta la siguiente. Por polticas de la empresa no se permite la entrada a nios menores de 5 aos. Toma como edad mxima 110 aos. CLASE Teatro class Teatro { + Edad: byte private byte Edad; public byte MyEdad + Costo boleto: decimal { + Descuento: decimal set { + Total if (value >= 5 && value <= 110) { Edad = value; } else {throw new ApplicationException("Edad no valida");} } get { return Edad; } } private decimal CostoBoleto; public decimal MyCostoBoleto { get { return CostoBoleto; } set { if (value > 0) CostoBoleto = value; else { throw new ApplicationException("Solo precios mayores a 0"); } } } public decimal MyDescuento { // Descuento get { { get if (Edad >= 5 && Edad <= 14) { { return CostoBoleto * .35m; } if ((edad >4&&edad<=14) ll (edad >=66)) else if (Edad >= 15 && Edad <= 19) {return costo*.35m;} { return CostoBoleto * .25m; } else if ((edad >=15 && edad<=19) ll else if (Edad >= 20 && Edad <= 45) (edad>=26&&edad<=65)) { return CostoBoleto * .10m; } {return costo *.25m;} else if (Edad >= 46 && Edad <= 65) else { return CostoBoleto * .25m; } {return costo*.10m;} else } { return CostoBoleto * .35m; } } } } public decimal MyTotal { get { return CostoBoleto - MyDescuento; } } } 9 Edad 5 14 15 19 20 45 26 65 66 en adelante Descuento 35% 25% 10% 25% 35%

Programacin
INSTANCIAR
{ try { //1.- Instancia Teatro MiTeatro = new Teatro(); //2.- Entradas MiTeatro.MyEdad = byte.Parse(txtedad.Text); //3.- Salidas MiTeatro.MyCostoBoleto = decimal.Parse(txtcosto.Text); txtdescuento.Text = MiTeatro.MyDescuento.ToString(); txttotal.Text = MiTeatro.MyTotal.ToString(); } catch (FormatException) { MessageBox.Show("Caracter Invalido"); } catch (OverflowException) { MessageBox.Show("Introdusca solo valores positivos y menores a 256"); } catch (ApplicationException ex) { MessageBox.Show(ex.Message); } catch (Exception excepcion) { MessageBox.Show(excepcion.Message ); } }

10

Programacin
IV. Tienda de descuentos
En una tienda de descuento las personas que van a pagar el importe de sus compras llegan a la caja y sacan una bolita que les dir que descuento tendr sobre el total de su compra. Si el nmero de la bolita es uno, el cliente obtendr un 40% de descuento. Si el nmero es el dos se les dar un 25% de descuento Si el nmero es el tres no obtendr descuento.

Crear una clase que permita determinar la cantidad que pagara cada cliente tomando como base el monto de lo comprado y el nmero obtenido en la bolita de descuento CLASE
class Tienda { private decimal Subtotal; public decimal Mysubtotal { get { return Subtotal; } set { if (value < 1) { throw new ApplicationException("Costo no valido"); } Subtotal = value; } } private byte bolita; public byte Mybolita { get { return bolita; } set { if (value > 3) { throw new ApplicationException ("El tipo de dato no es valido"); } bolita = value ; } } public decimal Descuento { get { if (bolita == 1) { return Subtotal *.40m; } else if (bolita == 2) { return Subtotal *.25m; } else { return 0; } } } public decimal Total { get { return Subtotal - Descuento; } } } }

INSTANCIAR
try { Tienda mitienda = new Tienda(); mitienda.Mysubtotal = decimal.Parse(txtSubtotal.Text); mitienda.Mybolita = byte.Parse(txtBolita.Text); txtDescuento.Text = mitienda.Descuento .ToString(); txtTotal.Text = mitienda.Total .ToString(); } catch (FormatException) { MessageBox.Show("Escriba solo numeros"); } catch (OverflowException) { MessageBox.Show("Escriba solo numeros positivos"); } catch (ApplicationException ex) { MessageBox.Show( ex.Message ); }

11

Programacin
V. Mantenimiento de flotillas

Una empresa ofrece equipos de mantenimiento a flotillas de automviles (ms de 10 autos) a otras empresas. El taller mantiene un grupo de paquetes bsicos que las empresas seleccionan. El paquete A, por un costo de $200.00 por unidad El paquete B, por un costo de $300.00 por unidad El paquete C, por un costo de $500.00 por unidad

A ciertos clientes se les ofrecen descuentos especiales. Los vendedores tienen la libertad de ofrecer al cliente hasta un 50% de descuento en cada uno de los paquetes al realizar las cotizaciones de precios. Crear una clase en C# que nos permita realizar la cotizacin del servicio de mantenimiento de flotilla. Solicitar al vendedor el paquete que cotizar, el nmero de autos que componen las flotillas y el descuento que se le ofrece al cliente. Desglosar los costos. Mantenimiento a flotillas No. De Auto No. De Paquete Porcentaje Descuento Total

Prvate string Paquete; Public string paquete { Get{return paquete;} Set{value.ToUpper()==A//value.ToUpper()==B//value.ToUpper==C {paquete==value.ToUpper();} Else{throw new ApplicationException(paquete no valido);} .ToLower Minusculas .ToUpper Mayusculas

12

Programacin
VI. Calificaciones

Se desea realizar un programa que ayude a un maestro a calcular el promedio de un alumno. Para el promedio se tomaran en cuenta los siguientes criterios: Calificaciones validas son de 0 a 100 Examen prctico tienen un valor de 35% Examen terico tiene un valor de 30% Dos exposiciones tienen un valor del 20% Las practicas tienen un valor de 15% El mximo de exposicin es 2 El mximo para las practicas es 5 En el caso de las exposiciones y las practicas obtener el porcentaje equivalente si son menores al valor mximo Mostrar el promedio obtenido y un indicador en base a los siguientes:

<70 NA <75 SUFICIENTE <85 BUENO <95 NOTABLE >=95 EXCELENTE

Calificacin 0 100 + Ex Practico byte + Ex Terico byte + Exposiciones byte + Practicas byte + Promedio byte + Indicador string

13

Programacin

Conversin byte TryParse


Intenta hacer una conversin de byte ToolTip1

INSTANCIAR
try { Calificacion MiCalificacion = new Calificacion(); byte valor; if (byte.TryParse(txtPractico.Text, out valor)) { MiCalificacion.Myepractico = valor; if (byte.TryParse(txtTeorico.Text, out valor)) { MiCalificacion.Myeteorico = valor; if (byte.TryParse(txtExposiciones.Text, out valor)) { MiCalificacion.Myexposiciones = valor; if (byte.TryParse(txtPracticas.Text, out valor)) { MiCalificacion.Mypracticas = valor; txtPromedio.Text = MiCalificacion.Mypromedio.ToString(); txtIndicador.Text = MiCalificacion.Myindicador.ToString(); } else { toolTip1.Show("Escriba solo numeros", txtPracticas, 3000); txtPracticas.Focus(); txtPracticas.SelectAll(); } } else { toolTip1.Show("Escriba solo numeros", txtExposiciones, 3000); txtExposiciones.Focus(); txtExposiciones.SelectAll(); } } else { toolTip1.Show("Escriba solo numeros", txtTeorico, 3000); txtTeorico.Focus(); txtTeorico.SelectAll(); } } else { toolTip1.Show("Escriba solo numeros", txtPractico, 3000); txtPractico.Focus(); txtPractico.SelectAll(); }

14

Programacin Unidad II.- Herencia y Polimorfismo


Herencia: cundo una propiedad hereda caractersticas de otro objeto del que procede.
Mamiferos Propiedades Mtodos +color de ojos +color de pelo Correr() Caminar() Dormir()

Propiedades Mtodos

Gato Maullar

Herencia
La herencia es un mecanismo de la programacin orientada a objetos que permite construir una clase incorporando de manera implcita todas las caractersticas de una clase previamente excitante la nueva clase que se define se denomina clase derivada y la clase de la que se hereda se llama clase base. Sintaxis class { } ClaseDerivada : ClaseBase

Polimorfismo
poli
muchas rea Es el tercer pilar de la programacin orientada a objetos que significa con muchas formas. Las clase base pueden definir el implementar mtodos o propiedades virtuales y las clases derivadas pueden invalidarlos, lo que significa que proporciona su propia definicin e implementacin.

morfismo
formas

15

Programacin
VII. Venta de Persianas
Una tienda se dedica a la venta de persianas y requiere un programa que les permita dar cotizaciones a los clientes para cotizar una persiana solicitan al cliente las dimensiones el costo por metro cuadrado es de $149.00. La tienda vende 2 tipos de persianas: HORIZONTALES O VERTICALES y el costo de las persianas verticales es 10% ms alto que el de las persianas horizontales. Adems de sus ventas locales la tienda realiza ventas a travs de internet incluyendo en el costo los gastos de envi. El proveedor del servicio de envos de la tienda le cobran $100.00 por cada 5 kg y $10.00 por el kg excedente en sus envos (en 5.6 kg cobrara 6 kg). Se sabe que cada metro cuadrado de persianas tiene un peso de 1200g. Venta Local + Largo: float + Ancho: float + Tipo de persiana: string + : float + Total: decimal

VIRTUAL

utilizado para heredar una propiedad principal

Venta Internet + Peso: float + Gastos de envi: decimal + Total: decimal

Polimorfismo

OVERRAID

utilizado para heredar la propiedad determinada

Herramientas
From3
MENUSTRIP1

Venta Local
frmlocal vl = new frmlocal(); vl.Show();

Venta Internet
frminternet vi = new frminternet(); vi.Show();

Salir
Close();

16

Programacin

Clase From1
class Local { private float Largo; public float MyLargo { // sintaxis } private float Ancho; public float MyAncho { // sintaxis } private string Persiana; public string MyPersiana { // sintaxis } public float MyMetros { get { return Ancho * Largo; } } public virtual decimal MyTotal { get { if (MyPersiana == "Horizontal" ) { decimal subtotal = (decimal) (MyMetros) * 149 * .10m; return (decimal )(MyMetros) *149m + subtotal ; } else { return (decimal)(MyMetros) * 149; } } } }

Clase From2
class Internet : Local { public float MyPeso { get { return MyMetros * 1.2f; } } public decimal MyGastos { get { if (MyPeso <= 5) { return 100; } else { double excedente = Math.Ceiling(MyPeso - 5); return (decimal)(excedente)*10+100; } } } public override decimal MyTotal { get { return base.MyTotal+MyGastos; } } }

17

Programacin
VIII. Viajes
Una empresa ofrece viajes a la ciudad de Mxico con un costo de $300.00 por persona entre semana y $450.00 los fines de semana. La empresa realiza un 10% de descuento a sus clientes frecuentes solamente en viajes de fines de semana. Si el cliente desea un viaje de ms de un da, la empresa cobra un 20% adicional diario por el viaje. Realizar un programa que permita calcular el costo total a pagar para viajes de uno o de varios das a partir del nmero de boletos y la fecha de viaje. Viaje Corto + + + + + + Fecha Salida: DateTime Nmero de Boletos: byte Cliente Frecuente: bool Subtotal: decimal Descuento: decimal Costo Total: decimal
VIRTUAL

utilizado para heredar una propiedad principal

Viaje Largo + + + Fecha Llegada: DateTime Das: byte Costo Total: decimal

Polimorfismo

OVERRAID

utilizado para heredar la propiedad determinada

Clase From1
class ViajeCorto { private bool ClienteFrecuente; public bool MyClienteFrecuente { // sintaxis } private byte NumBoletos; public byte MyNumBoletos { // sintaxis } private DateTime fechaSalida; //DateTime: tiempo segun la computadora public DateTime MyFechaSalida { get { return fechaSalida; } set { //DateTime "Now.Date" para solo pedir la fecha y no la hora :) if (value > DateTime.Now.Date) { fechaSalida = value; } else { throw new ApplicationException("Fecha incorrecta"); } } }

18

Programacin
public decimal MySubtotal { get { //DayOfweek: para manejar cierto dia en especifico if (fechaSalida.DayOfWeek == DayOfWeek.Saturday || fechaSalida.DayOfWeek == DayOfWeek.Sunday) { return NumBoletos * 450; } else { return NumBoletos * 300; } } } public decimal MyDescuento { get { if (ClienteFrecuente &&(fechaSalida .DayOfWeek ==DayOfWeek .Saturday || fechaSalida .DayOfWeek ==DayOfWeek .Sunday )) { return MySubtotal * .10m; } else { return 0; } } } public virtual decimal MyTotal // virtual: para heredadar a una clase { get { return MySubtotal - MyDescuento; } }

Clase From2
class ViajeLargo : ViajeCorto { private DateTime fechaLlegada; public DateTime MyFechaLlegada { get { return fechaLlegada; } set { if (value < DateTime.Now.Date) { fechaLlegada = value; } else { throw new ApplicationException("Fecha incorrecta"); } } } public byte MyDias { //para calcular fechas TimeSpan get { TimeSpan lapso = fechaLlegada - MyFechaSalida; return (byte)lapso.Days; } } public override decimal MyTotal //override: propiedad heredada { get { return base.MyTotal*MyDias *.20m; } } }

19

Programacin
IX. Saln de eventos
Un saln de eventos brinda sus servicios para fiestas infantiles. El saln ofrece dos paquetes a elegir. El paquete base tiene un costo de $350 por hora (renta mnima de 2 horas). Incluye juegos en saln y servicio de limpieza al final del evento. El paquete tiene un descuento de 10% a escuelas. El paquete completo tiene un costo tiene un costo de $550 (renta mnima de 3 horas y por promocin la primera hora es gratis). Tiene un descuento de 10% a escuelas. Incluye mobiliario y mantelera adems de juegos en el saln y el servicio de limpieza. Proporciona tambin servicios de meseros con un costo adicional de $100 por cada mesero que se desee. Crear un programa que permita calcular el costo de la renta del saln en cualquiera de sus 2 paquetes. Paquete Bsico + Horas: byte + Escuela: bool + Costo Hora: decimal + Subtotal: decimal + Descuento: decimal + Total: decimal

Paquete Completo + Costo Hora: decimal + Horas: byte + Meseros: byte + Subtotal: decimal + Total: decimal
public class PaqueteBasico { private byte horas; private byte Escuela; public bool myEscuela { get {return escuela;} set {escuela=value:} } public byte myHoras { get { return horas;} set{ if (value >= 2) {horas=value;} else { throw new ApplicationException (Renta minima 2 horas);} } public decimal costoHora { get { return 350;} } public decimal subtotal { get {return costoHora * costoTotal

20

Programacin
X. Transportes de Coahuila S.A
La empresa transportes de Coahuila S.A al realizar las ventas de sus boletos en cada una de sus 4 oficinas locales solicita los siguientes datos. Ciudad de origen y ciudad de destino (sabinas, nueva rosita, monterrey o monclova) Fecha de salida Nmeros de boletos Especificaciones de costos: De Nueva Rosita a Monclova: $160.00 De Sabinas a Monclova: $150.00 De Nueva Rosita a Monterrey: $360.00 De Sabinas a Monterrey: $350.00 Adems de la venta de viajes sencillos, la empresa vende el viaje redondo; de ser as se solicita tambin la fecha de regreso (no puede haber ms de tres meses de separacin entre ida y vuelta) y el costo del boleto redondo ser la suma de los costos de ida y regreso menos un 16% de descuento. La diferencia entre fecha de ida y vuelta no sea mayor a una semana para obtener el descuento. Crear una aplicacin que permita calcular el monto que debe pagar una persona al comprar boletos. Transportes de Coahuila + Cd. Origen: string + Cd. Destino: string + Fecha de Salida: Date time + Num. De boletos: byte + Total: Decimal

Viaje + + + +

Redondo Fecha de regreso: date time Subtotal: decimal Descuento: decimal Total: decimal

21

Programacin
XI. Anuncios en Guas Telefnicas
Una empresa que se dedica a la impresin de guas telefnicas maneja las siguientes tarifas para los comercios que desean anunciarse en su gua. Los anuncios se pueden realizar en negro o a color y los costos varan dependiendo del tamao del anuncio que se quiera publicar. Los precios que se cobran por los anuncios en negro son los siguientes: 1 Pgina $8000 anual Pgina $4000 anual Pgina $2000 anual

Los anuncios de color tienen un cargo extra del 20% por cada color de tinta que se utilice con un mximo de 5 tintas y un mnimo de una. Si los comercios contratan el anuncio por varios aos consecutivos se les ofrece un descuento 5% por ao adicional. Por polticas de la empresa, solo se puede contratar un anuncio con un periodo no mayor a los 5 aos. Crear las clases en C# necesarias para realizar la cotizacin de un anuncio dependiendo del tipo, el tamao y la cantidad de aos que se desea contratar el servicio. Anuncio Negro + Tamao: byte + Aos de contrato: byte + Subtotal: decimal + Descuento: decimal + Total: decimal

Anuncio Color + Cantidad de Tintas: byte + Subtotal: decimal + Descuento: decimal + Total: decimal

22

Programacin Unidad III.- Arreglos

Ciclos For
Sintaxis

Instrucciones o series de pasos que se repiten. Se utiliza para saber cuntas veces se quiere repetir un ciclo.

for (var=v1;var < vf; var++) { }

Ejemplo:
int suma=0; for (i=0; c; i ++) { suma +=i; }

suma 0 0 1 3 6 10

i 0 1 2 3 4 5

i<5 0<5? 1<5? 2<5? 3<5? 4<5? 5<5?

True True True True True False

iteracion 1 2 3 4 5 Se interrumpe

Iteracin

Las vueltas que dio el ciclo.

Ejercicio
Realizar una inspeccin a la siguiente propiedad e indica el valor que devuelve
Public int calcular {get { int contp=0; // inicializacion for (int i=1; i<21;i++) //incremento constante { if (i%2==0) { contp++; } return contp } } }
CONTADOR

23

Programacin

Acumulador

Suma multiplicacin

1- Inicializa antes del ciclo donde se usa 2- Incremento dentro del ciclo

Ejemplo:
Int suma=0 //inicializacin for (int i=0; i=5; i++) { Suma +=i, //incremento }

Contador
1. Inicializa antes del ciclo 2. Incremento constante en el ciclo
int contp=0; // inicializacion for(int i=1; i < 21; i++) // incremento constante { if (i % 2 == 0) { contp++ }

Contp 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10

I 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

I<21 1<21? True 2<21? True 3<21? True 4<21? True 5<21? True 6<21? True 7<21? True 8<21? True 9<21? True 10<21? True 11<21? True 12<21? True 13<21? True 14<21? True 15<21? True 16<21? True 17<21? True 18<21? True 19<21? True 20<21? True 21<21? False

I%2==0 1%2==0 2%2==0 3%2==0 4%2==0 5%2==0 6%2==0 7%2==0 8%2==0 9%2==0 10%2==0 11%2==0 12%2==0 13%2==0 14%2==0 15%2==0 16%2==0 17%2==0 18%2==0 19%2==0 20%2==0

24

Programacin

While

Mientras una condicin sea verdadera entra al ciclo y sale cuando la condicin sea falsa se sale.

While (condicin) { <accin(es)>; }

Public int calcular { get { int x=10; while (x>0) { x-=3; } return x; } }

X 10 7 4 1 -2

X>0? 10>0? True 07>0? True 04>0? True 01>0? True -2>0? False

Public int calcular { get { int x=10; while (x>0) { X++; } return x; } } }

X 10 11 12 13

X>0? 10>0? True

25

Programacin

Ciclo. Do While
XII.

Realiza la accin y si se cumple la condicin se repite y si no sale del ciclo.

Numero Factorial

Realizar un programa que permita calcular el factorial de un numero entero > 1.


Private byte Numero Public byte MyNumero { get { return { Numero = value; } Else { throw new applicationexcepcion(); } public int MyFactorialFor { get { int multiplicar = 1; for (int i = 1; i <= Numero; i++) { multiplicar *=1; } return multiplicar ; } } public int MyFactorialWhile { get { int multiplicar = 1; int i = 1; while (i <= Numero) { multiplicar *=i; i++; } return multiplicar; } } public int MyFactorialDoWhile { get { int multiplicar=1; int i=1; do while (1 <= Numero) { multiplicar *= i++; } while (1 <= Numero); return multiplicar ; } } Numero;} Set { if (value < 1)

4! 4*3*2*1 1*2*3*4

6*4=24

NumFac + Numero: byte + Factorial: int

Multiplicacin 1 1 2 6 24

I 1 2 3 4 5

26

Programacin Unidad III.- Arreglos


Un arreglo es una estructura de datos homognea es decir, almacena datos del mismo tipo. Existen arreglos unidimensionales (vectores) y bidimensionales (matrices) En el cual el programador puede introducir datos para hacer una estructura de datos ms variables y puede otorgarle un lmite, adems a cada dato se le asigna una direccin y para llamar se utiliza su propiedad y su direccin
Prvate byte Calif; Public byte MyCalif { Get{ return Calif;} Set{calif = value;} } Prvate byte Calif2; Public byte MyCalif2 { Get{ return Calif2;} Set{calif2 = value;} }

Calificaciones 100 90 80 100 100 Direccin 1 2 3 4 5

Pasos: 1.- Declarar <> tipo de dato [] nombreArreglo; Byte [] Calificaciones; 2.- Instanciar Nombre arreglo= new tipoDato[tamao]; Calificaciones= new byte[5] Calificaciones 0 90 80 100 100 Direccin 0 1 2 3 4 3.- Llenar el arreglo 4.-Mostrar

27

Programacin Recorrido de un arreglo


Recorrido: pasar por algn valor Length: que indica el nmero de elementos, y cambia automticamente. Random: genera un numero aleatorio Sintaxis
Int [] cals = new int [5] Random r = new Random (); for(int i<0; i<vector.Length; i++) { Cals [i]=r.next(101) } Int i=0 While(i<vector.length) { Cals [i]=r.next(101) I++ } Int I = 0 Do { //condicion Cals [i]=r.next(101) I++ } While (i<vector.length)

Int [] cals = new int [5] Cals[0]=50; Cals[1]=90; Cals[2]=100; Cals[3]=75; Cals[4]=80; Public void llenar (int[]vector) { for(int i<0; i<vector.Length; i++) { //Cals [i]=r.next(101) }

28

Programacin
XIII. Arreglo
Crear un mtodo que regrese un arreglo de nmeros enteros con 5 posiciones, llenos de nmeros al azar entre 1 y 10
<modificador> <tipoRetorno> Nombre Mtodo ();
public int[] LlenarSubindice() { Random r=new Random(); Int [] Arreglo = new int[5] // corchetes para rellenar el numero de espacios que necesitaremos Arreglo [0] = r.Next(1,11); Arreglo [1] = r.Next(1,11); Arreglo [2] = r.Next(1,11); Arreglo [3] = r.Next(1,11); Arreglo [4] = r.Next(1,11); return Arreglo; } public int[] LlenarArregloAzar(int[] arreglo) { Random r= new Random(); Int[]Arreglo=new int[5] For (int subindice = 0; subindice <Arreglo.Length; subindice++) { Arreglo [subindice]= r. Next(1,11); } return Arreglo }

XIV. TAMAO
Un mtodo que reciba un numero entero que represente el tamao de un arreglo y que regrese un arreglo de enteros de tamao solicitado, lleno de nmeros al azar entre 0 y 100
public int[] LlenarFor(int tamao) { Random r = new Random(); int [] Arreglo = new int [tamao]; for (int subindice = 0 ; subindice < Arreglo.Length ; subindice ++) { Arreglo [subindice] = r.Next (0, 101); } return Arreglo; } public int[] LlenarWhile(int tamao) { Random r = new Random(); int [] Arreglo = new int [tamao]; int subindice = 0; while (subindice< Arreglo.Length) { Arreglo[subindice] = r.Next(0, 101); subindice++; } return Arreglo; }

29

Programacin
XV. Llenar Nmeros Azar
Crear un mtodo que reciba un arreglo de enteros de cualquier longitud y lo llene de nmeros al azar entre 0 y 100

If (arreglo [subndice]==0)

Clase public int[] LlenarArregloAzar(int[] arreglo) { Random r= new Random(); Int[]arreglo=new int[5] For (int i= 0; i <arreglo.Length; i++) { arreglo [i]= r. Next(1,11); } return arreglo } public int[] ContarCeros(int[] arreglo) { int contador = 0; //inicializar contador for (int i=0;i <arreglo.Length; i++) { if (arreglo[i]==0) {contador ++;} } return contador; } public int contarCerosForeach(int[]arreglo) { int contador=0 foreach (int numero in arreglo) { if (numero==0) {contador++;} } return contador; } } Instanciar arreglo a = new arreglo(); int[]arreglo; //declarar el arreglo

Tamao Arreglo lstArreglo

Llenar

Contar

btnLlenar
{ Arreglo=new int [int.Parse(txtTamaoArrgelo.Text)];//intsanciar el arreglo lstArreglo.DataSource=nell; lstArreglo.DataSource=a.LlenarArregloAzar(arreglo) }

btnContar
{ messageBox.Show( Hay + a.ContarCeros(arreglo).ToString()); }

30

Programacin
Crear un mtodo que reciba un arreglo de enteros y regrese el nmeros de 0 que se encuentre dentro del arreglo.

If (arreglo [subndice]==0)

Clase public int[] LlenarArregloAzar(int[] arreglo) { Random r= new Random(); Int[]Arreglo=new int[5] For (int subindice = 0; subindice <Arreglo.Length; subindice++) { Arreglo [subindice]= r. Next(1,11); } return Arreglo }

Instanciar

Foreach
Sintaxis Foreach (tipoDatoColeccion numVar in Coleccin) { }
Public int contarCerosForeach(int[]arreglo) { Int contador=0 Foreach (int numero in arreglo) { If (numero==0) {contador++;} } Return contador; }

31

Programacin
Crear un mtodo que reciba un numero entero que represente el tamao de un arreglo y que regrese un arreglo de enteros del tamao solicitado lleno de nmeros al azar entre 0 y 100. Crear un mtodo que reciba un arreglo lleno de enteros y un numero entero y que indique si el numero se encuentra contenido dentro del arreglo Crear un mtodo que reciba un arreglo de enteros y un valor entero x, que regrese el nmero de veces que se repite el valor de x en el arreglo. Crear un mtodo que reciba un arreglo de enteros de cualquier longitud y lo llene de nmeros al azar entre 1 y 100 donde ningn numero se repita. Lanzar una excepcin si el tamao del arreglo excede a 100 posiciones.

32

You might also like