Está en la página 1de 7

Programación III

Ing. René Alberto Castro Velásquez

GUÍA DE LABORATORIO 5
ARREGLOS DE UNA DIMENSIÓN

INTRODUCCION
Un arreglo es una colección de variables del mismo tipo, referidos por un nombre común. En Java,
los arreglos tienen una o más dimensiones, a pesar de que el arreglo unidimensional es el más
común. Los arreglos son usados para una variedad de propósitos porque ofrecen una forma
conveniente de agrupar variables relacionadas.
La ventaja principal de un arreglo es que se organiza en forma tal que puede ser fácilmente
manipulado.
A pesar que los arreglos en Java pueden ser usados como los arreglos en otros lenguajes de
programación, tienen un atributo especial: son implementados como objetos.
En resumen:
Un arreglo es un grupo de variables del mismo tipo.
El índice es de tipo int o de un tipo que pueda promoverse a int (byte, short, char).
El índice inicia en cero.
El método length permite obtener la cantidad de elementos en un arreglo.

OBJETIVOS
a. Construir un arreglo de una dimensión.
b. Guardar datos dentro de un arreglo de una dimensión.
c. Leer información de un arreglo de una dimensión.
d. Efectuar cálculos con los elementos de un arreglo de una dimensión.

PROCEDIMIENTO
Parte 1 – Uso de JDK.
1. Inicie una sesión de MS-DOS, y utilice el comando edit para crear un archivo llamado
arreglo4.java con edit.
NOTA: Puede usar cualquier procesador de texto, teniendo cuidado de guardar el archivo
en modo texto y con la extensión .java.
2. Digite el código siguiente.
import java.util.*;
public class arreglos4
{
private static int vector1[];
private static Scanner L = new Scanner(System.in);

public static void main(String args[])


{
vector1 = new int[4];
ingresarValores(vector1);
mostrarValores(vector1);
mostrarPromedio(vector1);
}

Página 1 de 7
Programación III
Ing. René Alberto Castro Velásquez

private static void ingresarValores(int a[])


{
for (int i=0; i<a.length; i++)
{
System.out.print("Vector1[" + (i+1) + "]=");
a[i] = L.nextInt();
}
}

private static void mostrarValores(int a[])


{
for (int n : a)
System.out.printf("%d ", n);
System.out.println();
}

private static void mostrarPromedio(int a[])


{
int suma=0;
double prom=0.0;
for (int n : a)
suma = suma + n;
prom = (double)suma/(double)a.length;
System.out.println("Promedio = " + prom);
}
}
3. Compile el archivo anterior utilizando la instrucción siguiente:
javac arreglos4.java
Realice las correcciones necesarias en caso de aparecer algún error.

Parte 2 – Uso de NetBeans.


1. Replique en NetBeans todo el trabajo realizado en el JDK. Para ello abra el IDE de
NetBeans y asegúrese que no existe ningún otro proyecto abierto. Si hay algún proyecto
abierto debe cerrarlo.
2. Cree un proyecto nuevo. Para ello utilice cualquiera de las opciones siguientes:

a. Haga clic sobre el botón .


b. En el menú de NetBeans seleccione Archivo, Proyecto Nuevo.
c. Presione la combinación de teclas Control + Shift + N.
Seleccione la categoría Java y el proyecto Aplicación Java.
3. Haga clic en el botón Siguiente>.
Digite ArreglosGrafico1 como nombre del proyecto y revise que los recuadros Crear
clase principal y Usar una carpeta dedicada para almacenar las bibliotecas no estén
marcados.
4. Haga clic en el botón Terminar.

Página 2 de 7
Programación III
Ing. René Alberto Castro Velásquez

5. Agregue una clase al proyecto


6. Elija la categoría categoría Formularios de interfaz gráfica de Swing, y el tipo de archivo
Formulario JFrame.
7. Haga clic en el botón Siguiente.
8. Escriba Pantalla1 como nombre de la clase, y arreglo como nombre del paquete.
9. Haga clic en el botón Terminar.
10. Agregue un panel para luego colocar diversos controles sobre él.
11. Haga clic sobre la esquina inferior derecha del jPanel1 y redimensiónelo hasta abarcar el
ancho y alto máximo, atendiendo la sugerencia del IDE (las líneas guía).
12. Coloque y configure los controles siguientes:

No. Control Propiedad Valor

1 jPanel1 Border, Bordes disponibles Borde con Título

1 jPanel1 Border, Título Vector de 4 elementos enteros

2 jLabel1 Font Arial Black, Negrita, 14

2 jLabel1 Text Uso de arreglos

3 jLabel2 Text Digite elemento

4 jLabel3 Text 1

5 jLabel4 Text Valores digitados:

6 jLabel5 Text

7 jLabel6 Text Promedio:

8 jLabel7 Text

9 jLabel8 Text

9 jLabel8 Foreground [255,0,0]

10 jTextField1 Text

11 jButton1 Text Capturar

12 jButton2 Text Otro cálculo

13 jButton3 Text Salir

Página 3 de 7
Programación III
Ing. René Alberto Castro Velásquez

La pantalla debe quedar similar a la siguiente:

1. 10. 2.
jPanel1 jTextField1 jLabel1

4.
jLabel3 11.
jButton1
3.
jLabel2 9.
jLabel8

5.
jLabel4

6. 8.
jLabel5 jLabel7

7. 12. 13.
jLabel6 jButton2 jButton3

13. Haga clic sobre el botón Fuente, en la parte superior del diseñador, e inmediatamente
después de la línea Generated Code digite el código siguiente:
private int cuenta = 0;
private int vector1[] = new int [4];
private double promedio = 0;
private int suma = 0;
14. Vuelva al modo gráfico haciendo clic en el botón Diseño.
15. Haga doble clic sobre el botón Capturar y digite el código siguiente:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if (cuenta<4)
{
capturarElemento();
if(cuenta == 4)
{
calcularPromedio();
mostrarValores();
mostrarPromedio();
}
}
}

Página 4 de 7
Programación III
Ing. René Alberto Castro Velásquez

16. Va a obtener errores porque no existen las funciones que se están invocando en el código.
Para corregir este problema ubique el cursor en algún punto inmediatamente después del
cierre del código anterior, y digite lo siguiente:
Código de la función capturarElemento()
private void capturarElemento()
{
try
{
jLabel8.setText("");
vector1[cuenta] = Integer.parseInt(jTextField1.getText());
++cuenta;
jTextField1.setText("");
jTextField1.requestFocus();
if (cuenta<4)
jLabel3.setText(Integer.toString(cuenta+1));
}
catch (Exception e)
{
jLabel8.setText("Error de tipo de datos");
jTextField1.requestFocus();
}
}

Código de la función calcularPromedio()


private void calcularPromedio()
{
for (int i=0; i<vector1.length; i++)
{
suma += vector1[i];
}
promedio = (double)suma / (double)vector1.length;
}

Código de la función mostrarValores()


private void mostrarValores()
{
StringBuilder result = new StringBuilder();
if (vector1.length > 0)
for (int i=0; i<vector1.length; i++)
result.append(vector1[i]).append(" ");
jLabel5.setText(result.toString());
}

Código de la función mostrarPromedio()


private void mostrarPromedio()
{
String prom = Double.toString(promedio);
jLabel7.setText(prom);
}

Página 5 de 7
Programación III
Ing. René Alberto Castro Velásquez

17. Vuelva al modo gráfico haciendo clic en el botón Diseño.


18. Haga doble clic sobre el botón Otro cálculo y digite el código siguiente:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
Limpiar();
}
19. Nuevamente va a obtener errores porque no existe la función que se está invocando. Para
corregir este problema ubique el cursor en algún punto inmediatamente después del cierre
del código anterior, y digite lo siguiente:
Código de la función Limpiar()
private void Limpiar()
{
jTextField1.setText("");
jLabel3.setText("1");
jLabel5.setText("");
jLabel7.setText("");
jLabel8.setText("");

for (int i=0; i<4; i++)


vector1[i]=0;
suma = 0;
promedio = 0;
cuenta = 0;
}
20. Vuelva al modo gráfico haciendo clic en el botón Diseño.
21. Haga doble clic sobre el botón Salir y digite el código siguiente:
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
22. Ejecute la aplicación.

Ejercicios del laboratorio 5


a. ¿Qué modelo de programación ha sido utilizado para este programa, tanto en el
modo texto como en el modo gráfico?
b. Para el modo texto, ¿por qué se declara la referencia al arreglo antes del método
principal?
c. Para el modo texto, ¿por qué se declara al objeto lector antes del método
principal?
d. En el modo texto, explique línea por línea qué es lo que hace el método main.
e. En el modo texto, por qué la función ingresarValores (así como las demás
funciones) contiene la palabra static?
f. En el modo texto, ¿qué relación tiene el vector a[] declarado como parámetro de
la función ingresarValores (así como las demás funciones)?
g. En el modo texto, compare el ciclo for de la función ingresarValores con el ciclo
for de la función mostrarPromedio.

Página 6 de 7
Programación III
Ing. René Alberto Castro Velásquez

h. En el modo texto, ¿qué hace la línea System.out.printf("%d ", n);?


i. En el modo texto, en la función mostrarPromedio, ¿por qué el cálculo del
promedio debe ser escrito así: prom = (double)suma/(double)a.length;?
j. En el modo gráfico, ¿para qué sirve el método getText()?
k. En el modo gráfico, ¿para qué sirve el método setText()?
l. En el modo gráfico, ¿para qué sirve el método requestFocus()?
m. En el modo gráfico, ¿para qué sirve Integer.parseInt()?
n. En el modo gráfico, ¿para qué sirve Integer.toString()?
o. En el modo gráfico, ¿para qué sirve vector1.length?
p. En el modo gráfico, ¿qué hace la instrucción
StringBuilder result = new StringBuilder();?
q. En el modo gráfico, ¿qué hace la instrucción
result.append(vector1[i]).append(" ");?

Ejercicios para practicar


a. Escriba un arreglo unidimensional que reciba 20 números enteros y devuelva su
promedio.
b. Escriba un arreglo unidimensional que reciba 10 números enteros y devuelva el primer
valor menor encontrado, y su posición dentro del arreglo.
c. Escriba un arreglo unidimensional que reciba 10 números enteros y devuelva el último
valor mayor encontrado, y su posición dentro del arreglo.
d. Escriba un arreglo unidimensional que reciba 20 números enteros y devuelva el promedio,
la cantidad de elementos menores que el promedio, la cantidad de elementos iguales al
promedio y la cantidad de elementos mayores que el promedio.
e. Escriba un programa que llene 2 vectores con enteros de 10 elementos cada uno, sume el
primero del vector uno con el último del vector dos, el segundo del vector 1 con el
penúltimo del vector dos, etc., y que guarde los resultados en un tercer vector. Imprima los
tres vectores.
f. Escriba un programa que llene un vector de enteros de 15 elementos, eleve al cuadrado
cada valor almacenado y guarde el resultado en otro vector. Imprima el vector original y el
vector resultante.
g. Escriba un programa que llene dos vectores de 5 elementos cada uno, y luego los
compare. A continuación deberá imprimir la palabra “IGUALES” si ambos vectores son
iguales, o “DIFERENTES” si no lo son. Serán iguales cuando en la misma posición de
ambos vectores se tenga el mismo valor para todos los elementos.
h. Escriba un programa que llene un vector que reciba 25 números enteros e imprima
“ORDENADO” si los elementos se encuentran en orden ascendente, o “DESORDENADO”
si no lo están.

Página 7 de 7

También podría gustarte