Foro no oficial de la UPCT
Soluciones Examen 1º Parcial (Grupo B) - 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: Soluciones Examen 1º Parcial (Grupo B) (/Thread-Soluciones-Examen-1%C2%BA-Parcial-Grupo-B)



Soluciones Examen 1º Parcial (Grupo B) - Jesús Hernández Galián - 05-12-2012

Aporte que le gustará a mas de uno. Son las soluciones (hechas por mi) del primer parcial. Realizado en eclipse. Yo creo que no tiene ningún fallo. Así se hacen una idea de la dificultad (poca Astuto) del examen.

Aquí están los enunciados del examen:

[Para ver los enlaces debes registrate]

Aprobecho y le doy promocion a dropbox (menudo servidor), ya hemos conseguido las 25 GB. Gracias chicos.

Código PHP:
public class Ejercicio1 {

    public static 
double calcPi(long n){
        if (
n<=0)
            return -
1;
        
double sumatorio=0;
        for (
int i=1;i<=n;i++){
            
sumatorio+=(double)1/(i*i);
        }
        return 
Math.sqrt(6*sumatorio);
    }

Código PHP:
public class Ejercicio2 {

    public static 
int[] calcularFactoriales(int a[]){
        if(
a==null)
            return 
null;
        
int b[]=new int [a.length];
        if(
a.length==0)
            return 
b;
        for (
int i=0;i<a.length;i++){
            
int fact=1;
            for(
int j=a[i];j>=1;j--)
                
fact*=j;
            
b[i]=fact;
        }
        return 
b;
    }
    public static 
void main(String[] args) {
        
int a[]={5,6,7,8};
        
int b[]=calcularFactoriales(a);
        for(
int i=0;i<a.length;i++){
            if(
i==a.length-1)
                
System.out.println(a[i]);
            else 
System.out.print(a[i]+" ");
        }
        for(
int i=0;i<b.length;i++){
            if(
i==b.length-1)
                
System.out.println(b[i]);
            else 
System.out.print(b[i]+" ");
        }
    }

Código PHP:
public class Ejercicio3 {
    
    public static 
int[][] devolverDiagonales(int a[][]){
        if(
a==null || a.length==0)
            return 
null;
        for(
int i=0;i<a.length;i++){
            if(
a.length!=a[i].length)
                return 
null;
        }
        
int b[][]= new int [2][a[0].length];
        for(
int i=0;i<a.length;i++){
            for(
int j=0;j<a[0].length;j++){
                if(
i==j)
                    
b[0][j]=a[i][j];
                if(
i==a[0].length-1-j)
                    
b[1][i]=a[i][j];
            }
        }
        return 
b;
    }
    
    public static 
void main(String[] args) {
        
int a[][]={{1,2,3},{4,5,6},{7,8,9}};
        
int b[][]= devolverDiagonales(a);
        for(
int i=0;i<b.length;i++){
            for(
int j=0j<b[0].length;j++){
                if (
j==b[0].length-1)
                    
System.out.println(b[i][j]);
                else 
System.out.print(b[i][j]+" ");
            }
        }
    }




Re: Soluciones Examen 1º Parcial (Grupo B) - alfonso - 06-12-2012

Creo que en el primer ejercicio no es necesario el upcasting a double ya que java lo hace automáticamente.

Buen aporte.

Enviado desde mi LG-P920


RE: Soluciones Examen 1º Parcial (Grupo B) - Pablo Lucas - 06-12-2012

Gran aporte Jesus!! Se agradece!! Gran sonrisa


RE: Soluciones Examen 1º Parcial (Grupo B) - Jesús Hernández Galián - 07-12-2012

(06-12-2012, 01:28)admin escribió:

[Para ver los enlaces debes registrate]

Creo que en el primer ejercicio no es necesario el upcasting a double ya que java lo hace automáticamente.

Buen aporte.

Enviado desde mi LG-P920
Creo que si que hace falta el upcasting. Aunque java lo haga automáticamente, la operación se realiza con el mayor tipo de dato de la operación. Y las "i" son long, por lo que la operación se va a realizar como un long (independientemente de que luego se convierta a double). En este caso, al ser una fracción 1/(i*i), java va a realizar la operación como si fuera un long (repito, independientemente de que luego se almacene como un double), por ejemplo: 1/4 = 1 o 0, porque long son enteros. Si embargo, si haces el upcasting a double de cualquier operando, la operación se realiza como un double, por ejemplo: 1/4 = 0.25

Gracias por los comentarios. Sonrisa


RE: Soluciones Examen 1º Parcial (Grupo B) - Antonio - 07-12-2012

Dios, excelente aporte al foro, cosas así hay que seguir intentando subir el foro Sonrisa .