Clase Vector Problemas
17/ 11 11/04
Cur so so de de Al Algor itit mi mia y P ro rogr am am ac ac ió ión - P ro rof : Maur ic ic io io Fe Fer ná nández - Clas e 7
1/ 23 23
La Clase Vector Un Vector es similar a un array, con la diferencia que un Vector crece automáticamente cuando alcanza la dimensión inicial máxima. máxi ma. Además, proporciona métodos adicionales para añadir, eliminar elementos, e insertar elementos entre otros dos existentes.. Veamos algunos de ellos: existentes
Cómo crear un Vector: Vec tor m iVector = new Vec tor tor(); ();
17/ 11 11/04
Cur so so de de Al Algor itit mi mia y P ro rogr am am ac ac ió ión - P ro rof : Maur ic ic io io Fe Fer ná nández - Clas e 7
2/ 23 23
1
La Clase Vector Otra forma de creación de un vector: Vector miVec = new Vector();
•
Vector miVec = new Vector(25);
•
• Vector miVec = new Vector(20,5);
Para usar la clase Vector debemos importar la librería : import java.util.*;
17/ 11/04
Cur so de Algor it mia y P rogr am ac ión - P rof : Maur ic io Fer nández - Clas e 7
3/ 23
La Clase Vector Para añadir elementos al vector: Hay dos formas de añadir elementos a un vector: 1. añadiendo un elemento a continuación del último elemento del vector, usando la función miembro addElement. miVec.addElement("uno"); miVec.addElement("dos"); miVec.addElement("cinco"); miVec.addElement(“cuatro");
uno
17/ 11/04
dos
cinco
cuatro
...
Cur so de Algor it mia y P rogr am ac ión - P rof : Maur ic io Fer nández - Clas e 7
4/ 23
2
La Clase Vector Otra forma de añadir elementos al vector: 2. insertand o un elem ento en una d eterminad a posición, med iante la función miem bro insertElementAt miVec.insertElementAt("tres", 2);
“cinco” “uno”
“dos”
“tres”
“cuatro”
...
17/ 11/04
Cur so de Algor it mia y P rogr am ac ión - P rof : Maur ic io Fer nández - Clas e 7
5/ 23
La Clase Vector Eliminar elementos del vector: 1. La función m iem b ro removeAllElements elimina todos los elem entos de un vec tor. miVec.removeAllElements();
2. Para eliminar un elem ento pa rticular del Vector, utilizam os la función m iem bro removeElement miVec.removeElement("cuatro“);
Si existen varios datos en el vector que coinciden con el dato a eliminar, se elimina el primero que halle
17/ 11/04
Cur so de Algor it mia y P rogr am ac ión - P rof : Maur ic io Fer nández - Clas e 7
6/ 23
3
La Clase Vector Para eliminar un elem ento de una po sic ión espe c ífic a d el Vec tor, utilizam os la func ión miembro removeElementAt miVec.removeElementAt(2);
17/ 11/04
Cur so de Algor it mia y P rogr am ac ión - P rof : Maur ic io Fer nández - Clas e 7
7/ 23
La Clase Vector Ac c eso a Eleme ntos del Ve c tor • Para c onoc er cuá l es el prime r elem ento alma cenado en el vec tor: miVec.firstElement()
• Para c onoc er cuál es el ultim o elem ento guarda do en el vec tor: miVec.lastElement()
• Para sab er si un vector está vac ío: miVec.isEmpty()
d evuelve true o fa lse si el vec tor esta va c ío o no 17/ 11/04
Cur so de Algor it mia y P rogr am ac ión - P rof : Maur ic io Fer nández - Clas e 7
8/ 23
4
La Clase Vector Ac c eso a los eleme ntos de un vec tor Pa ra sab er c uantos elem entos tiene un ve c tor, se usa la función miem bro size miVec.size Para sab er la dim ensión ac tual de l vec tor, se usa la función capacity miVec.capacity Para ver el c ontenido d el Vec tor en la p osición i , usam os la función m iem bro elementAt . miVec.elementAt(3) regresa c ontenido de Vec tor miVec en la p osición 4 17/ 11/04
Cur so de Algor it mia y P rogr am ac ión - P rof : Maur ic io Fer nández - Clas e 7
9/ 23
L a Cla s e V e c to r public class UsaVectores{ public static void main(String a[ ]){ VectorClass miDato = new VectorClass(); public class VectorClass{ miDato.miVec.addElement("Medicina"); Vector miVec = new V ector(); miDato.miVec.addElement("Ingenieria"); } miDato.miVec.addElement("Ciencias"); miDato.miVec.addElement("Economia"); miDato.miVec.addElement("Humanidades"); miDato.miVec.addElement("Administración"); JOptionPane.showMessageDialog(null,"El primer elemento es " + miDato.miVec.firstElement() ); JOptionPane.showMessageDialog(null,"El ultimo elemento es " + miDato.miVec.lastElement() ); JOptionPane.showMessageDialog(null,"El segundo elemento es " + miDato.miVec.elementAt(1) ); System.exit(0); } } 1 7/ 11 /0 4
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
1 0/ 23
5
Uso de Objetos con Vectores Ma nejar las notas de un estudia nte en un Obj eto, usand o un a rreg lo:
Cla se Estud iante Nombre Campo Tipo Dato codi
String
nomb
String
nota1
double
nota2
double
nota3
double
d ef
double
1 7/ 11 /0 4
public class String String double double double double }
Estudiante { codi; nomb; nota1; nota2; nota3; def;
Guardar como Estudi an te.ja va
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
1 1/ 23
Uso de Objetos con Vectores elEstudiante
elEstudiante
elEstudiante
elEstudiante
elEstudiante
codi=“ codi= “0427555” 0427555 ”;
codi =“ = “0416545” 0416545 ”;
codi =“ = “0405755 ”;
codi =“ = “0404633” 0404633 ”;
nomb=“ nomb= “Sergio” Sergio ”;
nomb =“ = “Walter” Walter”;
nomb =“ = “Alvaro ”;
nomb =“ = “Grace” Grace ”;
nota1=4.5;
nota1 =1.2;
nota1 =5.0;
nota1 =4.0;
nota2=5.0;
nota2 =1.2;
nota2 =5.0;
nota2 =4.4;
nota3=4.8;
nota3 =1.2;
nota3 =5.0;
nota3 =4.8;
def=4.77;
def=1.2;
def=5.0;
def=4.4;
1 7/ 11 /0 4
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
1 2/ 23
6
Uso de Objetos con Vectores Se requie re: •
•
•
•
Solic itar las notas d e c a d a estud iante Crear un objeto de la c lase Estudiante (llam ad o elEstudiante) Asigna rle a sus a tributos los va lores d igitad os por el usuario. Ingresar el objeto elEstudiante al vec tor
1 7/ 11 /0 4
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
1 3/ 23
Uso de Objetos con Vectores Solic itar las nota s de c a da estudia nte codi = JOptionPane.showInputDialog(“Codigo "); nomb = JOptionPane.showInputDialog(“Nombre "); cal1 = Double.parseDouble(JOptionPane.showInputDialog(“Calificacion 1 ")); cal2 = Double.parseDouble(JOptionPane.showInputDialog(“Calificacion 2 ")); cal3 = Double.parseDouble(JOptionPane.showInputDialog(“Calificacion 3 ")); notaFinal= (cal1+cal2+cal3)/3;
1 7/ 11 /0 4
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
1 4/ 23
7
Uso de Objetos con Vectores Crea r un obje to de la c lase Estudia nte (llamado elEstudiante) Estudiante elEstudiante = new Estudiante();
elEstudiante codi=?; nomb=?; nota1=?; nota2=?; nota3=?; def=?;
1 7/ 11 /0 4
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
1 5/ 23
Uso de Objetos con Vectores Asigna rle a los atributos de elEstudiante lo s va lores dig itad os po r el usuario. elEstudiante.codi=codigo;
elEstudiante
elEstudiante.nomb=nombre;
codi=“ codi=“9709555” 9709555”;
elEstudiante.nota1=cal1;
nomb=“ nomb=“Sergio” Sergio”;
elEstudiante. nota2=cal2;
nota1=4.5;
elEstudiante. nota3=cal3;
nota2=5.0;
elEstudiante.def=notaFinal;
nota3=4.8; def=4.77;
1 7/ 11 /0 4
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
1 6/ 23
8
Uso de Objetos con Vectores Ingresar el o bje to elEstudiante al vector Vector vecMiEstudiante = new Vector(); vecMiEstudiante.addElement(elEstudiante);
1 7/ 11 /0 4
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
1 7/ 23
Uso de Objetos con Vectores Estructura de solución del problema: Para (int i = 0; i
Solic itar las nota s de c ad a estudiante
•
Crear un objeto de la c lase Estudiante (llam ad o elEstudiante )
•
Asignarle a sus atributos los valo res dig itad os po r el usuario.
•
Ingresar el ob jeto elEstudiante al vec tor
}
1 7/ 11 /0 4
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
1 8/ 23
9
Uso de Objetos con Vectores Mostrar el c ód igo,nomb re y nota final de los estudian tes que pe rdie ron e l cu rso: Recorrer todo el vector de estudiantes y verificar si la nota de finitiva de c ada estudiante es menor que 3.0 Si se c umple esta c ondic ión, se m uestra e n miArea c ódig o, nom bre y nota final. Algoritmo:
para ( i = 0; hasta n; i++){ si ( la nota definitiva del estudiante i es menor que 3.0 ) mostrar el código, el nombre y la nota definitiva
}fin 1 7/ 11 /0 4
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
1 9/ 23
Uso de Objetos con Vectores def<3.0?
elEstudiante
elEstudiante
elEstudiante
elEstudiante
codi=“ codi= “0427555” 0427555 ”;
codi =“ = “0416545” 0416545 ”;
codi =“ = “0405755” 0405755 ”;
codi =“ = “0404633” 0404633 ”;
nomb=“ nomb= “Sergio” Sergio ”;
nomb =“ = “Walter” Walter”;
nomb =“ = “Alvaro ”;
nomb =“ = “Grace” Grace ”;
nota1=4.5;
nota1 =1.2;
nota1 =5.0;
nota1 =4.0;
nota2=5.0;
nota2 =1.2;
nota2 =5.0;
nota2 =4.4;
nota3=4.8;
nota3 =1.2;
nota3 =5.0;
nota3 =4.8;
def=4.77;
def=1.2;
def=5.0;
def=4.4;
1 7/ 11 /0 4
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
2 0/ 23
10
Uso de Objetos con Vectores Código Java : for (int i=0; i
Acceder al campo def (Nota definitiva) del objeto estudiante en la posición i del vector llamado vecMiEstudiante
1 7/ 11 /0 4
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
2 1/ 23
Uso de Objetos con Vectores Mostrar el nom bre d e los estudia ntes q ue g ana ron c ad a una d e las tres notas Recorrer todo el vector de estudiantes y verificar si nota1, nota2 y nota3 es ma yo r o ig ual 3.0 Si se c umple esta c ondic ión, se m uestra en m iArea el nom bre de ese e studiante. Algoritmo:
para ( int j=0; hasta n; j++) { si ( nota1>=3.0 & nota2>=3.0 & nota3>=3.0 para estudiante j) Mostrar (nombre) }fin 1 7/ 11 /0 4
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
2 2/ 23
11
Uso de Objetos con Vectores Código Java : for(int j=0; j=3.0 && ((Estudiante) vecMiEstudiante.elementAt(j)). nota2>=3.0 && ((Estudiante) vecMiEstudiante.elementAt(j)). nota3>=3.0 ) { miArea.append(((Estudiante) vecMiEstudiante.elementAt(j)).nomb); } } Casting del vector miVecEstudiantes a objeto de la clase Estudiante 1 7/ 11 /0 4
Cu rs o d e Algo rit m ia y P ro gr am ac ió n - P rof : Mau ric io F er nánd ez - Clas e 7
2 3/ 23
12