martes, 16 de junio de 2009

unidad 2 extraordinario

SUPONGA QUE CIERTA OFICINA CATASTRAL DE CIERTA CIUDAD, ESTA LLEVANDO A CABO UNA INVESTIGACION SOBRE LAS LICENCIAS QUE ESTE ORGANISMO EXPIDE. CADA USUARIO DEBE LLENAR UN CUESTIONARIO QUE TENGA LA SIGUIENTE FORMA:

ASUNTO CODIGO DE RESPUESTA

TIPO DE LICENCIA 1 CORREDOR
2 VENDEDOR

DIRECCION 20 CIUDADES CODIFICADAS DE 1 A 20

EDAD AÑOS DE EDAD

SEXO 1 MASCULINO
2 FEMENINO

EDUCACION 1 PRIMARIA INCOMPLETA
2 PRIMARIA
3 SECUNDARIA
4 PREPARATORIA
5 UNIVERSIDAD

DESARROLLE UN PROGRAMA QUE FORME UNA CLASE USUARIO Y LO ALMACENE EN UN ARREGLO DE DIMENSION N, DONDE DEBE ANALIZAR LOS CUESTIONARIOS Y CALCULAR LO SIGUIENTE:

A)PORCENTAJE DE CORREDORES Y DE VENDEDORES
TAMBIEN DEBEN CALCULARSE LOS SIGUIENTES DATOS EN FORMA SEPARADA PARA AMBOS TIPOS DE LICENCIA.
A)NUMERO DE CUESTIONARIO POR CIUDAD
B)EDAD PROMEDIO
C)PORCENTAJE DE HOMBRES Y MUJERES.

domingo, 14 de junio de 2009

unidad 1 extraordinario

1.-DADO UN ARREGLO X DE N ELEMENTOS REALES, DONDE N ES IMPAR, DISEÑE UN PROGRAMA PARA CALCULAR LA MEDIANA DE ESTE ARREGLO. LA MEDIANA SE DEFINE COMO EL VALOR MAYOR QUE LA MITAD DE LOS NUMEROS Y MENOR QUE LA OTRA MITAD. POR EJEMPLO EN EL SIGUIENTE ARREGLO:
X1 X2 X3 X4 X5 X6 X7 X8 X9
17 -3 21 2 9 -4 6 8 11
QUE ESTA COMPUESTO DE NUEVE ELEMENTOS, EL PROGRAMA DEBE ENCONTRAR QUE LA SOLUCION ES 8

unidad 4 extraordinario

LOS LIDERES DE DOS ORGANIZACIONES DE ESPIONAJE (LLAMADAS DE CONTROL Y KAOS) HAN DESCUBIERTO QUE ALGUNOS DE SUS EMPLEADOS ESTAN EN LAS NOMINAS DE PAGO DE AMBAS INSTITUCIONES. VA A REALIZARSE UNA REUNION SECRETA DE LOS EMPLEADOS LEALES A CONTROL Y KAOS ( O SEA, SE EXCLUIRA A AQUELLOS QUE SE ENCUENTREN EN AMBAS NOMINAS DE PAGO) PARA DETERMINAR LAS POLITICAS DE ACCION EN CONTRA DE LOS AGENTES DOBLE. DISEÑE UN PROGRAMA QUE REALICE LA SIGUIENTE TAREA. DEBE DE LEER DOS LISTASDE NOMBRES ORDENADAS ALFABETICAMENTE Y ALMACENARLAR EN DOS ARCHIVOS UNO LLAMADO KAOS.DAT Y CONTROL.DAT. DEBE DESPLEGAR LAS DOS LISTAS E IMPRIMIR EN UN TERCER ARCHIVO LOS NOMBRES DE LOS AGENTES QUE SERAN INVITADOS ORDENADOS

unidad 3 extraordinario

1.-Crear una clase base llamada Círculo que tenga un miembro dato llamado radio. Los miembros debe ser un constructor y un método para calcular el área del circulo y una clase derivada llamada Esfera desde la clase base Círculo. Además , sus únicos miembros adicionales deberán ser un constructor y un método llamado Calcval() que devuelva el volumen de la esfera.(volumen = 4/3 PI radio3 ). Haga un programa funcional para probar estas clases.


2.-Crear una clase base, denominada Rectángulo, que contenga los miembros correspondientes a largo y ancho. De esta clase derive la clase Caja que tiene un miembro adicional de datos llamado fondo. Los miembros función de la clase base Rectángulo deben contener un constructor, el método área y el método perímetro. La clase derivada debe tener un constructor, un método volumen y el método área, que devuelve el área de la superficie de la caja .
Incluya la clase construida en un programa funcional. Haga que el programa llame a todas los métodos en cada clase .
volumen = (largo * ancho) *fondo Area = 4(largo * ancho) + 2(fondo*fondo)

miércoles, 10 de junio de 2009

Ejemplo BinaryReader

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace Aplicacion_archivo_binario_2
{
class Program
{
static void Main(string[] args)
{
BinaryReader br = null;
try
{
if (File.Exists("d:\\datos\\empleados.dat"))
{
br = new BinaryReader(new FileStream("d:\\datos\\empleados.dat", FileMode.Open, FileAccess.Read));
string nombre;
int ide;
int ciudad;
Console.WriteLine("Listado de alumnos ");
Console.WriteLine(" No Empleado Nombre Empleado Ciudad ");
do
{
ide = br.ReadInt32();
nombre = br.ReadString();
ciudad = br.ReadInt32();
Console.WriteLine("\t{0}\t{1}\t\t{2}", ide, nombre, ciudad);
}
while (true);
}
else
Console.WriteLine("no existe archivo");
}
catch (EndOfStreamException)
{
Console.WriteLine("fin de archivo ");
}
finally
{
if (br != null) br.Close();
}

Console.ReadKey();
}
}
}

Ejemplo de BinaryWriter

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;


namespace Aplicacion_Consola_Archivos_Binarios
{
class Program
{
static void Main(string[] args)
{
BinaryWriter bw = null;
char resp;
try
{
bw=new BinaryWriter(new FileStream("d:\\datos\\empleados.dat",FileMode.Create,FileAccess.Write));

int ide;
string nombre;
int ciudad;

do
{
Console.Write("Numero de empleado : ");
ide=int.Parse(Console.ReadLine());
Console.Write("Nombre Empleado : ");
nombre=Console.ReadLine();
Console.Write(" Ciudad : ");
ciudad=int.Parse(Console.ReadLine());
bw.Write(ide);
bw.Write(nombre);
bw.Write(ciudad);
Console.Write(" Deseas escribir otro registro (s/n): ");
resp=(char)Console.Read();
Console.ReadLine();
}
while(resp=='s' || resp =='S');
}
finally
{
if(bw !=null) bw.Close();
}


}
}
}

Flujo de datos de tipos primitivos

En la mayoria de las aplicaciones se requiere escribir un archivo de datos para datos:
bool,byte, double, float, long , int, short...etc , no solo cadena de caracteres, en formato binario.
En C# la clase BinaryReader Y BinaryWriter , que permiten leer y escribir, respectivamente, datos de cualquuier tipo en formato binario y cadena de caracteres en formato UTF-8.

BinaryWriter
Un flujo de la clase BinaryWriter permite a una aplicación escribir datos de cualquier tipo primitivo.
El siguiente contructor abre un flujo de salida (escribir) hacia el archivo unido a otro flujo de la clase Stream o de sus derivadas.


BynaryWriter (Stream flujo)

Ejemplo

FileStream fs=new FileStream("d:\\datos\elementos.dat", FileMode.Create, FileAccess.Write);

BinaryWriter bw=new BinaryWriter(fs);

Un programa almacena datos en la unidad d subdirectorio datos y el archivo elementos
escribirá datos en el flujo bw y esta conectado al flujo fs abierto hacia ese archivo.

Metodos para BynaryWriter

Write(byte) Escribe un valor tipo byte.
Write(Bytes[])Escribe una arreglo de bytes.
Write(char) Escribe un valor tipo char
Write(char []) Escribe una arreglo o cadena de caracteres
Write(short) Escribe un valor de tipo short
Write(int )Escribe un valor de tipo int
Write(long) Escribe un valor tipo long
Write(Decimal)Escribe un valor de tipo decimal
Write(float) Escribe un valor de tipo float
Write(double) Escribe un valor de tipo float
Write(string) Escribe una cadena de caracteres en formato UTF-8
BaseStream Obtiene el flujo subyacente
Close Cierra el flujo y libera los recursos adquiridos
Flush Limpia el buffer asociado con el flujo enviando su contenido a éste
Seek Establece el apuntador en el flujo

BinaryReader

Un flujo de la clase BinaryReader , permite a una aplicación leer datos de cualquier tipo primitivo .

El siguiente constructor abre un flujo de entrada(leer) desde el archivo unido a otro flujo de la clase Stream

BinaryReader( Stream Flujo)

Ejemplo:

FileStream fs=new FileStream("d:\\datos\\elementos.dat", FileMode.Open, FileAccess.Read);

BinaryReader br=new BinaryReader(fs);

Métodos más utilizados de la clase BinaryReader

ReadByte Devuelve un valor de tipo byte
ReadBytes Devuelve un valor de tipo byte[]
ReadChar Devuelve un valor de tipo char
ReadChars Devuelve un valor de tipo char[]
ReadInt16 Devuelve un valor de tipo short
ReadInt32 Devuelve un valr de tipo int
ReadInt64 Devuelve un valor de tipo long
ReadDecimal Devuelve un valor tipo Decimal
ReadSingle Devuelve un valor de tipo float
ReadDouble Devuelve un valor de tipo double
ReadString Devuelve una cadena de caracteres en formato UTF-8

BaseStream Obtiene el flujo subyacente
Close Cierra el flujo y libera los recursos adquiridos
PeekChar Obtiene el siguiente carácter sin extraerlo

Pasos para escribir datos en un archivo
1)Definir un flujo hacia el archivo donde se desea almacenar los datos
2)Lectura de datos del dispositivo de entrada y escribimos en el archivo.Este proceso se hace mientrar existan datos a almacenar
3)cerrar el flujo


Pasos para leer datos de un archivo existente

1)Abrir un flujo desde el archivo del cual se desea leer los datos
2)Leer los datos del archivo y almacenarlos en variables de nuestros programa con el objetivo de trabajar con ellos. Este proceso se hace mientras existan datos a leer.
3)Cerrar flujo

lunes, 8 de junio de 2009

Ejemplo de lectura de archivo texto

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace Aplicacion_consola_archivo_texto_leer
{
class Program
{
static void Main(string[] args)
{
StreamReader Fr = null;
string cadena;
try
{
Fr = new StreamReader("d:\\datos\\archivo1.txt");
cadena = Fr.ReadLine();
while (cadena != null)
{
Console.WriteLine(cadena);
cadena = Fr.ReadLine();
}
}
catch (IOException e)
{
Console.WriteLine("Error: {0}", e.Message);
}
finally
{
if (Fr != null) Fr.Close();
}


Console.ReadKey();


}
}
}

Ejemplo Escribir un archivo texto

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace Aplicacion_consola_archivo_texto
{
class Program
{
static void Main(string[] args)
{
StreamWriter fw = null;
string cadena;
try
{
fw=new StreamWriter("d:\\datos\\archivo1.txt");
Console.WriteLine("Escriba las lineas de texto a almacenar en el archivo");
Console.WriteLine("Para finalizar cada linea presione enter");
Console.WriteLine("Para terminar solo presione enter en la nueva linea");
cadena=Console.ReadLine();
while(cadena.Length != 0)
{fw.WriteLine(cadena);
cadena=Console.ReadLine();
}
}
catch(IOException e)
{
Console.WriteLine("Error : {0}",e.Message);
}
finally{
if(fw !=null)
{
fw.Close();
}
}
Console.ReadKey();
}
}
}

Clase FileStream

La clase FileStream puede leer o escribir datos de un archivo byte a byte.
Esta clase hereda los métodos de la clase Stream

FileStream(string nombre, FileMode modo)

Este constructor abre un flujo de entrada y salida(leer y escribir) vinculado con el archivo especificado por nombre.

FileStream(string nombre, FileMode modo, FileAccess acceso)

Es similar al primer constructor , pero permite especificar el tipo de acceso(leer, escribir, o leer y escribir)

El nombre es una cadena de caracteres que especifica la ruta donde esta almacenado o se almacenará el archivo.

Esta cadena puede escribirse de dos formas
1) "C:\\datos\\Historial.txt"
2) @""C:\\datos\\Historial.txt"

el parametro modo, del tipo enumerado FileMode, puede tomar uno de los valores siguientes:

CreateNew Crear un nuevo archivo. Si el archivo existe se lanzará una excepción del tipo IOException.

Truncate Abrir un archivo existente. Una vez abierto, sera truncado a cero bytes.

Create Crear un nuevo archivo. Si el archivo existe será sobreescrito.

Open Abrir un archivo existente. Si el archivo no existe se lanzara una excepción del tipo FileNotFoundException.

OpenOrCreate Abrir un archivo si existe, si no , se crea un nuevo archivo.

Append abrir un archivo para añadir datos al final del mismo si existe, o crear un nuevo archivo si no existe.

El parámetro acceso, del tipo enumerado FileAccess puede tomar uno de estos valores:

Read Permite accesar el archivo para realizar la operación de lectura.

Write Permite accesar el archivo para realizar la operación de escritura.

ReadWrite Permite accesar al archivo para realizar la operación de lectura y escritura.


Ejemplo

FileStream F1=new FileStream("D:\\datos\\Listado.Txt",FileMode.Create, FileAccess.Write);

Ejemplo uno de archivos

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace AplicacionArchivo1
{
class Program
{
static void Main(string[] args)
{
string nameFile;
Console.WriteLine("Introduce el nombre del archivo y su trayectoria");
nameFile = Console.ReadLine();

if (File.Exists(nameFile))
{

Console.WriteLine(" Si existe archivo ");
Console.WriteLine("Su creacion fue : {0}", File.GetCreationTime(nameFile));
Console.WriteLine("Su ultimo Modificación fue :{0}", File.GetLastWriteTime(nameFile));
try
{
StreamReader F1 = new StreamReader(nameFile);
Console.WriteLine(F1.ReadToEnd());
}
catch (IOException)
{
Console.WriteLine("error al leer el archivo ");
}
}
else{
if(Directory.Exists(nameFile))
{
string[] listaDirectorios;
listaDirectorios = Directory.GetDirectories(nameFile);
Console.WriteLine("Informacion directorio ");
for (int I = 0; I < listaDirectorios.Length; I++)
{
Console.WriteLine(listaDirectorios[I] + "\r\t");
}
}
else
Console.WriteLine("no existe "+nameFile);
}
Console.ReadLine();

}


}
}

Flujos

Un archivo es un conjunto de datos que se almacenan bajo un nombre y se almacenan en dispositivos secundarios(disco duro, disco flexible, cinta magnetica, etc..)

La comunicación entre un programa y los datos se realiza mediante un flujo de datos (stream) este es un objeto intermediario entre el programa y los datos.

El flujo de datos es una ruta en un sentido para comunicar los datos que estan almacenados en un dispositivo secundaria y el programa.

Cuando el programa necesita datos de entrada almacenados en un unidad de disco, recibe el nombre de flujo de entrada.

Cuando el programa necesita almacenar datos en un dispositivo secunadario , recibe el nombre de flujo de salida.

Para poder realizar la flujo de entrada(el programa lee datos de un archivo y los lleva a la memoria primaria) se realiza el siguiente procedimiento:
1)abrir un flujo desde un archivo
2)mientras exista información, leer datos
3)Cerrar el flujo

Para poder realizar el flujo de salida(el programa escribe datos en el archivo)
a)abrir un flujo hacia un archivo
b)Mientras exista datos , para almacenar , escribir la información
c)Cerrar el flujo.

En C# el espacio de nombres System.IO contiene un conjunto de clases que sirven para leer y escribir datos en el archivo.
La clase FileStream subclase de Stream permite leer o escribir datos a un archivo byte a byte.
La clase StreamReader y StreamWriter subclases de TextReader y TextWriter permite leer y escribir texto a un archivo y las clases BinaryReader y BinaryWriter permite leer y escribir datos de cualquier tipo primitivo en binario y cadena de caracteres

La información que se almacena en archivos, y que se organizan en directorios pueden utilizar la clase File y Directory permiten a los programas manejan archivos y directorios en el disco.

La clase File puede verificar información de los archivos y puede hacer las operaciones de lectura y escritura de archivos.

Metodos static de la clase File

AppendText Devuelve u objeto StreamWriter que agrega texto a un archivo que ya existe, o lo crea sino existe.

Copy Copia un archivo a un archivo nuevo.

Create Crea un archivo y devuelve su objeto FileStream asociado.

CreateText Crea un archivo texto y devuelve su objeto StreamWritee asociado

Delete Elimina un archivo especifico

Exist Devuelve true si el archivo especificado existe y false en caso contrario

GetCreationTime Devuelve un objeto DateTime que representa la fecha y hora en la que se creó el archivo.

GetLastAccessTime Devuelve un objeto DateTime que representa la fecha y hora del último acceso al archivo.

GetLastWriteTime Devuelve un objeto DateTime que representa la fecha y hora de la última modificación del archivo.

Move Mueve el archivo especificado a una ubicación especifica

Open Devuelve un objeto FileStream asociado con el archivo especificado y equipado con los permisos de lectura y escritura especificados.

OpenRead Devuelve un objeto FileStream de solo lectura, asociado con el archivo especificado.

OpenText Devuelve un objeto StreamReader asociado con el archivo especificado.

OpenWrite Devuelve un objeto FileStream de lectura y escritura, asociado con el archivo especificado.




Clase Directory y sus métodos static

CreateDirectory Crea un directorio y devuelve su objeto DirectoryInfo asociado.

Delete Elimina el directorio especificado.

Exists Devuelve true si existe el directorio especificado y false en caso contrario

GetDirectories Devuelve un arreglo string que contiene los nombres de los archivos en el directorio especificado.

GetFiles Devuelve un arreglo string que contiene los nombres de los archivos en el directorio especifico.

GetCreationTime Devuelve un objeto DateTime que representa la fecha y hora de creación del directorio.

GetLastAccessTime Devuelve un objeto DateTime que representa la fecha y hora del último acceso al directorio.

GetLastWriteTime Devuelve un objeto DateTime que representa la fecha y hora en que se escribieron los últimos elementos en el directorio.

Move Mueve el directorio especificado a una ubicación especifica

martes, 26 de mayo de 2009

Practica 17 y 18

Practica 17
Hacer un programa que utilice la clase Array y ArrayList

Practica 18
Hacer una libreria DLL y agregarla a un programa

domingo, 24 de mayo de 2009

Ejemplo base generica 2

using System;
using System.Collections.Generic;
using System.Text;

namespace aplicacion_generico_2
{
class ArregloUni
{

T [] elementos;
public ArregloUni(int n)
{
elementos = new T [n];
}
public void asignarDato(int i, T x)
{
elementos[i] = x;
}
public T obtener(int i)
{
return elementos[i];
}
public T [] elem
{
get { return elementos; }
set { elementos = value; }
}



}
}

using System;
using System.Collections.Generic;
using System.Text;

namespace aplicacion_generico_2
{
class Program
{
static void Main(string[] args)
{
int n,i,dato;
Console.Write("Introduce la cantidad de datos : ");
n = int.Parse(Console.ReadLine());
ArregloUni A = new ArregloUni(n);
Console.WriteLine("introduce los siguientes datos ");
for (i = 0; i < n; i++)
{
Console.Write(" Dato {0}:", i + 1);
dato = int.Parse(Console.ReadLine());
A.asignarDato(i, dato);
}
int mayor = A.elem[0];
for (i = 0; i < n; i++)
{
if (A.elem[i] > mayor)
{
mayor = A.elem[i];
}
}
Console.WriteLine(" el dato mayor es {0}", mayor);
Console.ReadKey();
}
}
}

Ejemplo clase generica

using System;
using System.Collections.Generic;
using System.Text;

namespace Aplicacion_consola_generica_1
{
class arregloUni
{
object [] elementos;
public arregloUni(int n)
{
elementos = new object[n];
}
public void asignarDato(int i, object x)
{
elementos[i] = x;
}
public object obtener(int i)
{
return elementos[i];
}
public object[] elem
{
get { return elementos; }
set { elementos = value; }
}



}
}
using System;
using System.Collections.Generic;
using System.Text;

namespace Aplicacion_consola_generica_1
{
class Program
{
static void Main(string[] args)
{

int i,dato;
Console.Write("Introduce la cantidad de datos ");
int n=int.Parse(Console.ReadLine());
arregloUni A = new arregloUni(n);
Console.WriteLine("Introduce los siguientes datos ");
for (i = 0; i < n; i++)
{
Console.Write(" dato {0}: ", i + 1);
dato = int.Parse(Console.ReadLine());
A.asignarDato(i, (int)dato);
}
int mayor = (int)A.elem[0];
for (i = 1; i < n; i++)
{
if ((int)A.elem[i] > mayor)
{
mayor = (int)A.elem[i];
}
}
Console.WriteLine("El dato mayor es {0} ", mayor);
Console.ReadKey();

}
}
}

martes, 12 de mayo de 2009

Ejemplo del programa empleado

ejemplo IComparable

using System;
using System.Collections.Generic;
using System.Text;


namespace Aplicacion_Empleados
{
class empleado:IComparable
{
public int CompareTo(object obj)
{
empleado e1 = obj as empleado;
if(e1==null)

{
return 0;
}
return numero_empleado.CompareTo(e1.numero_empleado);
}



string nombreEmpleado;
int ciudad;
int numero_empleado;
int m;
public empleado(string name, int city, int number)
{
nombreEmpleado = name;
ciudad = city;
numero_empleado = number;
m=0;
}
public empleado()
{
nombreEmpleado = " ";
ciudad = 0;
numero_empleado = 0;
}





public string NombreEmpleado
{
get { return nombreEmpleado; }
set { nombreEmpleado = value; }
}
public int Ciudad
{
get { return ciudad; }
set { ciudad = value; }
}
public int Numero_Empleado
{
get { return numero_empleado; }
set { numero_empleado = value; }
}

}

}
_________________________________________________________________________________


using System;
using System.Collections.Generic;
using System.Text;

namespace Aplicacion_Empleados
{
class Program
{
static void Main(string[] args)
{
string []ciudades={"Tijuana","Ensenada","Mexicali","Monterrey, NL","Guadalajara, Jal "};
empleado e1;
int n,i,j;
Console.Write("Introduce la cantidad de empleados : ");
n = int.Parse(Console.ReadLine());
empleado[] empresa = new empleado[n];
for (i = 0; i < n; i++)
{
Console.Clear();
Console.WriteLine("Introduzca los siguientes datos ");
e1 = new empleado();
Console.Write("\nNombre de Empleado : ");
e1.NombreEmpleado = Console.ReadLine();
Console.Write("\n Numero de empleado : ");
e1.Numero_Empleado = int.Parse(Console.ReadLine());
Console.Write("\n Ciudad (1)Tijuana 2)Ensenada 3)Mexicali 4)Monterrey 5)Guadalajara : ");
e1.Ciudad = int.Parse(Console.ReadLine());
empresa[i] = e1;

}
Console.Clear();
Array.Sort(empresa);
Console.WriteLine("Listado de empleados por Ciudad");
Console.WriteLine(" Nombre Empleado Numero Empleado");
for(j=0;j<5;j++)
{
Console.WriteLine("\n\nCiudad : {0}",ciudades[j]);


foreach (empleado emp in empresa)
{
if( emp.Ciudad==j+1)
Console.WriteLine("{0,30} {1,5}",emp.NombreEmpleado,emp.Numero_Empleado);
}

}
Console.ReadLine();


}
}
}

jueves, 7 de mayo de 2009

practica 16

Considere una interface llamada Figura que contenga los métodos área() que entrega el valor de doble precision de una área de un figura geométrica, otro método llamado volumen que entrega un valor doble precision para calcular el volumen de una figura y un método que entrega un string llamado obtenerNombre() que entrega el nombre de una figura.
Crear una clase base llamada punto, que contenga las coordenads X y Y. De esta clase derive otra llamada Circulo que contenga un miembro adicional de datos llamado radio. Para esta clase derivada los miembros X y Y representan las coordenads del centro de un círculo y que derive una clase llamada Cilindro a partir de la clase derivada Circulo y la interface figura para calcular el area del cilindro ( 2 PI r(largo + r) y el volumen del cilindro( PI *r*r *largo). Considere el dato adicional largo.
Haga un programa que llame a todos los métodos de la clase cilindro.

lunes, 27 de abril de 2009

Practica 15

Considere la practica de empleados(practica 7) e imprima el numero de empleado en orden ascendente.
utilize la interface IComparable para realizar el proceso de ordenamiento.

Anteproyecto

Debe enviar por correo electrónico el anteproyecto
debe considerar lo siguiente:
1)Hoja de presentación
2)Nombre del anteproyecto
3)Descripción del proyecto
4)Objetivo general del proyecto
5)Objetivos especificos del proyecto

domingo, 26 de abril de 2009

practica 14

Crear una clase llamada Punto, que consiste en las coordenadas X y Y. De esta clase derive otra llamada Círculo que contenga un miembro adicional de datos llamado radio. Para esta clase derivada los miembros de datos X y Y representan las coordenadas del centro de un Círculo. Los métodos de la primera clase debe constar de un constructor, un método area que devuelve cero y una de distancia que devuelve la distancia entre dos puntos, donde

distancia = sqrt((x2-x1)^2 + (y2-y1)^2)

además, la clase derivada debe tener un constructor y modificar el método área, que devuelve el área de un círculo.
Haga que el programa llame a todos los métodos en cada clase. Además, llame al método distancia de la clase base con dos objetos Círculo y explique el resultado que devuelve el método.

practica 13

Hacer el primer ejemplo visto en clase de herencia.
Agregar a la clase derivada el método para calcular el producto, un método para el dato mayor ,un método para el dato menor y un método para el intervalo (diferencia del dato mayor y el dato menor. y modificar el método imprimir para desplegar los tres datos.

martes, 31 de marzo de 2009

practica 12

Crear una clase llamada racional para realizar aritmética con fracciones. Escriba un programa controlador para evaluar su clase.
Utilice variables enteras para representar los datos del numerador y el denominador. Proporcione un constructor que permita a un objeto de esta clase que se inicialice cuando se declare. El constructor debe contener valores predeterminados, en caso de que no se proporcionen inicializadores, y debe almacenar la fracción en su forma reducida.
Debe utilizar la sobrecarga de operadores para realizar la suma,resta,multiplicación y division de dos numeros racionales. El resultado debe almacenarse en forma reducida.

martes, 24 de marzo de 2009

Practica 11

Construya una clase que pueda utilizarse para representar a un empleado de una compañía .Cada empleado se define por un número de empleado, una tasa en punto flotante para pago por hora y un número máximo de horas que debe trabajar cada semana. Los servicios proporcionados por la clase deben tener la habilidad de introducir y cambiar datos y desplegar los ya existentes para un empleado nuevo.
Escriba un programa que incluya un menú que ofrezca al usuario las siguientes opciones:
1) Introducir un nuevo empleado
2) Modificar los datos de un empleado
3) Eliminar un empleado
4) Desplegar los datos de un empleado
5) Desplegar toda la información de los empleados.

Considere un arreglo que pueda almacenar 20 objetos de tipo empleado

los Eventos

Un evento es una acción que se puede manejar desde el código.
Estos eventos pueden ser
Por una acción del usuario. Por ejemplo pulsar cualquier tecla
Tambien puede ser un código del programa o del propio sistema.
Las aplicaciones controladas por eventos ejecutan cierto código en respuesta a diferentes eventos.
Los códigos estan en métodos llamados manejadores de eventos. Todos los controles tienen un conjunto de eventos y el método manejador de evento tiene código, este se ejecuta.

por ejemplo:

private void btAceptar_Click(object sender, EventArgs e)
{

}
Cada método manejador de eventos tiene los siguientes parametros:

sender es una referencia al objeto que lanzo el evento.Por ejemplo , si se pulsa un botón, sender es la referencia al botón que se pulso.

e es una referencia a un objeto de la clase EventArgs, que tiene información del evento.

Ejemplo para manipular el evento enter



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

namespace Aplicacion_wndows_2_Enter
{
public partial class Form1 : Form
{
Empleado[] empresa;
int i;
public Form1()
{ empresa=new Empleado[10];
i = 0;
InitializeComponent();
lbDesplegar.Items.Add(" No Empleado Nombre Ciudad ");

}

private void btAceptar_Click(object sender, EventArgs e)
{

if (i>=0 &&i < 10)
{


Empleado e1 = new Empleado(int.Parse(txtbNoEmpleado.Text), txtbNomEmp.Text, int.Parse(txtbCiudad.Text));
lbDesplegar.Items.Add("\t"+txtbNoEmpleado.Text + "\t" + txtbNomEmp.Text + "\t" + txtbCiudad.Text);


empresa[i] = e1;
i++;
}
else
{
txtbNoEmpleado.Enabled = false;
txtbCiudad.Enabled = false;
txtbNomEmp.Enabled = false;
btAceptar.Enabled = false;

}
txtbCiudad.Clear();
txtbNoEmpleado.Clear();
txtbNomEmp.Clear();
txtbNoEmpleado.Focus();


}

private void txtbNoEmpleado_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == Convert.ToChar(13))
{
txtbNomEmp.Focus();
}

}

private void txtbNomEmp_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == Convert.ToChar(13))
txtbCiudad.Focus();
}

private void txtbCiudad_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == Convert.ToChar(13))
{
btAceptar_Click(sender, e);
txtbCiudad.Clear();
txtbNoEmpleado.Clear();
txtbNomEmp.Clear();
txtbNoEmpleado.Focus();

}
}

private void txtbNoEmpleado_TextChanged(object sender, EventArgs e)
{

}

private void txtbNomEmp_TextChanged(object sender, EventArgs e)
{


}

private void txtbCiudad_TextChanged(object sender, EventArgs e)
{

}
}
}

martes, 17 de marzo de 2009

Practica 10

Elabore la clase CuentaAhorros. Utilice un dato miembro estático que contenga la tasaInteresAnual de cada uno de los ahorradores. Cada miembro de la clase debe contener un dato miembro privado saldoAhorro que indique el monto que el ahorrador tiene un depósito.Proporcione un método miembro ultimoInteresMensual que calcule el interés mensual al multiplicar el saldo por tasaInteresAnual dividida entre 12; este interés debe sumarse a saldoAhorro. Proporcione un método estático modificaTasaInteres que establezca el nuevo valor de tasaInteresAnual. Escriba un programa para generar n objetos cuentaAhorros con tasaInteresAnual en 3% , y almacene los datos en un arreglo llamado Clientes que almacena los n objetos CuentaAhorros,luego calcule el interés mensual e imprima los nuevos saldos para cada uno de los ahorradores.Despues modifique la tasaInteresAnual en 4% y calcule el interes del mes siguiente e imprima los nuevos saldos para cada uno de los ahorradores.

Practica 9

Haga un programa para simular el funcionamiento de un elevador, diseñe la clase elevador. Lo que se requiere es una salida de datos que describa el piso en el cual se halla estacionado el elevador o por el cual está pasando en ese momento y un botón de solicitud dentro del propio elevador que se oprime para solicitarle moverse a otro piso. El elevador puede viajar entre el piso uno y el quince del edificio en el cual está situado.
Considere un edificio con tres elevadores y el usuario sera atendido por el elevador más cercano a donde él se encuentra.

miércoles, 11 de marzo de 2009

PRACTICA 8

Construya una clase llamada Estudiante que consista en un número entero para identificación de estudiante, un arreglo unidimensional de cinco calificaciones en punto flotante y un numero entero que representa el número total de calificaciones introducidas. El constructor debe inicializar todos los datos miembro de estudiante en cero. Deben incluirse en la clase los siguientes metodos.
1)Introducir el número de identificación del estudiante, 2)introducir una calificacion unica de examen y actualizar el número total de calificaciones introducidas y 3) calcular una calificación promedio y desplegar la identificación del estudiante seguida por la calificación promedio.
Incluya la clase construida dentro del contexto de un programa completo. Declare tres objetos de tipo Estudiante, así como aceptar y declarar los datos para los tres objetos para verificar la operación de los métodos.

martes, 10 de marzo de 2009

Programación orientada a objetos

La programación orientada a objetos es un modelo de programación que utiliza objetos, unidos mediante mensajes, para la solución de problemas.

La definición de los objetos se realiza mediante una clase. Una clase contiene datos y métodos que actúan sobre estos datos.

Las clases son tipos de datos definidos por el usuario o por el sistema.

Que es la encapsulación?

significa introducir elementos (datos y metodos) en una clase, para controlar el acceso.

Control de acceso

a)Se considera un método o dato privado si es accesible sólo desde el interior de una clase. Para declarar que un método o dato es privado, se puede escribir la palabra reservada private antes de su declaración. Si el modificador de acceso esta ausente se considera privado.

b)Se considera que un método o dato es publico si es accesible tanto desde el interior como desde el exterior de la clase. Para declarar que un método o dato es público, se escribe la palabra reservada public antes de su declaración.

Considere el siguiente ejemplo:
Construya una clase llamada Estudiante que consista en un número entero para identificación de estudiante, un arreglo unidimensional de cinco calificaciones en punto flotante y un numero entero que representa el número total de calificaciones introducidas. El constructor debe inicializar todos los datos miembro de estudiante en cero. Deben incluirse en la clase los siguientes metodos.
1)Introducir el número de identificación del estudiante, 2)introducir una calificacion unica de examen y actualizar el número total de calificaciones introducidas y 3) calcular una calificación promedio y desplegar la identificación del estudiante seguida por la calificación promedio.
Incluya la clase construida dentro del contexto de un programa completo. Declare tres objetos de tipo Estudiante, así como aceptar y declarar los datos para los tres objetos para verificar la operación de los métodos.

lunes, 9 de marzo de 2009

Practica 7

Una gran empresa tiene plantas de cinco ciudades diferentes y un total de n empleados. A cada uno de éstos corresponde la siguiente información:
nombre del empleado, ciudad , número del empleado.

Esta información no se almacenan en orden. Suponiendo que el lugar de la ciudad es un código entero cuyos valores son de 1 a 5, y que la información concerniente a los empleados puede representar en una clase llamada empleado. Desarróllese un programa que ordene todos los objetos de los empleados de tal manera que se impriman por orden creciente del número de empleado para cada ciudad. Es decir, el formato deberá ser el siguiente:
Primera ciudad
numero empleado nombre
.
.
.
Segunda ciudad
.
.
.
Quinta ciudad
.
.

Practica 6

Desarrolle un programa que genere un informe anual de ventas. Este informe debe señalar las ventas mínimas de cada mes y del año completo. Cada operación de venta tiene el siguiente formato:
Número de la venta,monto de la venta
donde cada mes del año recibe un número del 1 al 12. No se conoce el número de datos de entrada, las que no se encuentrar ordenadas.

practica 5

Diseñe un programa para leer los elementos de un vector X y calcular el promedio y la variancia de los valores usando la fórmula para la variancia.
.............................. N
Varianza = 1/(N-1) ∑│(Xi – Xmedia)2│
.............................. i=1

practica 4

Escriba un programa que especifique tres arreglos unidimensionales denominados corriente, resistencia y voltios. Cada arreglo debe ser capaz de almacenar diez elementos. Introduzca valores para los arreglos corriente y resistencia. Los datos introducidos en el arreglo voltios deben ser el producto de los valores correspondientes en los arreglos corriente y resistencia ( entonces, voltios[i]=corriente[i]* resistencia[i]). Despues de introducir todos los datos, despliegue la siguiente salida:

corriente resistencia voltios

Despliegue el valor correcto debajo de cada encabezado de columna.

practica 2 y 3

Implementar en visual y consola

Practica 2
Considere las ventas semanales de un minisuper para 15 productos
e Imprima el día que tuvo mayor venta y el día de menor venta, y las ventas totales de la semana.

Practica 3
Considere dos semanas de ventas e imprima que semana se vendio mas. Cuales son los productos de mayor venta y menor venta.

jueves, 26 de febrero de 2009

trabajo de segunda oportunidad

Una compañia de bienes raices tiene 15 vendedores. Cada operación que hace un vendedor se registra de la siguiente forma:
número del vendedor, nombre del vendedor, monto de la venta
El número de datos de entrada no se conoce y el de ventas registradas pueden variar de un vendedor a otro. Por ejemplo, un vendedor puede haber realizado 12, mientras que otro solamente 8. Los datos de entrada no se encuentran en secuencia.Haga un programa que genere el monto total de las ventas de cada vendedor por separado. El informe deberá ser como el siguiente:

No. de vendedor nombre vendedor venta total
1
2
..
..
..
15
deben efectuarse las dos montos más elevados de ventas , con sus respectivos nombre de vendedor. el promedio de las ventas, las ventas totales realizadas por los vendedores y los nombres de los vendedores que alcanzaron las ventas promedio.

domingo, 22 de febrero de 2009

Resultado del programa

clase Program

using System;
using System.Collections.Generic;
using System.Text;

namespace aplicacion_Examen
{
class Program
{
static void Main(string[] args)
{
Arreglo t1 = new Arreglo();
double nuevo;
int i;
Console.WriteLine("Introduce 10 temperaturas");
for (i = 0; i < 10; i++)
{
Console.Write("temperatura {0} : ", i + 1);
nuevo = double.Parse(Console.ReadLine());
t1.asignarDato(i, nuevo);
}
Console.Clear();
Console.WriteLine("Listado de 10 temperaturas");
for(i=0;i<10;i++)
{
Console.WriteLine("Temperatura {0} : {1}",(i+1),t1.obtenerDato(i));
}
Console.WriteLine("El promedio de las temperaturas es {0} ",t1.promedio());
Console.WriteLine("Cantidad de temperaturas menor o igual a cero es {0} ",t1.tempMenor());
Console.WriteLine("Cantidad de temperaturas mayor a cero es {0}", t1.tempMayor());
Console.ReadKey();



}
}
}

Clase Arreglo

using System;
using System.Collections.Generic;
using System.Text;

namespace aplicacion_Examen
{
class Arreglo
{
double[] temperaturas;
int i;
public Arreglo()
{
temperaturas = new double[10];
i = 0;
}
public void asignarDato(int j, double dato)
{
temperaturas[j] = dato;
}
public double obtenerDato(int j)
{
return temperaturas[j];
}
public int tempMenor()
{
int c = 0;
for (i = 0; i < 10; i++)
{
if (temperaturas[i] <= 0)
{
c++;
}
}
return c;
}
public int tempMayor()
{
int c1 = 0;
for (i = 0; i < 10; i++)
{
if (temperaturas[i] > 0)
{
c1 = c1 + 1;
}
}
return c1;
}
public double promedio()
{
double suma = 0;
for (i = 0; i < 10; i++)
{
suma = suma + temperaturas[i];
}
return suma / 10.0;
}



}
}

lunes, 16 de febrero de 2009

Trabajo unidad 1

Una empresa de ventas por correo vende 15 productos diferentes cuyos nombre, precios de lista se muestran a continuación como un ejemplo. Usted considere 15 nombres, precios de los productos que desee.

Código de produto Nombre producto Precio de lista Cantidad vendida
1----------------Jabón Tocador----------$10.0---------25
2----------------Jabón de Manos 50 gr---$32.00--------34
3----------------Cepillo Dental---------$19.00--------60
..--------------............------------.....----------..
..
..
15---------------Crema Humectante 110 gr $79.00-------45

Escriba un programa para leer los pedidos de los clientes en un día.
a)Debe solicitar el código del producto.
b)Su programa debe de calcular y desplegar el valor total de cada pedido y el control de las unidades vendidas en un día y la cantidad de pedidos que se realizarón y el monto total de los pedidos.
c)El programa debe desplegar que producto se vendio más y que producto se vendio menos.
d)El programa debe calcular y desplegar las ventas promedio de los productos y calcular la desviación de cada valor con respecto al promedio y almacenarlo en un arreglo llamado desviacion. Cada desviación se calcula como el valor del elemento menos el promedio de todos los datos.

martes, 27 de enero de 2009

implementacion windows practica 1


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
{
int[] Elementos;
int i,suma,promedio;
public Form1()
{
InitializeComponent();
Elementos = new int[10];
i = suma=promedio=0;
lbSalida.Items.Add("Lista valores");
}

private void btAceptar_Click(object sender, EventArgs e)
{
if (i < 10)
{
Elementos[i] = int.Parse(tbDato.Text);
suma=suma + Elementos[i];
lbSalida.Items.Add(Elementos[i]);
i++;
tbDato.Clear();
tbDato.Focus();
}
else
{
MessageBox.Show("Los 10 datos fueron aceptados");
tbDato.Clear();
tbDato.Enabled = false;
btAceptar.Enabled = false;
}


}

private void btDesplegar_Click(object sender, EventArgs e)
{
int n = 0;
promedio=suma /10;
lbSalida.Items.Add("El promedio es "+promedio);
lbSalida.Items.Add("valores mayores o iguales a "+ promedio);
for (i = 0; i < 10; i++)
{
if (Elementos[i] >= promedio)
{
n++;
lbSalida.Items.Add(Elementos[i]);
}
}
lbSalida.Items.Add("El numero de elementos es " + n);
}

private void btLimpiar_Click(object sender, EventArgs e)
{
lbSalida.Items.Clear();
tbDato.Enabled = true;
btAceptar.Enabled = true;
i = 0;
}
}
}

lunes, 26 de enero de 2009

Implementación de clase program

using System;
using System.Collections.Generic;
using System.Text;

namespace Aplicacion_de_Ventas_Semanal
{
class Program
{
static void Main(string[] args)
{
int I;
double sale;
VentasTotalesMiniSuper VT = new VentasTotalesMiniSuper();
for (I = 0; I < 7; I++)
{
switch (I)
{
case 0: Console.Write("Introduce las ventas totales del lunes : ");
sale = double.Parse(Console.ReadLine());
VT.asignarDato(I, sale);
break;
case 1: Console.Write("Introduce las ventas totales del Martes : ");
sale = double.Parse(Console.ReadLine());
VT.asignarDato(I, sale);
break;
case 2: Console.Write("Introduce las ventas totales del Miercoles : ");
sale = double.Parse(Console.ReadLine());
VT.asignarDato(I, sale);
break;
case 3: Console.Write("Introduce las ventas totales del Jueves : ");
sale = double.Parse(Console.ReadLine());
VT.asignarDato(I, sale);
break;
case 4: Console.Write("Introduce las ventas totales del Viernes : ");
sale = double.Parse(Console.ReadLine());
VT.asignarDato(I, sale);
break;
case 5: Console.Write("Introduce las ventas totales del Sabado: ");
sale = double.Parse(Console.ReadLine());
VT.asignarDato(I, sale);
break;
case 6: Console.Write("Introduce las ventas totales del Domingo : ");
sale = double.Parse(Console.ReadLine());
VT.asignarDato(I, sale);
break;
}
}
int VMay = VT.ventaMayor();
int VMen = VT.ventaMenor();
switch (VMay)
{
case 0: Console.WriteLine("La venta mayor fue el dia Lunes con un total de {0} ", VT.obtenerDato(VMay));
break;
case 1: Console.WriteLine("La venta mayor fue el dia Martes con un total de {0} ", VT.obtenerDato(VMay));
break;
case 2: Console.WriteLine("La venta mayor fue el dia Miercoles con un total de {0} ", VT.obtenerDato(VMay));
break;
case 3: Console.WriteLine("La venta mayor fue el dia Jueves con un total de {0} ", VT.obtenerDato(VMay));
break;
case 4: Console.WriteLine("La venta mayor fue el dia Viernes con un total de {0} ", VT.obtenerDato(VMay));
break;
case 5: Console.WriteLine("La venta mayor fue el dia Sabado con un total de {0} ", VT.obtenerDato(VMay));
break;
case 6: Console.WriteLine("La venta mayor fue el dia Domingo con un total de {0} ", VT.obtenerDato(VMay));
break;
}
switch (VMen)
{
case 0: Console.WriteLine("La venta menor fue el dia Lunes con un total de {0} ", VT.obtenerDato(VMen));
break;
case 1: Console.WriteLine("La venta menor fue el dia Martes con un total de {0} ", VT.obtenerDato(VMen));
break;
case 2: Console.WriteLine("La venta menor fue el dia Miercoles con un total de {0} ", VT.obtenerDato(VMen));
break;
case 3: Console.WriteLine("La venta menor fue el dia Jueves con un total de {0} ", VT.obtenerDato(VMen));
break;
case 4: Console.WriteLine("La venta menor fue el dia Viernes con un total de {0} ", VT.obtenerDato(VMen));
break;
case 5: Console.WriteLine("La venta menor fue el dia Sabado con un total de {0} ", VT.obtenerDato(VMen));
break;
case 6: Console.WriteLine("La venta menor fue el dia Domingo con un total de {0} ", VT.obtenerDato(VMen));
break;
}
Console.WriteLine("La diferencia entre la venta mayor y la venta menor es {0}",VT.intervalo());
Console.ReadLine();
}
}
}

Implementacion clase VentasTotalesMiniSuper

using System;
using System.Collections.Generic;
using System.Text;

namespace Aplicacion_de_Ventas_Semanal
{
class VentasTotalesMiniSuper
{
double[] VentasTotales;
int i,mayIndice,menIndice;
double mayorVenta, menorVenta;

public VentasTotalesMiniSuper()
{
VentasTotales = new double[7];
}
public void asignarDato(int j, double dato)
{
VentasTotales[j]= dato;
}
public double obtenerDato(int j)
{
return VentasTotales[j];
}
public int ventaMayor()
{
mayorVenta = VentasTotales[0];
mayIndice = 0;
for (i = 1; i < 7; i = i + 1)
{
if (VentasTotales[i] > mayorVenta)
{
mayorVenta = VentasTotales[i];
mayIndice = i;
}
}
return mayIndice;
}
public int ventaMenor()
{
menorVenta = VentasTotales[0];
menIndice = 0;
for (i = 1; i < 7; i++)
{
if (VentasTotales[i] < menorVenta)
{
menorVenta = VentasTotales[i];
menIndice = i;
}
}
return menIndice;
}
public double intervalo()
{
return mayorVenta - menorVenta;
}


}
}

Ejemplo de arreglo unidimensional

Haga un programa para leer 7 dias(lunes,martes.. domingo) de ventas totales realizadas por un minisuper, e imprima el dia que tuvo la mayor y menor venta mostrando la cantidad y el intervalo entre la venta mayor y la venta menor .

Solución en seudocódigo

Clase VentasTotalMiniSuper
{
1.- Declaracion de Variables

VentasTotales [7] : doble flotante
i : entero
mayorVenta, menorVenta : doble flotante
mayIndice, menIndice: entero

metodo asignarDato ( j:entero , dato: doble flotante)
{
VentasTotales[j]=dato
}
double flotante método obtenerDato (j: entero)
{
return VentasTotales[j]
}
entero método ventaMayor( )
{
mayorVenta= VentasTotales[0]
mayIndice=0;
for(i=1, i < 7, i=i+1)
{
if(VentasTotales[i] >= mayorVenta
{ mayorVenta=VentasTotales[i]
mayIndice=i
}
}
return mayIndice;
}

entero método ventaMenor( )
{
menorVenta=VentasTotales[0]
menIndice=0
for(i=1, i< 7, i=i+1)
{
if(VentasTotales[i] < menorVenta
{ menorVenta=VentasTotales[i]
menIndice=i
}
}
return menIndice;
}
double flotante método Invertalo ()
{
return mayorVenta - menorVenta
}
}

Practica 1

Haga un programa para leer diez valores numericos y almacenarlos en un arreglo unidimensional. Calcular el promedio y mostrar los elementos mayores o iguales al promedio y al final imprimir la cantidad de datos que cumplen con esta condición.

Tarea 1

Hacer un blog para tener conceptos básicos de arreglos unidimensionales y mostrar un problema ejemplo.
a)Mostar la solución.
b)Implementarlo en C# en forma visual y consola.

Temario de Programacion Orientada a Objetos

Materia: Programación Orientada a objetos

Objetivo de la materia: El estudiante aprenderá tópicos avanzados de programación orientada a objetos y su implementación por medio de un lenguaje de programación, que sirvan como base para cursos posteriores donde se desarrollan sistemas computacionales.


Temario

Unidad 1 Arreglos Unidimensionales y Multidimensionales

1.1 Arreglos Unidimensionales listas (vectores)
1.1.1 Concepto básicos.
1.1.2 Operaciones
1.1.3 Aplicaciones

1.2 Arreglos bidimensionales
1.2.1 Conceptos básicos
1.2.2 Operaciones.
1.2.3 Aplicaciones

1.3 Arreglos Multidimensional
1.3.1 Conceptos básicos
1.3.2 Operaciones.
1.3.3 Aplicaciones.


Unidad 2 Metodos y Mensajes, Constructor Destructor

2.1 Atributos const y static
2.2 Concepto Método
2.3 Declaración de métodos
2.4 Llamadas a métodos
2.5Tipos de Métodos
2.6 Referencia this
2.7 Forma de pasar argumentos
2.8 Devolver un valor desde un método
2.9 Estructura de código
2.10 Concepto de método constructor y destructor.
2.11 Declaración de métodos constructor y destructor
2.12 Aplicaciones de constructores y destructores
2.13 Tipos de constructores y destructores




Unidad 3 Sobrecarga , Herencia, polimorfismo y reutilización

3.1 Conversion Tipos
3.2 Sobrecarga de métodos.
3.3 Sobrecarga de operadores
3.4 Introducción a la herencia
3.5 Herencia simple y multiple
3.6 Clase base y clase derivada
3.7 Parte protegida
3.8 Redefinición de los miembros de las clases derivadas
3.9 Clases virtuales y visibilidad
3.10 Constructores y destructores en clases derivadas.
3.11 Concepto de polimorfismo
3.12 Clases Abstractas
3.13 Definición de interfaz
3.14 Implementación de una interfaz
3.15 Definición y creación de paquetes de librería.
3.16 Clases genéricas (plantillas)


Unidad 4 Excepciones, Flujos y Archivos

4.1 Definición
4.1.1 Que son las excepciones
4.1.2 Clases de excepciones excepciones predefinidas por el lenguaje.
4.1.3 Propagación
4.1.4 Gestión de Excepciones
4.1.5 Excepciones definidas por el usuario
4.1.6 Definición de archivos de texto y archivos binarios
4.1.7 Aplicaciones

Libro Como programar en C#
Autor: Harvey M. Deitel y Paul J. Deitel
Editorial Prentice Hall

Microsoft C# Curso de Programación
Autor: Javier Ceballos
Enciclopedia de Microsoft Visual C#
Autor: Javier Ceballos
Editorial Alfaomega

Desarrollo de aplicaciones .NET Con visual C#
Miguel Rodríguez Gómez
Marco Antonio Besteiro G
Editorial Mc Graw Hill