Please enable / Bitte aktiviere JavaScript!
Veuillez activer / Por favor activa el Javascript![ ? ]
Este foro usa cookies
Este foro usa cookies para almacenar tu sesión de inicio si estás registrado, y de tu última visita si no lo estás. Las Cookies son un pequeños documento de texto almacenado en tu PC; las cookies de este foro sólo pueden ser usadas en el mismo y no suponen ninguna amenaza para tu seguridad. Estas Cookies también anotan los hilos que has leído y cuándo lo has hecho. Por favor, confirma si aceptas o declinas el uso de estas cookies.

Una cookie será almacenada en tu navegador a pesar de tu decisión para prevenir que este mensaje te vuelva a aparecer. Podrás cambiar la configuración de las cookies en cualquier momento siguiendo el enlace de la parte inferior.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Práctica 3
#4
Dejo también el código del profesor que comprueba las funciones para ver si devuelven el resultado correcto.
Código PHP:
package p3;

import utilidades.Constantes;

public class 
Test3 {

    
/*
     * ******************************************************************************************************************
     * ******************************************************************************************************************
     *           TEST PROBLEMA 1
     * ******************************************************************************************************************
     * ******************************************************************************************************************
     */
    
public static int testP01 (){
        
        
int nota 10;
        
boolean concordancia true;
        
boolean convergencia true;
        
        
double delta 0.00001;    

        
        
float [] piLeibniz = {4.0f2.6666665f3.4666665f2.895238f3.3396823f2.9760460f};
        
float [] piLeibniz2 = {3.1416059f3.1415973f3.141597f3.1415968f3.1415968f};
        
int   [] its           100000   1000000 10000000 100000000 200000000};
        
        
System.out.println("-------------------------------------------------------------------------------------------");
        
System.out.println("PROBLEMA 1:CalcularPiLeibniz, Math.PI = " Math.PI);
        
System.out.println();
    
        try{
            
System.out.print("COMPROBACIÓN DE ARGUMENTOS (2 ptos): ");
            
System.out.print("Iteraciones < 0 --> return -1?: ");
            if (
Calculos.piLeibniz(-1) != -1){
                
System.out.println("No se comprueba. Resta 2 de 10");
                
nota -= 2;
            }
            else{
                
System.out.println("Ok");
            }
            
System.out.println();

            
System.out.println("PRUEBA CONCORDANCIA EXPRESIÓN PROGRAMADA CON FÓRMULA DE LEIBNIZ (4 puntos): ");
            
float deltas [] = new float[piLeibniz.length];
            for (
int i 0piLeibniz.lengthi++){
                
deltas[i] = Calculos.piLeibniz(i) - piLeibniz[i];
                
System.out.print("Its: " " \t\t[calculado, previsto] = [" Calculos.piLeibniz(i) + ", " piLeibniz[i] + "], dif = " deltas[i]);
                if (
Math.abs(deltas[i]) > delta) {
                    
System.out.println(" Error. ");
                    
concordancia false;
                }
                else{
                    
System.out.println(" OK. ");
                }
            } 
            for (
int i 0piLeibniz2.lengthi++){
                
deltas[i] = Calculos.piLeibniz(its[i]) - piLeibniz2[i];
                
System.out.print("Its: " its[i] + (its[i] <= 10?"\t":"") + " \t[calculado, previsto] = [" Calculos.piLeibniz(its[i]) + ", " piLeibniz2[i] + "], dif = " deltas[i]);
                if (
Math.abs(deltas[i]) > delta) {
                    
System.out.println(" Error");
                    
concordancia false;
                }
                else{
                    
System.out.println(" OK. ");
                }
            }             
            
System.out.println();
            if (!
concordancia){
                
System.out.println("No hay concordancia entre resultados y expresión de pi. Resta 4 de 10");
                
nota -= 4;
            }
            else{
                
System.out.println("Ok");
            }

            
System.out.println();
            
System.out.print("CONVERGENCIA EXPRESIÓN PROGRAMADA (4 puntos): ");
            for (
int i 0deltas.length 1i++){
                if (
Math.abs(deltas[i]) > Math.abs(deltas[i+1])) {
                    
System.out.println(" No convergencia de resultados entre " " e " + (i+1) + "iteraciones");
                    
convergencia false;
                }
            } 
            if (!
convergencia){
                
System.out.println("No hay convergencia a pi en la expresión programada. Resta 4 de 10");
                
nota -= 4;
            }    
            else{
                
System.out.println("Ok");
            }
        }
        catch(
Exception e){
            
System.out.println("Se produce error en tiempo de ejecución: ");
            
e.printStackTrace();
            
System.out.println();
            
System.out.println("Si hay errores en tiempo de ejecución que produzcan que el programa aborte\n" +
                     
          "la calificación devuelta es CERO: Corrijalos y repita el test. ");
     
       nota 0;
        }

        
nota nota 0?nota:0;
        
System.out.println();
        
System.out.println("Nota estimada sobre 10: " nota);

        return 
nota;
    }
    
    
    
    
/*
     * ******************************************************************************************************************
     * ******************************************************************************************************************
     *           TEST PROBLEMA 2
     * ******************************************************************************************************************
     * ******************************************************************************************************************
     */
    
public static int testP02 (){
        
int nota 10;
        
long [] factoriales  {112 624120720};
        
boolean concordancia true;
        
        
System.out.println("-------------------------------------------------------------------------------------------");
        
System.out.println("PROBLEMA 2: factorial.");
        
System.out.println();
    
        try{
            
System.out.print("COMPROBACIÓN DE ARGUMENTOS (2 ptos): ");
            
System.out.print("argumento <= 0 --> return 1?: ");
            if (
Calculos.factorial(-1) != Constantes.ErrorRangoArgumento){
                
System.out.println("No se comprueba. Resta 2 de 10");
                
nota -= 2;
            }
            else{
                
System.out.println("Ok");
            }
            
System.out.println();

            
System.out.println("COMPROBACIÓN DE RESULTADOS (8 ptos): ");
            
System.out.println("factorial de 0..10");
            for (
int i 0factoriales.lengthi++){
                
System.out.println("Factorial: " "[calculado, previsto] = [" Calculos.factorial(i) + ", " factoriales[i] + "]");
                if (
Calculos.factorial(i) != factoriales[i]) {
                    
System.out.println(" No concordancia de resultados en " i);
                    
concordancia false;
                }
            } 
            if (!
concordancia){
                
nota -= 8;
            }
            else{
                
System.out.println();
                
System.out.println("Ok");
            }
            
System.out.println();
            
            
System.out.print("COMPROBACIÓN DE DESBORDAMIENTO en n = 21 (2 ptos): ");
            if (
Calculos.factorial(21) != Constantes.ErrorDesbordamiento){
                
System.out.println("No se comprueba desbordamiento (f(21) = " Calculos.factorial(21 ". Resta 2 de 10");
                
nota -= 2;
            }
            else{
                
System.out.println("Ok");
            }
        }
        catch(
Exception e){
            
System.out.println("Se produce error en tiempo de ejecución: " e.getMessage());
            
e.printStackTrace();
            
System.out.println();
            
System.out.println("Si hay errores en tiempo de ejecución que produzcan que el programa aborte\n" +
                     
          "la calificación devuelta es CERO: Corrijalos y repita el test. ");
     
       nota 0;
        }

        
nota nota 0?nota:0;
        
System.out.println();
        
System.out.println("Nota estimada sobre 10: " nota);
    
        return 
nota;
    }
    
    
    
/*
     * ******************************************************************************************************************
     * ******************************************************************************************************************
     *           TEST PROBLEMA 3
     * ******************************************************************************************************************
     * ******************************************************************************************************************
     */    
    
public static int testP03 (){
        
int nota 10;
        
        
long [] potencias21  = {1 24 8}; 
        
long [] potencias22  = {1, -24, -8}; 
        
        
boolean concordancia true;
        
        
System.out.println("-------------------------------------------------------------------------------------------");
        
System.out.println("PROBLEMA 3: potencia entera");
        
System.out.println();
    
        try{
            
System.out.print("COMPROBACIÓN DE ARGUMENTOS (2 ptos): ");    
            
System.out.print("exponente < 0 --> return -1?: ");
            if (
Calculos.potenciaEntera(2, -1) != -1){
                
System.out.println("No se comprueba. Resta 2 de 10");
                
nota -= 2;
            }
            else{
                
System.out.println("Ok");
            }
            
System.out.println();
            
            
System.out.println("COMPROBACIÓN DE RESULTADOS (8 ptos): ");
            for (
int i 0potencias21.lengthi++){
                
System.out.println("Potencia: " " de 2  [calculado, previsto] = [" Calculos.potenciaEntera(2i) + ", " potencias21[i] + "]");
                if (
Calculos.potenciaEntera(2i) != potencias21[i]) {
                    
System.out.println(" No concordancia de resultados en " i);
                    
concordancia false;
                }
            } 
            for (
int i 0potencias21.lengthi++){
                
System.out.println("Potencia: " " de -2 [calculado, previsto] = [" Calculos.potenciaEntera(-2i) + ", " potencias22[i] + "]");
                if (
Calculos.potenciaEntera(-2i) != potencias22[i]) {
                    
System.out.println(" No concordancia de resultados en " i);
                    
concordancia false;
                }
            }             
            
            if (!
concordancia){
                
nota -= 8;
            }
            else{
                
System.out.println();
                
System.out.println("Ok");
            }
            
System.out.println();
            
            
System.out.print("COMPROBACIÓN DE DESBORDAMIENTO en base = 2, exp = 63 (2 ptos): ");
            if (
Calculos.potenciaEntera(263) != Constantes.ErrorDesbordamiento){
                
System.out.println("No se comprueba desbordamiento (f(2, 63) = " Calculos.potenciaEntera(263 ". Resta 2 de 10");
                
nota -= 2;
            }
            else{
                
System.out.println("Ok");
            }
            
        }
        catch(
Exception e){
            
System.out.println("Se produce error en tiempo de ejecución: " e.getMessage());
            
e.printStackTrace();
            
System.out.println();
            
System.out.println("Si hay errores en tiempo de ejecución que produzcan que el programa aborte\n" +
                     
          "la calificación devuelta es CERO: Corrijalos y repita el test. ");
     
       nota 0;
        }

        
nota nota 0?nota:0;
        
System.out.println();
        
System.out.println("Nota estimada sobre 10: " nota);        
        
        return 
nota;
    }        
    
    
    
/*
     * ******************************************************************************************************************
     * ******************************************************************************************************************
     *           TEST PROBLEMA 4
     * ******************************************************************************************************************
     * ******************************************************************************************************************
     */
    
public static int testP04 (){
        
int nota 10;
        
boolean concordancia true;
        
boolean convergencia true;
        
double delta 0.00001;    

        
        
float [] piEuler   {2.0f2.6666667f2.9333334f3.047619f3.0984128f3.1215007f3.1321568f3.1371295f3.1394696f3.1405780f};
        
        
System.out.println("-------------------------------------------------------------------------------------------");
        
System.out.println("PROBLEMA 4: calcularPiEuler(int iteraciones), Math.PI = " Math.PI);
        
System.out.println();
    
        try{
            
System.out.print("COMPROBACIÓN DE ARGUMENTOS (2 ptos): ");
            
System.out.print("Iteraciones < 0 --> return -1?: ");
            if (
Calculos.piEuler(-1) != -1){
                
System.out.println("No se comprueba. Resta 2 de 10");
                
nota -= 2;
            }
            else{
                
System.out.println("Ok");
            }
            
System.out.println();
            
System.out.println("PRUEBA CONCORDANCIA EXPRESIÓN PROGRAMADA CON FÓRMULA DE EULER (4 puntos): ");
            
float deltas [] = new float[piEuler.length];
            for (
int i 0piEuler.lengthi++){
                
deltas[i] = Calculos.piEuler(i) - piEuler[i];
                
System.out.println("Its: " " \t[calculado, previsto] = [" Calculos.piEuler(i) + ", " piEuler[i] + "], dif = " deltas[i]);
                if (
Math.abs(deltas[i]) > delta) {
                    
System.out.println(" No concordancia de resultados en " " iteraciones");
                    
concordancia false;
                }
            }         
            if (!
concordancia){
                
System.out.println();
                
System.out.println("No hay concordancia entre resultados y expresión de pi. Resta 2 de 10");
                
nota -= 4;
            }
            else{
                
System.out.println();
                
System.out.println("Ok");
                
System.out.println();
            }
            
System.out.print("PRUEBA DESBORDAMIENTO EXPRESIÓN FÓRMULA DE EULER (2 puntos): ");
            if (
Calculos.piEuler(9) != Calculos.piEuler(10)){
                
System.out.println("No se comprueba desbordamiento. calcularPiEuler(11) = " Calculos.piEuler(11));
                
nota -= 2;
            }
            else{
                
System.out.println("Ok");
                
System.out.println();
            }
            
            
System.out.print("CONVERGENCIA EXPRESIÓN PROGRAMADA (4 puntos): ");
            for (
int i 0piEuler.length 1i++){
                if (
Math.abs(deltas[i]) > Math.abs(deltas[i+1])) {
                    
System.out.println(" No convergencia de resultados entre " " e " + (i+1) + "iteraciones");
                    
convergencia false;
                }
            } 
            if (!
convergencia){
                
System.out.println("No hay convergencia a pi en la expresión programada. Resta 4 de 10");
                
nota -= 4;
            }    
            else{
                
System.out.println("Ok");
            }
        }
        catch(
Exception e){
            
System.out.println("Se produce error en tiempo de ejecución: " e.getMessage());
            
e.printStackTrace();
            
System.out.println();
            
System.out.println("Si hay errores en tiempo de ejecución que produzcan que el programa aborte\n" +
            
"la calificación devuelta es CERO: Corrijalos y repita el test. ");
            
nota 0;
        }

        
nota nota 0?nota:0;
        
System.out.println();
        
System.out.println("Nota estimada sobre 10: " nota);
        return 
nota;        

    }
    
    

"Que yo sepa, el español medio no es más honrado que los políticos que lo gobiernan" Cool
Responder


Mensajes en este tema
Práctica 3 - por alfonso - 03-12-2015, 19:06
RE: Práctica 3 - por alfonso - 03-12-2015, 19:08
RE: Práctica 3 - por alfonso - 03-12-2015, 19:09
RE: Práctica 3 - por alfonso - 03-12-2015, 19:09

Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)