arreglos - facultad de cienciashp.fciencias.unam.mx/~alg/pavz/arreglos.pdf · introducci´on un...

33
Arreglos Amparo L´ opez Gaona Agosto de 2008 Amparo L´ opez Gaona () Arreglos Agosto de 2008 1 / 21

Upload: others

Post on 02-Apr-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

... 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

... 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

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

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

... 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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