Arreglos Unidimensionales en java Los arreglos son variables
Arreglos Unidimensionales en java
Los arreglos son variables que almacenan varios valores del mismo tipo. El tamaño del arreglo es fijo, es decir, que en tiempo de ejecución no se puede modificar su tamaño. Existen arreglos de una dimensión (unidimensionales), de dos dimensiones (bidimensionales) y de varias dimensiones.
• Estas estructuras almacenan valores del MISMO TIPO de dato. Es decir, si se definió el arreglo de tipo entero, sólo almacena datos de tipo entero. • Tienen un tamaño fijo. Al crear el arreglo se determina el número máximo de elementos que va a almacenar. • El arreglo tiene posiciones, que son como casillas donde se almacenan los datos y esto es lo que permite conocer dónde quedó almacenado cada valor. Las posiciones se inician a numerar desde 0. Ejemplo: Este arreglo de enteros tiene un tamaño de 10 y sus posiciones se enumeran de 0 a 9. Sólo hay valores almacenados en 6 posiciones. 5 2 15 18 1 2 0 1 2 3 4 5 6 7 8 9
‘a’ ‘G’ ‘m’ 0 1 2 ‘h’ 3 ‘ 7’ ‘%’ ‘y’ 4 5 6 7 8 9 10 11 Ejemplo: Este arreglo de caracteres tiene un tamaño de 12 ¿Cómo se define el arreglo unidimensional en java? Si se va a definir un arreglo de tipo entero de 5 posiciones llamado k, sería así: int k[] = new int[5]; ó int []k = new int[5]; ó int k[]; k = new int[5]; Si se va a definir un arreglo de tipo caracter de 10 posiciones llamado arreglo, sería así: char arreglo[] = new char[10]; ó char arreglo[]; arreglo = new char [10];
import java. io. *; import java. io. IOException; import javax. swing. JOption. Pane; public class suma { public static void main(String[] args) throws IOException { int i; String vector[] = {"Avila", "Burgos", "León", "Palencia", "Salamanca", "Segovia", "Soria", "Valladolid", "Zamora"}; String mensaje="n"; for (i=0; i<9; i++) { mensaje = mensaje +vector[i] +"n"; } JOption. Pane. show. Message. Dialog ( null, "Elementos del vectorn"+mensaje, "Programa de ejemplo", JOption. Pane. INFORMATION_MESSAGE); } }
import java. io. *; import java. io. IOException; import javax. swing. JOption. Pane; public class suma { public static void main(String[] args) throws IOException { int i; char juan[] = {'a', 'e', 'i', 'o', 'u'}; String mensaje="n"; for (i=0; i<5; i++) { mensaje = mensaje +juan[i] +"n"; } JOption. Pane. show. Message. Dialog ( null, "Elementos del vectorn"+mensaje, "Programa de ejemplo", JOption. Pane. INFORMATION_MESSAGE); } }
¿Cómo se guardan los elementos en un arreglo unidimensional? Es necesario utilizar el nombre del arreglo y entre paréntesis cuadrados, la posición en la cual se va a almacenar el valor. Se declara el arreglo de tipo entero y de cinco posiciones llamado K: int k[] = new int[5]; K 0 Se almacena el valor 8 en la primera posición (0): k[0]=8; K 1 2 3 4 8 0 4
Se almacena el valor 3 en la segunda posición (1): K K[1]=3; Se almacena el valor 7 en la tercera posición (2): K[2]=7; K 8 3 0 1 2 8 3 7 0 1 2 El arreglo queda hasta el momento con las tres primeras posiciones asignadas 3 4
¿Cómo se accede a los datos almacenados en un arreglo unidimensional? Cada posición del arreglo se toma como si fuera una variable. Para 8 3 7 esto es necesario nombrar el y entre paréntesis arreglo 0 1 2 3 cuadrado la posición que vamos a acceder. Tomando como base el arreglo K de la gráfica K 4 Para imprimir la posición 1 del arreglo por consola sería: System. out. println(K[1]); Por ventana emergente sería: JOption. Pane. show. Message. Dialog(null, K[1]); En este caso se imprime 3
8 3 7 0 1 2 K 3 4 Si se quisiera sumar el valor de las tres posiciones llenas del arreglo en una variable llamada suma, sería: int suma = K[0] + K[1] + K[2]; En este caso, en la variable suma queda almacenado el valor de 18 porque: 8 + 3 + 7 = 18
Uso de los ciclos repetitivos para recorrer arreglos unidimensionales K 8 3 7 0 1 2 3 4 Para imprimir este arreglo con el ciclo for, sería así: for (int i=0; i<5; i++){ System. out. println(K[i]); } Imprime 8 3 7 El uso de ciclos repetitivos nos facilita el recorrido de los arreglos, de hecho, la forma adecuada de manejar un arreglo, es con el ciclo PARA (FOR). La variable de control del ciclo se utiliza para identificar las posiciones del arreglo por eso se inicia en 0 El ciclo for llega hasta el tamaño máximo del arreglo y como inicia en 0 termina cuando sea 5
Forma de llenar un arreglo con el ciclo repetitivo For K 0 1 2 3 Si el usuario ingresa los siguientes valores: 4 3 5 7 1 4 int K[] = new int[5]; for (int i=0; i<5; i++){ K[i] = JOption. Pane. show. Input. Dialog(“Ingrese el valor del arreglo en la posición “ +i); } El arreglo queda así: K 4 3 0 1 5 2 7 1 3 4
Ejemplo: Algoritmo para llenar y obtener la sumatoria de los elementos de un arreglo Constante TAM import java. io. IOException; import javax. swing. JOption. Pane; public class ejemplos { public static void main(String[] args) throws IOException { final int TAM=5; int suma; Int k[] = new int[TAM]; con el tamaño del arreglo String entrada; suma = 0; for (int i=0; i<TAM; i++){ entrada= JOption. Pane. show. Input. Dialog("ingreseel valor del arreglo posición : " +i); k[i] = Integer. parse. Int(entrada); suma = suma + k[i]; } JOption. Pane. show. Message. Dialog(null, "La sumatoria es: "+suma); }} k 4 3 5 7 1 0 1 2 3 4 Si el arreglo se llenara con estos datos, la sumatoria sería: 4+3+5+7+1 = 20
Ejemplo: Algoritmo para llenar y obtener la suma y el promedio de los elementos de un arreglo import java. io. IOException; import javax. swing. JOption. Pane; public class ejemplos { public static void main(String[] args) { final int TAM=5; int suma; intk[] = new int[TAM]; double promedio; String entrada; suma = 0; for (int i=0; i<TAM; i++){ entrada= JOption. Pane. show. Input. Dialog("ingreseel valor del arreglo posición : " +i); k[i] = Integer. parse. Int(entrada); suma = suma + k[i]; } promedio = (double) suma/TAM; JOption. Pane. show. Message. Dialog(null, "La sumatoria es: "+suma+ " y el promedio es: "+promedio); }} k 4 3 5 7 1 0 1 2 3 4 Si el arreglo se llenara con estos datos, la suma sería: 4+3+5+7+1 = 20 y el promedio sería: 20 / 5 = 4
Clasificación de las EDA, continuación Unidimensionales – Ejemplo 1 import java. io. *; import java. io. IOException; import javax. swing. JOption. Pane; public class suma { public static void main(String[] args) throws IOException { int i, x; x=Integer. parse. Int(JOption. Pane. show. Input. Dialog("Ingrese el tamano del vector")); int vector[] = new int[x]; for (i=0; i<x; i++) vector[i]=i; String mensaje="n"; for (i=0; i<x; i++) { mensaje = mensaje +vector[i] +"n"; } JOption. Pane. show. Message. Dialog ( null, "Elementos del vectorn"+mensaje, "Programa de ejemplo", JOption. Pane. INFORMATION_MESSAGE); } }
Clasificación de las EDA, continuación Unidimensionales – Ejemplo 1 package vector; import java. io. IOException; import javax. swing. JOption. Pane; public class Vector { public static void main(String[] args) throws IOException { int i, x; x=Integer. parse. Int(JOption. Pane. show. Input. Dialog("Ingrese el tamano del vector")); int vector[] = new int[x]; int j, suma =0; for (i=0; i<x; i++) { j=Integer. parse. Int(JOption. Pane. show. Input. Dialog("Ingrese los elementos del vector")); vector[i]=j; suma = suma +vector[i]; } String mensaje="n"; for (i=0; i<x; i++) { mensaje = mensaje +vector[i] +"n"; } mensaje = mensaje + "n Suma = " + suma; JOption. Pane. show. Message. Dialog ( null, "Elementos del vectorn"+mensaje, "Programa de ejemplo", JOption. Pane. INFORMATION_MESSAGE); } }
EJEMPLOS Diseñe un programa que permita solicitar por pantalla la cantidad de estudiantes su nota obtenidas en una asignatura el programa debe permitir ver los estudiantes con sus notas, y cual de los estudiantes obtuvo la nota mas alta y cual la más baja.
import java. io. IOException; import javax. swing. JOption. Pane; public class borro { public static void main(String[] args) throws IOException { int x, mayor, indice, menor; x=Integer. parse. Int(JOption. Pane. show. Input. Dialog("ingrese la cantidad de estudiantes: ")); int notas[] = new int[x]; String nombres[] = new String[x]; for (int i=0; i < x; i++) { nombres[i]= JOption. Pane. show. Input. Dialog("Introduzca el Nombre"); notas[i]=Integer. parse. Int( JOption. Pane. show. Input. Dialog("Introduzca la Nota de Informática") ); } String estudiante=""; for (int j=0; j < x; j++) { estudiante= estudiante + "El nombre es "+nombres[j]+" La nota es: "+notas[j]+"n"; } JOption. Pane. show. Message. Dialog ( null, "Elementos del vectorn"+estudiante, "Programa de ejemplo", JOption. Pane. INFORMATION_MESSAGE); // Calcula la nota mayor =notas[0]; indice=0; for (int j=0; j < nombres. length; j++) { if (mayor < notas[j]) { mayor =notas[j]; indice=j; } } JOption. Pane. show. Message. Dialog(null, "El estudiante con la nota mayor es "+nombres[indice]+" La nota es: "+notas[indice]+"n"); // calcula nota menor =notas[0]; indice=0; for (int j=0; j < nombres. length; j++) { if (menor > notas[j]) { menor =notas[j]; indice=j; } } JOption. Pane. show. Message. Dialog(null, "El estudiante con la nota menor es "+nombres[indice]+" La nota es: "+notas[indice]+"n"); }}
package borrar; import java. io. IOException; import javax. swing. JOption. Pane; public class Borrar { public static void main(String[] args) throws IOException { int x, mayor, menor; x=Integer. parse. Int(JOption. Pane. show. Input. Dialog("ingrese la cantidad de estudiantes: ")); int notas[] = new int[x]; String nombres[] = new String[x]; for (int i=0; i < x; i++) { nombres[i]= JOption. Pane. show. Input. Dialog("Introduzca el Nombre"); notas[i]=Integer. parse. Int( JOption. Pane. show. Input. Dialog("Introduzca la Nota de Informática") ); } String estudiante=""; for (int j=0; j < x; j++) { estudiante= estudiante + "El nombre es "+nombres[j]+" La nota es: "+notas[j]+"n"; } JOption. Pane. show. Message. Dialog ( null, "Elementos del vectorn"+estudiante, "Programa de ejemplo", JOption. Pane. INFORMATION_MESSAGE); // Calcula la nota mayor =notas[0]; for (int j=0; j <x; j++) { if (mayor < notas[j]) { mayor =notas[j]; } } estudiante="n"; for (int j=0; j < x; j++) { if (mayor == notas[j]){ estudiante= estudiante + "El nombre es "+nombres[j]+" La nota es: "+notas[j]+"n"; } } JOption. Pane. show. Message. Dialog(null, "estudiante con las nota mayor es "+estudiante+"n"); // calcula nota menor =notas[0]; for (int j=0; j < nombres. length; j++) { if (menor > notas[j]) { menor =notas[j]; } } estudiante="n"; for (int j=0; j < x; j++) { if (menor == notas[j]){ estudiante= estudiante + "El nombre es "+nombres[j]+" La nota es: "+notas[j]+"n"; } } JOption. Pane. show. Message. Dialog(null, "estudiante con las nota menor es "+estudiante+"n"); }}
- Slides: 19