Bien, comparto con vosotros las soluciones de los ejercicios de la aplicación web, especialmente para los que se atrancan.
La aplicación web :
A ver, la mayoría de ejercicios se pueden solucionar de varias maneras, pero la aplicación web solo acepta una, de ahí que ponga en los cierres de llaves al bloque al que corresponden ej. "}// if 1".
Esto tiene muchas pegas, la aplicación web tiene las soluciones mas óptimas para la programación de los métodos, aún así hay otras posibles soluciones muy validas con las mismas frases que ponen en el ejercicio como por ejemplo el Jap_01.
En general se pueden hacer casi todos aplicando todas las reglas básicas de programación. En muchos ejercicios hay expresiones que no son las más claras, ni las menos usuales, pero bueno...
Hay una ejercicio que si que es una prueba de azar, que es el Jap_14 que hay 3 "return null;", esto hace que no sepas donde poner cada uno, porque solo acepta una posición, es decir, si los intercambias no va a funcionar.
Ya podemos tener todo el mundo 0.5 más
Sin entretenerme más aquí van las soluciones:
Jap_01
Jap_02
Jap_03
Jap_04
Jap_05
Jap_06
Jap_07
Jap_08
Jap_09
Jap_10
Jap_11
Jap_12
Jap_13
Jap_14
Jap_15
Jap_16
Jap_17
Jap_18
Jap_19
Jap_20
Si tenéis alguna duda, dejad un comentario!.
La aplicación web :
[Para ver los enlaces debes registrate]
A ver, la mayoría de ejercicios se pueden solucionar de varias maneras, pero la aplicación web solo acepta una, de ahí que ponga en los cierres de llaves al bloque al que corresponden ej. "}// if 1".
Esto tiene muchas pegas, la aplicación web tiene las soluciones mas óptimas para la programación de los métodos, aún así hay otras posibles soluciones muy validas con las mismas frases que ponen en el ejercicio como por ejemplo el Jap_01.
En general se pueden hacer casi todos aplicando todas las reglas básicas de programación. En muchos ejercicios hay expresiones que no son las más claras, ni las menos usuales, pero bueno...
Hay una ejercicio que si que es una prueba de azar, que es el Jap_14 que hay 3 "return null;", esto hace que no sepas donde poner cada uno, porque solo acepta una posición, es decir, si los intercambias no va a funcionar.
Ya podemos tener todo el mundo 0.5 más
Sin entretenerme más aquí van las soluciones:
Jap_01
Código PHP:
public static void escribirDivisores(int n){
System.out.println("número: " + n + " --> Divisores positivos: ");
if (n==0) {System.out.println("Todo número distinto de 0 es divisor de 0.");}
else{
n = n>=0? n:-n;
for (int i=1; i<n; i++){
if (n%i == 0){ System.out.print(i + ", ");}
} // for
System.out.println(n);
} // else
}// fin función
Jap_02
Código PHP:
public static boolean esPrimo(int n){
boolean primo = true;
int limite = n/2;
if (n==0) { primo = false; }
else{
for(int i=2; i<=limite && primo; i++){
if (n%i == 0) { primo=false;}
} //for
} //else
return primo;
} // fin función
Jap_03
Código PHP:
public static int contarPrimos(int n1, int n2){
int nroDePrimos = -1;
if (n1>=0 && n2>=0){
nroDePrimos = 0;
int bajo = n1>=n2? n2:n1;
int alto = n1>n2? n1:n2;
for (int numero = bajo; numero <= alto; numero++){ //for 1
if (numero != 0){ // if 1
boolean primo = true;
int limite = numero/2;
for (int i=2; i<= limite && primo; i++){ // for 2
if (numero % i == 0) { primo = false; }
} // fin for 2
if (primo) nroDePrimos++;
} //if (numero != 0)
} // fin for 1
} // if (n1 >= 0 && n2 >= 0)
return nroDePrimos;
} // fin función
Jap_04
Código PHP:
public static void printLinea(int N){
if (N<=0){
System.out.println("error");
} // if
else{
for (int i=1; i<=N; i++) { System.out.println(i+" "); }
System.out.println();
} //else
} // fin función
Jap_05
Código PHP:
public static void printLineas(int N){
if (N<=0) { System.out.println("error");}
else{
for (int i=1; i<=N; i++){
for (int j=1; j<=i; j++){ System.out.println(j+" ");}
System.out.println();
} //for
} //else
} //fin función
Jap_06
Código PHP:
public static int[][] lineas(int N){
int lineas[][]=null;
if (N > 0){
lineas = new int[N][];
for (int i=0; i<N; i++){
lineas[i] = new int[i+1];
for (int j=0; j<=i; j++){ lineas[i][j] = j+1;}
} //for
} //if
return lineas;
} //fin función
Jap_07
Código PHP:
public static int mcd(int a, int b){
while (a != b){
if (a>b) { a = a-b;}
else {b = b-a;}
} // while
return a;
} // fin función
Jap_08
Código PHP:
public static int fibonacci(int n){
int res = 0;
if (n>=0){ // if 1
if (n==1 || n==2){ // if 2
res = 1;
} // fin if 2
else {
int ti = 1, ti_1= 1;
int contador = 2;
while (contador <= n){
res = ti + ti_1;
ti_1 = ti;
ti = res;
contador++;
} // fin while
} //fin else
} // fin if 1
return res;
} //fin función
Jap_09
Código PHP:
public static boolean esBisiesto(int anio){
boolean bisiesto = false;
if (anio % 400 == 0 ||
(anio % 4 == 0 && anio % 100 != 0)){
bisiesto = true;
} // fin if
return bisiesto;
} // fin función
Jap_10
Código PHP:
public static int minimo(int a[]){
int min = 0;
if (a != null && a.length > 0){
min = a[0];
for (int i=1; i<a.length; i++){
if (a[i] < min) min = a[i];
} // fin for
} // fin if
return min;
} // fin función
Jap_11
Código PHP:
public static int cuentaOcurrencias(int a[], int key){
int cont = 0;
if (a != null){
for (int i=0; i<a.length; i++){
if (a[i]==key) cont++;
} // fin for
} // fin if
return cont;
} // fin función
Jap_12
Código PHP:
public static boolean hayRepetidos(int a[]){
boolean repetidos = false;
if (a != null){ // if 1
for (int i=0; i<a.length-1 && !repetidos; i++){ // for 1
for (int j=i+1; j<a.length; j++){ // for 2
if (a[i] == a[j]){ // if 2
repetidos = true;
} // fin if 2
} // fin for 2
} // fin for 1
} // fin if 1
return repetidos;
} // fin función
Jap_13
Código PHP:
public static double[][] traspuesta(double[][] m){
if (!Algebra_esMatriz){
System.out.println("traspuesta: no es matriz: retorna null");
return null;
}
double[][] tr = new double[m[0].length][m.length];
for (int i=0; i<tr.length; i++){ // for 1
for (int j=0; j<tr[i].length; j++){ // for 2
tr[i][j] = m[j][i];
} // fin for 2
} // for 1
return tr;
} // fin función
Jap_14
Código PHP:
public static double[] getFila(double[][] m, int n){
if (!Algebra_esMatriz){ // if 1
return null;
} // fin if 1
if (n >= m.length || n < 0){ // if 2
return null;
} // fin if 2
if (m[n] == null){ // if 3
return null;
} // fin if 3
double[] fila = Algebra_clonarArray;
return fila;
} // fin función
Jap_15
Código PHP:
public static double[] getDerivada(double[] q){
if (q == null){
return null;
} // fin if
double[] d = new double[q.length-1];
for (int i=0; i<d.length; i++){
d[i] = (i+1) * q[i+1];
} // fin for
return d;
} // fin función
Jap_16
Código PHP:
public static boolean esCuadrada1(int a[][]){
if (a == null || a.length == 0) return false;
for (int i=0; i<a.length; i++){
if (a[i] == null) return false;
if (a[i].length != a.length) return false;
} // fin for
return true;
} // fin método
Jap_17
Código PHP:
public static boolean esCuadrada2(int a[][]){
boolean cuadrada = true;
if (a != null && a.length != 0){
for (int i=0; i<a.length && cuadrada; i++){
if (a[i] == null) cuadrada = false;
if (a[i].length != a.length) cuadrada = false;
} // fin for
} // fin if
return cuadrada;
} // fin método
Jap_18
Código PHP:
public static int[] getCol(int[][] m, int n){
if (m == null) { return null; }
if (m.length == 0){ return new int[0]; }
if (n >= m.length || n<0){ return null; }
for (int i=0; i<m.length; i++){
if (m[i] == null){ return null; }
if (m[i].length != m[0].length){ return null; }
} // fin for
int[] columna = new int[m.length];
for (int i=0; i<columna.length; i++){ columna[i] = m[i][n];}
return columna;
} // fin método
Jap_19
Código PHP:
public static int[][] quitarCol(int[][] m, int n){
boolean testArgs = true;
int[][] res = null;
if (m == null){ testArgs = false; } // if 1
else if (n>=m.length || n<0){ testArgs = false; }
else{
for (int i=0; i<m.length && testArgs; i++){
if (m[i] == null){ testArgs = false; }
if (m[i].length != m[0].length){ testArgs = false; }
} // fin else 1
} // fin if 1
if (testArgs){ // if 2
res = new int[m.length][m[0].length-1];
for (int i=0; i<res.length; i++){
for (int j=0; j<res[i].length; j++){
if (j < n){ // if 3
res[i][j] = m[i][j];
} // fin if 3
else if (j>=n && j+1 <m[0].length){ // else 2
res[i][j] = m[i][j+1];
} // fin else 2
} // fin for 3
} // fin for 2
} // fin if 2
return res;
} // fin función
Jap_20
Código PHP:
public static double[] multiplicarPils(double[] px, double[] qx){
if (px == null || qx == null){ return null; }
double[] p = new double[px.length + qx.length-1];
for(int i=0; i<px.length; i++){
for(int j=0; i<qx.length; j++){ p[i+j] += (px[i]*qx[j]); }
}
return p;
}
Si tenéis alguna duda, dejad un comentario!.