Vous êtes sur la page 1sur 19

Manual de

Actividades 05

Autor: Ral Oramas Bustillos


Curso: PJ100 Curso Programador Java
Versin: 1.0.0
Fecha: 2011

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 05

Autor

Ral Oramas Bustillos

Email

r_oramas@hotmail.com

Versin

1.0.0

Fecha

2011

Tabla de contenidos
Instrucciones de control: parte 2............................................................................................................................. 4
Repeticin controlada por contador................................................................................................................... 5
Instruccin de repeticin for............................................................................................................................... 5
Aplicacin: sumar los enteros pares del 2 al 20................................................................................................. 6
Aplicacin: clculo del inters compuesto......................................................................................................... 6
Instruccin de repeticin do...while.................................................................................................................... 7
Instruccin de seleccin mltiple switch............................................................................................................ 8
Instrucciones break y continue........................................................................................................................ 12
Operadores lgicos.......................................................................................................................................... 14
Instrucciones de control anidadas................................................................................................................... 15

Instrucciones de control: parte 2


Contenido:
Repeticin controlada por contador........................................................................................................................ 5
Instruccin de repeticin for.................................................................................................................................... 5
Aplicacin: sumar los enteros pares del 2 al 20...................................................................................................... 6
Aplicacin: clculo del inters compuesto.............................................................................................................. 6
Instruccin de repeticin do...while......................................................................................................................... 7
Instruccin de seleccin mltiple switch................................................................................................................. 8
Instrucciones break y continue............................................................................................................................. 12
Operadores lgicos............................................................................................................................................... 14
Instrucciones de control anidadas........................................................................................................................ 15

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

Repeticin controlada por contador


El programa utiliza un ciclo para mostrar los nmeros del 1 al 10.

ContadorWhile.java
//Repeticin controlada con contador.
public class ContadorWhile
{
public static void main( String[] args )
{
int contador = 1;
//declara e inicializa la variable de control

while( contador <= 10 ) //condicin de continuacin de ciclo


{
System.out.printf( "%d ", contador );
++contador; //incrementa la variable de control en 1
}
//fin de while
}
//fin del mtodo main
//fin de la clase ContadorWhile

Otra versin del programa. El cdigo es ms conciso pero es recomendable mantener nuestros cdigos lo ms
simple que se pueda.

ContadorWhile.java
//Repeticin controlada con contador.
public class ContadorWhile
{
public static void main( String[] args )
{
int contador = 0;
//declara e inicializa la variable de control

while( ++contador <= 10 ) //condicin de continuacin de ciclo


System.out.printf( "%d ", contador );
}
//fin del mtodo main
//fin de la clase ContadorWhile

Instruccin de repeticin for


El programa utiliza un ciclo para mostrar los nmeros del 1 al 10 utilizando la instruccin for.

ContadorFor.java
//Repeticin controlada con contador.
public class ContadorFor
{

ProfesorJava 2011

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

public static void main( String[] args )


{
//el encabezado de la instruccin for incluye la iniacializacin
//la condicin de continuacin del ciclo y el incremento
for( int contador = 1; contador <= 10; contador++ )
System.out.printf( "%d ", contador );
}
//fin del mtodo main
//fin de la clase ContadorFor

Aplicacin: sumar los enteros pares del 2 al 20


La aplicacin utiliza una instruccin for para sumar los enteros pares del 2 al 20 y guarda el resultado en una
variable int llamada total.

Suma.java
//Sumar enteros con la instruccin for
public class Suma
{
public static void main( String[] args )
{
int total = 0; //inicializa el total
//total de los enteros del 2 al 20
for( int numero = 2; numero <= 20; numero += 2 )
total += numero;

//muestra los resultados


System.out.printf( "La suma es %d\n ", total );
}
//fin del mtodo main
//fin de la clase Suma

Aplicacin: clculo del inters compuesto


La siguiente aplicacin utiliza una instruccin for para calcular el inters compuesto.

Interes.java
//Calculo del inters compuesto con for.
public class Interes
{
public static void main( String[] args )
{
double monto;
//Monto depositado al final de cada ao
double principal = 1000.0;
//monto inicial antes de los
intereses
double tasa = 0.05; //tasa de inters

ProfesorJava 2011

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

//muestra los encabezados


System.out.printf( "%s%20s\n", "Ao", "Monto en deposito" );
//calcula el monto en deposito para cada uno de diez aos
for( int ao = 1; ao <= 10; ao++ )
{
//calcula el nuevo monto para el ao especificado
monto = principal * Math.pow( 1.0 + tasa, ao );

//muestra el ao y el monto
System.out.printf( "%4d%,20.2f\n", ao, monto );
}
//fin de for
}
//fin de main
//fin de la clase Interes

En el ejemplo utilizamos el mtodo static de la clase Math para realizar el clculo del inters compuesto.

Instruccin de repeticin do...while


El programa utiliza un ciclo para mostrar los nmeros del 1 al 10 utilizando la instruccin do...while.

PruebaDoWhile.java
//La instruccin de repeticin do...while.
public class PruebaDoWhile
{
public static void main( String[] args )
{
int contador = 1; //inicializa contador
do
{

System.out.printf( "%d ", contador );


++contador;
} while( contador <= 10 );
}
//fin del mtodo main
//fin de la clase PruebaDoWhile

El siguiente programa continua su ejecucin hasta que se obtiene de manera aleatoria un tres.

EncuentraUnTres.java
//Ilustra el uso de la estructura do...while.
public class EncuentraUnTres
{
public static void main( String[] args ) {
int numero;

ProfesorJava 2011

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

do
{
numero = ( int )( Math.random() * 20 ) + 1;
System.out.println( numero );
}
while( numero != 3 );

System.out.println(
"El programa ha terminado, he encontrado un 3." );
} //fin del mtodo main
//fin de la clase EncuentraUnTres

Instruccin de seleccin mltiple switch


El programa ilustra la sintaxis bsica para la instruccin switch.

SwitchDemo.java
//Programa que ilustra el uso de la estructura switch
public class SwitchDemo
{
public static void main(String[] args) {
int mes = 8;

switch (mes) {
case 1: System.out.println( "Enero" );break;
case 2: System.out.println( "Febrero" );break;
case 3: System.out.println( "Marzo" );break;
case 4: System.out.println( "Abril" );break;
case 5: System.out.println( "Mayo" );break;
case 6: System.out.println( "Junio" );break;
case 7: System.out.println( "Julio" );break;
case 8: System.out.println( "Agosto" );break;
case 9: System.out.println( "Septiembre" );break;
case 10: System.out.println( "Octubre" );break;
case 11: System.out.println( "Noviembre" );break;
case 12: System.out.println( "Diciembre" );break;
default: System.out.println( "Mes invlido." );break;
}
}
//fin del mtodo main
//fin de la clase SwitchDemo

La clase LibroCalificaciones calcula el promedio de un conjunto de calificaciones nmericas introducidas por el


usuario y utiliza una instruccin switch para determinar si cada calificacin es el equivalente A, B, C, D o F.

LibroCalificaciones.java
//La clase LibroCalificaciones usa la instruccin switch para contar
//las calificaciones A, B, C, D y F

ProfesorJava 2011

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

import java.util.Scanner;
//el programa utiliza la clase Scanner
public class LibroCalificaciones
{
private String nombreDelCurso; //nombre del curso
private int total; //suma de las calificaciones
private int contadorCalif; //nmero de calificaciones introducidas
private int aCuenta;
//cuenta de calificaciones A
private int bCuenta;
//cuenta de calificaciones B
private int cCuenta;
//cuenta de calificaciones C
private int dCuenta;
//cuenta de calificaciones D
private int fCuenta;
//cuenta de calificaciones F
//el constructor inicializa a nombreDelCurso
//las variables de tipo int se inicializan en 0 de manera
//predeterminada
public LibroCalificaciones( String nombre )
{
nombreDelCurso = nombre;
//inicializa el nombre del curso
}
//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 getNombreDelCurso()
{
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
//introduce un nmero arbitrario de calificaciones del usuario
public void introducirCalif()
{
Scanner entrada = new Scanner( System.in );
int calificacion;

//calificacin introducida por el usuario

System.out.printf( "%s\n%s\n
%s\n
%s\n",
"Escriba las calificaciones enteras en el rango de 0 a 100.",

ProfesorJava 2011

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

"Escriba el indicador de fin de archivo para terminar la


entrada:",
"En Unix/Linux/Mac OS X escriba <ctrl> d y despus oprima
Intro",
"En Windows escriba <ctrl> z y despues oprima Intro" );
//itera hasta que el usuario introduza el indicador de
//fin de archivo
while( entrada.hasNext() )
{
calificacion = entrada.nextInt();
//lee calificacin
total += calificacion; //suma calificacin a total
++contadorCalif;
//incrementa el nmero de calificaciones

//llamada al mtodo para incrementar el contador apropiado


incrementarContadorCalifLetra( calificacion );
}
//fin while
//fin del mtodo introducirCalif

//suma 1 al contador apropiado para la calificacin especificada


public void incrementarContadorCalifLetra( int calificacion )
{
//determinar cual calificacin se introdujo
switch( calificacion / 10 )
{
case 9: //calificacion est entre 90
case 10:
//y 100
++aCuenta; //incrementa aCuenta
break; //necesaria para salir del switch
case 8: //calificacion est entre 80 y 89
++bCuenta; //incrementa bCuenta
break; //sale del switch
case 7: //calificacion est entre 70 y 79
++cCuenta; //incrementa cCuenta
break; //sale del switch
case 6: //calificacion est entre 60 y 69
++dCuenta; //incrementa dCuenta
break; //sale del switch
default:
//calificacin es menor que 60
++fCuenta; //incrementa fCuenta
break; //opcional; de todas formas sale del switch
}
//fin del switch
}
//fin del mtodo incrementarContadorCalifLetra
public void mostrarReporteCalif()
{
System.out.println( "\nReporte de calificaciones:" );
//si el usuario introdujo por lo menos una calificacin...
if( contadorCalif != 0 )
{

ProfesorJava 2011

10

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

//calcula el promedio de todas las calificaciones introducidas


double promedio = ( double ) total / contadorCalif;
//imprime resumen de resultados
System.out.printf(
"El total de las %d calificaciones introducidas por es %d\n",
contadorCalif, total );

System.out.printf( "El promedio de la clase es %.2f\n",


promedio );
System.out.printf( "%s\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n",
"Nmero de estudiantes que recibieron cada calificacin:",
"A: ", aCuenta, //muestra el nmero de calificaciones A
"B: ", bCuenta, //muestra el nmero de calificaciones B
"C: ", cCuenta, //muestra el nmero de calificaciones C
"D: ", dCuenta, //muestra el nmero de calificaciones D
"F: ", fCuenta //muestra el nmero de calificaciones F
);
}
//fin del if
else
//no se introdujeron calificaciones,
//por lo que se imprime el mensaje apropiado
System.out.println( "No se introdujeron calificaciones" );
}
//fin del mtodo mostrarReporteCalif
//fin de la clase LibroCalificaciones

La clase PruebaLibroCalificaciones crea un objeto LibroCalificaciones e invoca a sus mtodos.

PruebaLibroCalificaciones.java
//Crea un objeto LibroCalificaciones e invoca su mtodo
//obtenerPromedioClase
public class PruebaLibroCalificaciones
{
public static void main( String[] args )
{
//Crea objeto miLibroCalificaciones de la clase
//LibroCalificaciones y
//pasa el nombre del curso al constructor
LibroCalificaciones miLibroCalificaciones =
new LibroCalificaciones(
"PJ100 Curso Programador Java");

//muestra mensaje de bienvenida


miLibroCalificaciones.mostrarMensaje();
//lee calificaciones del usuario
miLibroCalificaciones.introducirCalif();
//muestra el reporte basado en las calificaciones
miLibroCalificaciones.mostrarReporteCalif();
}
//fin del mtodo main
//fin de la clase PruebaLibroCalificaciones

ProfesorJava 2011

11

PJ100, Manual de actividades 05 Instrucciones de control: parte 2


El siguiente ejemplo ilustra el uso del switch para determinar los das de un determinado mes.

DiaMes.java
//Determina los das que tiene un determinado mes del ao
public class DiaMes
{
public static void main( String[] args ) {
int mes = 5;

switch( mes ) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(
break;
case 2:
System.out.println(
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(
break;
default:
System.out.println(
break;
}
} //fin del mtodo main
//fin de la clase DiaMes

"Hay 31 das en el mes" );


"Hay 28 das en el mes" );

"Hay 30 das en el mes" );


"Mes invlido" );

Instrucciones break y continue


El programa demuestra el uso de una instruccin break para salir de un ciclo for.

PruebaBreak.java
//La instruccin break para salir de una instruccin for.
public class PruebaBreak
{
public static void main( String[] args )
{
int cuenta; //la variable de control tambin se usa

ProfesorJava 2011

12

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

13

//cuando termina el ciclo


for( cuenta = 1; cuenta <= 10; cuenta++ )
{
if( cuenta == 5 ) //si cuenta es 5,
break; //termina el ciclo

//itera 10 veces

System.out.printf( "%d ", cuenta );


}
//fin de for
System.out.printf( "\nSalio del ciclo en cuenta = %d\n", cuenta );
}
//fin del mtodo main
//fin de la clase PruebaBreak

El programa utiliza la instruccin continue para terminar una iteracin de una instruccin for.

PruebaContinue.java
//Instruccin continue para terminar una iteracin de una instruccin for.
public class PruebaContinue
{
public static void main( String[] args )
{
for( int cuenta = 1; cuenta <= 10; cuenta++ )
//itera 10 veces
{
if( cuenta == 5 ) //si cuenta es 5,
continue; //omite el resto del cdigo en el ciclo

System.out.printf( "%d ", cuenta );


}
//fin de for
System.out.println( "\nSe uso continue para omitir imprimir 5" );
}
//fin del mtodo main
//fin de la clase PruebaContinue

El programa cuenta los nmeros que no son mltiplos de nueve del 1 al 50 para ello utiliza un ciclo for y
continue.

Multiplos.java
//Ejemplo de la instruccin continue.
public class Multiplos
{
public static void main( String[] args )
{
int mult9 = 0;
for( int i = 1; i <= 50; i++ )
{
if( ( i % 9 ) != 0 )
//si el residuo no es 0
{
//entonces no es un mltiplo
continue;

ProfesorJava 2011

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

14

}
//fin instruccin if
mult9 = mult9 + 1;
}
//fin instruccin for
System.out.printf( "%d multiplos 9", mult9 );
}
//fin del mtodo main
//fin de la clase Multiplos

Operadores lgicos
El programa demuestra el uso de los operadores lgicos y lgicos booleanos; para ello se produce su tabla de
verdad.

OperadoresLogicos.java
//Los operadores lgicos
public class OperadoresLogicos
{
public static void main( String[] args )
{
//crea tabla de verdad para el operador && (AND condicional)
System.out.printf( "%s\n%s: %b\n%s: %b\n%s: %b\n%s: %b\n\n",
"AND condicional (&&)", "false && false", ( false && false),
"false && true", ( false && true ),
"true && false", ( true && false ),
"true && true", ( true && true) );
//crea tabla de verdad para el operador || (OR condicional)
System.out.printf( "%s\n%s: %b\n%s: %b\n%s: %b\n%s: %b\n\n",
"OR condicional (||)", "false || false", ( false || false),
"false || true", ( false || true ),
"true || false", ( true || false ),
"true || true", ( true || true) );
//crea tabla de verdad para el operador & (AND lgico booleano)
System.out.printf( "%s\n%s: %b\n%s: %b\n%s: %b\n%s: %b\n\n",
"AND lgico booleano (&)", "false & false", ( false & false),
"false & true", ( false & true ),
"true & false", ( true & false ),
"true & true", ( true & true) );
//crea tabla de verdad para el operador | (OR lgico booleano)
System.out.printf( "%s\n%s: %b\n%s: %b\n%s: %b\n%s: %b\n\n",
"OR lgico booleano (|)", "false | false", ( false | false),
"false | true", ( false | true ),
"true | false", ( true | false ),
"true | true", ( true | true) );
//crea tabla de verdad para el operador ^
//(OR exclusivo lgico booleano)

ProfesorJava 2011

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

System.out.printf( "%s\n%s: %b\n%s: %b\n%s: %b\n%s: %b\n\n",


"OR exclusivo lgico booleano (^)",
"false ^ false", ( false ^ false),
"false ^ true", ( false ^ true ),
"true ^ false", ( true ^ false ),
"true ^ true", ( true ^ true) );

//crea tabla de verdad para el operador ! (negacin lgica)


System.out.printf( "%s\n%s: %b\n%s: %b\n",
"NOT lgico booleano (!)", "!false",(!false),
"!true",(!true));
}
//fin del mtodo main
//fin de la clase OperadoresLogicos

Instrucciones de control anidadas


El siguiente ejemplo ilustra como utilizar las instrucciones while anidadas.

WhileAnidado.java
//Ejemplo de while anidados
public class WhileAnidado
{
public static void main( String[] args )
{
int alto = 3;
int ancho = 10;
int columna = 0;
int renglon = 0;
while( renglon < alto )
{
columna = 0;
while( columna < ancho )
{
System.out.print( "x" );
columna++;
}
System.out.println();
renglon++;
}

}
}
//fin del mtodo main
//fin de la clase WhileAnidado

El siguiente ejemplo ilustra como utilizar las instrucciones for anidadas.

ProfesorJava 2011

15

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

ForAnidado.java
//Programa que ilustra el uso de for anidado
import java.util.Scanner;
//el programa usa la clase Scanner
public class ForAnidado
{
public static void main( String[] args )
{
//crea el objeto Scanner para obtener la entrada del teclado
Scanner entrada = new Scanner( System.in );
System.out.println( "Programa que dibuja un rectngulo." );
System.out.println( "Escribe la base:? " ); //indicador
int base = entrada.nextInt();
//lee el nmero del usuario
System.out.println( "Escribe la altura:? " ); //indicador
int altura = entrada.nextInt();
//lee el nmero del usuario

for( int renglon = 0; renglon < altura; renglon++ )


{
for( int columna = 0; columna < base; columna++ )
{
System.out.print( 'x' );
}
//fin del ciclo for
System.out.println();
}
//fin del ciclo for
}
//fin del mtodo main
//fin de la clase ForAnidado

El siguiente ejemplo ilustra como utilizar las instrucciones do...while anidadas.

DoWhileAnidado.java
//Programa que ilustra el uso de do...while anidado
import java.util.Scanner;
//el programa usa la clase Scanner
public class DoWhileAnidado
{
public static void main( String[] args )
{
//crea el objeto Scanner para obtener la entrada del teclado
Scanner entrada = new Scanner( System.in );
System.out.println( "Programa que dibuja un rectngulo." );
System.out.println( "Escriba la base: " ); //indicador
int base = entrada.nextInt();
//lee el nmero del usuario
System.out.println( "Escriba la altura: " ); //indicador
int altura = entrada.nextInt();
//lee el nmero del usuario
int columna = 0;
int renglon = 0;
do

ProfesorJava 2011

16

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

{
columna = 0;
do
{
System.out.print( 'x' );
columna++;
}
while ( columna < base );
System.out.println();
renglon++;

}
while ( renglon < altura );
}
//fin del mtodo main
//fin de la clase DoWhileAnidado

Tablas de multiplicar, versin 1.0


El siguiente ejemplo es la primera versin de un programa que imprime la tabla de multiplicar de un nmero
ledo desde el teclado.

TablaMultiplicar.java
//Imprime la tabla de multiplicar de un nmero n
public class TablaMultiplicar
{
public void imprimirTabla( int n )
{
System.out.printf( "Tabla del %d\n.", n );
for( int i = 1; i <= 10; i++ )
System.out.printf( "%d * %d = %d\n", n, i, ( n * i ) );
}
//fin del mtodo imprimirTabla
}
//fin de la clase TablaMultiplicar
La clase PruebaTablaMultiplicar.java usa a la clase TablaMultiplicar.java

TablaMultiplicar.java
//Prueba a la clase TablaMultiplicar.java
import java.util.Scanner;
public class PruebaTablaMultiplicar
{
public static void main( String[] args )
{
Scanner entrada = new Scanner( System.in );
System.out.print(
"Dame el nmero de la tabla de multiplicar:? " );

ProfesorJava 2011

17

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

int numero = entrada.nextInt();


TablaMultiplicar tabla = new TablaMultiplicar();

tabla.imprimirTabla( numero );
}
//fin del mtodo main
//fin de la clase PruebaTablaMultiplicar

Tablas de multiplicar, versin 1.1


El siguiente ejemplo es la versin 1.1 de un programa que imprime la tabla de multiplicar de un nmero ledo
desde el teclado.

TablaMultiplicar.java
//Imprime tablas de multiplicar
public class TablaMultiplicar
{
public void imprimirTabla( int n )
{
System.out.printf( "Tabla del %d\n\n", n );
for( int i = 1; i <= 10; i++ )
System.out.printf( "%d * %d = %d\n", n, i, ( n * i ) );
}
//fin del mtodo imprimirTabla
public void imprimirTablas()
{
System.out.println( "Tablas del 1 al 10." );

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


{
imprimirTabla( i );
System.out.println();
}
//fin for
}
//fin del mtodo imprimirTablas
//fin de la clase TablaMultiplicar

La clase PruebaTablaMultiplicar.java usa a la clase TablaMultiplicar.java

TablaMultiplicar.java
//Prueba a la clase TablaMultiplicar.java
public class PruebaTablaMultiplicar
{
public static void main( String[] args )
{
TablaMultiplicar tabla = new TablaMultiplicar();
tabla.imprimirTablas();

ProfesorJava 2011

18

PJ100, Manual de actividades 05 Instrucciones de control: parte 2

}
//fin del mtodo main
//fin de la clase PruebaTablaMultiplicar

ProfesorJava 2011

19

Vous aimerez peut-être aussi