Solución del capítulo 2 del libro Como programar en Java 10ma edición (deitel) Parte 3
Para resolver los ejercicios solo se uso, lo aprendido en el capítulo dos, así que se omitió el uso de instrucciones de repetición y/o cualquier tema avanzado.
Ejercicio 2.28
// Ejercicio 2.28 // diámetro, circunferencia y área de un círculo usando Math.PI import java.util.Scanner; public class Ejercicio2_28 { public static void main(String[]args) { int a; Scanner entrada = new Scanner(System.in); System.out.print("ingrese el radio de un circulo: "); a = entrada.nextInt(); System.out.println("Diametro " + (2*a)); System.out.printf("%s %f %n", "Circunferencia", (2*Math.PI*a)); System.out.print("Area " + (a*a)); } }
Ejercicio 2.29
// Ejercicio 2.29 // Valor entero de un carácter, convertir un carácter a su valor numérico // En este ejercicio se esta haciendo un "casteo" de carácter a entero public class Ejercicio2_29 { public static void main(String[]args) { System.out.printf("%d, %d, %d%n", ((int)'A'), ((int)'B'), ((int)'C')); System.out.printf("%d, %d, %d%n", ((int)'a'), ((int)'b'), ((int)'c')); System.out.printf("%d, %d, %d%n", ((int)'0'), ((int)'1'), ((int)'2')); System.out.printf("%d, %d, %d, %d, %c%n", ((int)'$'), ((int)'*'), ((int)'+'), ((int)'/'), ((int)' ')); } }
Ejercicio 2.30
// Ejercicio 2.30 // Separación de lo dígito en un entero // ingresar un número de 5 dígitos y separar // sus cifras por tres espacios. import java.util.Scanner; public class Ejercicio2_30 { public static void main(String[]args) { int a,b,c,d; Scanner entrada = new Scanner(System.in); System.out.print("Ingresa un numero de 5 cifras: "); a = entrada.nextInt(); // vamos a condicionar para que el cálculo solo se // realice con números de 5 cifras. if (a>9999) if (a<100000) /* el printf se separó para poder ver mejor el código y saber cómo se calcula cada cifra. Por precedencia los cálculos se realizan de izquierda a derecha para estos operadores, le puse los () solo por apariencia*/ System.out.printf("%d %d %d %d %d", a/10000, (a%10000)/1000, (a%10000%1000)/100, (a%10000%1000%100)/10, (a%10000%1000%100%10)); if (a>99999) System.out.print("Este numero tiene mas de 5 cifra!!!"); if (a<10000) System.out.print("Este numero tiene menos de 5 cifras!!"); } }
Ejercicio 2.31
// Ejercicio 2.31 // "tabla de cuadrado y cubos" programa que muestra // el cuadrado y cubo del 0 al 10. public class Ejercicio2_31 { public static void main(String[]args) { System.out.println("numero\tnumero\tnumero"); //como se trata del 0 y 1 no los multiplique System.out.println("0\t0\t0"); System.out.println("1\t1\t1"); // en lugar de colocar solo los resultados hice // java multiplique los números para sacar los // cuadrados y cubos. System.out.println("2\t" + 2*2 + "\t" + 2*2*2); System.out.println("3\t" + 3*3 + "\t" + 3*3*3); System.out.println("4\t" + 4*4 + "\t" + 4*4*4); System.out.println("5\t" + 5*5 + "\t" + 5*5*5); System.out.println("6\t" + 6*6 + "\t" + 6*6*6); System.out.println("7\t" + 7*7 + "\t" + 7*7*7); System.out.println("8\t" + 8*8 + "\t" + 8*8*8); System.out.println("9\t" + 9*9 + "\t" + 9*9*9); System.out.println("10\t" + 10*10 + "\t" + 10*10*10); } }
Ejercicio 2.32
// Ejercicio 2.32 // valores negativos, positivos y cero // programa que recibe cinco números y te muestra // cuanto de ellos son negativos, positivos y ceros. import java.util.Scanner; public class Ejercicio2_32 { public static void main(String[]args) { int a,b,c,d,e,f,g,h; /*se asigna el valor cero ante de empezar si ningún número cumple con la condiciones este sera el numero que mostrará el contador*/ f=0; g=0; h=0; Scanner entrada = new Scanner(System.in); System.out.println("Ingresa el primer numero: "); a = entrada.nextInt(); System.out.println("Ingresa el segundo numero: "); b = entrada.nextInt(); System.out.println("Ingresa el tercer numero: "); c = entrada.nextInt(); System.out.println("Ingresa el cuarto numero: "); d = entrada.nextInt(); System.out.println("Ingresa el quinto numero: "); e = entrada.nextInt(); if (a>0) f=1; if (b>0) /*la asignación se opera de izquierda a derecha entonces convocamos el valor guardado en f y le sumamos una unidad, y por último lo guardamos en la misma variable, aumentando su valor.*/ f=f+1; if (c>0) f=f+1; if (d>0) f=f+1; if (e>0) f=f+1; if (a<0) g=1; if (b<0) g=g+1; if (c<0) g=g+1; if (d<0) g=g+1; if (e<0) g=g+1; if (a==0) h=1; if (b==0) h=h+1; if (c==0) h=h+1; if (d==0) h=h+1; if (e==0) h=h+1; System.out.printf("%s%d%n","La cantidad de numeros positivos es:", f); System.out.printf("%s%d%n","La cantidad de numeros negativos es:", g); System.out.printf("%s%d","La cantidad de ceros es:", h); } }
Marcando la diferencia
Ejercicio 2.33
// Ejercicio 2.33 // Calculadora del índice de masa corporal (BMI) import java.util.Scanner; public class Ejercicio2_33 { public static void main(String[]args) { //solo se usará datos tipo int (entero) int a,b,c; Scanner entero = new Scanner(System.in); System.out.print("Ingresa tu peso en Kilogramos: "); a = entero.nextInt(); /* cambiaremos los m por cm, por que si ingresamos 1.8 de altura saldra un error, ya que solo se acepta enteros*/ System.out.print("Ingresa tu altura en metros: "); b = entero.nextInt(); /* se usará el printf para mostrar los resultados en decimales gracias al especificador de formato %f. Se multiplica por 10000 al dividendo debido a que se está usando centímetros en el divisor y en la fórmula original se usa metros. Este cambio evita que el usuario ingrese en decigramos en lugar de kilogramos*/ System.out.printf("%s %f %n", "BMI:", (a*10000.0)/(b*b)); /* se una el decimal cero en 10000 para que el especificador %f reconozca la operación con valores decimales*/ System.out.println("VALORES DE BMI"); System.out.println("Bajo peso:\tmenos e 18.5"); System.out.println("Normal:\t\tentre 18.5 y 24.9"); System.out.println("Sobrepeso:\tentre 25 y 29.9"); System.out.println("Obeso:\t\t30 a mas"); } }
Ejercicio 2.34
Formula de crecimiento mundial:
- P=P° (1+i)^t)
Link
Indice de crecimiento mundial:
- 1.1%
Link
Población mundial actual
- 7770940000 personas
Link
// Ejercicio 2.34 // Calculadora el crecimiento de la población mundial import java.util.Scanner; public class Ejercicio2_34 { public static void main(String[]args) { int a; Scanner entrada = new Scanner(System.in); System.out.print("Ingresa la poblacion actual: "); a = entrada.nextInt(); System.out.println("Poblaci\u00f3n estimada:"); System.out.printf("%s %f %n", "a\u00f1o 1 :", a*(1+0.011)); System.out.printf("%s %f %n", "a\u00f1o 2 :", a*1.011*1.011); System.out.printf("%s %f %n", "a\u00f1o 3 :", a*1.011*1.011*1.011); System.out.printf("%s %f %n", "a\u00f1o 4 :", a*1.011*1.011*1.011*1.011); System.out.printf("%s %f", "a\u00f1o 5 :", a*1.011*1.011*1.011*1.011*1.011); } }
Ejercicio 2.25
Se podría sacar una formula simple para hallar el consumo a través de los datos que el ejercicio necesita, pero en este caso no pide que Investiguemos paginas web. asi que encontre esta pagina
Teniendo como fórmula
=(Total de km conducidos por dia / Promedio de km por litro)*costo por litro de gasolina
a esta formula solo le sumamos las cuotas de estacionamiento y peaje por dia, para cumplir con el reto del ejercicio.
Formula final
=((Total de km conducidos por dia / Promedio de km por litro)*costo por litro de gasolina) + cuotas de estacionamiento por dia + peaje por dia.
// Ejercicio 2.35 // Calculadora de ahorro por viaje compartidos de automóvil import java.util.Scanner; public class Ejercicio2_35 { public static void main(String[]args) { int a,b,c,d,e; Scanner entrada = new Scanner(System.in); System.out.println("\"Ingresa solo valores enteros\""); System.out.print("Ingresa el total de kilometros conducidos por dia: "); a = entrada.nextInt(); System.out.print("Ingresa el costo por litros de gasolina: "); b = entrada.nextInt(); System.out.print("Ingresa el promedio de kilometros por litro: "); c = entrada.nextInt(); System.out.print("Ingresa las cuotas de estacionamiento por dia: "); d = entrada.nextInt(); System.out.print("peaje por dia: "); e = entrada.nextInt(); /* como se vio en el ejercicio 2.33 el especificador de factores %f, entregará un error si solo calcula valores enteros por eso multiplico por 1.0 siendo prácticamente 1 y el resultado no se afecta.*/ System.out.printf("%s %f", "El costo diario de conducir su automovil es:", ((a/c)*b*1.0)+d+e); } }
Hola! Qué tal?
ResponderEliminarBasado en el Ej 2.30 que te parece hecho de esta forma?
Sabés si la forma en que vos hiciste el ejercicio tiene algún beneficio con respecto a como yo hice la selección de dígitos de forma mas resumida?
import java.util.Scanner;
public class Ej_2_30 {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.println("Escriba un numero de cinco digitos:");
int num = entrada.nextInt();
if (num > 9999) {
if (num < 100000) {
System.out.printf("%d ", num / 10000);
System.out.printf("%d ", num % 10000 / 1000);
System.out.printf("%d ", num % 1000 / 100);
System.out.printf("%d ", num % 100 / 10);
System.out.printf("%d\n", num % 10);
}
}
if (num > 99999) {
System.out.println("Este numero tiene mas de 5 cifras!!!");
}
if (num < 10000) {
System.out.println("Este numero tiene menos de 5 cifras!!!");
}
}
}
Este comentario ha sido eliminado por el autor.
ResponderEliminar