Sie sind auf Seite 1von 68

ARREGLOS UNIDIMENSIONALES

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
Universidad del Valle Slide 2

Definiendo los arreglos unidimensionales.

Algoritmia y programacin
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle 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
cajasDeNombres

Luis

Juan

Elemento del arreglo

ndice del arreglo

Algoritmia y programacin
Universidad del Valle 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
Universidad del Valle Slide 11

Cules son arreglos?

Algoritmia y programacin
Universidad del Valle Slide 12

Cules son arreglos?

Algoritmia y programacin
Universidad del Valle Slide 13

Cules son arreglos?

Algoritmia y programacin
Universidad del Valle Slide 14

2. Los Arreglos y Java

Declarando y trabajando con arreglos en Java.

Algoritmia y programacin
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle Slide 23

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

Algoritmia y programacin
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle Slide 26

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

Guarda el texto Sarah En la posicin 1 del arreglo.

Algoritmia y programacin
Universidad del Valle Slide 27

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

Guarda el texto Juan En la posicin 2 del arreglo

Algoritmia y programacin
Universidad del Valle Slide 28

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

Cul debe ser el ndice?

Algoritmia y programacin
Universidad del Valle Slide 29

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!

Algoritmia y programacin
Universidad del Valle Slide 30

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

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

Algoritmia y programacin
Universidad del Valle Slide 31

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

Algoritmia y programacin
Universidad del Valle Slide 32

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;

Algoritmia y programacin
Universidad del Valle Slide 33

Insercin de datos
double notas[]=new double[3];

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

Cules son las instrucciones necesarias para obtener el arreglo que se muestra abajo?

2.7
Algoritmia y programacin
Universidad del Valle

3.1

2.5

Slide 34

Insercin de datos
double notas[]=new double[3];

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

Cules son las instrucciones necesarias para obtener el arreglo que se muestra abajo?

2.7
Algoritmia y programacin
Universidad del Valle

3.1

2.5

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
Universidad del Valle Slide 36

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

Algoritmia y programacin
Universidad del Valle 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
Universidad del Valle Slide 38

3. Trabajando con arreglos

Ejemplos prcticos de cmo se crean programas usando arreglos.

Algoritmia y programacin
Universidad del Valle Slide 39

3. Trabajando con arreglos


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 mensaje

todos los nmeros en un solo

Luego, muestre solo los nmeros almacenados en posiciones pares y, muestre los nmeros impares contenidos en el arreglo

Algoritmia y programacin
Universidad del Valle Slide 40

3. Trabajando con arreglos


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

Algoritmia y programacin
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle Slide 43

3. Trabajando con arreglos


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 mensaje

todos los nmeros en un solo

Algoritmia y programacin
Universidad del Valle Slide 44

3. Trabajando con arreglos


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 mensaje


String mensaje= "";

todos los nmeros en un solo

for (int i=0; i<=99; i=i+1){ mensaje=mensaje + " \t " + numeros[i]; } JOptionPane.showMessageDialog(null, mensaje);
Algoritmia y programacin
Universidad del Valle Slide 45

Los arreglos y el ciclo for


Un arreglo se procesa generalmente usando un ciclo for:

Algoritmia y programacin
Universidad del Valle Slide 46

Los arreglos y el ciclo for


Un arreglo se procesa generalmente usando un ciclo for:

Algoritmia y programacin
Universidad del Valle Slide 47

Los arreglos y el ciclo for


b.length indica la cantidad de elementos del arreglo.

Algoritmia y programacin
Universidad del Valle 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
Universidad del Valle Slide 49

Ejemplo 1: Anlisis
* Entradas: * Salidas

Algoritmia y programacin
Universidad del Valle Slide 50

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

Algoritmia y programacin
Universidad del Valle 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
Universidad del Valle Slide 52

Ejemplo 1: Pseudocdigo
INICIO n,i: entero lista="", nombres[]: texto

Algoritmia y programacin
Universidad del Valle Slide 53

Ejemplo 1: Pseudocdigo
INICIO n,i: entero lista="",nombres[]: texto leer(n)

Algoritmia y programacin
Universidad del Valle 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 i en 1 Haga leer(nombres[i]) Fin desde

Algoritmia y programacin
Universidad del Valle 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 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

Algoritmia y programacin
Universidad del Valle 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 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
Algoritmia y programacin
Universidad del Valle 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
Universidad del Valle 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
Universidad del Valle Slide 59

Ejemplo 2
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

Algoritmia y programacin
Universidad del Valle Slide 60

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

Algoritmia y programacin
Universidad del Valle 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
Universidad del Valle 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("Ingrese el articulo "+i); precios[i]=Integer.parseInt(JOptionPane.showInputDialog ( Ingrese precio"+i)); }

Algoritmia y programacin
Universidad del Valle Slide 63

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
Universidad del Valle Slide 64

4. Ejercicios de Repaso

Ejercicios para reforzar lo visto en clase.

Algoritmia y programacin
Universidad del Valle 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
Universidad del Valle Slide 66

Ejercicios a realizar con arreglos


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.

Algoritmia y programacin
Universidad del Valle Slide 67

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 1 3 2 2 3 10 8 9 9 15 10 7

Histograma *** ** ********** ... ********* *************** *******

Utilice un arreglo de enteros de 10 elementos para almacenar la frecuencia con la que ocurre cada calificacin.
Algoritmia y programacin
Universidad del Valle Slide 68

Das könnte Ihnen auch gefallen