Foro no oficial de la UPCT
Práctica 3 - Versión para impresión

+- Foro no oficial de la UPCT (https://foroupct.es)
+-- Foro: 1º GIT (https://foroupct.es/Forum-1%C2%BA-GIT)
+--- Foro: Fundamentos de Programación (https://foroupct.es/Forum-Fundamentos-de-Programaci%C3%B3n)
+--- Tema: Práctica 3 (/Thread-Pr%C3%A1ctica-3--237)



Práctica 3 - alfonso - 03-12-2015

Código PHP:
package p3;

import utilidades.Teclado;

public class 
MCD_2 {

    
    public static 
void main(String[] args) {
        
System.out.println("Introduzca un numero entero,m:");
        
int m=Teclado.readInt();
        
System.out.println("Introduzca otro numero entero,n:");
        
int n=Teclado.readInt();
        
        
System.out.print("El maximo comun divisor de "+m+" y "+n+" es: ");
        
System.out.println(mcd(m,n));

    }
    public static 
int mcd(int a,int b){

        while (
a!=b){
            if (
a>b){
                
a=a-b;
            } 
  else{
                
b=b-a;

            }
        }
        return 
a;
    }


Código PHP:
package p3;
import utilidades.Teclado;

public class 
Calculadora {
    public static 
void main (String[]args){
        
int op1,op2,suma,resta,producto,division,modulo,abs,opcion;
        
System.out.println("Introduce Operando1:");
        
op1=Teclado.readInt();
        
System.out.println("Introduce Operando2:");
        
op2=Teclado.readInt();
        
System.out.println("------------------");
        
System.out.println("1. Suma");
        
System.out.println("2. Resta");
        
System.out.println("3. Producto");
        
System.out.println("4. Módulo");
        
System.out.println("5. Valor absoluto");
        
System.out.println("6. División");
        
System.out.println("------------------");
        
opcion=Teclado.readInt();
        if(
opcion<|| opcion >6){
            
System.out.println("Valor introducido incorrecto");
        } else{
            switch(
opcion){
            case 
1:
                
suma=op1+op2;
                if(
suma<op1 && suma<op2){
                    
System.out.println("Desbordamiento");
                }else 
System.out.println("El resultado de la suma es:"+suma);
                break;
            case 
2:
                
resta=op1-op2;
                if(
resta>op1 || resta>op2){
                    
System.out.println("Desbordamiento");
                } else 
System.out.println("El resultado de la resta es:"+resta);
                break;
            case 
3:
                
producto=op1*op2;
                if(
producto/op1!=op2){
                    
System.out.println("Desbordamiento");
                }else 
System.out.println("El restultado del producto es"+producto);
                break;
            case 
4:
                if(
op2==0){
                    
System.out.println("Imposible dividir por 0");
                }else{
                    
modulo=op1%op2;
                    
System.out.println("El resultado del modulo2: "+modulo);
                }
                break;
            case 
5:
                
abs=Math.abs(op1);
                
System.out.println("El valor absoluto del Operando1 es:"+abs);
                break;
            case 
6:
                if(
op2==0){
                    
System.out.println("Imposible dividir por 0");
                }else{
                    
division=op1/op2;
                    
System.out.println("El resultado de la division entera es: "+division);
                }
                break;
            }
        }
        
            
        
    }



Código PHP:
package p3;
import utilidades.Teclado;

public class 
MCD_1 {
    public static 
void main (String[]args){
        
System.out.println("Introduzca un numero entero,m:");
        
int m=Teclado.readInt();
        
System.out.println("Introduzca otro numero entero,n:");
        
int n=Teclado.readInt();
        
        
System.out.print("El maximo comun divisor de "+m+" y "+n+" es: ");
        
System.out.println(mcd(m,n));
    }
        
        public static 
int mcd(int a,int b){
            if(
a%b==0){
                return 
b;
            }
            if(
b%a==0){
                return 
a;
            }
            if(
b==0) {
                return 
a;
            } else return 
mcd(ba%b);
            
            
    }




RE: Práctica 3 - alfonso - 03-12-2015

Esta está sin terminar  Huh
Código PHP:
package p3;

import utilidades.Teclado;

public class 
Calculos {
    
    
// EJERCICIO 7................................................................    
    
public static float piLeibniz(long iters){
        if(
iters<0) return -1;
        
float t=0;
        
int e;
        for(
float n=0;n<=iters;n++){
            
//System.out.println(t);
            //System.out.println((Math.pow(-1, n))/((2*n)+1));
            //e=Teclado.readInt();
            //if( (t-((Math.pow(-1, n))/((2*n)+1))>0)) n= iters-1;
            
t+= (Math.pow(-1n))/((2*n)+1);
            
            
        }
        return 
4*t;
    }
    

    
// EJERCICIO 8................... ............................................
    
public static long factorial(long n){
        if(
n<0) return -1;
        if(
n==|| n==1) return 1;
        
long h=1;
        for(
long t=n;t>1;t--){
            
hh*t;
        }
        return 
h;
        
        
//A rellenar por los alumnos
    
}
    
    
    
// EJERCICIO 9.........................................  ......................
    
public static long potenciaEntera(long baseint exp){
        if(
exp<0) return -1;
        if(
exp==0) return 1;
        
long n=1;
        for (
int h=0;h<exp;h++){
            
n*base;
        }
        return 
n;
        
        
//A rellenar por los alumnos
    
}
    
    
    
// EJERCICIO 10..............................................................
    
public static float piEuler(int iteraciones){
        
        
//A rellenar por los alumnos
        
    
}
    
    
// EJERCICIO 11..............................................................
    
public static void main(String[] args) {
        
int op;
        do{
            
System.out.println("1. pi segun Leibniz");
            
System.out.println("2. pi segun Euler");
            
System.out.println("3. potencia entera");
            
System.out.println("4. factorial");
            
System.out.println("5. salir");
            
op Teclado.readInt();
            switch (
op){
            case 
1:
                
System.out.println("pi segun Leibniz con 10 interacciones:");
                
Test3.testP01();
                break;
            case 
2:
                
System.out.println("pi segun Euler con 10 interacciones:");
                
System.out.println(piEuler(10));
                break;
            case 
3:
                
System.out.println("potencia entera");
                
Test3.testP03();
                break;
            case 
4:
                
System.out.println("factorial");
                
Test3.testP02();
                break;
            }
                
        }while(
op<5);
    
        

    }


Código PHP:
package p3;

import utilidades.Teclado;

public class 
DivisiblePor11 {

    
/**
     * @param args
     */
    
public static void main(String[] args) {
        
int n,contador;
        
System.out.print("Introduzca un valor para N: ");
        
Teclado.readInt();
        if(
n>=11){
            
System.out.println("BUCLE FOR:");
            for(
contador=11;contador<=n;contador++){
                if(
contador%11 == 0System.out.print(contador+" ");
            }
            
System.out.println();
            
contador=11;
            
System.out.println("BUCLE WHILE:");
            while(
contador<=n){
                if(
contador%11 == 0System.out.print(contador+" ");
                
contador++;                
            }
            
System.out.println();
            
contador=11;
            
System.out.println("BUCLE DO WHILE:");
            do{
                if(
contador%11 == 0System.out.print(contador+" ");
                
contador++;                    
            }while(
contador<=n);
            
System.out.println("BUCLE FOR(PARES):");
            for(
contador=11;contador<=n;contador++){
                if(
contador%11 == 0){
                    if(
contador%2==0System.out.print(contador+" ");
                }
            }
            
System.out.println();
            
contador=11;
            
System.out.println("BUCLE WHILE(PARES):");
            while(
contador<=n){
                if(
contador%11 == 0){
                    if(
contador%2==0System.out.print(contador+" ");
                }
                
contador++;                
            }
            
System.out.println();
            
contador=11;
            
System.out.println("BUCLE DO WHILE(PARES):");
            do{
                if(
contador%11 == 0){
                    if(
contador%2==0System.out.print(contador+" ");
                }
                
contador++;                    
            }while(
contador<=n);
        }else{
            
System.out.println("Nigún numero menor que 11 es divisible por 11");
        }
        

    }





RE: Práctica 3 - alfonso - 03-12-2015

Código PHP:
package p3;

import utilidades.Teclado;

public class 
Ecuacion {

    
/**
     * @param args
     */
    
public static void main(String[] args) {
        
double a,b,c;
        
double X1,X2,tmp;
        
System.out.println("Introduzca un numero:");
        
a=Teclado.readDouble();
        
System.out.println("Introduzca un segundo numero:");
        
b=Teclado.readDouble();
        
System.out.println("Introduzca un tercer numero:");
        
c=Teclado.readDouble();
        
tmp=Math.pow(b2)-4*a*c;
                
        if(
tmp<0){
            
System.out.println("----------------------------------");
            
System.out.println("La ecuación tiene raices complejas");
            
System.out.println("----------------------------------");
        } else {
            
X1=-b+Math.sqrt(tmp)/(2*a);
            
X2=-b-Math.sqrt(tmp)/(2*a);
            
System.out.println("X1="+X1);
            
System.out.println("X2="+X2);
        }
        
                
        

    }



Código PHP:
package p3;

public class 
Fibonacci {

    
/**
     * @param args
     */
    
public static void main(String[] args) {
        
long a=1;
        
long b=0;
        
long c;
        for(
int i =0;i<100;i++){
            
c=a+b;
            
a=b;
            
b=c;
            
System.out.println(c);
        }

    }





RE: Práctica 3 - alfonso - 03-12-2015

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;        

    }