0 && masa <= 1000 && altura > 0 && altura <= 300 ) { // Convertir la altura de centimetros a metros altura = altura / 100.0; // Calcular el indice de masa corporal double indiceMasaCorporal = masa / (altura * altura); // Imprimir el indice de masa corporal System.out.printf(" %5.2f ", indiceMasaCorporal); // Cacular el estado nutricional: // Si imc es menor que 18.5 entonces if ( indiceMasaCorporal < 18.5 ) { // el estado nutricional es infrapeso System.out.print("underweight"); } // De lo contrario // Si el imc es menor que 25 entonces else if ( indiceMasaCorporal < 25 ) { // el estado nutricional es normal System.out.print("normal"); } // De lo contrario si el imc es menor que 30 entonces else if ( indiceMasaCorporal < 30 ) { // el estado nutricional es sobrepeso System.out.print("overweight"); } // De lo contrario else { // el estado nutricional es obesidad System.out.print("obese"); } // Imprimir el estado nutricional System.out.println(); } // De lo contrario else { // Imprimir datos inválidos System.out.println(" invalid data"); } } // Saber si los datos son validos: // Si masa es positiva y menor o igual a una tonelada y la altura es positiva y menor o igual que 300cm // Los datos son validos // De lo contrario // Los datos no son válidos // Calcular el indice de masa corporal: // Sea altura en metros la altura en centímetros dividido entre 100 // Calcular el indice de masa corporal (imc) con la formula m/h^2 // Cacular el estado nutricional: // Si imc es menor que 18.5 entonces // el estado nutricional es infrapeso // De lo contrario // Si el imc es menor que 25 entonces // el estado nutricional es normal // De lo contrario // Si el imc es menor que 30 entonces // el estado nutricional es sobrepeso // De lo contrario // el estado nutricional es obesidad // Close the standard input this.input.close(); } } ]]>
0 && masa <= 1000 && alturaEnCm > 0 && alturaEnCm <= 300; } // Calcular el estado nutricional: public String calcularEstadoNutricional(double indiceMasaCorporal) { // Si imc es menor que 18.5 entonces if ( indiceMasaCorporal < 18.5 ) { // el estado nutricional es infrapeso return "underweight"; } // De lo contrario si el imc es menor que 25 entonces else if ( indiceMasaCorporal < 25 ) { // el estado nutricional es normal return "normal"; } // De lo contrario si el imc es menor que 30 entonces else if ( indiceMasaCorporal < 30 ) { // el estado nutricional es sobrepeso return "overweight"; } // De lo contrario else { // el estado nutricional es obesidad return "obese"; } } public double f(double x) { return 2.0 * x - 1.0; } public double g(double x) { return x * x - 2; } public void probar() { System.out.println( this.f(3) - f( this.g(-1) + 2 ) ); if ( 0.1 + 0.2 == 0.3 ) System.out.println(" 0.1 + 0.2 == 0.3 "); else System.out.println("Ay mama!"); } } ]]>
0 || medianoche == Math.abs(medianoches) ) { // Separar este bosque del anterior System.out.println(); // Imprimir el bosque imprimirBosque(bosque, medianoche); } } } public char[][] aplicarReglas(char[][] bosqueDiaAnterior) { // Crear un bosque para el dia siguiente char[][] bosqueDiaSiguiente = new char[bosqueDiaAnterior.length][bosqueDiaAnterior[0].length]; // Recorrer todas las celdas del bosque y actualizarlas for ( int fila = 0; fila < bosqueDiaAnterior.length; ++fila ) { for ( int columna = 0; columna < bosqueDiaAnterior[fila].length; ++columna ) { // Actualizar la celda en la nueva matriz aplicando las reglas aplicarReglas( fila, columna, bosqueDiaAnterior, bosqueDiaSiguiente ); } } // Retornar una referencia al nuevo bosque return bosqueDiaSiguiente; } public void aplicarReglas( int fila, int columna, char[][] bosqueDiaAnterior, char[][] bosqueDiaSiguiente ) { // Contar los vecinos de cada tipo int arboles = contarVecinos(fila, columna, bosqueDiaAnterior, 'a'); int lagos = contarVecinos(fila, columna, bosqueDiaAnterior, 'l'); // Aplicar la regla de inundacion if ( bosqueDiaAnterior[fila][columna] == 'a' && lagos >= 4 ) bosqueDiaSiguiente[fila][columna] = 'l'; // Aplicar la regla de sequia else if ( bosqueDiaAnterior[fila][columna] == 'l' && lagos < 3 ) bosqueDiaSiguiente[fila][columna] = '-'; // Aplicar la regla de refosteracion else if ( bosqueDiaAnterior[fila][columna] == '-' && arboles >= 3 ) bosqueDiaSiguiente[fila][columna] = 'a'; // Aplicar la regla de hacinamiento else if ( bosqueDiaAnterior[fila][columna] == 'a' && arboles > 4 ) bosqueDiaSiguiente[fila][columna] = '-'; // Aplicar la regla de estabilidad else bosqueDiaSiguiente[fila][columna] = bosqueDiaAnterior[fila][columna]; } public int contarVecinos(int fila, int columna, char[][] bosque, char tipoVecino) { // Cuenta la cantidad de ocurrencias de tipoVecino int cantidad = 0; // Contar tipoVecino en las 8 celdas alrededor de bosque[fila][columna] if ( valorCelda(fila - 1, columna - 1, bosque) == tipoVecino ) ++cantidad; if ( valorCelda(fila - 1, columna + 0, bosque) == tipoVecino ) ++cantidad; if ( valorCelda(fila - 1, columna + 1, bosque) == tipoVecino ) ++cantidad; if ( valorCelda(fila + 0, columna - 1, bosque) == tipoVecino ) ++cantidad; if ( valorCelda(fila + 0, columna + 1, bosque) == tipoVecino ) ++cantidad; if ( valorCelda(fila + 1, columna - 1, bosque) == tipoVecino ) ++cantidad; if ( valorCelda(fila + 1, columna + 0, bosque) == tipoVecino ) ++cantidad; if ( valorCelda(fila + 1, columna + 1, bosque) == tipoVecino ) ++cantidad; return cantidad; } char valorCelda(int fila, int columna, char[][] bosque) { // Si la celda existe, retornar su valor if ( fila >= 0 && fila < bosque.length && columna >= 0 && columna < bosque[0].length ) return bosque[fila][columna]; // La celda no existe, retornar un valor no valido return '\0'; } } ]]>
El siguiente programa debe invocarse desde la línea de comandos con al menos dos argumentos: el número de simulaciones y archivos de valores separados por comas tabuladores (CSV). Por ejemplo:
# Compilar el codigo fuente, genera Simulacion.class: javac Simulacion.java # Correr Simulacion.class con varios archivos: java Simulacion 2000 Simulacion01.csv Simulacion02.csv
El código se creó utilizando el IDE llamado DrJava. Los comandos anteriores pueden escribirse en la pestaña interacciones.
= 2 ) { long corridas = Long.parseLong( args[0] ); for ( int indice = 1; indice < args.length; ++indice ) simular( corridas, args[indice] ); } else { System.out.println("Uso: java Simulacion CORRIDAS ARCHIVOS"); } } catch ( java.io.FileNotFoundException excepcion ) { System.err.println( excepcion ); } } public void simular(long corridas, String nombreArchivo) throws java.io.FileNotFoundException { // this.input = new Scanner( new File("Simulacion01.csv") ); this.input = new Scanner( new File(nombreArchivo) ); String nombreArchivoSalida = nombreArchivo.replace(".csv", "-" + corridas + ".csv"); this.output = new PrintWriter( new File(nombreArchivoSalida) ); System.out.printf("Simulando %d corridas de %s en %s...%n", corridas, nombreArchivo, nombreArchivoSalida); double[][] matriz = leerMatriz(); imprimirMatriz(matriz); // Close the standard input this.input.close(); this.output.close(); } public double[][] leerMatriz() { //this.input.useDelimiter("[\\t\\n]+"); int filas = this.input.nextInt(); int columnas = this.input.nextInt(); double[][] matriz = new double[filas][columnas]; for ( int fila = 0; fila < matriz.length; ++fila ) { for ( int columna = 0; columna < matriz[fila].length; ++columna ) { matriz[fila][columna] = this.input.nextDouble(); } } return matriz; } public void imprimirMatriz(double[][] matriz) { for ( int fila = 0; fila < matriz.length; ++fila ) { for ( int columna = 0; columna < matriz[fila].length; ++columna ) { this.output.printf("%.2f\t", matriz[fila][columna]); } this.output.println(); } } } ]]>
/** * Run the solution. This method is called from main() */ public void probarMultiplicacion() { // Create object to read data from standard input this.input = new Scanner(System.in); System.out.print("Numero 1: "); BigInteger numero1 = this.input.nextBigInteger(); System.out.print("Numero 2: "); BigInteger numero2 = this.input.nextBigInteger(); BigInteger result = numero1.multiply(numero2); System.out.printf("%d * %d == %d%n", numero1, numero2, result); // Close the standard input this.input.close(); } //
}
]]>
BigInteger
. Obtener código fuente.
/** * Run the solution. This method is called from main() */ public void run() { /* int x = 18, y = -27; long mcd = Fraccion.maximoComunDivisor(x, y); System.out.println(mcd); */ // Create object to read data from standard input this.input = new Scanner(System.in); Fraccion fraccion1 = new Fraccion(); System.out.print("Fraccion 1: "); fraccion1.leer(input); // fraccion1.simplificar(); ERROR: violacion de encapsulacion Fraccion fraccion2 = new Fraccion(); System.out.print("Fraccion 2: "); fraccion2.leer(input); // fraccion1 + fraccion2 Fraccion resultado = fraccion1.sumar(fraccion2); fraccion1.imprimir(); System.out.print(" + "); fraccion2.imprimir(); System.out.print(" = "); resultado.imprimir(); System.out.println(); resultado = fraccion1.restar(fraccion2); fraccion1.imprimir(); System.out.print(" - "); fraccion2.imprimir(); System.out.print(" = "); resultado.imprimir(); System.out.println(); // Close the standard input this.input.close(); } // } ]]>
Enunciado del problema: Examen03 (2017a).
datos1.txt
: caso de prueba de ejemplo. Obtener código fuente.= 8 && mes <= 11 ) ) { // un cierre de caja en temporada baja this.sumaBaja += cierreCaja; ++this.vecesBaja; } else { // un cierre de caja en temporada alta this.sumaAlta += cierreCaja; ++this.vecesAlta; } } public void imprimirEstadisticas() { // Carrillo 20,745.00 0.00 System.out.printf("%-15s %,15.2f %,15.2f%n" , this.ubicacion, this.promedioBaja(), this.promedioAlta()); } public double promedioBaja() { if ( vecesBaja == 0 ) return 0.0; else return this.sumaBaja / this.vecesBaja; } public double promedioAlta() { if ( vecesAlta == 0 ) return 0.0; else return this.sumaAlta / this.vecesAlta; } } ]]>
datos2.csv
: caso de prueba con 4 sucursales (aunque se reportaron 5). Obtener código fuente.= 8 && mes <= 11 ) ) { // un cierre de caja en temporada baja this.sumaBaja += cierreCaja; ++this.vecesBaja; } else { // un cierre de caja en temporada alta this.sumaAlta += cierreCaja; ++this.vecesAlta; } } public void imprimirEstadisticas() { // Carrillo 20,745.00 0.00 if ( this.ubicacion != null ) { System.out.printf("%-15s %,15.2f %,15.2f%n" , this.ubicacion, this.promedioBaja(), this.promedioAlta()); } } public double promedioBaja() { if ( vecesBaja == 0 ) return 0.0; else return this.sumaBaja / this.vecesBaja; } public double promedioAlta() { if ( vecesAlta == 0 ) return 0.0; else return this.sumaAlta / this.vecesAlta; } } ]]>