Está en la página 1de 38

ARREGLOS UNIDIMENSIONALES

Daniel Barragan daniel.barragan@correounivalle.edu.co Mircoles 10:00 am a 12:00 am Ed. 331 Sala No 2

Contenido
1. Conceptos preliminares.

2. Qu son los arreglos? 3. Cmo se definen? 4. Cmo almacenar y leer datos? 5. Ejercicios

Algoritmia y programacin
Universidad del Valle Slide 2

Qu es un arreglo?
Un arreglo es una lista de datos con un nmero fijo de componentes, todos del mismo tipo. Cada componente del arreglo es referenciado mediante ndices (0, 1, 2, 3, ...) o expresiones ordinales encerradas entre corchetes [ ].

Algoritmia y programacin
Universidad del Valle Slide 3

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. Ejercicio: Escriba un programa en Java que solicite los nombres de cada estudiante del curso y los imprima al final.

Algoritmia y programacin
Universidad del Valle Slide 4

Para qu sirven los arreglos?


Ejercicio: Escriba un programa en Java que solicite los nombres de cada estudiante del curso y los imprima al final. Sin el uso de arreglos tendramos un programa como el siguiente:
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 5

Para qu sirven los arreglos?


Ejercicio: Escriba un programa en Java que solicite los nombres de cada estudiante del curso y los imprima al final. Sin el uso de arreglos tendramos un programa como el siguiente:
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

ES

EF I

C IE N

TE !

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
arregloDeNombres

Luis

Juan

Elemento del arreglo

ndice del arreglo

Algoritmia y programacin
Universidad del Valle Slide 7

Para Recordar...
* Un arreglo se usa para almacenar elementos del mismo tipo y tiene un 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 8

Cules son arreglos?

Algoritmia y programacin
Universidad del Valle Slide 9

Declarando Arreglos en Java


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 10

Declarando Arreglos en Java


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 11

Declarando Arreglos en Java


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 12

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 los 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 13

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 14

Almacenamiento de Datos
Para ingresar datos en un arreglo se debe indicar el valor y la posicin del arreglo donde se va insertar:

nombreArreglo[posicin] = valor;
Nota: No importa el orden en el cual se almacenan o ingresan los datos en el arreglo.

Algoritmia y programacin
Universidad del Valle Slide 15

Almacenamiento de Datos
Almacene el nombre Sara en la posicin 1 del arreglo nombres. String nombres[] = new String [4]; Nombres[1] = Sarah;

Nota: Cuando se crea un arreglo,ste no tiene ningn valor. Cuando el arreglo es de String esto se indica con la palabra null.
Algoritmia y programacin
Universidad del Valle Slide 16

Almacenamiento de Datos
Almacene el nombre Juan en la posicin 2 del arreglo nombres. String nombres[] = new String [4]; Nombres[1] = Sarah; Nombres[2] = Juan;

Algoritmia y programacin
Universidad del Valle Slide 17

Almacenamiento de Datos
String nombres[] = new String [4]; nombres[1] = Sarah; nombres[2] = Juan; Cul debe ser el nombres[?] = Oscar; ndice?

Algoritmia y programacin
Universidad del Valle Slide 18

Almacenamiento de Datos
String nombres[] = new String [4]; nombres[1] = Sarah; nombres[2] = Juan; No importa el orden nombres[0] = Oscar; en el cual se guardan los datos en el arreglo!

Algoritmia y programacin
Universidad del Valle Slide 19

Almacenamiento de Datos
String nombres[] = new String [4]; nombres[1] = Sarah; La instruccin nombres[2] = Juan; nombres[4]=Jose; nombres[0] = Oscar; es vlida?

Algoritmia y programacin
Universidad del Valle Slide 20

Almacenamiento de Datos
int arreglo[ ] = new int [5];

Cul es el error en cada instruccin? Arreglo[0] = 21.2; Arreglo[5] = 90; arreglo[2] = arreglo [-1] + 10;
Algoritmia y programacin
Universidad del Valle Slide 21

Lectura de Datos
Para leer o recuperar los datos de un arreglo se debe indicar la posicin del arreglo que se quiere conocer:

nombreArreglo[posicin]
String nombres[ ] = {Oscar, Sara, Juan,Pepe};

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


Algoritmia y programacin
Universidad del Valle Slide 22

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

Algoritmia y programacin
Universidad del Valle Slide 23

Arreglos y el Ciclo for


Un arreglo se procesa usando generalmente un ciclo for:

Algoritmia y programacin
Universidad del Valle Slide 24

Arreglos y el Ciclo for


b.length indica la cantidad de elementos del arreglo.

Algoritmia y programacin
Universidad del Valle Slide 25

Ejemplo 1:
Escriba un programa en Java que solicite los nombres de cada estudiante de un curso y los imprima de forma numerada al final. Use un arreglo para almacenar el nombre de cada estudiante.

Algoritmia y programacin
Universidad del Valle Slide 26

Ejemplo 1: Anlisis
Entrada: 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 de datos tipo String de tamao n. Salida: un String que contendr la lista numerada de los nombres de los estudiantes.

Algoritmia y programacin
Universidad del Valle Slide 27

Ejemplo 1: Pseudocdigo
INICIO n,i: entero salida, 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 salida=concatenar(salida,i+1, nombres[i], \n) Fin desde imprimir (salida) FIN
Algoritmia y programacin
Universidad del Valle Slide 28

Ejemplo 1: Programa en Java I


import javax.swing.*; public class NombresCurso { public static void main(String[] args) { int n,i; String salida="La lista de nombres de los Estudiantes es:\n"; String nombres[]; n =Integer.parseInt(JOptionPane.showInputDialog( "Ingrese el nmero de estudiantes del curso: ")); nombres = new String [n];

Algoritmia y programacin
Universidad del Valle Slide 29

Ejemplo 1: Programa en Java II


// 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++){ salida = salida + (i+1) + ". " + nombres[i] + "\n"; } JOptionPane.showMessageDialog(null, salida); }// fin mtodo main } // Fin clase
Algoritmia y programacin
Universidad del Valle Slide 30

Ejemplo 2:
Escriba un programa en Java que lea una lista de n enteros y retorne el nmero mayor de la lista.

Algoritmia y programacin
Universidad del Valle Slide 31

Ejemplo 2: Anlisis
Entrada: Debemos capturar el valor de n nmeros enteros. por lo tanto es necesario primero conocer el valor de n para saber cul ser el tamao del arreglo. El arreglo ser de datos tipo int de tamao n. Salida: un String que contendr la lista de nmeros ingresados por el usuario y el del nmero mayor en la lista.

Algoritmia y programacin
Universidad del Valle Slide 32

Ejemplo 2: Pseudocdigo I
INICIO n,mayor, lista[]: entero salida: texto leer(n) //Insertamos datos en el arreglo Desde i=0 mientras i<n incrementando i en 1 Haga leer(lista[i]) Fin desde //Buscamos el numero mayor mayor = lista[0] Desde i=1 mientras i<n incrementando i en 1 Haga SI mayor < lista[i] Entonces mayor = lista[i] Fin desde
Algoritmia y programacin
Universidad del Valle Slide 33

Ejemplo 2: Pseudocdigo II
//Formamos la salida Desde i=0 mientras i<n incrementando i en 1 Haga Salida= salida + lista[i]+ \n Fin desde imprimir (salida + mayor) FIN

Algoritmia y programacin
Universidad del Valle Slide 34

Ejemplo 2: Programa en Java I


public class MayorEnteros { public static void main(String[] args) { Int n,mayor,listaEnteros[]; String salida; //Insertamos datos en el arreglo n =Integer.parseInt(JOptionPane.showInputDialog( "Ingrese el nmero de datos enteros a leer: ")); listaEnteros = new int [n]; for (int i=0; i < listaEnteros.length; i++) { listaEnteros [i] = Integer.parseInt(JOptionPane.showInputDialog( "Ingrese el valor " + (i+1) + ": ")); }

Algoritmia y programacin
Universidad del Valle Slide 35

Ejemplo 2: Programa en Java II


//Buscamos el numero mayor mayor = listaEnteros[0] for (int i=0; i < listaEnteros.length; i++) { if(mayor <listaEnteros [i]) { mayor = listaEnteros[i]; } } //Formamos la salida salida = "La lista original es:\n"; for (i=0; i < listaEnteros.length; i++) { salida = salida + listaEnteros[i] + " "; } salida += "El numero mayor es\n: "+ mayor; JOptionPane.showMessageDialog(null, salida); }// fin mtodo main } // Fin clase
Algoritmia y programacin
Universidad del Valle Slide 36

Ejercicios de Repaso
1) Escriba un programa en Java que lea una lista de n enteros, los ordene de mayor a menor y calcule el promedio de los datos ingresados. 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 37

Ejercicios de Repaso
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 capturar la frecuencia con la que ocurre cada calificacin.
Algoritmia y programacin
Universidad del Valle Slide 38

También podría gustarte