Está en la página 1de 5

UNIVERSIDAD DE EL SALVADOR PROGRAMACION III

1 CICLO II/2010
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACIN III


GUIA DE LABORATORIO No. 5
Arreglos En Java

Objetivo:
El objetivo de esta gua es que el estudiante aplique los conocimientos proporcionados en clase
acerca de los arreglos unidimensionales y multidimensionales en el ambiente de programacin
de JAVA.

PARTE I: EJERCICIOS DESARROLLADOS

Ejercicio No. 1: Creacin y uso de una Matriz Unidimensional.

import java.io.*;
publicclassMatrizUnidimensional {
// Creacin de una matriz unidimensional
publicstaticvoidmain(String[] args) throwsIOException {
InputStreamReaderisr = new InputStreamReader(System.in);
BufferedReaderMiFlujo= new BufferedReader(isr);

intnElementos;
StringDatoLedo;

System.out.print("Nmero de elementos de la matriz: ");
DatoLedo = MiFlujo.readLine();
nElementos = Integer.parseInt(DatoLedo);

int [] m = new int[nElementos]; // crear la matriz m
int i = 0; // subndice
0
System.out.println("Introducir los valores de la matriz.");
for (i = 0; i <nElementos; i++)
{
System.out.print("Elemento No. "+(i+1)+" - m[" + i + "] = ");
DatoLedo = MiFlujo.readLine();
m[i] = Integer.parseInt(DatoLedo);
}
// Visualizar los elementos de la matriz
System.out.println();
System.out.println("Datos almacenados en la matriz: ");
for (i = 0; i <nElementos; i++)
System.out.print(m[i] + " ");


System.out.println("\n\nFin del proceso.");
}
}

UNIVERSIDAD DE EL SALVADOR PROGRAMACION III
2 CICLO II/2010
Ejercicio No. 2:Al programa anterior agregue el cdigo necesario para que se determine el
menor y mayor valor almacenado en la matriz. Especifique su posicin.

Ejercicio No. 3: El siguiente programa presenta los datos en forma grfica a los usuarios
utilizando histogramas. Lo cual es una manera simple de mostrar datos numricos en forma
grfica.
//programa para imprimir histogramas
importjavax.swing.*;

publicclass Histograma {
publicstaticvoidmain ( Stringargs[] ) {
int arreglo[] = {19, 3, 15, 7, 11, 9, 13, 5, 17, 1};
String salida = "Elemento\tValor\tHistograma";

//para cada elemento del arreglo, mostrar una barra en el histograma
for ( int contador=0; contador<arreglo.length; contador++)
{
salida += "\n"+contador+"\t"+arreglo[contador]+"\t";
//imprimir barra de asteriscos
for ( int estrellas=0; estrellas < arreglo[contador]; estrellas++)
salida += "*";
} //fin del for externa
JTextAreaareaSalida = new JTextArea();
areaSalida.setText(salida);

JOptionPane.showMessageDialog(null, areaSalida, "Programa para imprimir
Histogramas",
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);

}//fin de main
}//fin de clase Histograma

Ejercicio No. 4:Creacin y uso de una Matriz Multidimensional implementada en un Applet.
import javax.swing.JApplet;
import java.awt.Graphics;
public class MatrizCartoons extends JApplet {

String[][] cartoons =new String[2][5];

public void init() {
cartoons[0][0]="Flintstones";
cartoons[0][1]="Fred";
cartoons[0][2]="Wilma";
cartoons[0][3]="Pebbles";
cartoons[0][4]="Dino";
cartoons[1][0]="Rubbles";
cartoons[1][1]="Barney";
cartoons[1][2]="Betty";
cartoons[1][3]="Bam Bam";
} //fin de init
public void paint(Graphics g) {
super.paint(g);
for (int i=1; i<=5; i++)
g.drawString(cartoons[0][i-1]+": ", 20,20*i);
for (int i=1; i<=5; i++)
g.drawString(cartoons[1][i-1]+": ", 120,20*i);
} //fin de paint
}//fin del Applet

UNIVERSIDAD DE EL SALVADOR PROGRAMACION III
3 CICLO II/2010
Ejercicio No. 5: Creacin y uso de una Matriz Multidimensional.

import javax.swing.JOptionPane;

public class ArregloDoble
{
public static String salida;
public static intestudiantes, examenes;
public static void main( String [] args )
{
intcalificaciones[][] = {{77,68,86,73},{96,87,89,81},
{70,90,86,81}};

estudiantes = calificaciones.length; //numero de estudiantes
examenes = calificaciones[0].length; // numero de examenes

//crear salida
salida = "El arreglo es: \n";
crearCadena(calificaciones);

//llamar a los mtodos minima y maxima
salida += "\n\nCalificacionmas baja: " + minima(calificaciones)
+ "\nCalificacion ms alta: " + maxima(calificaciones) + "\n";

//calcular el promedio de cada estudiante
for ( int contador = 0; contador < estudiantes; contador ++)
salida += "\nEl promedio del estudiante " + contador+" es " +
promedio( calificaciones[contador]);

//mostrar la salida
JOptionPane.showMessageDialog(null, salida, "Promedio de estudiantes",
JOptionPane.INFORMATION_MESSAGE);

System.exit( 0 );

}

publicstaticvoidcrearCadena (int calificaciones[][])
{
salida += " ";

//crear encabezados de columnas
for ( intconta = 0; conta<examenes; conta ++ )
salida += "[" + conta + "] ";

//crear filas/columnas de texto que representan el arreglo
// calificaciones
for (int fila = 0; fila < estudiantes; fila ++ )
{
salida += "\ncalificaciones[" + fila + "] ";
for (int col = 0; col <examenes; col ++)
salida += calificaciones[fila][col] + " ";
}

} //fin del mtodo crearCadena

//Buscar calificacin mnima
publicstaticintminima(int calificaciones[][])
{
//suponer que el primer elemento del arreglo es el menor
intcalifBaja = calificaciones[0][0];
for ( int fila=0; fila < estudiantes; fila++)
for (intcols = 0; cols<examenes; cols++ )
UNIVERSIDAD DE EL SALVADOR PROGRAMACION III
4 CICLO II/2010
//si la calificacion es menor que califBaja asignarla a califBaja
if ( calificaciones[fila][cols] <califBaja )
califBaja = calificaciones[fila][cols];
returncalifBaja;
} //fin del mtodo minima

//Buscar calificacin maxima
publicstaticintmaxima(int calificaciones[][])
{
//suponer que el primer elemento del arreglo es el mayor
intcalifAlta = calificaciones[0][0];
for ( int fila=0; fila < estudiantes; fila++)
for (intcols = 0; cols<examenes; cols++ )
//si la calificacion es mayor que califAlta asignarla a califAlta
if ( calificaciones[fila][cols] >califAlta )
califAlta = calificaciones[fila][cols];
returncalifAlta;
} //fin del mtodo minima

//determinar la calificacion promedio para un estudiante.
publicstaticdouble promedio (intconjCalif[] )
{
int total = 0; //inicializar el total


//sumar calificaciones para un estudiante
for( int cuenta=0; cuenta <conjCalif.length; cuenta++ )
total += conjCalif[cuenta];
//devolver el promedio de calificaciones
return (double) total / conjCalif.length;
} //fin delmtodo promedio
}

Ejercicio No. 5: Uso del For Mejorado y arreglos dinmicos.
packageformejorado;
importjavax.swing.*;

public class formejor {
public static void main(String[] args) {
//Lee el nombre de un estudiante y sus notas y calcula el promedio obtenido
intfilas,i;
Stringefilas,nombrealumno;
floatsumnotas=0;
//Leer la cantidad de alumnos
nombrealumno=JOptionPane.showInputDialog("Digite el nombre del alumno");
efilas=JOptionPane.showInputDialog("Digite la cantidad de notas del alumno");
filas=Integer.parseInt(efilas);

//Dimension en tiempo de ejecucion
float [] notas = new float[filas];
for ( i=0; i<filas; i++) {
efilas=JOptionPane.showInputDialog("Digite la nota "+(i+1)+ ":");
notas[i]=Float.parseFloat(efilas);
}

for(floatnota:notas)
sumnotas+=nota;

JOptionPane.showMessageDialog(null,"El alumno "+nombrealumno+" obtuvo de promedio
"+(sumnotas/filas));
}//fin de main
}//fin de clase
UNIVERSIDAD DE EL SALVADOR PROGRAMACION III
5 CICLO II/2010

PARTE II: EJERCICIOS PROPUESTOS
1. Realice un programa que lea las edades de N personas, luego obtenga la cantidad y la edad
promedio de las mismas considerando los siguientes rangos:
RANGO DE EDADES
1 20
21 40
Mayores que 40
2. Use un arreglo unidimensional para resolver el siguiente problema: escriba un applet que
reciba como entrada 5 nmeros, cada uno de los cuales debe estar entre 10 y 100, inclusive.
A medida que se lea cada nmero, mustrelo solamente si no es un duplicado de un nmero
que ya se haya ledo. Preprese para el peor caso, en el que los 5 nmeros son diferentes.
Use el arreglo ms pequeo que sea posible para resolver este problema. Muestre los
resultados en un objeto JTextArea, vea el ejercicio No. 3. Utilice el mtodo setText de la
clase JTextArea para actualizar los resultados despus que el usuario introduzca cada uno de
los valores.
3. El juego de palabrasEggy-Peggy es un ejemplo de cifrado. El cifrado se ha usado desde los
tiempos antiguos para comunicar mensajes secretos. Una de las muchas tcnicas usadas
para cifrado es la denominada cifra de Julio Csar. Con esta tcnica, cada carcter en el
mensaje original se desplaza N posiciones. Por ejemplo, si N=1 entonces el mensaje:
Yo solo bebo cafe
Se convierte en:
Xp!ftkpm!qpna!fgech
El mtodo cifrado descifra el mensaje original deshaciendo el desplazamiento de N
posiciones para cada carcter. Desplazar N posiciones hacia delante o hacia atrs se puede
conseguir convirtiendo el cdigo ASCII y aadiendo o restando N. Escriba una aplicacin que
lea un texto original y el valor para N y muestre el texto cifrado. Asegrese de que el valor
ASCII resultante del cifrado est entre 32 y 126. Por ejemplo, si se aade 8 (valor de N) a
122 (cdigo ASCII para z), se debera dar la vuelta y obtener 35.
4. Escriba una aplicacin en Java que lea una frase y muestre los contadores del nmero de
vocales dentro de la frase. nicamente es necesario contar las vocales en minscula.
Muestre los resultados en una ventana con el siguiente formato:

Numero de vocales en la frase:

Maria tiene un perrito blanco

# de a : 3
# de e : 3
# de i : 3
# de o : 2
# de u : 1
/phel

También podría gustarte