Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package definitivo;
- import java.io.BufferedReader;
- import java.io.*;
- /*Los datos en el archivo de texto deben estar separados por " ; "
- Por ejemplo:
- Provincia;Nombreciudad;Distancia a Chillan;Distancia a concepcion;Ahorro
- Diguillin;Chillán;0;98;98
- */
- public class Tarea3 {
- //Desarrollo
- //Llamamos a todas las variables ue ocuparemos.
- public static float[] promedio_chillan(float promch1, float promch2, float promch3, float promch4,
- float sumch1, float sumch2, float sumch3, float sumch4, Clase[] diguillin, int casilla,
- Clase[] itata, int casilla2, Clase[] punilla, int casilla3, Clase[] conce, int casilla4){
- //Armamos un ciclo while para que solo se realice dentro del límite del arreglo.
- while (casilla < diguillin.length){
- //Romper ciclo cuando se haga nulo.
- if (diguillin[casilla] == null) {
- break;
- }
- //Calcular promedio de Provincia de Diguillín a Chillán.
- sumch1 = sumch1 + diguillin[casilla].getDistancia_chillan();
- promch1 = (sumch1/10);
- casilla++;
- }
- while (casilla2 < itata.length){
- if (itata[casilla2] == null) {
- break;
- }
- //Calcular promedio de Provincia de Itata a Chillán.
- sumch2 = sumch2 + itata[casilla2].getDistancia_chillan();
- promch2 = (sumch2/8);
- casilla2++;
- }
- while (casilla3 < punilla.length){
- if (punilla[casilla3] == null) {
- break;
- }
- //Calcular promedio de Provincia de Punilla a Chillán.
- sumch3 = sumch3 + punilla[casilla3].getDistancia_chillan();
- promch3 = (sumch3/4);
- casilla3++;
- }
- while (casilla4 < conce.length){
- if (conce[casilla4] == null) {
- break;
- }
- //Calcular promedio de Provincia de Concepción a Chillán.
- sumch4 = sumch4 + conce[casilla4].getDistancia_chillan();
- promch4 = (sumch4/2);
- casilla4++;
- }
- //Guardar los promedios de las 4 provincias en un arreglo de tipo float.
- return new float [] {promch1, promch2, promch3, promch4};
- }
- //Llamamos a todas las funciones que ocuparemos en este método.
- public static float[] promedio_conce(float sumcon1, float sumcon2, float sumcon3, float sumcon4, float promcon1, float promcon2,
- float promcon3, float promcon4, Clase[] diguillin, int casilla, Clase [] itata, int casilla2,
- Clase[] punilla, int casilla3, Clase[] conce, int casilla4){
- //Ciclo while para que recorra el largo del arreglo.
- while (casilla < diguillin.length){
- //Cuando sea nulo, romper.
- if (diguillin[casilla] == null) {
- break;
- }
- //Calcular promedio de Provincia de Diguillin a Concepción.
- sumcon1 = sumcon1 + diguillin[casilla].getDistancia_conce();
- promcon1 = (sumcon1/10);
- casilla++;
- }
- while (casilla2 < itata.length){
- if (itata[casilla2] == null) {
- break;
- }
- //Calcular promedio de Provincia de Itata a Concepción.
- sumcon2 = sumcon2 + itata[casilla2].getDistancia_conce();
- promcon2 = (sumcon2/8);
- casilla2++;
- }
- while (casilla3 < punilla.length){
- if (punilla[casilla3] == null) {
- break;
- }
- //Calcular promedio de Provincia de Punilla a Concepción.
- sumcon3 = sumcon3 + punilla[casilla3].getDistancia_conce();
- promcon3 = (sumcon3/4);
- casilla3++;
- }
- while (casilla4 < conce.length){
- if (conce[casilla4] == null) {
- break;
- }
- //Calcular promedio de Provincia de Concepción a Concepción.
- sumcon4 = sumcon4 + conce[casilla4].getDistancia_conce();
- promcon4 = (sumcon4/2);
- casilla4++;
- }
- //Almacenar los promedios en un arreglo.
- return new float [] {promcon1, promcon2, promcon3, promcon4};
- }
- //Llamamos a todas las variables que ocuparemos en la función
- public static float[] promedio_ahorro(float ahorro1, float ahorro2, float ahorro3, float ahorro4,
- float proma1, float proma2, float proma3, float proma4, Clase[] diguillin,
- int casilla, Clase[] itata, int casilla2, Clase[] punilla, int casilla3,
- Clase[] conce, int casilla4){
- //Armamos ciclo while para recorrer todas las casillas del arreglo.
- while (casilla < diguillin.length){
- //En caso de que sea nulo, romper.
- if (diguillin[casilla] == null) {
- break;
- }
- //Calcular el promedio de ahorro de la provincia de Diguillín.
- ahorro1 = ahorro1 + diguillin[casilla].getAhorro();
- proma1 = (ahorro1/10);
- casilla++;
- }
- while (casilla2 < itata.length){
- if (itata[casilla2] == null) {
- break;
- }
- //Calcular el promedio de ahorro de la provicia de Itata.
- ahorro2 = ahorro2 + itata[casilla2].getAhorro();
- proma2 = (ahorro2/8);
- casilla2++;
- }
- while (casilla3 < punilla.length){
- if (punilla[casilla3] == null) {
- break;
- }
- //Calcular el promedio de ahorro de la provincia de Punilla.
- ahorro3 = ahorro3 + punilla[casilla3].getAhorro();
- proma3 = (ahorro3/4);
- casilla3++;
- }
- while (casilla4 < conce.length){
- if (conce[casilla4] == null) {
- break;
- }
- //Calcular el promedio de ahorro de la provincia de Concepción.
- ahorro4 = ahorro4 + conce[casilla4].getAhorro();
- proma4 = (ahorro4/2);
- casilla4++;
- }
- //Almacenar los datos en un arreglo.
- return new float [] {proma1, proma2, proma3, proma4};
- }
- public static void main(String[] args) {
- //Entrada
- //Iniciamos un File reader.
- FileReader lectorarchivo;
- //El FileReader busca el archivo y lo lee.
- //Encerramos el mismo FileReader en un Try - Catch para evitar Excepciones
- try{
- lectorarchivo = new FileReader("C:\\Users\\david\\Desktop\\datos_nuble_2017.txt");
- //Atrapamos la Excepción y en caso de que se de esta misma imprimir mensaje.
- }catch(FileNotFoundException e){
- System.out.println("Archivo no encontrado:" + e.getMessage());
- //Cerramos con un return, para así terminar el programa y no seguir.
- return;
- }
- //Iniciamos un BufferedReader, que leerá línea por línea.
- BufferedReader textoarchivo;
- textoarchivo = new BufferedReader(lectorarchivo);
- //Iniciamos una variable auxiliar, llamada casilla, que define en qué casilla del arreglo comenzaremos.
- int casilla = 0;
- //Iniciamos otra variable auxiliar, que guardará las lineas de texto.
- String lineatexto;
- //Definimos un arreglo para la Provincia de Diguillín.
- Clase[] diguillin;
- //10 espacios, puesto que solo ocupamos 10 ciudades de esta provincia.
- diguillin = new Clase[10];
- //Armamos un ciclo while que se repita hasta que se recorran todas las caillas.
- while (casilla < diguillin.length){
- try{
- lineatexto = textoarchivo.readLine();
- }catch(IOException e){
- System.out.println(e.getMessage());
- return;
- }
- //Cuando ya no quede nada más que leer, se detiene.
- if (lineatexto == null) {
- break;
- }
- //Definimos otra variable, la cual funcionará como separador para distinguir valores del .txt
- String [] separador;
- separador = lineatexto.split(";");
- //Las variables diferenciadas por el separador quedan como String, así que nos encargamos de pasar a float los números.
- float distancia_chillan;
- distancia_chillan = Float.parseFloat(separador[2]);
- float distancia_conce;
- distancia_conce = Float.parseFloat(separador[3]);
- float ahorro;
- ahorro = Float.parseFloat(separador[4]);
- //Cada casilla tendrá los siguientes datos, separados por el separador ';'.
- diguillin[casilla] = new Clase();
- diguillin[casilla].setProvincia(separador[0]);
- diguillin[casilla].setNombre(separador[1]);
- diguillin[casilla].setDistancia_chillan(distancia_chillan);
- diguillin[casilla].setDistancia_conce(distancia_conce);
- diguillin[casilla].setAhorro(ahorro);
- //Debemos ir aumentando casilla o se estancará.
- casilla++;
- }
- //Repetimos el procedimiento del arreglo para la provincia de Diguillín, solo que ahora para Itata.
- Clase[] itata;
- itata = new Clase[8];
- int casilla2 = 0;
- while (casilla2 < itata.length){
- try{
- lineatexto = textoarchivo.readLine();
- }catch(IOException e){
- System.out.println(e.getMessage());
- return;
- }
- if (lineatexto == null) {
- break;
- }
- String [] separador;
- separador = lineatexto.split(";");
- float distancia_chillan;
- distancia_chillan = Float.parseFloat(separador[2]);
- float distancia_conce;
- distancia_conce = Float.parseFloat(separador[3]);
- float ahorro;
- ahorro = Float.parseFloat(separador[4]);
- itata[casilla2] = new Clase();
- itata[casilla2].setProvincia(separador[0]);
- itata[casilla2].setNombre(separador[1]);
- itata[casilla2].setDistancia_chillan(distancia_chillan);
- itata[casilla2].setDistancia_conce(distancia_conce);
- itata[casilla2].setAhorro(ahorro);
- casilla2++;
- }
- //Repetimos el procedimiento para la Provincia de Punilla.
- Clase [] punilla;
- punilla = new Clase[4];
- int casilla3 = 0;
- while (casilla3 < punilla.length){
- try{
- lineatexto = textoarchivo.readLine();
- }catch(IOException e){
- System.out.println(e.getMessage());
- return;
- }
- if (lineatexto == null) {
- break;
- }
- String [] separador;
- separador = lineatexto.split(";");
- float distancia_chillan;
- distancia_chillan = Float.parseFloat(separador[2]);
- float distancia_conce;
- distancia_conce = Float.parseFloat(separador[3]);
- float ahorro;
- ahorro = Float.parseFloat(separador[4]);
- punilla[casilla3] = new Clase();
- punilla[casilla3].setProvincia(separador[0]);
- punilla[casilla3].setNombre(separador[1]);
- punilla[casilla3].setDistancia_chillan(distancia_chillan);
- punilla[casilla3].setDistancia_conce(distancia_conce);
- punilla[casilla3].setAhorro(ahorro);
- casilla3++;
- }
- //Repetimos el procedimiento para la Provincia de Concepción.
- Clase [] conce;
- conce = new Clase[2];
- int casilla4 = 0;
- while (casilla4 < conce.length){
- try{
- lineatexto = textoarchivo.readLine();
- }catch(IOException e){
- System.out.println(e.getMessage());
- return;
- }
- if (lineatexto == null) {
- break;
- }
- String [] separador;
- separador = lineatexto.split(";");
- float distancia_chillan;
- distancia_chillan = Float.parseFloat(separador[2]);
- float distancia_conce;
- distancia_conce = Float.parseFloat(separador[3]);
- float ahorro;
- ahorro = Float.parseFloat(separador[4]);
- conce[casilla4] = new Clase();
- conce[casilla4].setProvincia(separador[0]);
- conce[casilla4].setNombre(separador[1]);
- conce[casilla4].setDistancia_chillan(distancia_chillan);
- conce[casilla4].setDistancia_conce(distancia_conce);
- conce[casilla4].setAhorro(ahorro);
- casilla4++;
- }
- // Salida
- //Llamamos a las variables y las dejamos como 0.
- FileWriter fr = null;
- PrintWriter pw = null;
- try {
- fr = new FileWriter("C:\\Users\\david\\Desktop\\resultados_nuble_2017.txt");
- pw = new PrintWriter(fr);
- casilla = 0;
- casilla2 = 0;
- casilla3 = 0;
- casilla4 = 0;
- float sumch1 = 0, sumch2 = 0, sumch3 = 0, sumch4 = 0;
- float sumcon1 = 0, sumcon2 = 0, sumcon3 = 0, sumcon4 = 0;
- float promch1 = 0, promch2 = 0, promch3 = 0, promch4 = 0;
- float promcon1 = 0, promcon2 = 0, promcon3 = 0, promcon4 = 0;
- float ahorro1 = 0, ahorro2 = 0, ahorro3 = 0, ahorro4 = 0;
- float proma1 = 0, proma2 = 0, proma3 = 0, proma4 = 0;
- //Llamamos a la función de promedio_chillan.
- float promedios[] = promedio_chillan(promch1, promch2, promch3, promch4, sumch1, sumch2, sumch3, sumch4, diguillin, casilla,
- itata, casilla2, punilla, casilla3, conce, casilla4);
- //Imprimimos los promedios de las provincias según Chillán.
- //Invocamos al arreglo donde guardamos los promedios.
- pw.println("Promedio Provincia de Diguillín a Chillán: "+promedios[0]+"km.");
- pw.println("Promedio Provincia de Itata a Chillán: "+promedios[1]+"km.");
- pw.println("Promedio Provincia de Punilla a Chillán: "+promedios[2]+"km.");
- pw.println("Promedio Provincia de Concepción a Chillán: "+promedios[3]+"km.");
- pw.println("*************************************************************");
- //Llamamos a la función de promedio_conce.
- float promedios2[] = promedio_conce(sumcon1, sumcon2, sumcon3, sumcon4, promcon1, promcon2,
- promcon3, promcon4, diguillin, casilla, itata, casilla2,
- punilla, casilla3, conce, casilla4);
- //Imprimimos los promedios de las provincias según Concepción.
- //Invcamos al arreglo donde guardamos los promedios.
- pw.println("Promedio Pronvicia de Diguillín a Concepción: "+promedios2[0]+"km.");
- pw.println("Promedio Pronvicia de Itata a Concepción: "+promedios2[1]+"km.");
- pw.println("Promedio Pronvicia de Punilla a Concepción: "+promedios2[2]+"km.");
- pw.println("Promedio Pronvicia de Concepción a Concepción: "+promedios2[3]+"km.");
- pw.println("*************************************************************");
- //Llamamos a la función de promedio_ahorro.
- float promedios3[] = promedio_ahorro(ahorro1, ahorro2, ahorro3, ahorro4, proma1, proma2,
- proma3, proma4, diguillin, casilla, itata, casilla2,
- punilla, casilla3, conce, casilla4);
- //Imprimimos los promedios de los ahorros según Provincia.
- //Invocamos al arreglo donde guardamos los arreglos.
- pw.println("Promedio de Ahorro de Diguillín: "+promedios3[0]+"km.");
- pw.println("Promedio de Ahorro de Itata: "+promedios3[1]+"km.");
- pw.println("Promedio de Ahorro de Punilla: "+promedios3[2]+"km.");
- pw.println("Promedio de Ahorro de Concepción: "+promedios3[3]+"km.");
- pw.println("*************************************************************");
- }catch (IOException e){
- e.printStackTrace();
- } finally {
- try {
- // Nuevamente aprovechamos el finally para
- // asegurarnos que se cierra el fichero.
- if (null != fr)
- fr.close();
- } catch (Exception e2) {
- e2.printStackTrace();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement