Anda di halaman 1dari 69

ARREGLOS

UNIDIMENSIONALES







Slide 2
Algoritmia y programacin
Universidad del Valle
CONTENIDO
1. Los Arreglos y Java.
1.2 Insercin de datos
1.3 Extraccin de datos
1.1 Definicin de arreglos
2. Trabajando con arreglos
3. Ejercicios de repaso
Slide 3
Algoritmia y programacin
Universidad del Valle
Definiendo los arreglos unidimensionales.
Slide 4
Algoritmia y programacin
Universidad del Valle
Qu es un arreglo?
* Un arreglo es una lista (conjunto) de datos con
un nmero fijo de componentes, todos del mismo
tipo, que estan referenciados bajo un mismo
nombre.

* Cada componente del arreglo se puede acceder
mediante ndices (0, 1, 2, 3, ...) encerradas entre
corchetes [ ].



Slide 5
Algoritmia y programacin
Universidad del Valle
Para qu sirven los arreglos?
Los arreglos permiten manejar de forma sencilla y directa
conjuntos de datos del mismo tipo, de los cuales
conocemos su cantidad y con los cuales se realizarn
operaciones similares.

Ejemplo1: Escriba un programa en Java que solicite los
nombres de cada estudiante del curso y los muestre todos
al final.


Slide 6
Algoritmia y programacin
Universidad del Valle
Para qu sirven los arreglos?
Ejemplo1: Escriba un programa en Java que solicite los
nombres de cada estudiante del curso y los muestre todos
al final.

Sin arreglos tendramos un programa cuyo cdigo sera
algo como esto:

String nombre1, nombre2, nombre3, , nombre50;
nombre1 =JOptionPane.showInputDialog(Digite su nombre);
nombre2=JOptionPane.showInputDialog(Digite su nombre);
. . .
nombre50=JOptionPane.showInputDialog(Digite su nombre);
. . .

Slide 7
Algoritmia y programacin
Universidad del Valle
Para qu sirven los arreglos?
Ejemplo1: Escriba un programa en Java que solicite los
nombres de cada estudiante del curso y los muestre todos
al final.

Sin arreglos tendramos un programa cuyo cdigo sera
algo como esto:

String nombre1, nombre2, nombre3, , nombre50;
nombre1 =JOptionPane.showInputDialog(Digite su nombre);
nombre2=JOptionPane.showInputDialog(Digite su nombre);
. . .
nombre50=JOptionPane.showInputDialog(Digite su nombre);
. . .

Slide 8
Algoritmia y programacin
Universidad del Valle
Para qu sirven los arreglos?
Ejemplo2: Escriba un programa en Java que solicite los
nombres de cada estudiante de cualquier curso y los
muestre todos al final.
Sin arreglos tendramos que declarar un nmero
arbitrariamente grande de variables de tipo String (100?,
200?) de tal forma que nunca hubiera ms estudiantes
que variables del programa.

String nombre1, nombre2, nombre3, , nombre100;
. . .
nombre1 =JOptionPane.showInputDialog(Digite su nombre);
nombre2=JOptionPane.showInputDialog(Digite su nombre);
. . .
nombre50=JOptionPane.showInputDialog(Digite su nombre);
. . .

Slide 9
Algoritmia y programacin
Universidad del Valle
Para qu sirven los arreglos?
Ejemplo2: Escriba un programa en Java que solicite los
nombres de cada estudiante de cualquier curso y los
muestre todos al final.
Sin arreglos tendramos que declarar un nmero
arbitrariamente grande de variables de tipo String (100?,
200?) de tal forma que nunca hubiera ms estudiantes
que variables del programa.

String nombre1, nombre2, nombre3, , nombre100;
. . .
nombre1 =JOptionPane.showInputDialog(Digite su nombre);
nombre2=JOptionPane.showInputDialog(Digite su nombre);
. . .
nombre50=JOptionPane.showInputDialog(Digite su nombre);
. . .

Slide 10
Algoritmia y programacin
Universidad del Valle
Arreglos: Espacios ordenados
Un arreglo se puede ver como un conjunto de espacios
finitos donde se almacenan elementos (todos del mismo
tipo).
Un arreglo tambin puede verse como cajas ordenadas en
fila y numeradas, donde en cada caja se almacena un solo
elemento u objeto.




1
2
0
Luis
Ana
Juan
ndice del arreglo
Elemento del
arreglo
cajasDeNombres
Slide 11
Algoritmia y programacin
Universidad del Valle
Para recordar:
* Un arreglo se usa para almacenar elementos del mismo
tipo.
* Un arreglo es de tamao fijo.
* Cada elemento se guarda en un espacio independiente.
* Cada espacio se referencia con un ndice (0,1,2,3,...,n).





Slide 12
Algoritmia y programacin
Universidad del Valle
Cules son arreglos?





Slide 13
Algoritmia y programacin
Universidad del Valle
Cules son arreglos?





Slide 14
Algoritmia y programacin
Universidad del Valle
Cules son arreglos?





Slide 15
Algoritmia y programacin
Universidad del Valle
2. Los Arreglos y Java
Declarando y trabajando con arreglos en Java.
Slide 16
Algoritmia y programacin
Universidad del Valle
Declarando Arreglos
La declaracin de un arreglo se hace de la siguiente
forma:

TipoDeDato nombre[] = new TipoDeDato [n];

Donde n es la capacidad (tamao) del arreglo.

Ejemplos:

String nombres[ ] = new String [4];
double notas[ ] = new double [5];
int edadEstudiantes[ ] = new int [3];

Slide 17
Algoritmia y programacin
Universidad del Valle
Declarando Arreglos
String nombres[] = new String [4];

Define un arreglo llamado nombres, que almacena cadenas
de texto y puede contener mximo 4 elementos (con ndices
0, 1, 2 y 3).

Slide 18
Algoritmia y programacin
Universidad del Valle
Declarando Arreglos
String nombres[] = new String [4];

Define un arreglo llamado nombres, que almacena cadenas
de texto y puede contener mximo 4 elementos (con ndices
0, 1, 2 y 3).

double notas[] = new double [5];
Define un arreglo llamado notas, que almacena nmeros
reales y puede tener mximo 5 elementos (con ndices 0, 1,
2, 3 y 4).

Slide 19
Algoritmia y programacin
Universidad del Valle
Declarando Arreglos
String nombres[] = new String [4];

Define un arreglo llamado nombres, que almacena cadenas
de texto y puede contener mximo 4 elementos (con ndices
0, 1, 2 y 3).

double notas[] = new double [5];
Define un arreglo llamado notas, que almacena nmeros
reales y puede tener mximo 5 elementos (con ndices 0, 1,
2, 3 y 4).

int edadEstudiantes[] = new int [3];

Define un arreglo llamado edadEstudiantes, que almacena
nmeros enteros y puede tener mximo 3 elementos (con
ndices 0, 1 y 2).
Slide 20
Algoritmia y programacin
Universidad del Valle
Declarando arreglos

TipoDeDato nombre[] = new TipoDeDato [n];
Los arreglos definidos de esta forma no estn
inicializados, es decir, no contienen ningn valor, lo
cual se representa con null si es String o con 0 si es
int o double.

Slide 21
Algoritmia y programacin
Universidad del Valle
Declarando arreglos

TipoDeDato nombre[] = new TipoDeDato [n];
Los arreglos definidos de esta forma no estn
inicializados, es decir, no contienen ningn valor, lo
cual se representa con null si es String o con 0 si es
int o double.

String nombres[] = new String [4];




Slide 22
Algoritmia y programacin
Universidad del Valle
Declarando arreglos

TipoDeDato nombre[] = new TipoDeDato [n];
Los arreglos definidos de esta forma no estn
inicializados, es decir, no contienen ningn valor, lo
cual se representa con null si es String o con 0 si es
int o double.

String nombres[] = new String [4];



int edadEstudiantes[] = new int [3];

Slide 23
Algoritmia y programacin
Universidad del Valle
Declarando e inicializando
Declarar e inicializar un arreglo se hace de la
siguiente forma:

TipoDeDato nombre[] = { val1, val2, , valn};
Esto crea e inicializa un arreglo de n elementos con
valores val1, val2, , valn.

Ejemplos:

String nombres[ ] = {Oscar, Juan, John, Carlos};

double notas[ ] = { 5.0, 4.0, 5.0};

int edadEstudiantes[ ] = {18, 21, 17};
Slide 24
Algoritmia y programacin
Universidad del Valle
Donde est el error?


String nombres [] = {Oscar, 100 , Sofia , A );


String nombres [] = {Oscar, 100 , Sofia , A);


double valores [] = new String[4];


int edades = new int [10];
Slide 25
Algoritmia y programacin
Universidad del Valle
Insercin de datos

Para ingresar datos en un arreglo se debe indicar la
posicin(ndice) del arreglo en el que se va insertar el
valor:


nombreArreglo[posicin] = valor;


Nota: No importa el orden en el cual se guardan los
datos en el arreglo.



Slide 26
Algoritmia y programacin
Universidad del Valle
Insercin de datos

String nombres[] = new String [4];








Cuando se crea un arreglo de
cadenas de texto, ste no
tiene ningn valor, lo cual se
indica con la palabra null.
Slide 27
Algoritmia y programacin
Universidad del Valle
Insercin de datos

String nombres[] = new String [4];
nombres[1] = Sarah;








Guarda el texto Sarah
En la posicin 1 del
arreglo.
Slide 28
Algoritmia y programacin
Universidad del Valle
Insercin de datos

String nombres[] = new String [4];
nombres[1] = Sarah;
nombres[2] = Juan;








Guarda el texto Juan
En la posicin 2 del
arreglo
Slide 29
Algoritmia y programacin
Universidad del Valle
Insercin de datos

String nombres[] = new String [4];
nombres[1] = Sarah;
nombres[2] = Juan;
nombres[?] = Oscar;








Cul debe ser el
ndice?
Slide 30
Algoritmia y programacin
Universidad del Valle
Insercin de datos

String nombres[] = new String [4];
nombres[1] = Sarah;
nombres[2] = Juan;
nombres[0] = Oscar;








No importa el orden
en el cual se guardan
los datos en el arreglo!
Slide 31
Algoritmia y programacin
Universidad del Valle
Insercin de datos

String nombres[] = new String [4];
nombres[1] = Sarah;
nombres[2] = Juan;
nombres[0] = Oscar;








La instruccin
nombres[4]=Jose;
es vlida?
Slide 32
Algoritmia y programacin
Universidad del Valle
Insercin de datos

String nombres[] = new String [4];
nombres[1] = Sarah;
nombres[2] = Juan;
nombres[0] = Oscar;








Las posiciones siempre
son nmeros enteros que inician
en 0
Slide 33
Algoritmia y programacin
Universidad del Valle
Insercin de datos

Cul es el error en cada una de las lneas?

int arreglo[ ] = new int [5];
arreglo[0] = 21.2;
arreglo[5] = 90;
arreglo[2] = 10;


Slide 34
Algoritmia y programacin
Universidad del Valle
double notas[]=new double[3];
notas[?]=?;
notas[?]=?;
notas[?]=?;


0 1 2
2.7 3.1 2.5
Cules son las
instrucciones necesarias
para obtener el arreglo que
se muestra abajo?
Insercin de datos
Slide 35
Algoritmia y programacin
Universidad del Valle
double notas[]=new double[3];
notas[0]=2.7;
notas[1]=3.1;
notas[2]=2.5;


0 1 2
2.7 3.1 2.5
Cules son las
instrucciones necesarias
para obtener el arreglo que
se muestra abajo?
Insercin de datos
Slide 36
Algoritmia y programacin
Universidad del Valle
Extraccin de datos
Para recuperar datos de un arreglo se debe indicar la
posicin(ndice) del arreglo que se quiere conocer:

nombreArreglo[posicin]




nombres[2] indica que el valor en la posicin 2 es
Juan.




Slide 37
Algoritmia y programacin
Universidad del Valle
Extraccin de datos

JOptionPane.showMessageDialog(null, El valor
en la posicin 2 es + nombres[2]);









Slide 38
Algoritmia y programacin
Universidad del Valle
Extraccin de datos

int arreglo[ ] = new int [5];
arreglo[0] = 21 ;
arreglo[1] = 90;
arreglo[2] = 10;


Slide 39
Algoritmia y programacin
Universidad del Valle
Extraccin de datos

int arreglo[ ] = new int [5];
arreglo[0] = 21 ;
arreglo[1] = arreglo[0] + 30;
arreglo[2] = 10 * arreglo[1];


Slide 40
Algoritmia y programacin
Universidad del Valle
3. Trabajando con arreglos
Ejemplos prcticos de cmo se crean programas usando
arreglos.
Slide 41
Algoritmia y programacin
Universidad del Valle
Presente el conjunto de instrucciones Java para
crear un arreglo de enteros de tamao 100
Adicione las instrucciones que necesite para solicitar
al usuario cada uno de los 100 nmeros
despus, muestre todos los nmeros en un solo
mensaje
Luego, muestre solo los nmeros almacenados en
posiciones pares
y, muestre los nmeros impares contenidos en el
arreglo
3. Trabajando con arreglos
Slide 42
Algoritmia y programacin
Universidad del Valle
Presente el conjunto de instrucciones Java para
crear un arreglo de enteros de tamao 100
Adicione las instrucciones que necesite para solicitar
al usuario cada uno de los 100 nmeros

int numeros[]=new int[100];
3. Trabajando con arreglos
Slide 43
Algoritmia y programacin
Universidad del Valle

int numeros[]=new int[100];

numeros[0]=Integer.parseInt(JOptionPane.showInputDialog(Ingrese un valor));
numeros[1]=Integer.parseInt(JOptionPane.showInputDialog(Ingrese un valor));
. . .
numeros[99]=Integer.parseInt(JOptionPane.showInputDialog(Ingrese un valor));

3. Trabajando con arreglos
Slide 44
Algoritmia y programacin
Universidad del Valle

int numeros[]=new int[100];
for (int i=0; i<=99; i=i+1){
numeros[i]=Integer.parseInt(JOptionPane.showInputDialog(Ingrese un
valor));
}
3. Trabajando con arreglos
Slide 45
Algoritmia y programacin
Universidad del Valle
Presente el conjunto de instrucciones Java para
crear un arreglo de enteros de tamao 100
Adicione las instrucciones que necesite para solicitar
al usuario cada uno de los 100 nmeros
despus, muestre todos los nmeros en un solo
mensaje
3. Trabajando con arreglos
Slide 46
Algoritmia y programacin
Universidad del Valle
Presente el conjunto de instrucciones Java para
crear un arreglo de enteros de tamao 100
Adicione las instrucciones que necesite para solicitar
al usuario cada uno de los 100 nmeros
despus, muestre todos los nmeros en un solo
mensaje
String mensaje= "";
for (int i=0; i<=99; i=i+1){
mensaje=mensaje + " \t " + numeros[i];
}
JOptionPane.showMessageDialog(null, mensaje);
3. Trabajando con arreglos
Slide 47
Algoritmia y programacin
Universidad del Valle
Los arreglos y el ciclo for
Un arreglo se procesa generalmente usando un ciclo for:




Slide 48
Algoritmia y programacin
Universidad del Valle
Los arreglos y el ciclo for
Un arreglo se procesa generalmente usando un ciclo for:




Slide 49
Algoritmia y programacin
Universidad del Valle
Los arreglos y el ciclo for




b.length indica la cantidad de elementos del
arreglo.
Slide 50
Algoritmia y programacin
Universidad del Valle
Ejemplo 1:
Escriba un programa en Java que solicite los nombres de
cada estudiante de cualquier curso y los muestre todos de
forma numerada al final. Use un arreglo para almacenar el
nombre de cada estudiante.



Slide 51
Algoritmia y programacin
Universidad del Valle
Ejemplo 1: Anlisis

* Entradas:

* Salidas





Slide 52
Algoritmia y programacin
Universidad del Valle
Ejemplo 1: Anlisis

* Entradas: n, nombres[]

* Salidas: lista con todos los nombres enumerados.






Slide 53
Algoritmia y programacin
Universidad del Valle
Ejemplo 1: Anlisis

* Debemos capturar los nombres de n estudiantes. por
lo tanto requerimos primero conocer el valor de n para
saber cul ser el tamao del arreglo.

* El arreglo ser un arreglo de datos tipo String de
tamao n.

La salida del programa ser un String que contendr la
lista numerada de los nombres de los estudiantes.





Slide 54
Algoritmia y programacin
Universidad del Valle
Ejemplo 1: Pseudocdigo
INICIO
n,i: entero
lista="": texto


Slide 55
Algoritmia y programacin
Universidad del Valle
Ejemplo 1: Pseudocdigo
INICIO
n,i: entero
lista="": texto
leer(n)
nombres[n]: texto



Slide 56
Algoritmia y programacin
Universidad del Valle
Ejemplo 1: Pseudocdigo
INICIO
n,i: entero
lista="": texto
leer(n)
nombres[n]: texto

//insertamos datos en el arreglo
desde i=0 mientras i<n incrementando i en 1
Haga
leer(nombres[i])
Fin desde


Slide 57
Algoritmia y programacin
Universidad del Valle
Ejemplo 1: Pseudocdigo
INICIO
n,i: entero
lista="": texto
leer(n)
nombres[n]: texto

//insertamos datos en el arreglo
desde i=0 mientras i<n incrementando i en 1
Haga
leer(nombres[i])
Fin desde

//Formamos la salida
desde i=0 mientras i<n incrementando i en 1
haga
lista = lista+(i+1)+nombres[i]+\n
Fin desde
Slide 58
Algoritmia y programacin
Universidad del Valle
Ejemplo 1: Pseudocdigo
INICIO
n,i: entero
lista="": texto
leer(n)
nombres[n]: texto
//insertamos datos en el arreglo
desde i=0 mientras i<n incrementando i en 1
Haga
leer(nombres[i])
Fin desde

//Formamos la salida
desde i=0 mientras i<n incrementando i en 1
haga
lista= lista+(i+1)+nombres[i]+\n
Fin desde
imprimir (salida)
FIN
Slide 59
Algoritmia y programacin
Universidad del Valle
Ejemplo 1: Programa en Java
import javax.swing.*;

public class NombresCurso {

public static void main(String[] args) {
int n,i;
String lista="La lista de nombres de los
Estudiantes es:\n";

n =Integer.parseInt(JOptionPane.showInputDialog(
"Ingrese el nmero de estudiantes del curso: "));

String nombres[] = new String [n];



Slide 60
Algoritmia y programacin
Universidad del Valle
Ejemplo 1: Programa en Java
// Ingreso de los nombres de los estudiantes
for (i=0; i < nombres.length; i++){
nombres [i] = JoptionPane.showInputDialog(
"Ingrese el nombre del estudiante "
+ (i+1) + ": ");
}

// Despliegue de la lista de estudiantes:
for (i=0; i < nombres.length; i++){
lista= lista+ (i+1) + ". "
+ nombres[i] + "\n";
}

JOptionPane.showMessageDialog(null, lista);
}// fin mtodo main
} // Fin clase
Slide 61
Algoritmia y programacin
Universidad del Valle
Desarrolle un programa en JAVA que permita leer el nombre de
10 productos de una tienda y su correspondiente precio. La
aplicacin debe decir cuntos de ellos cuestan ms de 3000
pesos y mostrar su nombre, precio y posicin en pantalla.

Utilice arreglos para almacenar los precios y nombres de
productos
Ejemplo 2
Slide 62
Algoritmia y programacin
Universidad del Valle
Ejemplo 1: Anlisis

* Entradas: productos[], precios[]

* Salidas: producto, precio, posicin.






Slide 63
Algoritmia y programacin
Universidad del Valle
import javax.swing.JOptionPane;

public class Tienda {

String nombre[] = new String[10], salida;
int precio[] = new int[10], posicion;


Ejemplo 2: Programa en Java
Slide 64
Algoritmia y programacin
Universidad del Valle
import javax.swing.JOptionPane;

public class Tienda {

String productos[] = new String[10], salida ;
int precios[] = new int[10], posicion;


//ingresarProductos
for (int i=0 ; i<10; i++){
productos[i] = JOptionPane.showInputDialog("Ingrese el
articulo "+i);

precios[i]=Integer.parseInt(JOptionPane.showInputDialog
( Ingrese precio"+i));
}
Ejemplo 2: Programa en Java
Slide 65
Algoritmia y programacin
Universidad del Valle
//calcularMayores
salida="Los siguientes artculos cuestan mas de $3000 \n";

for (int j=0 ; j<10 ; j++){
if (precio[j] >3000){
salida += nombre[j] + " : +precio[j]+ "\n";
}



//mostrarDatos
JOptionPane.showMessageDialog(null,salida);
Ejemplo 2: Programa en Java
Slide 66
Algoritmia y programacin
Universidad del Valle
4. Ejercicios de Repaso
Ejercicios para reforzar lo visto en clase.
Slide 67
Algoritmia y programacin
Universidad del Valle
Ejercicios a realizar con arreglos

1) Escriba un programa en Java que lea una lista de n
enteros, calcule el promedio de los datos ingresados,
el mayor y el menor de ellos.


2) Escriba un programa en Java que dada una lista de
enteros y un valor x por parte del usuario, diga cuntas
veces x aparece en la lista. El programa como salida
debe mostrar la lista ingresada por el usuario e indicar
cuntas veces aparece el valor x y en cules
posiciones.
Slide 68
Algoritmia y programacin
Universidad del Valle
Ejercicios adicionales:
En una competencia de natacin se desea implementar una
aplicacin para almacenar el tiempo por cada competidor y
adems determinar con base en todos los tiempos de los
competidores cual es el ganador. El usuario debe
especificar cuantos tiempos (competidores) desea ingresar.

Desarrolle un programa que recorra un arreglo de enteros,
evale si sus datos son mltiplos de 7 y los muestre en
pantalla.

Ejercicios a realizar con arreglos
Slide 69
Algoritmia y programacin
Universidad del Valle
Ejercicios a realizar con arreglos
3) La Universidad del Valle requiere un programa que le permita conocer cmo
califican los estudiantes la comida de la cafetera central. Para ello defini una
escala de 1 a 10 (1 denota horrible y 10 denota excelente). El programa debe ser
capaz capturar la calificacin de cualquier nmero de estudiantes (no se sabe
cuntos estudiantes se encuestarn, as que cuando el encuestador ingrese la
calificacin de 0, se sabr que la encuesta habr concluido).
El programa deber mostrar en su salida cuntos estudiantes fueron encuestados
as como el resumen de la encuesta con histograma as:

Estudiantes encuestados: 111
Frecuencia de las calificaciones:
Calificacin nm. Estudiantes Histograma
1 3 ***
2 2 **
3 10 **********
...
8 9 *********
9 15 ***************
10 7 *******

Utilice un arreglo de enteros de 10 elementos para almacenar la frecuencia con
la que ocurre cada calificacin.

Anda mungkin juga menyukai