Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un...
Transcript of Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un...
![Page 1: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/1.jpg)
Arreglos
Amparo Lopez Gaona
Agosto de 2008
Amparo Lopez Gaona () Arreglos Agosto de 2008 1 / 21
![Page 2: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/2.jpg)
Introduccion
Un arreglo es
un objeto que agrupa una cantidad fija y predeterminada deelementos del mismo tipo.La declaracion de un arreglo requiere crear una referencia a el y luegollamar al constructor de la clase.Referencia: tipoDeDato [] nombreDeArreglo ;Constructor: new tipoDeDato [tamano];Ejemplo:
int[] enteros;enteros = new int [10];
int [] enteros = new int[10]; // Declaracion en una sola instruccion
0 1 2 3 4 5 6 7 8 9
10 elementos
Índices
int [] enteros
= new int[10]
Amparo Lopez Gaona () Arreglos Agosto de 2008 3 / 21
![Page 3: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/3.jpg)
Introduccion
Un arreglo es un objeto que agrupa una cantidad fija y predeterminada deelementos del mismo tipo.La declaracion de un arreglo requiere crear una referencia a el y luegollamar al constructor de la clase.Referencia:
tipoDeDato [] nombreDeArreglo ;Constructor: new tipoDeDato [tamano];Ejemplo:
int[] enteros;enteros = new int [10];
int [] enteros = new int[10]; // Declaracion en una sola instruccion
0 1 2 3 4 5 6 7 8 9
10 elementos
Índices
int [] enteros
= new int[10]
Amparo Lopez Gaona () Arreglos Agosto de 2008 3 / 21
![Page 4: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/4.jpg)
Introduccion
Un arreglo es un objeto que agrupa una cantidad fija y predeterminada deelementos del mismo tipo.La declaracion de un arreglo requiere crear una referencia a el y luegollamar al constructor de la clase.Referencia: tipoDeDato [] nombreDeArreglo ;Constructor:
new tipoDeDato [tamano];Ejemplo:
int[] enteros;enteros = new int [10];
int [] enteros = new int[10]; // Declaracion en una sola instruccion
0 1 2 3 4 5 6 7 8 9
10 elementos
Índices
int [] enteros
= new int[10]
Amparo Lopez Gaona () Arreglos Agosto de 2008 3 / 21
![Page 5: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/5.jpg)
Introduccion
Un arreglo es un objeto que agrupa una cantidad fija y predeterminada deelementos del mismo tipo.La declaracion de un arreglo requiere crear una referencia a el y luegollamar al constructor de la clase.Referencia: tipoDeDato [] nombreDeArreglo ;Constructor: new tipoDeDato [tamano];Ejemplo:
int[] enteros;enteros = new int [10];
int [] enteros = new int[10]; // Declaracion en una sola instruccion
0 1 2 3 4 5 6 7 8 9
10 elementos
Índices
int [] enteros
= new int[10]
Amparo Lopez Gaona () Arreglos Agosto de 2008 3 / 21
![Page 6: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/6.jpg)
Introduccion
Un arreglo es un objeto que agrupa una cantidad fija y predeterminada deelementos del mismo tipo.La declaracion de un arreglo requiere crear una referencia a el y luegollamar al constructor de la clase.Referencia: tipoDeDato [] nombreDeArreglo ;Constructor: new tipoDeDato [tamano];Ejemplo:
int[] enteros;enteros = new int [10];
int [] enteros = new int[10]; // Declaracion en una sola instruccion
0 1 2 3 4 5 6 7 8 9
10 elementos
Índices
int [] enteros
= new int[10]
Amparo Lopez Gaona () Arreglos Agosto de 2008 3 / 21
![Page 7: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/7.jpg)
Introduccion
Un arreglo es un objeto que agrupa una cantidad fija y predeterminada deelementos del mismo tipo.La declaracion de un arreglo requiere crear una referencia a el y luegollamar al constructor de la clase.Referencia: tipoDeDato [] nombreDeArreglo ;Constructor: new tipoDeDato [tamano];Ejemplo:
int[] enteros;enteros = new int [10];
int [] enteros = new int[10]; // Declaracion en una sola instruccion
0 1 2 3 4 5 6 7 8 9
10 elementos
Índices
int [] enteros
= new int[10]
Amparo Lopez Gaona () Arreglos Agosto de 2008 3 / 21
![Page 8: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/8.jpg)
... Introduccion
Otra forma de declaracion:int [] enteros = new int[] {0,1,1,2,3};int [] enteros = {0,1,1,2,3};
Existe una constante length que indica el numero de elementos en elarreglo.
for (int i = 0; i < enteros.length; i++)System.out.print(enteros[i] + ",");
System.out.println();
Amparo Lopez Gaona () Arreglos Agosto de 2008 5 / 21
![Page 9: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/9.jpg)
... Introduccion
Otra forma de declaracion:int [] enteros = new int[] {0,1,1,2,3};int [] enteros = {0,1,1,2,3};Existe una constante length que indica el numero de elementos en elarreglo.
for (int i = 0; i < enteros.length; i++)System.out.print(enteros[i] + ",");
System.out.println();
Amparo Lopez Gaona () Arreglos Agosto de 2008 5 / 21
![Page 10: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/10.jpg)
Problema
En una escuela se necesita un programa para ayudar con el trabajo de laseccion escolar. El programa debe conservar y obtener datos acerca de losalumnos. Los datos que debe tener, o en su caso calcular, son los datospersonales del alumno, calificaciones, promedio, la mayor calificacionobtenida, los cursos en los cuales su calificacion es 10 y determinar elaprovechamiento de un alumno con respecto al resto del grupo.
1 Encontrar los objetos principales.Sustantivos: seccion escolar, alumno.
2 Determinar el comportamiento deseado.Alumno:
Crear un registro de alumno.Obtener el valor de cada uno de los atributos.Asignar valor a cada atributo.Calcular el promedio de las calificaciones.Obtener la calificacion mas alta.Determinar el curso con una calificacion particular.Determinar todos los cursos con calificacion igual a 10.Determinar el aprovechamiento de un alumno con respecto al resto del grupo.
Amparo Lopez Gaona () Arreglos Agosto de 2008 6 / 21
![Page 11: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/11.jpg)
Problema
En una escuela se necesita un programa para ayudar con el trabajo de laseccion escolar. El programa debe conservar y obtener datos acerca de losalumnos. Los datos que debe tener, o en su caso calcular, son los datospersonales del alumno, calificaciones, promedio, la mayor calificacionobtenida, los cursos en los cuales su calificacion es 10 y determinar elaprovechamiento de un alumno con respecto al resto del grupo.
1 Encontrar los objetos principales.Sustantivos: seccion escolar, alumno.
2 Determinar el comportamiento deseado.Alumno:
Crear un registro de alumno.Obtener el valor de cada uno de los atributos.Asignar valor a cada atributo.Calcular el promedio de las calificaciones.Obtener la calificacion mas alta.Determinar el curso con una calificacion particular.Determinar todos los cursos con calificacion igual a 10.Determinar el aprovechamiento de un alumno con respecto al resto del grupo.
Amparo Lopez Gaona () Arreglos Agosto de 2008 6 / 21
![Page 12: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/12.jpg)
... Problema
1 Definir escenario.
1 El programa muestra un menu con las opciones.2 El usuario selecciona una opcion.3 Dependiendo de la opcion seleccionada, se solicita mas informacion.4 Estos pasos se repiten hasta que el usuario seleccione la opcion para
terminar de trabajar.
Amparo Lopez Gaona () Arreglos Agosto de 2008 7 / 21
![Page 13: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/13.jpg)
Clase Alumno
public class Alumno {
private String nombre;
private String numRegistro;
private char carrera;
private int [] calif;
public Alumno (String n, String ng, char c) {
final int numCursos; // Cantidad de cursos
nombre = n;
numRegistro = ng;
carrera = c;
switch(carrera) {
case ’a’: numCursos = 40; break; //Actuar’ia
case ’m’: numCursos = 32; break; //Matem’aticas
case ’c’: numCursos = 36; break; //Computaci’on
case ’b’: numCursos = 35; break; //Biolog’ia
case ’f’: numCursos = 30; break; //F’isica
default: numCursos = 5; //Para probar los m’etodos
}
calif = new int[numCursos];
}
Amparo Lopez Gaona () Arreglos Agosto de 2008 9 / 21
![Page 14: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/14.jpg)
Clase Alumno
public String obtenerNombre() {return nombre;
}// ... Los otros obtenerXpublic int obtenerNumCalificaciones() {
return calif.length;}public void registrarCalif(int curso, int cal) {
if (curso > 0 && curso < calif.length)calif[curso] = (cal >= 0 && cal <=10) ? cal : 0;
}public double promedio() {
double suma = 0;for (int i=0; i< calif.length; i++)suma += calif[i];
return suma/calif.length;}
Amparo Lopez Gaona () Arreglos Agosto de 2008 11 / 21
![Page 15: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/15.jpg)
Clase Alumno
public String obtenerNombre() {return nombre;
}// ... Los otros obtenerXpublic int obtenerNumCalificaciones() {
return calif.length;}public void registrarCalif(int curso, int cal) {
if (curso > 0 && curso < calif.length)calif[curso] = (cal >= 0 && cal <=10) ? cal : 0;
}public double promedio() {
double suma = 0;for (int i=0; i< calif.length; i++)suma += calif[i];
return suma/calif.length;}
Amparo Lopez Gaona () Arreglos Agosto de 2008 11 / 21
![Page 16: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/16.jpg)
Clase Alumno
public String obtenerNombre() {return nombre;
}// ... Los otros obtenerXpublic int obtenerNumCalificaciones() {
return calif.length;}public void registrarCalif(int curso, int cal) {
if (curso > 0 && curso < calif.length)calif[curso] = (cal >= 0 && cal <=10) ? cal : 0;
}public double promedio() {
double suma = 0;for (int i=0; i< calif.length; i++)suma += calif[i];
return suma/calif.length;}
Amparo Lopez Gaona () Arreglos Agosto de 2008 11 / 21
![Page 17: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/17.jpg)
Clase Alumno
public String obtenerNombre() {return nombre;
}// ... Los otros obtenerXpublic int obtenerNumCalificaciones() {
return calif.length;}public void registrarCalif(int curso, int cal) {
if (curso > 0 && curso < calif.length)calif[curso] = (cal >= 0 && cal <=10) ? cal : 0;
}public double promedio() {
double suma = 0;for (int i=0; i< calif.length; i++)suma += calif[i];
return suma/calif.length;}
Amparo Lopez Gaona () Arreglos Agosto de 2008 11 / 21
![Page 18: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/18.jpg)
Metodo para saber los cursos en los que obtuvo 10 el alumno.
public int[] todosLosDieces () {int j = 0;int [] dieces = new int[califs.length + 1];
for (int i = 0; i < califs.length; i++) {if (califs[i] == 10) {dieces[++j] = i;
}}dieces[0] = j ;return dieces;
}
Uso de este metodo
int[] excelentes = alumn.todosLosDieces();for (int i=1; i<=excelentes[0];i++)System.out.println(excelentes[i]+" ");
Amparo Lopez Gaona () Arreglos Agosto de 2008 13 / 21
![Page 19: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/19.jpg)
Metodo para saber los cursos en los que obtuvo 10 el alumno.
public int[] todosLosDieces () {int j = 0;int [] dieces = new int[califs.length + 1];
for (int i = 0; i < califs.length; i++) {if (califs[i] == 10) {dieces[++j] = i;
}}dieces[0] = j ;return dieces;
}
Uso de este metodo
int[] excelentes = alumn.todosLosDieces();for (int i=1; i<=excelentes[0];i++)System.out.println(excelentes[i]+" ");
Amparo Lopez Gaona () Arreglos Agosto de 2008 13 / 21
![Page 20: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/20.jpg)
Metodo para saber los cursos en los que obtuvo 10 el alumno.
public int[] todosLosDieces () {int j = 0;int [] dieces = new int[califs.length + 1];
for (int i = 0; i < califs.length; i++) {if (califs[i] == 10) {dieces[++j] = i;
}}dieces[0] = j ;return dieces;
}
Uso de este metodo
int[] excelentes = alumn.todosLosDieces();for (int i=1; i<=excelentes[0];i++)System.out.println(excelentes[i]+" ");
Amparo Lopez Gaona () Arreglos Agosto de 2008 13 / 21
![Page 21: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/21.jpg)
Metodo para determinar el aprovechamiento de un alumno con respecto alresto del grupo.
public int compararPromedio(int [] promedio) {int menor = 0, mayor = 0, igual = 0;
for (int i = 0; i < calif.length; i++)if (calif[i] < promedio[i])menor ++;
else if (calif[i] > promedio[i])mayor ++;
elseigual ++;
if (mayor > menor && mayor > igual) return 1;if (menor > mayor && menor > igual) return -1;return 0;
}
Amparo Lopez Gaona () Arreglos Agosto de 2008 15 / 21
![Page 22: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/22.jpg)
Metodo para determinar el aprovechamiento de un alumno con respecto alresto del grupo.
public int compararPromedio(int [] promedio) {int menor = 0, mayor = 0, igual = 0;
for (int i = 0; i < calif.length; i++)if (calif[i] < promedio[i])menor ++;
else if (calif[i] > promedio[i])mayor ++;
elseigual ++;
if (mayor > menor && mayor > igual) return 1;if (menor > mayor && menor > igual) return -1;return 0;
}
Amparo Lopez Gaona () Arreglos Agosto de 2008 15 / 21
![Page 23: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/23.jpg)
Paso de parametros por valor
public class Cambios{
static void modificar(int [] x) {
for (int i = 0; i < x.length; i ++)
x[i] *= 2;
}
static void modificar(int x) {
x *= 2;
}
static public void main (String [] pps) {
int a[] = {0,1,2,3,4,5,6};
System.out.println("El arreglo original tiene ");
for (int i = 0; i < a.length; i ++)
System.out.print(" " + a[i]);
modificar(a);
System.out.println("\nEl arreglo ahora tiene ");
for (int i = 0; i < a.length; i ++)
System.out.print(" " + a[i]);
modificar(a[4]);
System.out.println("\nEl arreglo ahora tiene ");
for (int i = 0; i < a.length; i ++)
System.out.print(" " + a[i]);
}
La salida de este programa es:
El arreglo original tiene
0 1 2 3 4 5 6
El arreglo ahora tiene
0 2 4 6 8 10 12
El arreglo ahora tiene
0 2 4 6 8 10 12
Amparo Lopez Gaona () Arreglos Agosto de 2008 17 / 21
![Page 24: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/24.jpg)
Paso de parametros por valor
public class Cambios{
static void modificar(int [] x) {
for (int i = 0; i < x.length; i ++)
x[i] *= 2;
}
static void modificar(int x) {
x *= 2;
}
static public void main (String [] pps) {
int a[] = {0,1,2,3,4,5,6};
System.out.println("El arreglo original tiene ");
for (int i = 0; i < a.length; i ++)
System.out.print(" " + a[i]);
modificar(a);
System.out.println("\nEl arreglo ahora tiene ");
for (int i = 0; i < a.length; i ++)
System.out.print(" " + a[i]);
modificar(a[4]);
System.out.println("\nEl arreglo ahora tiene ");
for (int i = 0; i < a.length; i ++)
System.out.print(" " + a[i]);
}
La salida de este programa es:
El arreglo original tiene
0 1 2 3 4 5 6
El arreglo ahora tiene
0 2 4 6 8 10 12
El arreglo ahora tiene
0 2 4 6 8 10 12Amparo Lopez Gaona () Arreglos Agosto de 2008 17 / 21
![Page 25: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/25.jpg)
Arreglos de cadenas
public static void main(String [] pps) {String [] materia = {"’Algebra", "C’alculo","Computaci’on",
"Estructuras de Datos", "Bases de Datos"};
Alumno alumn= new Alumno("Andrea","921404",’x’);...excelentes = alumn.todosLosDieces();for (int i = 1; i<=excelentes[0]; i++)System.out.println("Obtuvo 10 en "+materia[excelentes[i]]);
}
Amparo Lopez Gaona () Arreglos Agosto de 2008 19 / 21
![Page 26: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/26.jpg)
Parametros del main
public class PruebaAlumno {public static void main (String[] pps) {if (pps.length != 3) {System.out.println("Error: cantidad inadecuada de datos.");
} else {Alumno alumn= new Alumno(pps[0],pps[1],pps[2].charAt(0));System.out.print("Los par’ametros son ");for (int i = 0; i < pps.length; i++)System.out.print(" " + pps[i]);
System.out.println();alumn.asignarCalifs();... //Todo como antes
}}
}
Amparo Lopez Gaona () Arreglos Agosto de 2008 21 / 21
![Page 27: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/27.jpg)
Arreglos de objetos
public class SecEscolar {Alumno [] poblaci’onEst ;int nAlumnos;
public SecEscolar () {poblaci’onEst = new Alumno[100];nAlumnos = 0;
}
public SecEscolar (int tam) {poblaci’onEst = (tam > 0) ? new Alumno[tam]: new Alumno[100];nAlumnos = 0;
}
public void insertar(Alumno alum) {if (nAlumnos < poblaci’onEst.length && buscar(alum) == -1) {poblaci’onEst[nAlumnos++] = alum;
}}Amparo Lopez Gaona () Arreglos Agosto de 2008 23 / 21
![Page 28: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/28.jpg)
public int buscar(Alumno alum) {return buscar (alum.obtenerNombre());
}
private int buscar(String alumn) {int i = 0;boolean encontro = false;alumn = alumn.trim();
for (int i = 0; i < nAlumnos && !encontro; i++) {if (poblacionEst[i].obtenerNombre().equalsIgnoreCase(alumn)) {encontro = true;
}}return (encontro) ? i - 1 : -1;
}
Amparo Lopez Gaona () Arreglos Agosto de 2008 25 / 21
![Page 29: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/29.jpg)
Arreglos bidimensionales
Matriz de diez renglones, cada uno de cinco columnas.
final int renglones = 10, columnas = 5;double [][] matriz = new double[renglones][columnas];
0 1 2 3 4
0
1
2
3
4
5
6
7
8
9
matriz
for (int i = 0; i < matriz.length; i++) {for (int j = 0; j < matriz[i].length; j++) {
matriz[i][j] = i + j;}
}Amparo Lopez Gaona () Arreglos Agosto de 2008 27 / 21
![Page 30: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/30.jpg)
Arreglos bidimensionales
Diferimiento de la creacion de cada renglon de la matriz.
double [][] matriz = new double[renglones][];for (int renglon = 0; renglon < matriz.length; renglon++)matriz[renglon] = new double[columnas];
Es posible tener arreglos donde cada renglon tenga diferente cantidad deelementos.
final int renglones = 5;int [][] triangulo = new int [renglones][];for (int i = 0; i < triangulo.length; i++) {triangulo[i] = new int [i+1];
}
Cambiar de un renglon por otro.
double [] temp = matriz[3];matriz [3] = matriz[4];matriz [4] = temp;
Amparo Lopez Gaona () Arreglos Agosto de 2008 29 / 21
![Page 31: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/31.jpg)
Arreglos bidimensionales
Diferimiento de la creacion de cada renglon de la matriz.
double [][] matriz = new double[renglones][];for (int renglon = 0; renglon < matriz.length; renglon++)matriz[renglon] = new double[columnas];
Es posible tener arreglos donde cada renglon tenga diferente cantidad deelementos.
final int renglones = 5;int [][] triangulo = new int [renglones][];for (int i = 0; i < triangulo.length; i++) {triangulo[i] = new int [i+1];
}
Cambiar de un renglon por otro.
double [] temp = matriz[3];matriz [3] = matriz[4];matriz [4] = temp;
Amparo Lopez Gaona () Arreglos Agosto de 2008 29 / 21
![Page 32: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/32.jpg)
Inicializacion de una matriz
Declaracion e inicializacion de una matriz de cuatro renglones cadauno de tres enteros.
int [][] matriz4x3 = {{0, 23, 32},{67, 89, 98},{56, 34, 7},{17, 20, 89},};Declaracion e inicializacion de una matriz triangular de cincorenglones.
int [][] trianguloPascal = {{1},{1,1},{1,2,1},{1,3,3,1},{1,4,6,4,1},};Amparo Lopez Gaona () Arreglos Agosto de 2008 31 / 21
![Page 33: Arreglos - Facultad de Cienciashp.fciencias.unam.mx/~alg/pAvz/arreglos.pdf · Introducci´on Un arreglo es un objeto que agrupa una cantidad fija y predeterminada de elementos del](https://reader030.fdocuments.ec/reader030/viewer/2022040916/5e8f4f387dea5100d33ead8a/html5/thumbnails/33.jpg)
Tamano de una matriz
En el caso de matrices length indica la cantidad de renglones que tiene lamatriz.Por cada renglon hay otra length que indica su longitud.matriz[i].length = cantidad de elementos en el renglon i.matriz.length = cantidad de renglones que tiene la matriz.
Amparo Lopez Gaona () Arreglos Agosto de 2008 32 / 21