Vous êtes sur la page 1sur 5

UNIVERSIDAD TECNOLOGICA

Programacin III

Gua de laboratorio No. 4


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.*;
public class MatrizUnidimensional {
// Creacin de una matriz unidimensional
public static void main(String[] args) throws IOException {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader MiFlujo= new BufferedReader(isr);
int nElementos;
String DatoLedo;
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.");
}
}

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
import javax.swing.*;
public class histogramas {
public static void main ( String args[] ) {
int arreglo[] = {19, 3, 15, 7, 11, 9, 13, 5, 17, 1};

CICLO I/2011

UNIVERSIDAD TECNOLOGICA

Programacin III

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
JTextArea areaSalida = 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 yas extends JApplet {
String[][] cartoons =new String[2][5];
public void init() {
cartoons[0][0]="Picapiedra";
cartoons[0][1]="Tom y Jerry";
cartoons[0][2]="Mazinger";
cartoons[0][3]="Heman";
cartoons[0][4]="Dinosaurios";
cartoons[1][0]="Rubbles";
cartoons[1][1]="Barney";
cartoons[1][2]="El Pato Lucas";
cartoons[1][3]="Bug Bonny";
} //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

Ejercicio No. 5: Creacin y uso de una Matriz Multidimensional.


import javax.swing.JOptionPane;
public class ArregloDoble {
public static String salida;
public static int estudiantes, examenes;
public static void main( String [] args ) {
int calificaciones[][] =
{{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

CICLO I/2011

UNIVERSIDAD TECNOLOGICA

Programacin III

//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 );
}
public static void crearCadena (int calificaciones[][]) {
salida += " ";
//crear encabezados de columnas
for ( int conta = 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
public static int minima(int calificaciones[][])
{
//suponer que el primer elemento del arreglo es el menor
int califBaja = calificaciones[0][0];
for ( int fila=0; fila < estudiantes; fila++)
for (int cols = 0; cols<examenes; cols++ )
//si la calificacion es menor que califBaja
asignarla a califBaja
if ( calificaciones[fila][cols] <califBaja )
califBaja = calificaciones[fila][cols];
return califBaja;
} //fin del mtodo minima
//Buscar calificacin maxima
public static int maxima(int calificaciones[][])
{
//suponer que el primer elemento del arreglo es el mayor
int califAlta = calificaciones[0][0];
for ( int fila=0; fila < estudiantes; fila++)
for (int cols = 0; cols<examenes; cols++ )
//si la calificacion es mayor que califAlta asignarla a
califAlta
if ( calificaciones[fila][cols] >califAlta )
califAlta = calificaciones[fila][cols];

CICLO I/2011

UNIVERSIDAD TECNOLOGICA

Programacin III

return califAlta;
} //fin del mtodo minima
//determinar la calificacion promedio para un estudiante.
public static double promedio (int conjCalif[] )
{
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.


import javax.swing.*;
public class formejor {
public static void main(String[] args) {
//Lee el nombre de un estudiante y sus notas y calcula el
promedio obtenido
int filas,i;
String efilas,nombrealumno;
float sumnotas=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(float nota:notas)
sumnotas+=nota;
JOptionPane.showMessageDialog(null,"El alumno
"+nombrealumno+" obtuvo de promedio"+(sumnotas/filas));
}//fin de main
}//fin de clase

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

CICLO I/2011

UNIVERSIDAD TECNOLOGICA

Programacin III

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 palabras Eggy-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

CICLO I/2011

Vous aimerez peut-être aussi