import java

Anuncio
ANEXO :
Programa JAVA de determinación del Dbaf con el nuevo método
import java.util.*;
import java.lang.*;
import java.io.*;
public class Algo {
public static void main(String[] args) throws IOException {BufferedReader entry=new
BufferedReader(new InputStreamReader(System.in));
{
System.out.println("marque su previsión");
String s=entry.readLine();
double f=Double.parseDouble(s); //f es ahora la previsión para el mes siguiente
System.out.println("marque su umbral de tolerancia (ejemplo 0.05)");
s =entry.readLine();
double d=Double.parseDouble(s); //d es ahora la desviación permitida
System.out.println("de cuantos meses disponemos? (al menos 2)");
s =entry.readLine();
int n=Integer.parseInt(s);
//n es el número de meses
while (n<2) { // bucle para verificar que al menos 2 meses se tienen en cuenta
System.out.println("al menos 2 meses");
System.out.println("marque de nuevo el número de meses");
s =entry.readLine();
n=Integer.parseInt(s);
}
double q[]=new double[n];
double diff[]=new double[n];
int m=0;
double sum=0;
// se entran las estadísticas de los meses
for (int i=0;i<n;i++) {
i++;
System.out.println("entre la cifra del mes "+i);
i--;
s =entry.readLine();
q[i]=Double.parseDouble(s);
diff[i]=Math.abs((q[i]-f)/f); // diff es la desviación permitidada
if(diff[i]<=d) {
m++;
sum+=q[i];
}
} //m es el número de meses validados
//sum es la suma de las cifras corespondantes
//en el caso de que menos de 2 meses aprueban...
if (m<2) {
int index1=0;
int index2=1;
//...se recogen los dos meses más cercanos
for (int i=1;i<n;i++) {
if (diff[i]<diff[index1]) {
index2=index1;
index1=i;
}
}
for (int i=0;i<n;i++) {
if (((i!=index1))&&(diff[i]<diff[index2])){
index2=i;
}
}
m=2;
sum=q[index1]+q[index2];
}
double result=(sum+f)/(m+1);
System.out.println("Dbaf = "+result+" ");
}
}
}
Descargar