Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCIÓN
java.lang.Object
java.lang.Math
Ejemplo:
Math.pow (a, b) ;
1
Clase Final: No puede ser una superclase.
Una clase final o declarada como final es una clase que no puede ser una superclase. Es decir, las clases
finales no pueden heredarse. Todos los métodos de una clase final son implícitamente finales.
Pag. 763
MÉTODOS
Atributos de clase:
1. E.
2. PI.
Métodos de clase:
1. abs( ).
2. acos( ).
3. asin( ).
4. atan( ).
5. ceil( ).
6. cos( ).
7. exp( ).
8. floor( ).
9. log( ).
10. max( ).
11. min( ).
12. pow( ).
13. random( ).
14. round( ).
15. sin( ).
16. sqrt( ).
17. tan( ).
18. toDegrees( ).
19. toRadians( ).
Para trabajar con los métodos de clase, de la clase Math, no será necesario
crear previamente un objeto de dicha clase (esto se cumple para todas las
clases que implementen métodos de clase).
A continuación se presenta una breve descripción del uso de cada uno de los
métodos de la clase Math:
CLASE Math
ATRIBUTOS DE
DESCRIPCIÓN USO
CLASE
double e = Math.E ;
Almacena el valor de E. Es decir, nos
System.out.print( e) ;
proporciona la base de un logaritmo
E
natural. El valor es equivalente a
Resultado:
2.718281828459045.
e = 2.718281828459045.
double pi = Math.PI ;
Almacena el valor de PI. Es decir, System.out.print( pi) ;
PI almacena el valor equivalente a
3.141592653589793. Resultado:
pi = 3.141592653589793.
MÉTODOS DE
DESCRIPCIÓN USO
CLASE
abs (float)
int x = -5 ;
abs (double)
Retorna el valor absoluto de un System.out.print( Math.abs( x)) ;
número (que puede ser float, double,
int, long) dado como parámetro. Resultado:
abs (int) x = 5.
abs (long)
Pag. 765
MÉTODOS DE
DESCRIPCIÓN USO
CLASE
enviado al método como parámetro.
Resultado :
result = 0.6657737500283538
result = 1.0
double x = 2 , y = 4 , result ;
Retorna un valor double con la result = Math.pow( x , y ) ;
potencia de un número (dado como System.out.print ( result ) ;
primer parámetro) elevado a otro
pow (double, double)
número (dado como segundo Resultado:
parámetro). Los dos parámetros
dados deben ser double. result = 16.
round (float)
Pag. 767
MÉTODOS DE
DESCRIPCIÓN USO
CLASE
Resultado:
result = 0.6018150231520483
double x = 16 , result ;
result = Math.sqrt( x ) ;
Retorna un valor double con la raiz
cuadrada del parámetro dado. El System.out.print ( result ) ;
sqrt (double)
parámetro dado debe ser un valor
Resultado:
double.
result = 4.
Clase PrgNumeroMayor
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgNumeroMayor {
Parámetros.
Operador punto.
Nombre de la Clase.
Pag. 769
El método max ( ) nos permite determinar el número mayor entre dos números (en nuestro caso el
número mayor entre num2 y num3).
Observe que en esta solución se emplea una estrategia mas simple para determinar el número mayor
entre tres números. El método max ( ) de la clase Math, retorna el valor del número mayor (puede ser
un número float, double, int o long) de dos números dados como parámetros. En nuestro ejemplo
determinamos el mayor de los dos últimos números ingresados y en la misma línea de código
evaluamos el mayor de estos dos números con el primer número ingresado, tal y como se muestra a
continuación:
Es importante tener presente que el método max ( ) es un método que solo podemos utilizar con la
clase Math y su función es determinar el número mayor entre dos números dados como parámetros.
Problema 168
Clase PrgNumeroMenor
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgNumeroMenor {
Observe el uso del método min ( ) de la clase Math: En la codificación de esta solución se emplea una
nueva estrategia para hallar el menor de tres números ingresados por teclado (anteriormente se
utilizaban sentencias if anidadas).
Observe que Math.min ( ) retorna el valor del número menor (que puede ser float, double, int, long) de
dos números dados como parámetros. En nuestro ejemplo hallamos el menor de los dos últimos
números ingresados, y en la misma línea evaluamos el menor de estos dos números con el primer
número ingresado, tal y como se muestra a continuación:
Pag. 771
Problema 169
Clase PrgNumerosAleatorios
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgNumerosAleatorios {
En la codificación de esta solución se utiliza una sentencia for con la finalidad de generar la cantidad
de números aleatorios (al azar) que el usuario desee. Cada vez que se ejecuta la sentencia for, se
genera y muestra un número aleatorio (un número entre 1 y 6), el cual es acumulado en la variable
suma. Finalizada la ejecución de la sentencia for se muestra el contenido de dicha variable (es decir,
se muestra la suma de los números aleatorios generados).
Recuerde que para generar números aleatorios entre dos números (entre un intervalo o rango),
utilizando el método random ( ) de la clase Math, se emplea la siguiente fórmula:
1 + (int) ( Math.random( ) * ( 6 – 1 + 1 ) ) ;
1 + (int) ( Math.random( ) * ( 6 ) ) ;
Pag. 773
Problema 170
Clase PrgNumAleatoriosPares
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgNumAleatoriosPares {
do {
num = 1 + (int) ( Math.random( ) * 10 ) ;
if (num % 2 == 0) {
cont++;
System.out.print ( num + “ \t ” ) ;
}
En la codificación de esta solución se utiliza una sentencia do con la finalidad de generar números
aleatorios. Si el número generado es par se le aumenta uno a la variable cont (que esta trabajando
como contador de números pares generados al azar) y se muestra el número generado.
Problema 171
Clase PrgNumAleatoriosImpares
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgNumAleatoriosImpares {
do {
num = 1 + (int) ( Math.random( ) * 10 ) ;
if ( num % 2 == 1 ) {
cont ++;
System.out.print ( num + “ \t ” ) ;
}
En la codificación de esta solución se utiliza una sentencia do con la finalidad de generar números
aleatorios. Si el número generado es impar se le aumenta uno a la variable cont (que esta trabajando
como contador de números impares generados al azar) y se muestra el número generado.
Pag. 775
Problema 172
Desarrollar un programa en Java que permita ingresar por teclado el radio de una
esfera. Calcular y mostrar el volumen de dicha esfera.
Clase PrgRadioEsfera
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgRadioEsfera {
El método pow ( ) retorna un valor double con la potencia de un número (dado como primer parámetro)
elevado a otro número (dado como segundo parámetro). En nuestro caso el método pow ( ) eleva a la
potencia 3 el radio del círculo.
Para hallar el volumen de la esfera se tendrá que utilizar la fórmula v=4/3*PI*R 3. La clase Math define
un atributo (constante) muy útil, que contiene en valor del número PI (Math.PI).
Problema 173
Clase PrgNumRedondeado
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgNumRedondeado {
resultado = Math.round(num) ;
}
}
resultado = Math.round(num) ;
En esta solución se ingresa un número y se almacena en la variable num. Luego, dicho número es
redondeado utilizando el método round ( ) y se almacena en la variable resultado.
Pag. 777
Problema 174
Clase PrgNumPotencia
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgNumPotencia {
Recuerde y siempre tenga presente que el método pow ( ) de la clase Math, retorna un valor double,
por lo que dicho valor deberá ser almacenado en una variable del mismo tipo o deberá mostrarse por
la pantalla.
Problema 175
Clase PrgNumRaiz
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgNumRaiz {
int cant ;
double rpta ;
rpta = Math.sqrt ( x ) ;
En la presente solución se utiliza una sentencia for con la finalidad de obtener la raíz cuadrada de
todos los números menores que la variable cant y mostrarlos por pantalla. La variable cant se ingresa
por el teclado.
Recuerde y siempre tenga presente que el método sqrt ( ) de la clase Math, retorno un valor double,
por lo que dicho valor deberá ser almacenado en una variable del mismo tipo o deberá mostrarse por
la pantalla.
Pag. 779
Problema 176
Clase PrgNumAleatorioCuad
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgNumAleatorioCuad {
En la presente solución se utiliza una sentencia for con la finalidad de obtener números aleatorios,
elevarlos al cuadrado y mostrarlos por pantalla. La variable cant se ingresa por el teclado.
Problema 177
Clase PrgTriangulo
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgTriangulo {
p = (a + b + c) / 2 ;
tmp = ( p * (Math.abs(p - a)) * (Math.abs(p - c)) * (Math.abs(p - b) ) ) ;
area = Math.sqrt ( tmp ) ;
Pag. 781
¿Que hay de nuevo en la codificación?
En esta solución se ingresan los valores de los tres lados de un triángulo y se obtiene el valor del
semiperímetro del triángulo.
Primero, se hace uso del método abs ( ) de la clase Math para calcular el valor absoluto de la
diferencia entre el semiperímetro y cada uno de los lados del triángulo. Luego, se multiplican los
valores resultantes con el valor del semiperímetro del triángulo y finalmente, se obtiene la raíz
cuadrada del valor resultante utilizando el método sqrt ( ) de la clase Math.
Problema 178
perimetro = 2 * PI * radio.
area = PI * radio * radio.
Clase PrgCirculo
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgCirculo {
Pag. 783
Problema 179
Clase PrgConversionAngulo
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgConversionAngulo {
public static void main ( String arg [ ] ) {
double anguloGrados, anguloRadianes ;
String tipoAngulo = “” ;
Para el desarrollo de esta solución se hace uso de sentencias if múltiples con la finalidad de
determinar el tipo de ángulo ingresado por teclado. El tipo de ángulo es almacenado en una variable
String (tipoAngulo) y mostrado por pantalla.
Para realizar la conversión del ángulo ingresado en el sistema sexagesimal al sistema radial se utiliza
el método toRadians ( ) de la clase Math.
Pag. 785
Problema 180
x = ( - B + - ( ( B ** 2 – 4 * A * C ) RAIZ ( 2 ) ) ) / 2 * A.
Clase PrgEcuacion2Grado
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgEcuacion2Grado {
public static void main ( String arg [ ] ) {
int a, b, c ;
double tmp, x, x1, x2 ;
System.out.println ( “ Ingrese el coeficiente A: ” ) ;
a = Lectura.leerInt( ) ;
System.out.println ( “ Ingrese el coeficiente B: ” ) ;
b = Lectura.leerInt( ) ;
System.out.println ( “ Ingrese el coeficiente C: ” ) ;
c = Lectura.leerInt( ) ;
if (a == 0 && b == 0) {
System.out.println ( “ La ecuación no tiene solución ” ) ;
} else {
tmp = Math.pow (b, 2) - (4 * a * c) ;
if (tmp < 0) {
System.out.println ( “ La ecuación tiene raices imaginarias ” ) ;
} else {
if (a == 0) {
x = c / b * (-1) ;
System.out.println ( “ El valor para x es: ” + x ) ;
} else {
x1 = ( - b + Math.sqrt (tmp)) / (2 * a) ;
x2 = ( - b - Math.sqrt (tmp)) / (2 * a) ;
System.out.println ( “ El primer valor para x es: ” + x1 ) ;
System.out.println ( “ El segundo valor para x es: ” + x2 ) ;
}
}
}
}
}
¿Que hay de nuevo en la codificación?
En esta solución se ingresan los coeficientes de una ecuación de segundo grado (a, b y c). Si los
coeficientes a y b son iguales a cero, se muestra un mensaje por la pantalla; “La ecuación no tiene
solución”. Caso contrario, se determina el valor de la discriminante, el cual se almacena en la variable
tmp utilizando la siguiente formula:
En caso que el valor de tmp sea igual a cero, se muestra el siguiente mensaje por pantalla; “La
ecuación tiene raices imaginarias”. Caso contrario, si el coeficiente a es igual a cero la ecuación
tendría una sola solución, la cual se calcularía utilizando:
x = c / b * (-1) ;
Si el coeficiente a es diferente de cero la ecuación tendría dos soluciones, las cuales se calcularían
utilizando:
x1 = ( - b + Math.sqrt (tmp)) / (2 * a) ;
x2 = ( - b - Math.sqrt (tmp)) / (2 * a) ;
Pag. 787
Problema 181
Clase PrgJuego
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgJuego {
public static void main ( String arg [ ] ) {
int maximo = 100, num, numAzar, inten = 1 ;
double tmp;
System.out.println ( “ Bienvenido al juego: ¿Que número es? ” ) ;
System.out.println ( “ ----------------------------------------------------” ) ;
System.out.println ( “ - La computadora genera un -” ) ;
System.out.println ( “ - numero aleatorio y ud. tratara -” ) ;
System.out.println ( “ - de adivinar que número es -” ) ;
System.out.println ( “ - Trate de adivinar el número en -” ) ;
System.out.println ( “ - el menor número de intentos -” ) ;
do {
System.out.println ( “ Ingrese un número entre 0..100: ” ) ;
num = Lectura.leerInt( ) ;
} while (num < 0 || num > 100 ) ;
tmp = maximo * Math.random( ) ;
numAzar = (int) Math.round(tmp) ;
while (num != numAzar) {
inten++ ;
if (num < numAzar)
System.out.println ( “ El número buscado es mayor ” ) ;
else
System.out.println ( “ El número buscado es menor ” ) ;
do {
System.out.println ( “ Ingrese otro número entre 0..100: ” ) ;
num = Lectura.leerInt( ) ;
} while (num < 0 || num > 100) ;
}
System.out.println ( “ Ud. encontró el número en: ” + inten + “ intento(s) ” ) ;
}
}
¿Qué hay de nuevo en la codificación?
Utilizando el método random ( ) generamos un número aleatorio (al azar) entre el número 0 y el
número 100, utilizando la siguiente fórmula:
Este número generado al azar, almacenado en la variable numAzar, es comparado con un número
previamente ingresado por teclado y almacenado en la variable num. Si ambos son iguales, se
mostrará un mensaje indicando que el número numAzar fue encontrado. Si no son iguales, se
mostrará un mensaje, indicando si el número buscado es mayor o es menor (en relación al número
ingresado) y se solicitará otro número hasta encontrar el número que se generó en forma aleatoria.
Pag. 789
Problema 182
Clase PrgNumeroMayorMenor
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgNumeroMayorMenor {
public static void main ( String arg [ ] ) {
int n1, n2, n3, n4, n5, n6 ;
double mayor, meno r;
System.out.println ( “ Ingrese el primer número: ” ) ;
n1 = Lectura.leerInt();
System.out.println ( “ Ingrese el segundo número: ” ) ;
n2 = Lectura.leerInt( ) ;
System.out.println ( “ Ingrese el tercer número: ” ) ;
n3 = Lectura.leerInt( ) ;
System.out.println ( “ Ingrese el cuarto número: ” ) ;
n4 = Lectura.leerInt( ) ;
System.out.println ( “ Ingrese el quinto número: ” ) ;
n5 = Lectura.leerInt( ) ;
System.out.println ( “ Ingrese el sexto número: ” ) ;
n6 = Lectura.leerInt( ) ;
mayor = Math.max (n1,n2) ;
mayor = Math.max (mayor,n3) ;
mayor = Math.max (mayor,n4) ;
mayor = Math.max (mayor,n5) ;
mayor = Math.max (mayor,n6) ;
menor = Math.min (n1,n2) ;
menor = Math.min (menor,n3) ;
menor = Math.min (menor,n4) ;
menor = Math.min (menor,n5) ;
menor = Math.min (menor,n6) ;
System.out.println ( “ El mayor número es: " + mayor ) ;
System.out.println ( “ El menor número es: " + menor ) ;
}
}
Modificar la codificación de la solución de tal forma que pueda optimizar el código. Utilice una
sentencia for.
Problema 183
Desarrollar un programa en Java que permita ingresar las notas de todos los
alumnos de un determinado salon de clase. Calcular y mostrar el promedio final de
cada alumno en base a la siguiente fórmula:
pf = ( pp + ep + ( ef * 2 ) ) / 4.
Donde:
pf = Promedio final.
pp = Promedio de prácticas.
Son 4 prácticas de las cuales se elimina la más baja
pp = ( p1 + p2 + p3 + p4 – notaMenor ) / 3
ep = Examen parcial.
ef = Examen final.
Clase PrgPromedioNotas
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgPromedioNotas {
do {
Pag. 791
Continúa… Etapa 04 - Desarrollo de la codificación.
Clase PrgPromedioNotas
pp = ( p1 + p2 + p3 + p4 – notaMenor ) / 3 ;
pf = ( pp + ep + ef ) / 3 ;
pf = Math.round (pf) ;
opc=Lectura.leerChar( ) ;
}
}
Modificar la codificación de la solución de tal forma que se elimine la práctica con la nota más baja y se
duplique la nota de la práctica más alta. Muestre el promedio de las notas redondeado a dos
decimales.
Problema 184
Clase PrgRedondearNumero
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgRedondearNumero {
double numero ;
System.out.println ( “ -----------------------------------” ) ;
System.out.println ( “ La parte entera del número es: ” ) ;
System.out.println ( Math.floor (numero) ) ;
El método floor ( ) retorna un valor double con el valor más grande no mayor que el parámetro dado. El
parámetro dado debe ser double. Nótese que si ingresamos un numero cuya parte decimal es mayor
que 5 sólo retorna la parte entera para tal caso se le agrega 0.5 para que en el segundo cálculo tenga
efecto de redondeo perfecto. Observe como se redondea un número con uno, dos y tres decimales
utilizando el método floor ( ).
Pag. 793
Problema 185
Sugerencia:
Utilice el método random ( ) de la clase Math para
generar el número del boleto ganador.
Clase PrgSorteo
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgSorteo {
double num ;
int boletos, ganador ;
do {
if (boletos > 0) {
do {
} while (ganador == 0) ;
Clase PrgSumaCuadradosCubos
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgSumaCuadradosCubos {
Pag. 795
Problema 187
Clase PrgSenCos
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgSenCos {
do{
}
}
Es importante mencionar que Java trabaja con el sistema radial y para obtener las razones
trigonométricas, seno y coseno, de un ángulo ingresado por teclado hay que convertirlo primero al
sistema radial. Para esto, utilizamos el método toRadians ( ) de la clase Math. Este método retorna un
valor double y permite convertir un ángulo expresado en el sistema sexagesimal (enviado como
parámetro double) en un ángulo expresado en radianes. Una vez convertido el ángulo en radianes
podemos utilizar los métodos sin ( ) y cos ( ) de la clase Math para obtener el seno y el coseno del
ángulo ingresado por teclado.
Pag. 797
Problema 188
Clase PrgTangente
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgTangente {
anguloRadianes = Math.toRadians(anguloGrados) ;
tangente = Math.tan(anguloRadianes) ;
System.out.println ( “ La pendiente de la resta es = ” + tangente ) ;
}
}
El método tan ( ) permite hallar la pendiente de una recta con respecto al eje X. Para ello, utiliza el
ángulo de inclinación de la recta, expresado en el sistema radial, tal y como se muestra:
tangente = Math.tan(anguloRadianes) ;
Problema 189
Clase PrgHipotenusa
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgHipotenusa {
}
}
La fórmula para este caso sería: (hipotenusa)2 = (cateto1)2 + (cateto2)2 . Se ingresan los catetos por el
teclado y son elevados al cuadrado con Math.pow ( ). El resultado obtenido, al elevar al cuadrado cada
uno de los catetos, se suman. Luego se obtiene la raíz cuadrada con Math.sqrt ( ) y finalmente se
muestra el resultado almacenado en la variable hipotenusa. Ejemplo:
Pag. 799
Problema 190
Clase PrgPunto
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgPunto {
}
}
Sabemos que Math.atan ( ) retorna un valor double con el arcotangente de un ángulo expresado en
radianes. Dicho ángulo expresado en radianes debe ser un valor double enviado al método como
parámetro.
Pero en este caso, se ingresan por teclado la ordenada y la abcisa de un punto cualquiera en el
sistema de coordenadas, por lo que el método atan ( ) de la clase Math no nos serviría (este método
necesita el valor de un ángulo expresado en radianes y no los valores de las coordenadas de un
punto).
En este caso, se utiliza el método atan2 ( ) de la clase Math. Este método nos permite obtener el valor
del arcotangente de un par ordenado.
Pag. 801
Problema 191
Clase PrgExpLog
package dominioDeLaAplicacion ;
import biblioteca.Lectura ;
class PrgExpLog {
exponencial = Math.exp(num) ;
logaritmo = Math.log(num) ;
exponencial = Math.exp(num) ;
logaritmo = Math.log(num) ;
En esta solución se hace necesario el uso del método exp ( ) para obtener el número e elevado al
número ingresado por teclado:
enum
También se hace necesario el uso del método log ( ) para obtener el logaritmo natural del número
ingresado en base e:
logenum
Tenga presente que Java sólo resuelve logaritmos en base e y no en base 10.
Pag. 803
Problema 192
Un jugador lanza dos dados, cada uno de los cuales tiene 6 caras, las caras
contienen 1, 2, 3, 4 ,5 y 6 puntos. Una vez que los dados quedan en reposo, se
suman los puntos de las dos caras que quedan hacia arriba. Si la suma es 7 o 11
en el primer lanzamiento, el jugador gana. Si la suma es 2, 3 o 12 en el primer
lanzamiento (resultado que en los casinos reciben el nombre de “craps”), el
jugador pierde (es decir, la casa gana). Si la suma es 4, 5, 6, 8, 9, 10 en el primer
lanzamiento, esto suma se convierte en el punto del jugador. Para ganar, el
jugador debe seguir tirando los dados hasta “lograr su punto”. El jugador perderá
si tira un 7 antes de lograr su punto.
Clase PrgLanzarDados1
package dominioDeLaAplicacion ;
import biblioteca.* ;
class PrgLanzarDados1 {
do {
if ( suma1 == 7 || suma1 == 11 ) {
opc1 = “s” ;
estado = 1 ;
Continúa… Etapa 04 - Desarrollo de la codificación.
Clase PrgLanzarDados1
} else
if ( suma1 == 2 || suma1 == 3 || suma1 == 12 ) {
opc1 = “s” ;
estado = 0 ;
} else {
do {
System.out.println ( “Lanzar dados” ) ;
Lectura.leerString ( ) ;
if ( suma1 == suma2 ) {
estado = 1 ;
opc1 = “s” ;
opc2 = “s” ;
} else
if ( suma2 == 7 ) {
estado = 0 ;
opc1 = “s” ;
opc2 = “s” ;
}
}
}while ( opc1 != “s” ) ;
if ( estado == 1 )
System.out.println ( “El jugador gana” ) ;
else
System.out.println ( “El jugador pierde ” ) ;
}
}
Pag. 805
Problema 193
Clase PrgLanzarDados2
package dominioDeLaAplicacion ;
import biblioteca.* ;
class PrgLanzarDados2 {
do {
opc1 = “ ” ;
opc2 = “ ” ;
do {
if ( suma1 == 7 || suma1 == 11 ) {
opc1 = “s” ;
estado = 1 ;
} else
if (suma1 == 2 || suma1 == 3 || suma1 == 12) {
opc1 = “s” ;
estado = 0 ;
} else {
do {
System.out.println ( “Lanzar dados” ) ;
Lectura.leerString ( ) ;
if ( suma1 == suma2 ) {
estado = 1 ;
opc1 = “s” ;
opc2 = “s” ;
} else
if ( suma2 == 7 ) {
estado = 0 ;
opc1 = “s” ;
opc2 = “s” ;
}
}
} while ( opc1 != “s” ) ;
if ( estado == 1 )
System.out.println ( “ El jugador gana ” ) ;
else
System.out.println ( “ El jugador pierde ” ) ;
opc3 = Lectura.leerChar ( ) ;
}
}
Pag. 807
Problema 194
Clase PrgLanzarMoneda
package dominioDeLaAplicacion ;
import biblioteca.* ;
class PrgLanzarMoneda {
if (moneda == 1)
cont1 ++ ;
else
cont2 ++ ;
Clase PrgTragamoneda1
package dominioDeLaAplicacion ;
import biblioteca.* ;
class PrgTragamoneda1 {
do {
s = (char) valor1 ;
switch (s) {
case 1 :
monto = 100 ;
break ;
case 2 :
monto = 200 ;
break ;
case 3 :
monto = 300 ;
break ;
Pag. 809
Continúa… Etapa 04 - Desarrollo de la codificación.
Clase PrgTragamoneda1
case 4 :
monto = 400 ;
break ;
case 5 :
monto = 500 ;
break ;
case 6 :
monto = 600 ;
break ;
case 7 :
monto = 1000 ;
break ;
}
System.out.println ( “Usted gana : ” + monto + “Soles ” ) ;
} else
System.out.println ( “La casa gana” ) ;
monto = 0 ;
System.out.println ( “Desea volver a jugador [s/n] : ” ) ;
opc1 = Lectura.leerChar ( ) ;
Clase PrgTragamoneda2
package dominioDeLaAplicacion ;
import biblioteca.* ;
class PrgTragamoneda2 {
do {
s= (char) valor1 ;
switch ( s ) {
case 1 :
monto=100 ;
break ;
case 2 :
monto=200 ;
break ;
Pag. 811
Continúa… Etapa 04 - Desarrollo de la codificación.
Clase PrgTragamoneda2
case 3 :
monto=300 ;
break ;
case 4 :
monto=400 ;
break ;
case 5 :
monto=500 ;
break ;
case 6 :
monto=600 ;
break ;
case 7 :
monto=1000 ;
break ;
}
} else
System.out.println ( “La casa gana” ) ;
monto = 0 ;
System.out.println ( “Desea volver a jugador [s/n] : ” ) ;
opc1=Lectura.leerChar ( ) ;
Clase PrgMultiplicacion
package dominioDeLaAplicacion ;
import biblioteca.* ;
class PrgMultiplicacion {
if ( resul1 == resul2 )
System.out.println ( “Respuesta correcta… Muy bien” ) ;
else
System.out.println ( “No es la respuesta correcta… Vuelva a intentarlo” ) ;
Pag. 813
Problema 198
Modificar el programa del problema anterior, de tal forma que se muestre un menú
de opciones donde permita sumar, restar, multiplicar y dividir dos números
generados al azar. Se permitirá al estudiante contestar la misma pregunta una y
otra vez hasta que responda correctamente.
Clase PrgMenuOperaciones1
package dominioDeLaAplicacion ;
import biblioteca.* ;
class PrgMenuOperaciones1 {
do {
case 1 :
resul1 = valor1 + valor2 ;
operacion = “Suma” ;
signo = ‘+’ ;
break ;
Continúa… Etapa 04 - Desarrollo de la codificación.
Clase PrgMenuOperaciones1
case 2 :
resul1 = valor1 - valor2 ;
operacion = “Resta” ;
signo = ‘-’ ;
break ;
case 3 :
resul1 = valor1 * valor2 ;
operacion = “Multiplicación” ;
signo = ‘*’ ;
break ;
case 4 :
resul1 = valor1 / valor2 ;
operacion = “División” ;
signo = ‘/’ ;
break ;
case 5 :
System.exit (0) ;
break ;
}
do {
if ( resul1 != resul2 )
System.out.println ( “No es, por favor trata otra vez” ) ;
} while ( op != 5 ) ;
}
}
Pag. 815
Problema 199
Modificar el programa del problema anterior, de tal forma que se muestre un menú
de opciones donde permita sumar, restar, multiplicar y dividir dos números al azar.
Mostrar la cantidad de preguntas correctas y la cantidad de preguntas incorrectas.
Clase PrgMenuOperaciones2
package dominioDeLaAplicacion ;
import biblioteca.* ;
class PrgMenuOperaciones2 {
do {
case 1 :
resul1 = valor1 + valor2 ;
operacion = “Suma” ;
signo = ‘+’ ;
break ;
Continúa… Etapa 04 - Desarrollo de la codificación.
Clase PrgMenuOperaciones2
case 2 :
resul1 = valor1 - valor2 ;
operacion = “Resta” ;
signo = ‘-’ ;
break ;
case 3 :
resul1 = valor1 * valor2 ;
operacion = “Multiplicación” ;
signo = ‘*’ ;
break ;
case 4 :
resul1 = valor1 / valor2 ;
operacion = “División” ;
signo = ‘/’ ;
break ;
case 5 :
System.exit (0) ;
break ;
}
if ( resul1 != resul2 ) {
System.out.println ( “No es, por favor trata otra vez” ) ;
cont1 ++ ;
} else {
System.out.println ( “Muy bien” ) ;
cont2 ++ ;
}
} while ( op != 5 ) ;
}
}
Pag. 817
Problema 200
Clase PrgAdivinarNumero1
package dominioDeLaAplicacion ;
import biblioteca.* ;
class PrgAdivinarNumero1 {
Modificar el programa del problema anterior, de tal forma que se pueda ingresar la
cantidad de intentos que se tiene para adivinar el número.
Clase PrgAdivinarNumero2
package dominioDeLaAplicacion ;
Import biblioteca.* ;
class PrgAdivinarNumero2 {
do {
System.out.println ( “Ingresar número : ” ) ;
num = Lectura.leerInt ( ) ;
if (cont >= intentos ) {
System.out.println ( “Deberías haberlo hecho mejor” ) ;
valor = num ;
}
else if ( num < valor )
System.out.println ( “El número es demasiado chico. Pruebe otra vez” ) ;
Pag. 819