SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
ARREGLOS DE OBJETOS
UNIDAD 5
ING. YOELMA MELENDRES
CRITERIO DE DESEMPEÑO
Aplica aspectos avanzados de la
programación orientada a objetos;
empleando arreglos de objetos y clases de
utilidad.
2
CONTENIDO
• Definición de arreglos
• Definición de objetos
• Declaración de arreglos de objetos
• Operaciones con arreglos de objetos
• Aplicaciones con arreglos de objetos
• Problemas de arreglos de objetos
3
5.1. Clases de utilidad
Clase String
4
5.1.1. variable string
• El contenido de la cadena se parece a un vector de caracteres.
• Cada carácter ocupa una posición cuyo índice inicia en 0.
• Se puede obtener un carácter específico, indicando el nombre de la
cadena y su posición. Ejemplo:
◦ cadena[0] devuelve el carácter 'S'.
◦ cadena[1] devuelve el carácter ‘a'.
◦ Etc.
5
string cadena = "Santa Cruz"; cadena.length
0123456789 10
5. 1. Clases de utilidad
funciones predefinidas String - I
6
//Contains(subCadena). Devuelve true si el caracter o subcadena existe en la cadena
string correo = "ymelendres@gmail.com";
bool resultado = correo.Contains("@");
MessageBox.Show(resultado.ToString()); // true
//ToUpper(). Devuelve una cadena con el contenido de la variable nombre en MAYUSCULAS
string nombre = "Juan Evo Morales";
string resultado = nombre.ToUpper();
MessageBox.Show(resultado);
//ToLower(). Devuelve una cadena con el contenido de la variable nombre en minúsculas
string nombre = "Juan Evo MORALES";
string resultado = nombre.ToLower();
MessageBox.Show(resultado); //“juan evo morales"
//Insert(posicionInicial, subCadena)
//A partir de la posición indicada. Inserta una subcadena a la cadena actual.
string pregunta = "Cuales los 3 colores basicos";
pregunta = pregunta.Insert(7, "son "); //inserta "son" en la posición 7
MessageBox.Show(pregunta ); //Cuales son los 3 colores básicos
5.1. Clases de utilidad
Funciones predefinidas String - II
7
//Remove(inicio, cantidad).
Elimina cierta cantidad de caracteres a partir de un posición inicial
string pregunta = "Santa Cruz de la Sierra";
string resultado = pregunta.Remove(10, 6); //A partir del carácter 10 elimina 6 caracteres
MessageBox.Show(resultado); //Santa Cruz Sierra
//IndexOf("subCadena") Devuelve la primera posición donde aparece una cadena dada
string correo = "ymelendres@gmail.com";
int resultado = correo.IndexOf("."); //Devuelve el índice de la 1ra aparición del carácter
MessageBox.Show(resultado.ToString()); //16
5.1. Clases de utilidad
Funciones predefinidas String - III
8
//Replace(viejoCaracter, nuevoCaracter). Reemplaza un caracter por otro en la cadena
string correo = "Escuela Militar de Ingenieria";
string resultado = correo.Replace('a','@');
MessageBox.Show(resultado); //"Escuel@ Milit@r de Ingenieri@"
// Replace(viejoCadena, nuevoCadena). Reemplaza una subcadena por otra en la cadena
string correo = "La Escuela Militar de Ingenieria en Santa Cruz";
correo = correo.Replace("Escuela Militar de Ingenieria", "EMI");
MessageBox.Show(correo);//"La EMI en Santa Cruz"
5.1. Clases de utilidad
Funciones predefinidas String - IV
9
//equals(cadena). Devuelve true si dos cadena son iguales
string password = "ana";
bool resultado = password.equals("benito");
MessageBox.Show(resultado.ToString());
//Trim(). Elimina los espacios del inicio y final de la cadena
string nombre = " ana maria ";
string resultado = nombre.Trim();
MessageBox.Show(nombre); //" ana maria "
MessageBox.Show(resultado); //"ana maria"
5.1. Clases de utilidad
Funciones predefinidas String - V
10
5.1. Clases de utilidad
Funciones predefinidas String - VI
11
string pregunta = "Cuales los 3 colores básicos";
int posicion = pregunta.IndexOf("básicos");
this.listBox1.Items.Add(pregunta.Substring(posicion,5)); //básico
IndexOf: Devuelve una subcadena a partir de una posición especificada
5.1. Clases de utilidad
5.1.2. clase Math
12
Ofrece varias funciones matemáticas predefinidas, listas para usar si se le dan
los parámetros que requieren.
5.1. Clases de utilidad
5.1.2. clase Math - I
13
// Math.Abs(valor). Devuelve el valor absoluto de un nro.
double valor = -3.45;
double resultado= Math.Abs(valor);
listBox1.Items.Add("Valor absoluto de "+ valor + "=" + resultado);
//Math.Pow(basse, exponente), resuelve una potencia, dada la base y el exponente
int basse = 2;
int exponente = 3;
double potencia = Math.Pow(basse, exponente);
listBox1.Items.Add(basse + " elevado a " + exponente + "=" + potencia);
5.1. Clases de utilidad
5.1.2. clase Math- II
14
//Math.Sqrt(numero). Devuelve la raiz cuadra de un numero
double numero = 25;
double raizCuadrada = Math.Sqrt(numero);
listBox1.Items.Add("Raiz cuadrada de " + numero + "=" + raizCuadrada);
//Math.Truncate(nroDecimal). Devuelve la parte entera de un nro. decimal
especificado
double nroDecimal = 125.81;
double parteEntera = Math.Truncate(nroDecimal);
listBox1.Items.Add("Truncar" + nroDecimal + "=" + parteEntera);
5.1. Clases de utilidad
5.1.2. clase Math - III
15
//Math.Round(nroFraccionario, nroDecimales).
//Corta a cierta cantidad de decimales un nro. fraccionario,
//redondeando si es necesario.
double nroDecimal = 34.0578789;
nroDecimal= Math.Round(nroDecimal, 2);
listBox1.Items.Add(nroDecimal);
5.2. Arreglo
Es una estructura de datos que almacena una
colección finita de elementos homogéneos.
Los datos pueden ser de tipo primitivo u
objetos de la misma clase.
Se almacena en memoria de forma contigua y
ordenada.
16
..5.2. Arreglo
Tipos de Arreglos:
◦ De una dimensión (Vector)
◦ De dos dimensiones (tabla)
◦ De tres o más dimensiones (matriz)
17
Unidimensional Bidimensional
Multidimensional
5.2 Definición de objetos
Representa alguna entidad de la vida real, es
decir, alguno de los objetos que pertenecen al
negocio con que estamos trabajando o al
problema con el que nos estamos enfrentando,
y con los que podemos interactuar.
Características:
 Identidad
 Comportamiento
 Estado
Coco: Perro
Nombre=“COCO”
Raza=“LABRADOR RETRIEVER”
Altura=“55 cm”
Comer()
Dormir()
Ladrar()
Clase Objeto
18
5.3 Declaración de arreglos de objetos
Vector de Objetos
Sintaxis para la declaracion (1ra forma):
Perro[] vector; //Perro es una clase
vector = new Perro[50]; // y vector es el nombre del arreglo.
Sintaxis para la declaracion (2da forma):
Producto[] venta= new Producto[100];
Pieza[,] tablero;
tablero = new Pieza[8,8];
Simbolo[,] tabla = new Simbolo[3,3];
Tabla de Objetos
19
5.4 Operaciones con arreglos de objetos
Creación del objeto en memoria
vec[0] = new Item("mouse", "Periférico de entrada, que permite …",
"C:/imagen/mouse.png");
vec[1] = new Item("teclado",“Permite ingresar caracteres …",
"C:/imagen/teclado.png");
Item objetoItem = new Item("teclado",“Permite ingresar caracteres
alfanumericos al PC", "C:/imagen/teclado.png");
vec[2] = objetoItem;
20
…5.4 Operaciones con arreglos de objetos
vec[0].setSignificado(“Unidad de entrada por defecto, sirve …");
vec[0].setFoto("C:/imagen/raton.png");
Mensajes al objeto
ListBox1.Items.Add(vec[0].getPalabra() + ":" + vec[0].getSignificado());
21
5.5 Aplicaciones con arreglos de objetos
Caso de estudio 1:
◦ Implementar una aplicación
llamada Diccionario
Informático que, permita
almacenar palabras del área
de informática, junto a su
significado y foto.
◦ Que la aplicación permita
agregar nuevas palabras,
modificar las existentes y
buscar cualquier palabra
almacenada.
22
Item
- palabra: string
- significado: string
- foto: string
+ Item()
+ Item(string, string, string)
+ setPalabra(string) : void
+ setSignificado(string) : void
+ setFoto(string) : void
+ getPalabra() : string
+ getSignificado() : string
+ getFoto() : string
Diccionario
- vec: Item ([])
- n: int
- MAXIMO: int = 100
+ Diccionario()
- inicializar() : void
+ buscar(string) : Item
+ modificar(string, string, string) : void
+ agregar(string, string, string) : void
+ existe(string) : int
1
*
23
class item
{
string palabra;
string significado;
string foto;
public item()
{ this.palabra = "";
this.significado = "";
this.foto = "";
}
public item(string palabra, string significado,
string rutaFoto)
{ this.palabra = palabra;
this.significado = significado;
this.foto = rutaFoto;
}
public void setPalabra(string nuevaPalabra)
{ this.palabra = nuevaPalabra;
}
public void setSignificado(string nuevoSignificado)
{ this.significado = nuevoSignificado;
}
public void setFoto(string nuevaFoto)
{
this.foto = nuevaFoto;
}
public string getPalabra()
{
return this.palabra;
}
public string getSignificado()
{
return this.significado;
}
public string getFoto()
{
return this.foto;
}
24
class diccionario
{
item[] vec; //vector de objetos
int n; //dimension logica
const int MAXIMO = 50; //Dimension fisica
public diccionario()
{
vec = new item[MAXIMO];
n = 0;
}
public void inicializar()
{
string ruta = Directory.GetCurrentDirectory()+ "imagen";
vec[0] = new item("mouse", "Periférico de entrada, que pemite introducir pulsaciones u ordenes al computador", ruta + "mouse.jpg");
vec[1] = new item("teclado", "Periferico de entrada, permite ingresar caracteres alfanumericos al PC", ruta + "teclado.jpg");
vec[2] = new item("computador", "Maquina electronica, capaz de ejecutar gran cantidad de instrucciones", ruta + "computador.jpg");
vec[3] = new item("monitor", "Periferico de salida, permite visualizar de forma gráfica, los resultados de la CPU", ruta + "monitor.jpg");
vec[4] = new item("impresora", "Unidad de salida, imprime en papel la información.", ruta + "impresora.jpg");
vec[5] = new item("disco duro", "Unidad de almacenamiento masivo de forma permanente", ruta + "discoDuro.jpg");
vec[6] = new item("dvd", "Unidad de almacenamiento para video. Capadidad desde 4 GB", ruta + "dvd.jpg");
n = 7;
}
public int cantidadDePalabras() //devuelve la cantidad de palabras registradas
{ return n;
}
25
public item buscar(string criterio)
{ criterio = criterio.ToLower(); //convirtiendo a minuscula
for(int i=0; i< n;i++)
{
if (vec[i].getPalabra().Equals(criterio))
return vec[i];
}
return null; //en caso de que la palabra no exista.
}
public item elemento(int pos)
{ if (pos >= 1 && pos <= n)
return vec[pos - 1];
else
{ MessageBox.Show("Error posicion fuera de rango");
return null;
}
}
public void agregarPalabra(item nuevoItem)
{ if(n==MAXIMO)
MessageBox.Show("Error, Diccionario lleno!");
else
{ vec[n]= nuevoItem;
n++;
}
}
26
27
28
public partial class Form1 : Form
{
diccionario dic; //declaracion del objeto diccionario
public Form1()
{
InitializeComponent();
dic = new diccionario(); //creacion del objeto en memoria
dic.inicializar(); //mensaje al objeto
}
private void btnBuscar_Click(object sender, EventArgs e)
{
try {
item objetoItem = dic.buscar(txtPalabra.Text);
if (objetoItem != null)
{
txtSignificado.Text = txtPalabra.Text.ToUpper() + ": " + objetoItem.getSignificado();
pbxFoto.Image = Image.FromFile(objetoItem.getFoto());
}
else
{
txtSignificado.Text = "La palabra no esta registrada!";
pbxFoto.Image = null;
}
txtPalabra.Clear();
}
catch
{ MessageBox.Show("Error al recuperar los datos");
}
}
Llamada al
método
buscar
palabra en
el
diccionario
29
private void btnSeleccionarFoto_Click(object sender, EventArgs e)
{
txtRutaNueva.Text = seleccionarArchivo();
}
private string seleccionarArchivo()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Archivos jpg (*.jpg)|*.jpg";
ofd.Title = "Seleccionar";
string ruta = "";
if (ofd.ShowDialog() == DialogResult.OK)
{
ruta= ofd.FileName;
}
ofd.Dispose(); //Libera el espacio en memoria ocupado
return ruta;
}
private void btnAgregar_Click(object sender, EventArgs e)
{
item objItem = new item();
objItem.setPalabra(txtPalabraNueva.Text);
objItem.setSignificado(txtSignificadoNuevo.Text);
objItem.setFoto(txtRutaNueva.Text);
dic.agregarPalabra(objItem);
}
Procedimiento
para seleccionar
la ruta de un
archivo .jpg
Llamada al
método Agregar
palabra al
diccionario
30
private void btnVer_Click(object sender, EventArgs e)
{
lbxListado.Items.Clear();
int cantidad = dic.cantidadDePalabras();
for(int i=1;i<=cantidad;i++)
{
item objItem = dic.elemento(i);
lbxListado.Items.Add(objItem.getPalabra());
}
}
Método para
listar todas las
palabras
registradas en el
diccionario
31
… 5.5 Aplicaciones con arreglos de objetos
Ejemplo 2. Registro de Notas
grupo
- MAXIMO: int = 50
- cantidad: int
- vec: estudiante ([])
+ grupo(int)
+ registrar(int, estudiante) : void
+ mostrarTodo(ListBox) : void
+ promedioNotas() : double
+ mayorNota(ListBox) : void
+ menorNota(ListBox) : void
estudiante
- codigo: string
- nombre: string
- nota: double
+ estudiante(string, string, double)
+ Codigo() : string
+ Nombre() : string
+ Nota() : double
-vec
• Se requiere una programa para almacenar los datos de un grupo de estudiantes.
De cada estudiante interesa su código, nombre y nota.
• Se requiere poder calcular el promedio de notas, la mayor y menor nota del
grupo y mostrar los datos de todos los estudiantes registrados.
32
class estudiante
{
private string codigo;
private string nombre;
private double nota;
public estudiante(string codigo, string nombre,
double nota)
{ this.codigo = codigo;
this.nombre = nombre;
this.nota = nota;
}
public string Codigo
{
get { return codigo; }
set { codigo = value; }
}
public string Nombre
{
get { return nombre; }
set { nombre = value; }
}
public double Nota
{
get { return nota; }
set { nota = value; }
}
}
Solución al Ejemplo 2. Registro de Notas
class grupo
{
private const int MAXIMO = 50;
private int cantidad;
private estudiante[] vec;
//crea el vector en base a la cant. De alumnos
public grupo(int cantidadAlumnos)
{
if (cantidadAlumnos >= 1 && cantidadAlumnos <= MAXIMO)
{
vec = new estudiante[cantidadAlumnos];
this.cantidad = cantidadAlumnos;
}
else
MessageBox.Show("Error: la cantidad de alumnos debe ser maximo " + MAXIMO);
}
//almacena un objeto de tipo estudiante en la posición especificada.
public void registrar(int posicion, estudiante objEstudiante)
{
if (posicion >= 1 && posicion <= cantidad)
vec[posicion - 1] = objEstudiante;
else
MessageBox.Show("Error: posicion fuera de rango!");
} 33
Implementación de la clase Grupo
//Muestra los datos almacenados en el vector
public void mostrarTodo(ListBox lista) {
lista.Items.Clear();
for(int i=0; i<cantidad; i++)
{
lista.Items.Add(vec[i].Codigo + " Nota:" + vec[i].Nota + " "+ vec[i].Nombre);
}
}
//Muestra los estudiantes que tienen la mayor nota
public void mayorNota(ListBox lista) {
double mayorActual = -1;
for (int i = 0; i < cantidad; i++)
{
if (mayorActual < vec[i].Nota)
mayorActual = vec[i].Nota;
}
for (int i = 0; i < cantidad; i++)
{
if (mayorActual == vec[i].Nota)
lista.Items.Add(vec[i].Codigo + " Nota:" + vec[i].Nota + " " + vec[i].Nombre);
}
} 34
5.6. Colección List
Representa una lista de objetos fuertemente tipados a la
que se puede obtener acceso por índice. Proporciona
métodos para buscar, ordenar y manipular listas.
Espacio de nombres: System.Collections.Generic
Declaración y Creación
List<tipoDato> lista = new List<tipoDato>();
35
… 5.6. Propiedades de List
36
Nombre Descripción
Capacity Obtiene o establece el número total de elementos que puede
contener la estructura de datos interna sin cambiar el tamaño.
Count Obtiene el número de elementos incluidos en List<T>.
Item[Int32] Obtiene o establece el elemento en el índice especificado.
… 5.6. Métodos de List
Nombre Descripción
Add(T) Agrega un objeto al final de List<T>.
Clear() Quita todos los elementos de List<T>.
IndexOf(T) Busca el objeto especificado y devuelve el índice de base cero de la
primera aparición en todo el objeto List<T>.
Insert(Int32, T) Inserta un elemento en List<T>, en el índice especificado.
Remove(T) Quita la primera aparición de un objeto específico de la
interfaz List<T>.
Sort() Ordena los elementos de toda la List<T> utilizando el comparador
predeterminado.
37
Ejemplo: Lista de String
38
List<string> lista = new List<string>();
private void btnMostrar_Click(object sender, EventArgs e)
{
lista.Add("Ruben");
lista.Add("Jose");
lista.Add("Dan");
lista.Add("Isacar");
lista.Add("Dina");
mostrar();
//Obtener el nro. de indice de un elemento
lbVitrina.Items.Add(“Indice del elemento Dan:" + lista.IndexOf("Dan")); //2
//Insertando un nuevo elemento, en una posicion especificada
lista.Insert(1, "Gad");
mostrar();
… Ejemplo: Lista de String
39
//eliminando un elemento de la lista
lista.Remove("Isacar");
mostrar();
//ordena los elementos
lista.Sort();
mostrar();
//Verificando si existe un elemento.
bool bandera= lista.Contains("Dina");
lbVitrina.Items.Add("Existe Dina en la lista?" + bandera);
//eliminando todos los elementos de la lista
lista.Clear();
lbVitrina.Items.Add("Cantidad de elementos:" + lista.Count);
}
… Ejemplo: Lista de String
40
//mostrando todos los elementos, en base a su posición
private void mostrar()
{
lbVitrina.Items.Add("--- ELEMENTOS DE LA LISTA ----");
for (int i = 0; i < lista.Count; i++)
lbVitrina.Items.Add(lista[i]);
}
41
Ejemplo: Lista de Objetos
42
…Ejemplo: Lista de Objetos
43
class Policia
{
public int CI { get; set; }
public string Nombre { get; set; } //autopropiedad
public string TipoSangre { get; set; }
public Policia()
{
CI = 0;
Nombre = "";
TipoSangre = "";
}
}
44
public partial class Form1 : Form
{
List<Policia> lista = new List<Policia>();
public Form1()
{
InitializeComponent();
}
private void btnGuardar_Click(object sender, EventArgs e)
{
Policia objPolicia = new Policia();
objPolicia.CI = int.Parse(txtCI.Text);
objPolicia.Nombre = txtNombre.Text;
objPolicia.TipoSangre = txtTipoSangre.Text;
lista.Add(objPolicia);
Mostrar();
LimpiarControles();
}
…Ejemplo: Lista de Objetos
45
private void Mostrar()
{
int n = lista.Count;
dgvTabla.RowCount = n;
dgvTabla.ColumnCount = 3;
for(int i=0;i<n;i++)
{
dgvTabla.Rows[i].Cells[0].Value = lista[i].CI;
dgvTabla.Rows[i].Cells[1].Value = lista[i].Nombre;
dgvTabla.Rows[i].Cells[2].Value = lista[i].TipoSangre;
}
}
private void LimpiarControles()
{
txtCI.Clear();
txtNombre.Clear();
txtTipoSangre.Clear();
}
}
}
…Ejemplo: Lista de Objetos
Caso de estudio: Evaluación de
conocimiento de historia del futbol
46
47
class Class Model
Item
+ Item(string, bool)
«property»
+ pregunta(): string
+ respuesta(): bool
Form
Form1
- objCuestionario: Cuestionario =new Cuestionario()
- puntaje: int =0
- objRandom: Random =new Random()
- nroPreguntasRealizadas: int
- nroPreguntaActual: int
- objItem: Item
- MAXIMO_PREGUNTAS: int =5
+ Form1()
- button1_Click(object, EventArgs): void
- LanzarPregunta(): void
- Form1_Load(object, EventArgs): void
- btnSiguiente_Click_1(object, EventArgs): void
Cuestionario
- arreglo: Item ([])
- n: int
+ Cuestionario()
+ ObtenerPregunta(int): Item
+ CantidadPreguntas(): int
-objItem
-arreglo
-objCuestionario
Caso de estudio: Evaluación de conocimiento de historia del futbol
48
Caso de estudio: Juego Tres en Raya
Caso de estudio: Juego Tres en Raya
49
class Class Model
TresEnRaya
- m: char ([,])
- turno: char
+ TresEnRaya()
+ reiniciarTablero(): void
+ DefinirTurnoInicial(char): void
+ RegistrarJugada(int): void
- CambiarTurno(): void
+ Ganador(): int
- HayTresEnRaya(char): bool
- HayCasillasVacias(): bool
+ MostrarMarca(int): char
Program
- Main(): void
Form
Form1
- objTR: TresEnRaya
+ Form1()
- btnInicio_Click(object, EventArgs): void
- btn0_Click_1(object, EventArgs): void
- Marcar(Button, int): void
- LimpiarControles(): void
- ActivarBotones(): void
- btn1_Click(object, EventArgs): void
- btn2_Click(object, EventArgs): void
- btn3_Click(object, EventArgs): void
- btn4_Click(object, EventArgs): void
- btn5_Click(object, EventArgs): void
- btn6_Click(object, EventArgs): void
- btn7_Click(object, EventArgs): void
- btn8_Click(object, EventArgs): void
-objTR
50

Más contenido relacionado

Similar a U5. Arreglos de Objetos.pdf

Desarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capasDesarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capasNelson Salinas
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)Videoconferencias UTPL
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)luis freddy
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)luis freddy
 
Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Axel
 
Tema 4 clases_y_objetos
Tema 4 clases_y_objetosTema 4 clases_y_objetos
Tema 4 clases_y_objetosBelenMonse
 
3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetos3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetosluis freddy
 
Vectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosVectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosJanet Brigyth Camacho Medina
 
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones coleccionesluis freddy
 
P R A C T I C A2
P R A C T I C A2P R A C T I C A2
P R A C T I C A2climancc
 

Similar a U5. Arreglos de Objetos.pdf (20)

Desarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capasDesarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capas
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
 
Taller 1 6
Taller 1 6Taller 1 6
Taller 1 6
 
Taller 1 6
Taller 1 6Taller 1 6
Taller 1 6
 
Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2
 
Tema 4 clases_y_objetos
Tema 4 clases_y_objetosTema 4 clases_y_objetos
Tema 4 clases_y_objetos
 
Gráficos en MATLAB
Gráficos en MATLABGráficos en MATLAB
Gráficos en MATLAB
 
3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetos3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetos
 
Vectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosVectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a Objetos
 
P2C2 Introducción a JEE5
P2C2 Introducción a JEE5P2C2 Introducción a JEE5
P2C2 Introducción a JEE5
 
Comandos java
Comandos javaComandos java
Comandos java
 
Comandos java
Comandos javaComandos java
Comandos java
 
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
 
Vectors
VectorsVectors
Vectors
 
P R A C T I C A2
P R A C T I C A2P R A C T I C A2
P R A C T I C A2
 
Tarea sesion 08_gottlieb
Tarea sesion 08_gottliebTarea sesion 08_gottlieb
Tarea sesion 08_gottlieb
 
Presentacion
PresentacionPresentacion
Presentacion
 
Arreglos, Procedimientos y Funciones
Arreglos, Procedimientos y FuncionesArreglos, Procedimientos y Funciones
Arreglos, Procedimientos y Funciones
 

Más de TareasEMI

UI. 01-30-MAR-23 COA.pptx
UI. 01-30-MAR-23 COA.pptxUI. 01-30-MAR-23 COA.pptx
UI. 01-30-MAR-23 COA.pptxTareasEMI
 
Variables complejas (ING. CHINITO).pdf
Variables complejas (ING. CHINITO).pdfVariables complejas (ING. CHINITO).pdf
Variables complejas (ING. CHINITO).pdfTareasEMI
 
LibroCsharp.pdf
LibroCsharp.pdfLibroCsharp.pdf
LibroCsharp.pdfTareasEMI
 
tabla de chi cuadrado.pdf
tabla de chi cuadrado.pdftabla de chi cuadrado.pdf
tabla de chi cuadrado.pdfTareasEMI
 
FORMATO PARA INFORMES EXPOCIENCIA.docx
FORMATO PARA INFORMES EXPOCIENCIA.docxFORMATO PARA INFORMES EXPOCIENCIA.docx
FORMATO PARA INFORMES EXPOCIENCIA.docxTareasEMI
 
3. Mora, Francisco NEUROEDUCACION_SOLO_SE_PUEDE_APRENDER_AQ_ocred.pdf
3. Mora, Francisco NEUROEDUCACION_SOLO_SE_PUEDE_APRENDER_AQ_ocred.pdf3. Mora, Francisco NEUROEDUCACION_SOLO_SE_PUEDE_APRENDER_AQ_ocred.pdf
3. Mora, Francisco NEUROEDUCACION_SOLO_SE_PUEDE_APRENDER_AQ_ocred.pdfTareasEMI
 

Más de TareasEMI (6)

UI. 01-30-MAR-23 COA.pptx
UI. 01-30-MAR-23 COA.pptxUI. 01-30-MAR-23 COA.pptx
UI. 01-30-MAR-23 COA.pptx
 
Variables complejas (ING. CHINITO).pdf
Variables complejas (ING. CHINITO).pdfVariables complejas (ING. CHINITO).pdf
Variables complejas (ING. CHINITO).pdf
 
LibroCsharp.pdf
LibroCsharp.pdfLibroCsharp.pdf
LibroCsharp.pdf
 
tabla de chi cuadrado.pdf
tabla de chi cuadrado.pdftabla de chi cuadrado.pdf
tabla de chi cuadrado.pdf
 
FORMATO PARA INFORMES EXPOCIENCIA.docx
FORMATO PARA INFORMES EXPOCIENCIA.docxFORMATO PARA INFORMES EXPOCIENCIA.docx
FORMATO PARA INFORMES EXPOCIENCIA.docx
 
3. Mora, Francisco NEUROEDUCACION_SOLO_SE_PUEDE_APRENDER_AQ_ocred.pdf
3. Mora, Francisco NEUROEDUCACION_SOLO_SE_PUEDE_APRENDER_AQ_ocred.pdf3. Mora, Francisco NEUROEDUCACION_SOLO_SE_PUEDE_APRENDER_AQ_ocred.pdf
3. Mora, Francisco NEUROEDUCACION_SOLO_SE_PUEDE_APRENDER_AQ_ocred.pdf
 

Último

CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfpaola110264
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfAnonymous0pBRsQXfnx
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfMirthaFernandez12
 
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfManual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfSandXmovex
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadANDECE
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)ssuser6958b11
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfAdelaHerrera9
 
Fisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfFisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfJessLeonelVargasJimn
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfCE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfssuserc34f44
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfErikNivor
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 

Último (20)

CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdf
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
 
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfManual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidad
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
 
Fisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfFisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdf
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfCE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 

U5. Arreglos de Objetos.pdf

  • 1. ARREGLOS DE OBJETOS UNIDAD 5 ING. YOELMA MELENDRES
  • 2. CRITERIO DE DESEMPEÑO Aplica aspectos avanzados de la programación orientada a objetos; empleando arreglos de objetos y clases de utilidad. 2
  • 3. CONTENIDO • Definición de arreglos • Definición de objetos • Declaración de arreglos de objetos • Operaciones con arreglos de objetos • Aplicaciones con arreglos de objetos • Problemas de arreglos de objetos 3
  • 4. 5.1. Clases de utilidad Clase String 4
  • 5. 5.1.1. variable string • El contenido de la cadena se parece a un vector de caracteres. • Cada carácter ocupa una posición cuyo índice inicia en 0. • Se puede obtener un carácter específico, indicando el nombre de la cadena y su posición. Ejemplo: ◦ cadena[0] devuelve el carácter 'S'. ◦ cadena[1] devuelve el carácter ‘a'. ◦ Etc. 5 string cadena = "Santa Cruz"; cadena.length 0123456789 10
  • 6. 5. 1. Clases de utilidad funciones predefinidas String - I 6 //Contains(subCadena). Devuelve true si el caracter o subcadena existe en la cadena string correo = "ymelendres@gmail.com"; bool resultado = correo.Contains("@"); MessageBox.Show(resultado.ToString()); // true //ToUpper(). Devuelve una cadena con el contenido de la variable nombre en MAYUSCULAS string nombre = "Juan Evo Morales"; string resultado = nombre.ToUpper(); MessageBox.Show(resultado);
  • 7. //ToLower(). Devuelve una cadena con el contenido de la variable nombre en minúsculas string nombre = "Juan Evo MORALES"; string resultado = nombre.ToLower(); MessageBox.Show(resultado); //“juan evo morales" //Insert(posicionInicial, subCadena) //A partir de la posición indicada. Inserta una subcadena a la cadena actual. string pregunta = "Cuales los 3 colores basicos"; pregunta = pregunta.Insert(7, "son "); //inserta "son" en la posición 7 MessageBox.Show(pregunta ); //Cuales son los 3 colores básicos 5.1. Clases de utilidad Funciones predefinidas String - II 7
  • 8. //Remove(inicio, cantidad). Elimina cierta cantidad de caracteres a partir de un posición inicial string pregunta = "Santa Cruz de la Sierra"; string resultado = pregunta.Remove(10, 6); //A partir del carácter 10 elimina 6 caracteres MessageBox.Show(resultado); //Santa Cruz Sierra //IndexOf("subCadena") Devuelve la primera posición donde aparece una cadena dada string correo = "ymelendres@gmail.com"; int resultado = correo.IndexOf("."); //Devuelve el índice de la 1ra aparición del carácter MessageBox.Show(resultado.ToString()); //16 5.1. Clases de utilidad Funciones predefinidas String - III 8
  • 9. //Replace(viejoCaracter, nuevoCaracter). Reemplaza un caracter por otro en la cadena string correo = "Escuela Militar de Ingenieria"; string resultado = correo.Replace('a','@'); MessageBox.Show(resultado); //"Escuel@ Milit@r de Ingenieri@" // Replace(viejoCadena, nuevoCadena). Reemplaza una subcadena por otra en la cadena string correo = "La Escuela Militar de Ingenieria en Santa Cruz"; correo = correo.Replace("Escuela Militar de Ingenieria", "EMI"); MessageBox.Show(correo);//"La EMI en Santa Cruz" 5.1. Clases de utilidad Funciones predefinidas String - IV 9
  • 10. //equals(cadena). Devuelve true si dos cadena son iguales string password = "ana"; bool resultado = password.equals("benito"); MessageBox.Show(resultado.ToString()); //Trim(). Elimina los espacios del inicio y final de la cadena string nombre = " ana maria "; string resultado = nombre.Trim(); MessageBox.Show(nombre); //" ana maria " MessageBox.Show(resultado); //"ana maria" 5.1. Clases de utilidad Funciones predefinidas String - V 10
  • 11. 5.1. Clases de utilidad Funciones predefinidas String - VI 11 string pregunta = "Cuales los 3 colores básicos"; int posicion = pregunta.IndexOf("básicos"); this.listBox1.Items.Add(pregunta.Substring(posicion,5)); //básico IndexOf: Devuelve una subcadena a partir de una posición especificada
  • 12. 5.1. Clases de utilidad 5.1.2. clase Math 12 Ofrece varias funciones matemáticas predefinidas, listas para usar si se le dan los parámetros que requieren.
  • 13. 5.1. Clases de utilidad 5.1.2. clase Math - I 13 // Math.Abs(valor). Devuelve el valor absoluto de un nro. double valor = -3.45; double resultado= Math.Abs(valor); listBox1.Items.Add("Valor absoluto de "+ valor + "=" + resultado); //Math.Pow(basse, exponente), resuelve una potencia, dada la base y el exponente int basse = 2; int exponente = 3; double potencia = Math.Pow(basse, exponente); listBox1.Items.Add(basse + " elevado a " + exponente + "=" + potencia);
  • 14. 5.1. Clases de utilidad 5.1.2. clase Math- II 14 //Math.Sqrt(numero). Devuelve la raiz cuadra de un numero double numero = 25; double raizCuadrada = Math.Sqrt(numero); listBox1.Items.Add("Raiz cuadrada de " + numero + "=" + raizCuadrada); //Math.Truncate(nroDecimal). Devuelve la parte entera de un nro. decimal especificado double nroDecimal = 125.81; double parteEntera = Math.Truncate(nroDecimal); listBox1.Items.Add("Truncar" + nroDecimal + "=" + parteEntera);
  • 15. 5.1. Clases de utilidad 5.1.2. clase Math - III 15 //Math.Round(nroFraccionario, nroDecimales). //Corta a cierta cantidad de decimales un nro. fraccionario, //redondeando si es necesario. double nroDecimal = 34.0578789; nroDecimal= Math.Round(nroDecimal, 2); listBox1.Items.Add(nroDecimal);
  • 16. 5.2. Arreglo Es una estructura de datos que almacena una colección finita de elementos homogéneos. Los datos pueden ser de tipo primitivo u objetos de la misma clase. Se almacena en memoria de forma contigua y ordenada. 16
  • 17. ..5.2. Arreglo Tipos de Arreglos: ◦ De una dimensión (Vector) ◦ De dos dimensiones (tabla) ◦ De tres o más dimensiones (matriz) 17 Unidimensional Bidimensional Multidimensional
  • 18. 5.2 Definición de objetos Representa alguna entidad de la vida real, es decir, alguno de los objetos que pertenecen al negocio con que estamos trabajando o al problema con el que nos estamos enfrentando, y con los que podemos interactuar. Características:  Identidad  Comportamiento  Estado Coco: Perro Nombre=“COCO” Raza=“LABRADOR RETRIEVER” Altura=“55 cm” Comer() Dormir() Ladrar() Clase Objeto 18
  • 19. 5.3 Declaración de arreglos de objetos Vector de Objetos Sintaxis para la declaracion (1ra forma): Perro[] vector; //Perro es una clase vector = new Perro[50]; // y vector es el nombre del arreglo. Sintaxis para la declaracion (2da forma): Producto[] venta= new Producto[100]; Pieza[,] tablero; tablero = new Pieza[8,8]; Simbolo[,] tabla = new Simbolo[3,3]; Tabla de Objetos 19
  • 20. 5.4 Operaciones con arreglos de objetos Creación del objeto en memoria vec[0] = new Item("mouse", "Periférico de entrada, que permite …", "C:/imagen/mouse.png"); vec[1] = new Item("teclado",“Permite ingresar caracteres …", "C:/imagen/teclado.png"); Item objetoItem = new Item("teclado",“Permite ingresar caracteres alfanumericos al PC", "C:/imagen/teclado.png"); vec[2] = objetoItem; 20
  • 21. …5.4 Operaciones con arreglos de objetos vec[0].setSignificado(“Unidad de entrada por defecto, sirve …"); vec[0].setFoto("C:/imagen/raton.png"); Mensajes al objeto ListBox1.Items.Add(vec[0].getPalabra() + ":" + vec[0].getSignificado()); 21
  • 22. 5.5 Aplicaciones con arreglos de objetos Caso de estudio 1: ◦ Implementar una aplicación llamada Diccionario Informático que, permita almacenar palabras del área de informática, junto a su significado y foto. ◦ Que la aplicación permita agregar nuevas palabras, modificar las existentes y buscar cualquier palabra almacenada. 22 Item - palabra: string - significado: string - foto: string + Item() + Item(string, string, string) + setPalabra(string) : void + setSignificado(string) : void + setFoto(string) : void + getPalabra() : string + getSignificado() : string + getFoto() : string Diccionario - vec: Item ([]) - n: int - MAXIMO: int = 100 + Diccionario() - inicializar() : void + buscar(string) : Item + modificar(string, string, string) : void + agregar(string, string, string) : void + existe(string) : int 1 *
  • 23. 23 class item { string palabra; string significado; string foto; public item() { this.palabra = ""; this.significado = ""; this.foto = ""; } public item(string palabra, string significado, string rutaFoto) { this.palabra = palabra; this.significado = significado; this.foto = rutaFoto; } public void setPalabra(string nuevaPalabra) { this.palabra = nuevaPalabra; } public void setSignificado(string nuevoSignificado) { this.significado = nuevoSignificado; } public void setFoto(string nuevaFoto) { this.foto = nuevaFoto; } public string getPalabra() { return this.palabra; } public string getSignificado() { return this.significado; } public string getFoto() { return this.foto; }
  • 24. 24 class diccionario { item[] vec; //vector de objetos int n; //dimension logica const int MAXIMO = 50; //Dimension fisica public diccionario() { vec = new item[MAXIMO]; n = 0; } public void inicializar() { string ruta = Directory.GetCurrentDirectory()+ "imagen"; vec[0] = new item("mouse", "Periférico de entrada, que pemite introducir pulsaciones u ordenes al computador", ruta + "mouse.jpg"); vec[1] = new item("teclado", "Periferico de entrada, permite ingresar caracteres alfanumericos al PC", ruta + "teclado.jpg"); vec[2] = new item("computador", "Maquina electronica, capaz de ejecutar gran cantidad de instrucciones", ruta + "computador.jpg"); vec[3] = new item("monitor", "Periferico de salida, permite visualizar de forma gráfica, los resultados de la CPU", ruta + "monitor.jpg"); vec[4] = new item("impresora", "Unidad de salida, imprime en papel la información.", ruta + "impresora.jpg"); vec[5] = new item("disco duro", "Unidad de almacenamiento masivo de forma permanente", ruta + "discoDuro.jpg"); vec[6] = new item("dvd", "Unidad de almacenamiento para video. Capadidad desde 4 GB", ruta + "dvd.jpg"); n = 7; } public int cantidadDePalabras() //devuelve la cantidad de palabras registradas { return n; }
  • 25. 25 public item buscar(string criterio) { criterio = criterio.ToLower(); //convirtiendo a minuscula for(int i=0; i< n;i++) { if (vec[i].getPalabra().Equals(criterio)) return vec[i]; } return null; //en caso de que la palabra no exista. } public item elemento(int pos) { if (pos >= 1 && pos <= n) return vec[pos - 1]; else { MessageBox.Show("Error posicion fuera de rango"); return null; } } public void agregarPalabra(item nuevoItem) { if(n==MAXIMO) MessageBox.Show("Error, Diccionario lleno!"); else { vec[n]= nuevoItem; n++; } }
  • 26. 26
  • 27. 27
  • 28. 28 public partial class Form1 : Form { diccionario dic; //declaracion del objeto diccionario public Form1() { InitializeComponent(); dic = new diccionario(); //creacion del objeto en memoria dic.inicializar(); //mensaje al objeto } private void btnBuscar_Click(object sender, EventArgs e) { try { item objetoItem = dic.buscar(txtPalabra.Text); if (objetoItem != null) { txtSignificado.Text = txtPalabra.Text.ToUpper() + ": " + objetoItem.getSignificado(); pbxFoto.Image = Image.FromFile(objetoItem.getFoto()); } else { txtSignificado.Text = "La palabra no esta registrada!"; pbxFoto.Image = null; } txtPalabra.Clear(); } catch { MessageBox.Show("Error al recuperar los datos"); } } Llamada al método buscar palabra en el diccionario
  • 29. 29 private void btnSeleccionarFoto_Click(object sender, EventArgs e) { txtRutaNueva.Text = seleccionarArchivo(); } private string seleccionarArchivo() { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Archivos jpg (*.jpg)|*.jpg"; ofd.Title = "Seleccionar"; string ruta = ""; if (ofd.ShowDialog() == DialogResult.OK) { ruta= ofd.FileName; } ofd.Dispose(); //Libera el espacio en memoria ocupado return ruta; } private void btnAgregar_Click(object sender, EventArgs e) { item objItem = new item(); objItem.setPalabra(txtPalabraNueva.Text); objItem.setSignificado(txtSignificadoNuevo.Text); objItem.setFoto(txtRutaNueva.Text); dic.agregarPalabra(objItem); } Procedimiento para seleccionar la ruta de un archivo .jpg Llamada al método Agregar palabra al diccionario
  • 30. 30 private void btnVer_Click(object sender, EventArgs e) { lbxListado.Items.Clear(); int cantidad = dic.cantidadDePalabras(); for(int i=1;i<=cantidad;i++) { item objItem = dic.elemento(i); lbxListado.Items.Add(objItem.getPalabra()); } } Método para listar todas las palabras registradas en el diccionario
  • 31. 31 … 5.5 Aplicaciones con arreglos de objetos Ejemplo 2. Registro de Notas grupo - MAXIMO: int = 50 - cantidad: int - vec: estudiante ([]) + grupo(int) + registrar(int, estudiante) : void + mostrarTodo(ListBox) : void + promedioNotas() : double + mayorNota(ListBox) : void + menorNota(ListBox) : void estudiante - codigo: string - nombre: string - nota: double + estudiante(string, string, double) + Codigo() : string + Nombre() : string + Nota() : double -vec • Se requiere una programa para almacenar los datos de un grupo de estudiantes. De cada estudiante interesa su código, nombre y nota. • Se requiere poder calcular el promedio de notas, la mayor y menor nota del grupo y mostrar los datos de todos los estudiantes registrados.
  • 32. 32 class estudiante { private string codigo; private string nombre; private double nota; public estudiante(string codigo, string nombre, double nota) { this.codigo = codigo; this.nombre = nombre; this.nota = nota; } public string Codigo { get { return codigo; } set { codigo = value; } } public string Nombre { get { return nombre; } set { nombre = value; } } public double Nota { get { return nota; } set { nota = value; } } } Solución al Ejemplo 2. Registro de Notas
  • 33. class grupo { private const int MAXIMO = 50; private int cantidad; private estudiante[] vec; //crea el vector en base a la cant. De alumnos public grupo(int cantidadAlumnos) { if (cantidadAlumnos >= 1 && cantidadAlumnos <= MAXIMO) { vec = new estudiante[cantidadAlumnos]; this.cantidad = cantidadAlumnos; } else MessageBox.Show("Error: la cantidad de alumnos debe ser maximo " + MAXIMO); } //almacena un objeto de tipo estudiante en la posición especificada. public void registrar(int posicion, estudiante objEstudiante) { if (posicion >= 1 && posicion <= cantidad) vec[posicion - 1] = objEstudiante; else MessageBox.Show("Error: posicion fuera de rango!"); } 33 Implementación de la clase Grupo
  • 34. //Muestra los datos almacenados en el vector public void mostrarTodo(ListBox lista) { lista.Items.Clear(); for(int i=0; i<cantidad; i++) { lista.Items.Add(vec[i].Codigo + " Nota:" + vec[i].Nota + " "+ vec[i].Nombre); } } //Muestra los estudiantes que tienen la mayor nota public void mayorNota(ListBox lista) { double mayorActual = -1; for (int i = 0; i < cantidad; i++) { if (mayorActual < vec[i].Nota) mayorActual = vec[i].Nota; } for (int i = 0; i < cantidad; i++) { if (mayorActual == vec[i].Nota) lista.Items.Add(vec[i].Codigo + " Nota:" + vec[i].Nota + " " + vec[i].Nombre); } } 34
  • 35. 5.6. Colección List Representa una lista de objetos fuertemente tipados a la que se puede obtener acceso por índice. Proporciona métodos para buscar, ordenar y manipular listas. Espacio de nombres: System.Collections.Generic Declaración y Creación List<tipoDato> lista = new List<tipoDato>(); 35
  • 36. … 5.6. Propiedades de List 36 Nombre Descripción Capacity Obtiene o establece el número total de elementos que puede contener la estructura de datos interna sin cambiar el tamaño. Count Obtiene el número de elementos incluidos en List<T>. Item[Int32] Obtiene o establece el elemento en el índice especificado.
  • 37. … 5.6. Métodos de List Nombre Descripción Add(T) Agrega un objeto al final de List<T>. Clear() Quita todos los elementos de List<T>. IndexOf(T) Busca el objeto especificado y devuelve el índice de base cero de la primera aparición en todo el objeto List<T>. Insert(Int32, T) Inserta un elemento en List<T>, en el índice especificado. Remove(T) Quita la primera aparición de un objeto específico de la interfaz List<T>. Sort() Ordena los elementos de toda la List<T> utilizando el comparador predeterminado. 37
  • 38. Ejemplo: Lista de String 38 List<string> lista = new List<string>(); private void btnMostrar_Click(object sender, EventArgs e) { lista.Add("Ruben"); lista.Add("Jose"); lista.Add("Dan"); lista.Add("Isacar"); lista.Add("Dina"); mostrar(); //Obtener el nro. de indice de un elemento lbVitrina.Items.Add(“Indice del elemento Dan:" + lista.IndexOf("Dan")); //2 //Insertando un nuevo elemento, en una posicion especificada lista.Insert(1, "Gad"); mostrar();
  • 39. … Ejemplo: Lista de String 39 //eliminando un elemento de la lista lista.Remove("Isacar"); mostrar(); //ordena los elementos lista.Sort(); mostrar(); //Verificando si existe un elemento. bool bandera= lista.Contains("Dina"); lbVitrina.Items.Add("Existe Dina en la lista?" + bandera); //eliminando todos los elementos de la lista lista.Clear(); lbVitrina.Items.Add("Cantidad de elementos:" + lista.Count); }
  • 40. … Ejemplo: Lista de String 40 //mostrando todos los elementos, en base a su posición private void mostrar() { lbVitrina.Items.Add("--- ELEMENTOS DE LA LISTA ----"); for (int i = 0; i < lista.Count; i++) lbVitrina.Items.Add(lista[i]); }
  • 41. 41
  • 42. Ejemplo: Lista de Objetos 42
  • 43. …Ejemplo: Lista de Objetos 43 class Policia { public int CI { get; set; } public string Nombre { get; set; } //autopropiedad public string TipoSangre { get; set; } public Policia() { CI = 0; Nombre = ""; TipoSangre = ""; } }
  • 44. 44 public partial class Form1 : Form { List<Policia> lista = new List<Policia>(); public Form1() { InitializeComponent(); } private void btnGuardar_Click(object sender, EventArgs e) { Policia objPolicia = new Policia(); objPolicia.CI = int.Parse(txtCI.Text); objPolicia.Nombre = txtNombre.Text; objPolicia.TipoSangre = txtTipoSangre.Text; lista.Add(objPolicia); Mostrar(); LimpiarControles(); } …Ejemplo: Lista de Objetos
  • 45. 45 private void Mostrar() { int n = lista.Count; dgvTabla.RowCount = n; dgvTabla.ColumnCount = 3; for(int i=0;i<n;i++) { dgvTabla.Rows[i].Cells[0].Value = lista[i].CI; dgvTabla.Rows[i].Cells[1].Value = lista[i].Nombre; dgvTabla.Rows[i].Cells[2].Value = lista[i].TipoSangre; } } private void LimpiarControles() { txtCI.Clear(); txtNombre.Clear(); txtTipoSangre.Clear(); } } } …Ejemplo: Lista de Objetos
  • 46. Caso de estudio: Evaluación de conocimiento de historia del futbol 46
  • 47. 47 class Class Model Item + Item(string, bool) «property» + pregunta(): string + respuesta(): bool Form Form1 - objCuestionario: Cuestionario =new Cuestionario() - puntaje: int =0 - objRandom: Random =new Random() - nroPreguntasRealizadas: int - nroPreguntaActual: int - objItem: Item - MAXIMO_PREGUNTAS: int =5 + Form1() - button1_Click(object, EventArgs): void - LanzarPregunta(): void - Form1_Load(object, EventArgs): void - btnSiguiente_Click_1(object, EventArgs): void Cuestionario - arreglo: Item ([]) - n: int + Cuestionario() + ObtenerPregunta(int): Item + CantidadPreguntas(): int -objItem -arreglo -objCuestionario Caso de estudio: Evaluación de conocimiento de historia del futbol
  • 48. 48 Caso de estudio: Juego Tres en Raya
  • 49. Caso de estudio: Juego Tres en Raya 49 class Class Model TresEnRaya - m: char ([,]) - turno: char + TresEnRaya() + reiniciarTablero(): void + DefinirTurnoInicial(char): void + RegistrarJugada(int): void - CambiarTurno(): void + Ganador(): int - HayTresEnRaya(char): bool - HayCasillasVacias(): bool + MostrarMarca(int): char Program - Main(): void Form Form1 - objTR: TresEnRaya + Form1() - btnInicio_Click(object, EventArgs): void - btn0_Click_1(object, EventArgs): void - Marcar(Button, int): void - LimpiarControles(): void - ActivarBotones(): void - btn1_Click(object, EventArgs): void - btn2_Click(object, EventArgs): void - btn3_Click(object, EventArgs): void - btn4_Click(object, EventArgs): void - btn5_Click(object, EventArgs): void - btn6_Click(object, EventArgs): void - btn7_Click(object, EventArgs): void - btn8_Click(object, EventArgs): void -objTR
  • 50. 50