Está en la página 1de 3

Escuela de Ingeniería

Solucion Parcial de: Programación II Código de materia:


Fecha: Diciembre 2020 Grupo: Matutino V9

1) Una version inicial sin optimizar podria ser:


public static int profundidad (int[][] mat, int fila, int columna){
int min = Integer.MAX_VALUE;
int van = 0;
int color = mat[fila][col];
for (int i = fila; i<mat.length && mat[i][col]==color; i++){
van++;
}
min = Math.min(min, van);
van=0;
for (int i = fila; i>=0 && mat[i][col]==color; i--){
van++;
}
min = Math.min(min, van);
van = 0;
for (int j = col; j<mat[0].length && mat[fila][j]==color; j++){
van++;
}
min = Math.min(min, van);
van=0;
for (int j = col; j>=0 && mat[fila][j]==color; j--){
van++;
}
min = Math.min(min, van);
return min;
}

2)
public static void proceso(){
ArchivoLectura arch1 = new ArchivoLectura("Datos.txt");
ArchivoGrabacion sal = new ArchivoGrabacion("Resultado.txt");
int[][] mat;
if (arch1.hayMasLineas()){
// leo dimensiones
String[] dim = arch1.linea().split("@");
int m = Integer.parseInt(dim[0]);
int n = Integer.parseInt(dim[1]);
mat = new int[m][n];
for (int i =0; i < m; i ++){ // cargo matriz
arch1.hayMasLineas();
String[] elem = arch1.linea().split("@");
for (int k = 0; k<j; k++){
mat[i][k] = Integer.parseInt(elem[k]);
}
}
// proceso consultas
while (arch1.hayMasLineas()){
String[] con = arch1.linea().split("#");
int cualF = Integer.parseInt(con[0]);
int cualC = Integer.parseInt(con[1]);
sal.grabarLinea(profundidad(mat, cualF, cualC));
}
Escuela de Ingeniería
Solucion Parcial de: Programación II Código de materia:
Fecha: Diciembre 2020 Grupo: Matutino V9

}
arch1.cerrar();
sal.cerrar();
}
2) Caso de uso, actor:encargado
Curso normal
1. se muestran socio sin camioneta
2. se elige uno
3. se muestran camionetas con cupo de la zona del socio
4. se elige una y se asigna
Cursos alternativos
1. no hay socios sin camioneta, fin del caso
3. no hay camionetas con cupo, fin del caso

Interfaz
Componentes
JList A listaSocios, B listaCamionetas
JButton C botonAsignar, D botonSalir
Se agrega variable de instancia Sistema modelo
public Ventana(Sistema unModelo){
modelo = unModelo;
initComponents();
listaSocios.setListData(modelo.sociosLibres().toArray());
}

En Sistema
public ArrayList<Socio> sociosLibres(){
ArrayList<Socio> lista = new ArrayList<Socio>();
for (int = 0; i < this.getListaSocios().size(); i++){
if (this.getListaSocios().get(i).libre()){
lista.add(this.getListaSocios().get(i));
}
}
return lista;
}
Seleccion de socio
Socio socio = (Socio)(listaSocios.getSelectedValue());
listaCamionetas.setListData(modelo.darCamionetas(socio.getZona()).toArray());

En Sistema
public ArrayList<Camioneta> darCamionetas(Zona unaZona){
ArrayList<Camioneta> lista = new ArrayList<Camioneta>();
Iterator<Camioneta> iter = this.getListaCamionetas().iterator();
while (iter.hasNext()){
Camioneta c = iter.next();
if (c.tieneCupo() && c.getZona().equals(unaZona)){
lista.add(c);
}
Escuela de Ingeniería
Solucion Parcial de: Programación II Código de materia:
Fecha: Diciembre 2020 Grupo: Matutino V9

}
return lista;
}
En Camioneta
public boolean tieneCupo(){
return this.getCupo()> this.getListaSocios().size());
}
Al presionar boton de asignar
Socio socio = (Socio)(listaSocios.getSelectedValue());
Camioneta c =(Camioneta)(listaCamionetas.getSelectedValue());
c.getListaSocios().add(socio);
socio.setLibre(false);

También podría gustarte