Anda di halaman 1dari 68

ARREGLOS

UNIDIMENSION
ALES

CONTENIDO
1. Los Arreglos y Java.
1.1 Definicin de arreglos
1.2 Insercin de datos
1.3 Extraccin de datos
2. Trabajando con arreglos
3. Ejercicios de repaso

Algoritmia y programacin
Slide 2

Definiendo los arreglos unidimensionales.

Algoritmia y programacin
Slide 3

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

Algoritmia y programacin
Slide 4

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.

Algoritmia y programacin
Slide 5

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

Algoritmia y programacin
Slide 6

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

Algoritmia y programacin
Slide 7

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

Algoritmia y programacin

Slide 8

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

Algoritmia y programacin

Slide 9

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

Luis

Juan

cajasDeNombres

Elemento del
arreglo

ndice del arreglo

Algoritmia y programacin
Slide 10

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

Algoritmia y programacin
Slide 11

Cules son arreglos?

Algoritmia y programacin
Slide 12

Cules son arreglos?

Algoritmia y programacin
Slide 13

Cules son arreglos?

Algoritmia y programacin
Slide 14

2. Los Arreglos y Java

Declarando y trabajando con arreglos en Java.

Algoritmia y programacin
Slide 15

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];

Algoritmia y programacin
Slide 16

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

Algoritmia y programacin
Slide 17

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

Algoritmia y programacin
Slide 18

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

Algoritmia y programacin

Slide 19

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.

Algoritmia y programacin
Slide 20

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];

Algoritmia y programacin
Slide 21

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];

Algoritmia y programacin
Slide 22

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};
Algoritmia y programacin
Slide 23

Donde est el error?


String nombres []

= {Oscar, 100 , Sofia

String nombres []

= {Oscar, 100

, A );

, Sofia , A);

double valores [] = new String[4];

int edades = new

int [10];

Algoritmia y programacin
Slide 24

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.

Algoritmia y programacin
Slide 25

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.

Algoritmia y programacin
Slide 26

Insercin de datos
String nombres[] = new
nombres[1] = Sarah;

String [4];

Guarda el texto Sarah


En la posicin 1 del
arreglo.

Algoritmia y programacin
Slide 27

Insercin de datos
String nombres[] = new

nombres[1] = Sarah;
nombres[2] =

String [4];

Juan;

Guarda el texto Juan


En la posicin 2 del
arreglo

Algoritmia y programacin
Slide 28

Insercin de datos
String nombres[] = new

nombres[1] = Sarah;
nombres[2]

String [4];

= Juan;

nombres[?] = Oscar;

Cul debe ser el


ndice?

Algoritmia y programacin
Slide 29

Insercin de datos
String nombres[] = new

nombres[1] = Sarah;
nombres[2]

String [4];

= Juan;

nombres[0] = Oscar;

No importa el orden
en el cual se guardan
los datos en el arreglo!

Algoritmia y programacin
Slide 30

Insercin de datos
String nombres[] = new

nombres[1] = Sarah;
nombres[2]

String [4];

= Juan;

nombres[0] = Oscar;

La instruccin
nombres[4]=Jose;
es vlida?

Algoritmia y programacin
Slide 31

Insercin de datos
String nombres[] = new

nombres[1] = Sarah;
nombres[2]

String [4];

= Juan;

nombres[0] = Oscar;

Las posiciones siempre


son nmeros enteros que inician
en 0

Algoritmia y programacin
Slide 32

Insercin de datos
Cul es el error en cada una
int arreglo[ ] = new

de las lneas?

int [5];

arreglo[0] = 21.2;
arreglo[5] = 90;
Arreglo[2]

= 10;

Algoritmia y programacin
Slide 33

Insercin de datos
double notas[]=new

double[3];

notas[?]=?;

Cules son las


instrucciones necesarias
para obtener el arreglo
que
se muestra abajo?

notas[?]=?;
notas[?]=?;

2.7

3.1

2.5

Algoritmia y programacin
Slide 34

Insercin de datos
double notas[]=new

double[3];

notas[0]=2.7;

Cules son las


instrucciones necesarias
para obtener el arreglo
que
se muestra abajo?

notas[1]=3.1;
notas[2]=2.5;

2.7

3.1

2.5

Algoritmia y programacin
Slide 35

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.

Algoritmia y programacin
Slide 36

Extraccin de datos
JOptionPane.showMessageDialog(null,
en la posicin 2 es + nombres[2]);

El valor

Algoritmia y programacin
Slide 37

Extraccin de datos
int arreglo[ ] = new int [5];

arreglo[0] = 21 ;
arreglo[1] = arreglo[0] + 90;
arreglo[2]

= 10 * arreglo[1];

Algoritmia y programacin
Slide 38

3. Trabajando con arreglos

Ejemplos prcticos de cmo se crean programas usando


arreglos.

Algoritmia y programacin
Slide 39

3. Trabajando con arreglos

Presente el conjunto de instrucciones


crear un arreglo de enteros de tamao 100

Adicione las instrucciones que necesite para solicitar


al usuario cada uno de los 100 nmeros

despus,

Luego, muestre
posiciones pares

y, muestre
arreglo

mensaje

muestre

todos los
solo

los

los nmeros

nmeros

nmeros
impares

Java

para

en un solo

almacenados
contenidos

en

en el

Algoritmia y programacin
Slide 40

3. Trabajando con arreglos

Presente el conjunto de instrucciones Java para

Adicione las instrucciones que necesite


al usuario cada uno de los
100 nmeros

crear un arreglo de enteros de tamao 100

int numeros[]=new

para solicitar

int[100];

Algoritmia y programacin
Slide 41

3. Trabajando con arreglos


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));

Algoritmia y programacin
Slide 42

3. Trabajando con arreglos


int numeros[]=new int[100];

for (int i=0; i<=99; i=i+1){


numeros[i]=Integer.parseInt(JOptionPane.showInputDialog(Ingrese
un valor));

Algoritmia y programacin
Slide 43

3. Trabajando con arreglos

Presente el conjunto de instrucciones


crear un arreglo de enteros de tamao 100

Java

para

Adicione las instrucciones que necesite para solicitar

despus, muestre
mensaje

al usuario cada uno de los 100 nmeros


todos

los nmeros

en un solo

Algoritmia y programacin
Slide 44

3. Trabajando con arreglos

Presente el conjunto de instrucciones


crear un arreglo de enteros de tamao 100

Adicione las instrucciones que necesite para solicitar


al usuario cada uno de los 100 nmeros

despus,

mensaje

muestre

String mensaje=

todos

los nmeros

Java

para

en un solo

"";

for (int i=0; i<=99; i=i+1){

mensaje=mensaje + " \t " + numeros[i];


}
JOptionPane.showMessageDialog(null, mensaje);
Algoritmia y programacin
Slide 45

Los arreglos y el ciclo for


Un arreglo se procesa generalmente usando un ciclo for:

Algoritmia y programacin
Slide 46

Los arreglos y el ciclo for


Un arreglo se procesa generalmente usando un ciclo for:

Algoritmia y programacin
Slide 47

Los arreglos y el ciclo for


b.length indica la cantidad de elementos del
arreglo.

Algoritmia y programacin
Slide 48

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.

Algoritmia y programacin
Slide 49

Ejemplo 1: Anlisis
* Entradas:
* Salidas

Algoritmia y programacin
Slide 50

Ejemplo 1: Anlisis
* Entradas: n, nombres[]
* Salidas: lista con todos los nombres enumerados.

Algoritmia y programacin
Slide 51

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.

Algoritmia y programacin
Slide 52

Ejemplo 1: Pseudocdigo
INICIO

n,i: entero
lista="",

nombres[]:

texto

Algoritmia y programacin
Slide 53

Ejemplo 1: Pseudocdigo
INICIO

n,i: entero
lista="",nombres[]: texto
leer(n)

Algoritmia y programacin
Slide 54

Ejemplo 1: Pseudocdigo
INICIO

n,i: entero
lista="", nombres[]: texto
leer(n)
//insertamos
datos en el
arreglo
desde i=0 mientras i<n
incrementando
Haga

i en 1

leer(nombres[i])
Fin desde

Algoritmia y programacin
Slide 55

Ejemplo 1: Pseudocdigo
INICIO

n,i: entero
lista="", nombres[]: texto
leer(n)
//insertamos
datos en el
arreglo
desde i=0 mientras i<n
incrementando
Haga

i en 1

leer(nombres[i])
Fin desde
//Formamos la
incrementando i en
salida
desde i=0 mientras
i<n lista = lista+(i+1)+nombres[i]+\n
Fin
desde
haga

Algoritmia y programacin
Slide 56

Ejemplo 1: Pseudocdigo
INICIO

n,i: entero
lista="", nombres[]: texto
leer(n)
//insertamos
datos en el
arreglo
desde i=0 mientras i<n
incrementando
Haga

i en 1

leer(nombres[i])
Fin desde
//Formamos la
incrementando
salida
desde i=0 mientras
lista= lista+(i+1)+nombres[i]+\n
i<n
Fin
desde
haga
imprimir
(salida)
Algoritmia yFIN
programacin

i en 1

Slide 57

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];

Algoritmia y programacin
Slide 58

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

Algoritmia y programacin
Slide 59

Ejemplo 2
Desarrolle un programa en JAVA que permita leer el
nombre de
pesos
y mostrardesuuna
nombre,
posicin
pantalla
10 productos
tienda yy su
correspondiente
precio
en
.
precio. La
Utilice arreglo para almacena los precio y nombre de
aplicacin
producto debe decir cuntos de ellos cuestan ms de
s
r
s
s
3000
s

Algoritmia y programacin
Slide 60

Ejemplo 1: Anlisis
* Entradas: productos[], precios[]
* Salidas: producto, precio, posicin.

Algoritmia y programacin
Slide 61

Ejemplo 2: Programa en Java


import javax.swing.JOptionPane;
public class Tienda {
String nombre[] = new String[10], salida;
int precio[]

= new int[10],

posicion;

Algoritmia y programacin
Slide 62

Ejemplo 2: Programa en Java


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("Ingre
se
precios[i]=Integer.parseInt(JOptionPane.showInputDialog
articulo "+i);
( Ingrese precio"+i));
}
Algoritmia y programacin
Slide 63

el

Ejemplo 2: Programa en Java


//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)
;

Algoritmia y programacin
Slide 64

4. Ejercicios de Repaso

Ejercicios para reforzar lo visto en clase.

Algoritmia y programacin
Slide 65

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.

Algoritmia y programacin
Slide 66

Ejercicios a realizar con arreglos


Ejercicios adicionales:
En una competencia
de natacin se desea
implementar
una
aplicacin
paraes el ganador. El usuario debe
competidores
cual
almacenar cuantos
el tiempo
especificar
tiempos (competidores) desea ingresar.
por cada competidor y
adems
determinar
Desarrolle un
programa que recorra un arreglo de enteros,
con
endatos
todosson mltiplos de 7 y los muestre en
evalebase
si sus
los
tiempos de los
pantalla.

Algoritmia y programacin
Slide 67

Ejercicios a realizar con arreglos


3) La 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

***

**

10

**********

...
*********

9
15enteros de 10 elementos
***************
Utilice un arreglo de
para almacenar
la que ocurre cada calificacin.
10 y programacin 7
*******
Algoritmia

la frecuencia con
Slide 68

Anda mungkin juga menyukai