Documente Academic
Documente Profesional
Documente Cultură
Actividades 07
Descargo de responsabilidad
La informacin contenida en este documento se encuentra bajo una licencia Creative Commons Atribucin-No
Comercial 3.0 Unported. Este documento contiene las actividades de apoyo para el curso PJ100 Curso
Programador Java.
Titulo
Manual de actividades 07
Autor
r_oramas@hotmail.com
Versin
1.0.0
Fecha
2011
Tabla de contenidos
Arreglos.................................................................................................................................................................. 4
Como crear e inicializar un arreglo.................................................................................................................... 5
Uso de un inicializador de arreglo...................................................................................................................... 5
Clculo de los valores a guardar en un arreglo................................................................................................. 6
Suma de los elementos de un arreglo............................................................................................................... 6
Uso de grficos de barra para mostrar los datos de un arreglo en forma grfica..............................................7
Uso de los elementos de un arreglo como contadores......................................................................................7
Uso de arreglos para analizar los resultados de una encuesta.........................................................................8
Instruccin for mejorada.................................................................................................................................... 9
Paso de arreglos a los mtodos........................................................................................................................ 9
La clase LibroCalificaciones que usa un arreglo para almacenar las calificaciones........................................10
Arreglos bidimensionales: cmo mostrar los valores de los elementos...........................................................14
La clase LibroCalificaciones que usa un arreglo bidimensional.......................................................................15
Lista de argumentos de longitud variable........................................................................................................ 16
Uso de argumentos de lnea de comandos..................................................................................................... 17
Arreglos
Contenido:
Como crear e inicializar un arreglo......................................................................................................................... 5
Uso de un inicializador de arreglo........................................................................................................................... 5
Clculo de los valores a guardar en un arreglo...................................................................................................... 6
Suma de los elementos de un arreglo.................................................................................................................... 6
Uso de grficos de barra para mostrar los datos de un arreglo en forma grfica...................................................7
Uso de los elementos de un arreglo como contadores........................................................................................... 7
Uso de arreglos para analizar los resultados de una encuesta..............................................................................8
Instruccin for mejorada......................................................................................................................................... 9
Paso de arreglos a los mtodos............................................................................................................................. 9
La clase LibroCalificaciones que usa un arreglo para almacenar las calificaciones.............................................10
Arreglos bidimensionales: cmo mostrar los valores de los elementos................................................................14
La clase LibroCalificaciones que usa un arreglo bidimensional............................................................................15
Lista de argumentos de longitud variable............................................................................................................. 16
Uso de argumentos de lnea de comandos.......................................................................................................... 17
ListaEstudiantes.java
//ListaEstudiantes en su versin 1.0
public class ListaEstudiantes
{
public static void main( String[] args )
{
//mantiene una lista de 3 estudiantes
String estudiante1 = "Estudiante PHP";
String estudiante2 = "Estudiante C#";
String estudiante3 = "Estudiante VB";
ListaEstudiantes.java
//ListaEstudiantes en su versin 1.1
public class ListaEstudiantes
{
public static void main( String[] args )
{
//1. Declara un arreglo
String[] lista;
//2. Lo crea
lista = new String[3];
//3. Lo inicializa
lista[0] = "Estudiante PHP";
lista[1] = "Estudiante C#";
lista[2] = "Estudiante VB";
//imprime la lista de 3 estudiantes
System.out.println( lista[0] );
System.out.println( lista[1] );
System.out.println( lista[2] );
ProfesorJava 2011
}
//fin del mtodo main
//fin de la clase ListaEstudiantes
ListaEstudiantes.java
//ListaEstudiantes en su versin 1.2
public class ListaEstudiantes
{
public static void main( String[] args )
{
//1. Declara un arreglo
String[] lista;
//2. Lo crea
lista = new String[3];
//3. Lo inicializa
lista[0] = "Estudiante PHP";
lista[1] = "Estudiante C#";
lista[2] = "Estudiante VB";
InicArreglo01.java
//Creacin de un arreglo
public class InicArreglo01
{
public static void main( String[] args )
{
int arreglo[]; //declara un arreglo de enteros
arreglo = new int[ 10 ];
//crea el espacio para el arreglo
//encabezados de columnas
System.out.printf( "%s%8s\n", "ndice", "Valor" );
//imprime el valor de cada elemento del arreglo
for( int contador = 0; contador < arreglo.length; contador++ )
ProfesorJava 2011
System.out.printf( "%5d%8d\n",
contador, arreglo[ contador ] );
}
//fin de main
//fin de la clase InicArreglo01
InicArreglo02.java
//Inicializacin de los elementos de un arreglo con un inicializador
//de arreglo.
public class InicArreglo02
{
public static void main( String[] args )
{
//la lista inicializadora especifica el valor para cada elemento
int arreglo[] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 };
//encabezados de columnas
System.out.printf( "%s%8s\n", "ndice", "Valor" );
ListaEstudiantes.java
//ListaEstudiantes en su versin 1.3
public class ListaEstudiantes
{
public static void main( String[] args )
{
//La lista inicializadora especifica el valor para cada elemento
String[] lista = { "Estudiante PHP", "Estudiante C#",
"Estudiante VB" };
ProfesorJava 2011
InicArreglo03.java
//Clculo de los valores a colocar en los elementos de un arreglo.
public class InicArreglo03
{
public static void main( String[] args )
{
final int LONGITUD_ARREGLO = 10;
//declara la constante
int arreglo[] = new int[LONGITUD_ARREGLO]; //crea el objeto
//calcula el valor para cada elemento del arreglo
for( int contador = 0; contador < arreglo.length; contador++ )
arreglo[contador] = 2 + 2 * contador;
//encabezados de columnas
System.out.printf( "%s%8s\n", "ndice", "Valor" );
SumaArreglo.java
//Clculo de la suma de los elementos de un arreglo.
public class SumaArreglo
{
public static void main( String[] args )
{
int arreglo[] = { 87, 68, 94, 100, 83, 78, 85, 91, 76, 87 };
int total = 0;
//suma el valor de cada elemento al total
for( int contador = 0; contador < arreglo.length; contador++ )
total += arreglo[contador];
ProfesorJava 2011
System.out.printf(
"Total de los elementos del arreglo: %d\n",
total );
}
//fin de main
//fin de la clase SumaArreglo
GraficosBarras.java
//Programa para imprimir grficos de barras.
public class GraficoBarras
{
public static void main( String[] args )
{
int arreglo[] = { 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1 };
System.out.println( "Distribucin de las calificaciones:" );
//para cada elemento del arreglo, imprime una barra del grfico
for( int contador = 0; contador < arreglo.length; contador++ )
{
//imprime etiqueta de la barra
//( "00-99: ", ..., "90-99:", "100:" )
if( contador == 10 )
System.out.printf( "%5d: ", 100 );
else
System.out.printf( "%02d-%02d: ",
contador * 10, contador * 10 + 9 );
//imprime la barra de asteriscos
for( int estrellas = 0; estrellas < arreglo[ contador ];
estrellas++ )
System.out.print( "*" );
System.out.println();
//inicia una nueva linea de salida
}
//fin de for externo
}
//fin de main
//fin de la clase GraficoBarras
ProfesorJava 2011
TirarDado.java
//Tira un dado de seis lados 6000 veces.
import java.util.Random;
public class TirarDado
{
public static void main( String[] args )
{
//generador de nmeros aleatorios
Random numerosAleatorios = new Random();
//arreglo de contadores de frecuencia
int frecuencia[] = new int[ 7 ];
//tira el dado 6000 veces; usa el valor del dado
//como ndice de frecuencia
for( int tiro = 1; tiro <= 6000; tiro++ )
++frecuencia[ 1 + numerosAleatorios.nextInt( 6 ) ];
System.out.printf( "%s%10s\n", "Cara", "Frecuencia" );
EncuestaEstudiantes.java
//Programa de anlisis de una encuesta.
public class EncuestaEstudiantes
{
public static void main( String[] args )
{
//arreglo de respuestas a una encuesta
int respuestas[] = { 1, 2, 6, 4, 8, 5, 9, 7, 8, 10, 1, 6, 3, 8, 6,
10, 3, 8, 2, 7, 6, 5, 7, 6, 8, 6, 7, 5, 6, 6, 5, 6, 7, 5, 6,
4, 8, 6, 8, 10 };
//arreglo de contadores de frecuencia
int frecuencia[] = new int[11];
//para cada respuesta, selecciona el elemento de respuestas
//y usa ese valor como ndice de frecuencia para determinar
//el elemento a incrementar
for( int respuesta = 0; respuesta < respuestas.length;
respuesta++ )
++frecuencia[ respuestas[respuesta] ];
ProfesorJava 2011
10
PruebaForMejorado.java
//Uso de la instruccin for mejorada para sumar el total
//de enteros en un arreglo.
public class PruebaForMejorado
{
public static void main( String[] args )
{
int arreglo[] = { 87, 68, 94, 100, 83, 78, 85, 91, 76, 87 };
int total = 0;
//suma el valor de cada elemento al total
for( int numero : arreglo )
total+= numero;
System.out.printf(
"Total de elementos del arreglo: %d\n", total );
}
//fin de main
//fin de la clase PruebaForMejorado
PasoArreglo.java
//Paso de arreglos y elementos individuales de un arreglo a los mtodos.
public class PasoArreglo
{
//main crea el arreglo y llama a modificarArreglo y modificarElemento
public static void main( String[] args )
{
int arreglo[] = { 1, 2, 3, 4, 5 };
ProfesorJava 2011
11
System.out.println(
"Efectos de pasar una referencia a un arreglo completo:\n" +
"Los valores del arreglo original son:" );
//imprime los elementos originales del arreglo
for( int valor : arreglo )
System.out.printf( "
%d", valor );
modificarArreglo( arreglo );
//pasa la referencia al arreglo
System.out.println(
"\n\nLos valores del arreglo modificado son:" );
//imprime los elementos modificados del arreglo
for( int valor : arreglo )
System.out.printf( "
%d", valor );
System.out.printf(
"\n\nEfectos de pasar el valor de un elemento del arreglo;\n" +
"arreglo[3] antes de modificarElemento: %d\n", arreglo[ 3 ] );
ProfesorJava 2011
12
LibroCalificaciones.java
//Libro de calificaciones que utiliza un arreglo para almacenar
//las calificaciones de una prueba
public class LibroCalificaciones
{
private String nombreDelCurso; //nombre del curso que
//representa este LibroCalificaciones
private int calificaciones[];
//arreglo de calificaciones
//de estudiantes
//El constructor de dos argumentos inicializa nombreDelCurso
//y el arreglo calificaciones
public LibroCalificaciones( String nombre, int arregloCalif[] )
{
nombreDelCurso = nombre;
//inicializa el nombre del curso
calificaciones = arregloCalif; //almacena las calificaciones
}
//fin del constructor
//mtodo para establecer el nombre del curso
public void setNombreDelCurso( String nombre )
{
nombreDelCurso = nombre;
//almacena el nombre del curso
}
//fin del mtodo establecerNombreDelCurso
//mtodo para obtener el nombre del curso
public String obtenerNombreDelCurso()
{
return nombreDelCurso;
//almacena el nombre del curso
}
//fin del mtodo obtenerNombreDelCurso
//muestra un mensaje de bienvenida al usuario de LibroCalificaciones
public void mostrarMensaje()
{
//esta instruccin llama a obtenerNombreDelCurso para obtener el
//nombre del curso que representa este LibroCalificaciones
System.out.printf(
"Bienvenido al Libro de Calificaciones para\n%s!\n" ,
getNombreDelCurso() );
}
//fin del mtodo mostrarMensaje
//realiza varias operaciones sobre los datos
public void procesarCalificaciones()
{
//imprime el arreglo de calificaciones
imprimirCalificaciones();
//llama al mtodo obtenerPromedio para calcular
//la calificacin promedio
System.out.printf( "\nEl promedio de la clase es %.2f\n",
obtenerPromedio() );
ProfesorJava 2011
13
return califBaja;
//devuelve la calificacin ms baja
//fin del metodo obtenerMinima
return califAlta;
//devuelve la calificacin ms alta
//fin del metodo obtenerMinima
ProfesorJava 2011
14
System.out.println();
}
//fin de for externo
//fin del mtodo imprimirGraficoBarras
ProfesorJava 2011
15
estudiante++ )
System.out.printf( "Estudiante %2d: %3d\n",
estudiante + 1, calificaciones[estudiante] );
}
//fin del mtodo imprimirCalificaciones
//fin de la clase LibroCalificaciones
PruebaLibroCalificaciones.java
//Crea objeto LibroCalificaciones, usando un arreglo de calificaciones.
public class PruebaLibroCalificaciones
{
//el mtodo main comienza la ejecucin del programa
public static void main( String[] args )
{
//arreglo unidimensional de calificaciones de estudiantes
int arregloCalif[] = { 87, 68, 94, 100, 83, 78, 85, 91, 76, 87 };
LibroCalificaciones miLibroCalificaciones =
new LibroCalificaciones(
"PJ100 Curso Programador Java", arregloCalif );
miLibroCalificaciones.mostrarMensaje();
miLibroCalificaciones.procesarCalificaciones();
}
//fin de main
//fin de la clase PruebaLibroCalificaciones
InicArreglo04.java
//Inicializacin de arreglos bidimensionales.
public class InicArreglo04
{
//crea e imprime arreglos bidimensionales
public static void main( String[] args )
{
int arreglo1[][] = { { 1, 2, 3 }, { 4, 5, 6 } };
int arreglo2[][] = { { 1, 2 }, { 3 }, { 4, 5, 6 } };
System.out.println( "Los valores en arreglo1 por fila son" );
imprimirArreglo( arreglo1 );
//muestra arreglo1 por filas
ProfesorJava 2011
16
System.out.println();
//inicia nueva lnea de salida
}
//fin de for externo
}
//fin del mtodo imprimirArreglo
//fin de la clase InicArreglo04
InicArreglo04.java
//Inicializacin de arreglos bidimensionales.
public class InicArreglo04
{
//crea e imprime arreglos bidimensionales
public static void main( String[] args )
{
int arreglo1[][] = { { 1, 2, 3 }, { 4, 5, 6 } };
int arreglo2[][] = { { 1, 2 }, { 3 }, { 4, 5, 6 } };
System.out.println( "Los valores en arreglo1 por fila son" );
imprimirArreglo( arreglo1 );
//muestra arreglo1 por filas
ProfesorJava 2011
17
18
System.out.println();
//inicia nueva lnea de salida
}
//fin de for externo
}
//fin del mtodo imprimirArreglo
//fin de la clase InicArreglo04
PruebaVarargs.java
//Uso de listas de argumentos de longitud variable.
public class PruebaVarargs
{
//calcula el promedio
public static double promedio( double...numeros )
{
double total = 0.0; //inicializa el total
//calcula el total usando la instruccin for mejorada
for( double d : numeros )
total += d;
}
public static
{
double d1
double d2
double d3
double d4
10.0;
20.0;
30.0;
40.0;
System.out.printf(
"d1 = %.1f\nd2 = %.1f\nd3 = %.1f\nd4 = %.1f\n",
d1, d2, d3, d4 );
System.out.printf( "El promedio de d1 y d2 es %.1f\n",
promedio( d1, d2 ) );
ProfesorJava 2011
es %.1f\n",
InicArreglo05.java
//Uso de los argumentos de lnea de comandos para inicializar un arreglo
public class InicArreglo05
{
public static void main( String[] args )
{
//comprueba el nmero de argumentos de lnea de comandos
if( args.length != 3 )
System.out.println(
"Error: vuelva a escribir el comando completo, incluyendo\n" +
"el tamao del arreglo, el valor inicial y el incremento." );
else
{
//obtiene el tamao del arreglo del primer argumento
//de lnea de comandos
int longitudArreglo = Integer.parseInt( args[0] );
int arreglo[] = new int[longitudArreglo];
//crea el arreglo
//obtiene el valor inicial y el incremento de
//los argumentos de lnea de comandos
int valorInicial = Integer.parseInt( args[1] );
int incremento = Integer.parseInt( args[2] );
//calcula el valor para cada elemento del arreglo
for( int contador = 0; contador < arreglo.length; contador++ )
arreglo[contador] = valorInicial + incremento * contador;
System.out.printf( "%s%8s\n", "ndice", "Valor" );
ProfesorJava 2011
19