material unidad ii prog oo ok

26
Curso: Programación Orientada a Objetos Ingeniería en Tecnologías de la Información y la Comunicación UNIDAD II Contenido: 2. Arreglos unidimensionales y multidimensionales. 2.1. Arreglo Unidimensionales listas (vectores). 2.1.1. Conceptos básicos. 2.1.2. Operaciones. 2.1.3. Aplicaciones. 2.2. Arreglo bidimensional. 2.2.1. Conceptos básicos. 2.2.2. Operaciones. 2.2.3. Aplicaciones. 2.3. Arreglo Multidimensional. 2.3.1. Conceptos básicos. 2.3.2. Operaciones. 2.3.3. Aplicaciones. Bibliografía: 1. Taylor David. Object Orient informations systems, planning and implementations. Ed. Ed. Wiley, Canadá, 1992. 2. Larman Craig. UML y patrones introducción al análisis y diseño orientado a objetos. Ed. Prentice Hall, México, 1999. 3. Winblad, Ann L. Edwards, Samuel R. Software orientado a objetos. Ed. Addison. Wesley/ Díaz Santos USA, 1993. 4. Deitel & Deitel. Java how to program. Ed. Prentice Hall. 5. Fco. Javier Ceballos. Java 2 Curso de Programación. Ed. Alfaomega. 6. Agustín Froufe. Java 2 Manual de usuario y tutorial. Ed. Alfaomega. 7. Laura Lemay, Rogers Cadenhead. Aprendiendo JAVA 2 en 21 días. Ed. Prentice Hall. 8. Herbert Schildt.

Upload: jonatan-ittai-flores-mendez

Post on 29-Dec-2015

73 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Material Unidad II Prog OO Ok

Curso: Programación Orientada a Objetos

Ingeniería en Tecnologías de la Información y la Comunicación UNIDAD II Contenido: 2. Arreglos unidimensionales y multidimensionales.

2.1. Arreglo Unidimensionales listas (vectores). 2.1.1. Conceptos básicos. 2.1.2. Operaciones. 2.1.3. Aplicaciones.

2.2. Arreglo bidimensional. 2.2.1. Conceptos básicos. 2.2.2. Operaciones. 2.2.3. Aplicaciones.

2.3. Arreglo Multidimensional. 2.3.1. Conceptos básicos. 2.3.2. Operaciones. 2.3.3. Aplicaciones.

Bibliografía: 1. Taylor David.

Object Orient informations systems, planning and implementations. Ed. Ed. Wiley, Canadá, 1992.

2. Larman Craig. UML y patrones introducción al análisis y diseño orientado a objetos. Ed. Prentice Hall, México, 1999.

3. Winblad, Ann L. Edwards, Samuel R. Software orientado a objetos. Ed. Addison. Wesley/ Díaz Santos USA, 1993.

4. Deitel & Deitel. Java how to program. Ed. Prentice Hall.

5. Fco. Javier Ceballos. Java 2 Curso de Programación. Ed. Alfaomega.

6. Agustín Froufe. Java 2 Manual de usuario y tutorial. Ed. Alfaomega.

7. Laura Lemay, Rogers Cadenhead. Aprendiendo JAVA 2 en 21 días. Ed. Prentice Hall.

8. Herbert Schildt.

Page 2: Material Unidad II Prog OO Ok

Fundamentos de Programación en Java 2. Ed. McGrawHil.

9. J Deitel y Deitel. Como programar en Java. Ed. Prentice Hall.

10. Stephen R. Davis. Aprenda Java Ya. Ed. McGrawHill.

11. Kris Jamsa Ph D. ¡Java Ahora! Ed. McGrawHill.

Referencias en Internet

[1] http:// www.javasoft.com [2] http:// www.javaworld.com [3] http:// www.prenhall.com/deitel

Criterios de evaluación y acreditación

Exámenes 60%

Programas en clase y extra clase 40%

Page 3: Material Unidad II Prog OO Ok

2. Arreglos unidimensionales y multidimensionales. Los arreglos se pueden definir como objetos en los que podemos guardar más de un valor, es decir, al tener una estructura organizada en un arreglo se puede guardar múltiples valores de acuerdo a su tamaño o capacidad, es importante recordar que los valores a guardar deben ser del mismo tipo, por ejemplo: Si tenemos un arreglo de tipo Numérico que puede almacenar 10 valores, solo podrá almacenar 10 números diferentes, no otros tipos de valores como podrían ser datos tipo String, char, boolean, etc. Existen 2 tipos de arreglos, los unidimensionales, y los multidimensionales (2 dimensiones o más), más adelante veremos cómo declarar y utilizarlos. Los arreglos unidimensionales son más sencillos y fáciles de comprender, y pueden servirnos para muchas aplicaciones.

2.1. Arreglo Unidimensionales listas (vectores).

2.1.1. Conceptos básicos. Los arreglos de una unidimensionales (también llamados vector o tablas), son estructuras de datos de una sola dimensión (de ahí viene su nombre). Un arreglo unidimensional está constituido por una secuencia de objetos del mismo tipo. A los objetos se les llama elementos del arreglo y se enumeran del 0 al n-1. En la siguiente figura se muestra un arreglo llamado Numero, que contiene 5 elementos (longitud igual a 5), enumerados del 0 a 4.

2.1.2. Operaciones. Los arreglos de una unidimensionales, son estructuras de datos de una sola dimensión (de ahí viene su nombre). Un arreglo unidimensional está constituido por una secuencia de objetos del mismo tipo. A los objetos se les llama elementos del arreglo y se enumeran del 0 al n-1. En la siguiente figura se muestra un arreglo llamado Numero, que contiene 5 elementos (longitud igual a 5), enumerados del 0 a 4.

1015255021

01234

Numero

Page 4: Material Unidad II Prog OO Ok

Operaciones Las operaciones básicas sobre un arreglo unidimensional son:

Declaración del arreglo,

Creación del arreglo,

Inicialización de los elementos del arreglo, y

Acceso a los elementos del arreglo. Declaración del arreglo La declaración de un arreglo unidimensional consiste en establecer las características del arreglo y sus elementos, por medio de la siguiente sintaxis: Al igual que con cualquier variable en Java, los arreglos se deben declarar antes de ser utilizados.

Donde el Tipo, corresponde al tipo de dato del arreglo, el cual pude ser cualquiera de los 8 básicos de Java o de alguna clase. Los corchetes pueden colocarse de dos formas:

o Los corchetes colocados después del tipo de dato, esto indica que todos los identificadores son arreglos.

1015255021

01234

Numero

Tipo [ ] identificador

,

;

Tipo identificador [ ]

,

;

Page 5: Material Unidad II Prog OO Ok

o Los corchetes colocados después del identificador, indica que solo el identificador que tenga los corchetes es un arreglo.

Identificador: Es el nombre del Arreglo. Ejemplo: int enteros[], x, y; enteros en un arreglos unidimensional de tipo int, x y

y son variables tipo int. float [] cal1, cal2, cal3, prom; cal1, cal2, cal3 y prom son arreglos

unidimensionales. char [] letra1, letra2[], letra3; letra1 y letra3 son arreglos de una dimensión del tipo

char y mientras que letra2 es una arreglo de arreglos de tipo char (es decir una matriz).

Creación del arreglo Esto solo está declarando el nombre del arreglo y el tipo de datos que se van a almacenar (a esto se le llama también referencia), para declarar el número de elementos del arreglo, se realiza por medio del operador new. Ejemplo:

float [] CalificacionFinal; CalificacionFinal = new float [45];

La primera sentencia declara un arreglo unidimensional llamado CalificacionFinal que manejara tipos de datos float. La segunda sentencia declara que tendrá 45 elementos (enumerado del 0 al 44). Otra forma de hacer la declaración del arreglo, así como de sus elementos es:

float [] CalificacionFinal = new float [45]; Acceso a los elementos del arreglo Para almacenar datos en un arreglo basta con poner el nombre del arreglo, el subíndice (encerrado entre corchetes), el símbolo igual, la expresión que se quiere almacenar y finalmente punto y coma.

CalificacionFinal[5] = 70; System.out.println(“La Calificación Final 6 es: “ + CalificacionFinal[5]);

Page 6: Material Unidad II Prog OO Ok

Inicialización de los elementos del arreglo Otra forma de introducir datos en un arreglos es inicializándolo desde la declaración.

int numero[] = {10, 15, 25, 50, 21}; Tamaño de los arreglos (length) Java considera cada arreglo un objeto, debido a ello se pude conocer el número de elementos de un arreglo por medio del campo length. Por ejemplo con la siguiente instrucción imprime “La longitud es 5”. System.out.println(“La longitud es “ + numero.length); Ejercicio 2.1: El siguiente ejemplo declara un arreglo de 10 elementos llamado enteros, y le asigna datos desde la declaración. Posteriormente por medio de un ciclo for recorre los elementos del arreglo y determina el elemento menor y mayor; al final los imprime.

1015255021

01234

Numero

Page 7: Material Unidad II Prog OO Ok

2.1.3. Aplicaciones. Clase Math

La Clase Math proporciona una gran variedad de métodos matemáticos al igual que algunas

constantes útiles.

Campos Descripción

final static double E Constante e: 2.7182818284590452354

final static double PI Constante pi: 3.14159265358979323846

Métodos Descripción

static double abs(double d) static float abs(float f) static long abs(long l) static int abs(int i)

Regresa el valor absoluto especificado.

static double acos(double d) Regresa el inverso del coseno del ángulo especificado en radianes.

static double asin(double d) Regresa el inverso del seno del ángulo especificado en radianes.

static double atan(double d) Regresa el inverso de la tangente del número especificado.

static double atan2(double d1, double d2) Regresa el ángulo definido por las coordenadas rectangulares (d1, d2)

static double ceil(double d)

Regresa el entero más pequeño, mayor o igual d. Ejemplo: Math.ceil(9.3) 10.0 Math.ceil(-9.3) -9.0

static double cos(double d) Regresa el coseno del ángulo especificado en radianes.

Page 8: Material Unidad II Prog OO Ok

Métodos Descripción

static double exp(double d) Regresa ed. Ejemplo: Math.exp(1.0) 2.71828 Math.exp(2.0) 7.38906

static double floor(double d)

Regresa el entero más grande, menor o igual a d. Ejemplo: Math.floor(9.3) 9.0 Math.floor(-9.3) -10.0

static double log(double d)

Regresa el logaritmo natural de d (base e). Ejemplo: Math.log(Math.E) 1.0

static double max(double d1, double d2) static float max(float f1, float f2) static long max(long l1, long l2) static int max(int i1, int i2)

Regresa el valor más grande. Ejemplo: Math.max(2.3,12.7) 12.7 Math.max(-2.3,-12.7) -2.3

static double min(double d1, double d2) static float min(float f1, float f2) static long min(long l1, long l2) static int min(int i1, int i2)

Regresa el valor más pequeño. Ejemplo: Math.min(2.3,12.7) 2.3 Math.min(-2.3,-12.7) -12.7

static double pow(double base, double exp) throws AritmeticException

Regresa baseexp. Ejemplo:

static double random() Regresa un número aleatorio comprendido entre 0.0 y 1.0. 0.0 <= Math.random() <= 1.0

Page 9: Material Unidad II Prog OO Ok

Ejercicio 2.2: El siguiente programa genera 10 números aleatorios, además cada valor generado lo transforma en un número entre 15 y 35 por medio de cálculos; y posteriormente los imprime.

Page 10: Material Unidad II Prog OO Ok

Ejercicio 2.3: Como se ha venido diciendo los arreglos son referencias, y podemos tener dos variables apuntando a un mismo arreglo.

Instrucción for mejorada En los ejemplos anteriores demostramos cómo las instrucciones for controladas por un contador itera a través de los elementos del arreglo. Ahora veremos la instrucción for mejorada, la cual itera a través de los elementos de un arreglo o colección sin utilizar un contador. Sintaxis de la instrucción for mejorada:

for(parámetro: nombreArreglo) Instrucción;

Donde parámetro tiene dos partes: un tipo y un identificador (por ejemplo int valor), y nombreArreglo es el arreglo a través del cual se iterará. El tipo del parámetro debe concordar con el tipo de los elementos en el arreglo.

Page 11: Material Unidad II Prog OO Ok

Ejercicio 2.4: Muestra el contenido el arreglo numero utilizando el for mejorado.

Realiza los siguientes ejercicios:

U2P13. Escriba un programa en Java que declare un arreglos de enteros de 100 elementos, los datos los cargue en forma aleatoria, los valores deben de estar entre 100 y 999, posteriormente saque la media y el rango (el rango se calcula restando al dato mayor de la serie el dato menor).

U2P14. Escriba un programa que crear tres vectores vecA, vecB y vecC de m elementos cada uno y los cargue en forma aleatoria, además debe crear otro arreglo llamado vecNuev donde cada elemento sea la suma de los arreglos vecA, vecB y vecC.

U2P15.Escriba un programa que cree dos vectores de m elementos cada uno, los cargue en forma aleatoria (con valores de entre 40 y 100). El primero representara las calificaciones de los estudiantes de la materia de Matemáticas y el segundo representa las calificaciones del mismo grupo pero de la materia de Probabilidad. Cree un tercer arreglo que contenga por cada alumno si en promedio “Acredito” o “No acredito”.

Page 12: Material Unidad II Prog OO Ok

Método de ordenamiento por Burbuja: La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas "burbujas". También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar. Algoritmo: Repite

Movimientos = 0

Para I=0 hasta Arreglo.longitud – 1

Si Arreglo[I+1] < Arreglo[I]

Arreglo[I] <-> Arreglo[I+1] // Intercambiar

Movimiento++

Fin_Si

Fin_para

Hasta (Movimiento == 0)

Donde:

El símbolo <-> Significa intercambio, es decir el valor que se

encuentra en Arreglo[I] se intercambia a Arreglo[I+1] y el valor

que está en Arreglo[I+1] se intercambia e la

posición Arreglo[I].

Ejemplo: Se tiene el siguiente arreglo cargado con los

datos:

Ejecutando el Algoritmo tenemos:

Entra al ciclo Repite, después inicializa Movimientos con 0,

posteriormente en el ciclo Para inicializa I = 0. En el Si realiza la

pregunta que si:

Arreglo[I+1] < Arreglo[I]

Arreglo

0 7

1 4

2 9

3 2

4 5

5 10

6 1

7 6

8 8

9 3

Page 13: Material Unidad II Prog OO Ok

Es decir que si el valor que está en el arreglo en la posición 1 es

menor que el que está en la posición 0: 4 < 7, como es verdadero entra

al Si e intercambia los valores dejando el arreglo así:

Incrementa movimientos en 1 y termina el Si, llega el fin del ciclo

Para incremente I en 1 y vuelve a realizar el proceso hasta que llegue

al elemento 9. Al llegar al Hasta pregunta si movimientos es igual a 0

como no lo es vuelve a realizar todo el proceso desde el principio.

U2P__.Elabore un programa en Java que genere 10 números aleatorios (entre 100 y 999), ordénelos en forma ascendente mediante el método de la burbuja y presente los datos como se muestra en la siguiente figura.

Método de ordenamiento por Selección Los métodos de ordenación por selección se basan en dos principios básicos: Seleccionar el elemento más pequeño (o más grande) del arreglo. Colocarlo en la posición más baja (o más alta) del arreglo. A diferencia del método de la burbuja, en este método el elemento más pequeño (o más grande) es el que se coloca en la posición final que le corresponde. Algoritmo: Para I=0 hasta Arreglo.longitud – 1

Para J= I+1 hasta Arreglo.longitud

Si Arreglo[J] < Arreglo[I]

Page 14: Material Unidad II Prog OO Ok

Arreglo[I] <-> Arreglo[I+1] // Intercambiar

Fin_Si

Fin_para

Fin_para

U2P16. Elabore un programa en Java que genere 10 números aleatorios (entre 100 y 999), ordénelos en forma ascendente mediante el método selección y presente los datos como se muestra en la siguiente figura.

2.2. Arreglo bidimensional.

2.2.1. Conceptos básicos.

Los arreglos vistos anteriormente se conocen como arreglos unidimensionales y se caracterizan por tener un solo subíndice. Los arreglos multidimensionales son aquellos que tienen más de una dimensión y, en consecuencia, más de un índice (o subíndice). Los arreglos más usuales son los de dos dimensiones, conocidos como matrices. Un arreglo de dos dimensiones equivale a una tabla con filas y columnas:

n 0 1 2 3

0

1

2

3

4

m

Page 15: Material Unidad II Prog OO Ok

2.2.2. Operaciones. Las operaciones básicas sobre un arreglo bidimensional son:

Declaración del arreglo,

Creación del arreglo,

Inicialización de los elementos del arreglo, y

Acceso a los elementos del arreglo. Declaración de arreglos bidimensionales (matriz)

Ejemplo: int puestos[ ][ ], x, y; puestos en un arreglos de dos dimensiones del tipo

int, x y y son variables tipo int. float [ ][ ] cal1, cal2, cal3, prom; cal1, cal2, cal3 y prom son arreglos

bidimensionales. Creación del arreglo Como ya se mencionó estas declaraciones son simplemente referencias, para declarar el número de elementos del arreglo se hace por medio del operador new. Ejemplo:

float [ ][ ] Calificaciones; Calificaciones = new float [45][4];

La primera sentencia declara un arreglo Calificaciones que manejara tipos de datos float. La segunda sentencia crea el arreglo e indica que manejara 45 filas (del 0 al 44) y 4 columnas (del 0 al 3). Otra forma de hacer la declaración y creación del arreglo es:

float [ ][ ] Calificaciones = new float [45][3];

Tipo [ ] [ ] identificador

,

;

Tipo identificador [ ] [ ]

,

;

Page 16: Material Unidad II Prog OO Ok

Inicialización de los elementos del arreglo Al igual que los arreglos unidimensionales, los arreglos multidimensionales se pueden inicializar desde la declaración. Ejemplo: int tabla1[][] = { {51, 24, 33}, {32, 23, 45} }; Se define una matriz de 2 filas por 3 columnas También se puede utilizar otros formatos como los siguientes:

int tabla1[ ][ ] = { {51, 24, 33}, {32, 23, 45} } int tabla1[ ][ ] = { {51, 24, 33}, {32, 23, 45} };

int tabla2[ ][ ] = { { 1, 2, 3, 4}, { 5, 6, 7, 8}, { 9, 10, 11, 12} }; Java trata los arreglos de dos o más dimensiones como un arreglo de arreglos, por tanto puede crear arreglos no proporcionales. Por ejemplo:

a) double datos[ ][ ] = { {1.5, -2.5}, {5.0, 0.0, 1.5} }; Se ha creado un arreglo con dos filas, la 1ª con dos columnas y la 2ª con 3.

b) int [ ] a = { 1, 3, 5 }, b = { 2, 4, 6, 8, 10 }; int z[ ][ ] = { a, b };

tabla1[ ][ ]

0 1 2

0 51 24 33

1 32 23 45

tabla2[ ][ ]

0 1 2 3

0 1 2 3 4

1 5 6 7 8

2 9 10 11 12

Page 17: Material Unidad II Prog OO Ok

Primero se definió el arreglo a con 3 elementos y después el arreglos b con 5 elementos, posteriormente se define la matriz z con dos filas, la primera con 3 elementos (los del arreglo a) y la segunda con 5 elementos (los del arreglo b). Método length con los arreglos bidimensionales Para saber la longitud de la última dimensión se debe especificar los subíndices precedentes, Ejercicio 2.5: Para el siguiente ejemplo se declara una matriz f no proporcional, donde el primer subíndice tiene 4 elementos, el segundo 2 y el último 6.

Acceso a los elementos del arreglo bidimensional Por ejemplo si tenemos la siguiente matriz: int [ ][ ] A = new int [3][4];

Page 18: Material Unidad II Prog OO Ok

A Columna 0 Columna 1 Columna 2 Columna 3

Fila 0 a[0][0] a[0][1] a[0][2] a[0][3]

Fila 1 a[1][0] a[1][1] a[1][2] a[1][3]

Fila 2 a[2][0] a[2][1] a[2][2] a[2][3]

Para almacenar datos en una matriz basta con poner el nombre del arreglo, el subíndice de las filas y el subíndice de las columnas, el símbolo igual y la expresión que se quiere almacenar y finalmente después punto y coma. Por ejemplo:

a[1][3] = Expresión;

2.2.3. Aplicaciones. Ejercicio 2.6: El siguiente programa lee una matriz de enteros de m renglones y n columnas y calcule la suma de los elementos de cada renglón.

Índice de la columna Índice de la fila Nombre del arreglo

Page 19: Material Unidad II Prog OO Ok
Page 20: Material Unidad II Prog OO Ok

Ejercicio 2.7: El programa que a continuación se muestra declara y cargue en forma aleatoria una matriz de 5 por 5 y suma los elementos de la diagonal principal e imprime el resultado.

x

x

x

x

x

Page 21: Material Unidad II Prog OO Ok

Ejercicio 2.8: El siguiente programa declara y carga en forma aleatoria una matriz de 6 por 6 y obtiene el producto de la diagonal invertida e imprime el resultado

O

O

O

O

O

O

Page 22: Material Unidad II Prog OO Ok

Realiza los siguientes programas: U2P17. Elabore un programa que lea una matriz de m X n y la escriba poniendo las columnas como renglones y los renglones como columnas.

Por ejemplo, si la matriz que da el usuario es:

4 7 1 3 5

2 0 6 9 7

3 1 2 6 4

Entonces el programa debe escribir la matriz transpuesta:

4 2 3

7 0 1

1 6 2

3 9 6

5 7 4

U2P18. Una empresa automotriz tiene cinco agencias (Lomas, Norte, Sur, San Marcos, Centro) y cuenta con la información acerca de las ventas mensuales de automóviles logradas el año pasado por cada una de éstas. A partir de estos datos la empresa construyó la siguiente matriz de ventas:

Lomas Norte Sur

San Marcos

Centro

Enero

Febrero

Noviembre

Diciembre

Page 23: Material Unidad II Prog OO Ok

Elabore un programa para contestar las siguientes preguntas en forma modular:

a) ¿Cuál fue el total de ventas en el año de la agencia Lomas? b) ¿Cuál fue el promedio de ventas en el mes de diciembre? c) ¿Qué agencia tuvo mayores ventas en el mes de mayo? d) ¿En qué mes se registraron las menores ventas del año, considerando todas las

agencias?

2.3. Arreglo Multidimensional.

2.3.1. Conceptos básicos. Java proporciona la probabilidad de almacenar varias dimensiones, aunque raramente los problemas del mundo real se manejan más tres dimensiones, esto porque para los seres humanos es difícil representar gráficamente arreglos con más de tres dimensiones. Para representar un arreglo de tres dimensiones lo haremos por medio de un cubo. int cubo [ ][ ][ ] = new int [4][5][3];

3

4

y

z

x

5

2.3.2. Operaciones. Las operaciones básicas sobre un arreglo bidimensional son:

Declaración del arreglo,

Creación del arreglo,

Inicialización de los elementos del arreglo, y

Acceso a los elementos del arreglo. Declaración de arreglos multidimensional Para el siguiente ejemplo se tomara un arreglo de tres dimensiones

Page 24: Material Unidad II Prog OO Ok

Ejemplo: int cubo[ ][ ]; cubo en un arreglos de tres dimensiones del tipo int. String [ ][ ][ ] Edificio1, Edificio2; Edificio1 y Edificio2 son arreglos

multidimensionales de 3 dimensiones. Creación del arreglo Como ya se mencionó estas declaraciones son simplemente referencias, para declarar el número de elementos del arreglo se hace por medio del operador new. Ejemplo:

int cubo[ ][ ][ ]; cubo = new int [5][4][3];

La primera sentencia declara un arreglo de tres dimensiones llamado cubo que manejara tipos de datos int. La segunda sentencia crea el arreglo e indica que manejara 5 filas, con 4 columnas y 3 de profundidad. Otra forma de hacer la declaración y creación del arreglo es:

int [ ][ ] [ ] cubo = new int [5][4][3]; Almacenar datos en el arreglo multidimensional: Al igual que en los anteriores arreglos, se deben poner los subíndices al cual se quiere acceder y posteriormente la expresión a asignar. cubo[2][3][1] = 15;

Tipo [ ] [ ] [ ] identificador

,

;

Tipo identificador [ ] [ ] [ ]

,

;

Page 25: Material Unidad II Prog OO Ok

Realiza los siguientes programas: U2P19. Elabore un programa en Java que declare y cargue una arreglos con 1000 elementos enteros de forma aleatoria (los valores deben de estar entre 100 y 999), ordénelo ascendentemente mediante el método de la burbuja y selección, contabilizando el número de movimientos por cada método y presente los resultados y determine que método es mejor en base al menor número de movimientos. Método de la Burbuja: 99999 movimientos Método Selección: 99999 movimientos El mejor método de ordenación fue XXXXXX debido a que tuvo menor número de movimientos. U2P20. Elabore un programa que lea los nombres y tres calificaciones de los alumnos de la materia Programación Orientada a Objetos (20 Alumnos). Para cada alumno calcule el promedio, el promedio general de la materia e imprima en pantalla el nombre, calificaciones, promedio de todos los alumnos y al final despliegue cuantos aprobaron, reprobaron y el promedio general. Nombre Cal 1 Cal 2 Cal 3 Promedio xxxxxxxx 99 99 99 99 xxxxxxxx 99 99 99 66 xxxxxxxx 99 99 99 77 xxxxxxxx 99 99 99 88 xxxxxxxx 99 99 99 55 Aprobados: 99 Reprobados: 99 Promedio general: 99 U2P__. El “cuadrado mágico”.

Un cuadrado mágico es una matriz cuadrada con un número impar de renglones y columnas. En dicha matriz, los números de cada renglón, de cada columna y de cada una de las diagonales, suman el mismo valor. Por ejemplo:

6 1 8

7 5 3

2 9 4

Note que los números de todos los renglones, columnas y diagonales suman 15. Una técnica a través de la cual se puede generar un cuadrado mágico es la siguiente:

Page 26: Material Unidad II Prog OO Ok

a) Se comienza asignando un valor de 1 al elemento central de la primera fila.

b) A continuación se escriben los valores sucesivos (2,3, etc.) desplazándose desde la posición actual una fila hacia arriba y una columna hacia la izquierda. Estos cambios se realizan tratando a la matriz como si fuera circular, de forma que moverse una posición hacia arriba desde la fila superior lleva a la inferior, y moverse una posición hacia la izquierda desde la primera columna conduce a la última.

c) Si la nueva posición ya está ocupada, en lugar de desplazarse hacia arriba y a la izquierda, se moverá sólo una posición hacia abajo.

Escriba un programa que muestre un cuadro mágico de dimensión n, donde n puede estar entre los valores 3, 5, 7 y 9.

U2P21. Elabore un programa para controlar los asientos de un teatro el cual consta de tres niveles, cada nivel tiene 50 filas y cada fila tiene 35 butacas. Debe de controlar si la butaca está ocupada o disponible.