Csak akkor olvass tovább, ha az időjárás feladatot megoldottad, vagy nem sikerült megoldani.
A letölthető tömörített állományban megtalálod a NetBeans-ben megnyitható projectet. Amennyiben Geany szerkesztővel kívánod megtekinteni a megoldást, akkor töröld ki a források elejéről a következő sorokat:
package webotlet_idojaras;
A megoldásban két osztály található. Az Ido osztály felelős az adattárolásért, a Webotlet_idojaras pedig a vezérlőprogram, mely a forrás beolvasását, valamint a feladatok megoldását tartalmazza.
Ido osztály az adattárolásra:
/** * * @author http://webotlet.hu */ package webotlet_idojaras; public class Ido { private String idokep; private int hom; private int szelirany; private int szelero; private int legnyomas; private double para; private int ora; public Ido( String[] tomb, int db ) { idokep = tomb[0]; hom = Integer.parseInt(tomb[1]); szelirany = Integer.parseInt(tomb[2]); szelero = Integer.parseInt(tomb[3]); legnyomas = Integer.parseInt(tomb[4]); para = Double.parseDouble(tomb[5]); ora = db; } public String getIdokep() { return idokep; } public int getHom() { return hom; } public int getSzelirany() { return szelirany; } public int getSzelero() { return szelero; } public int getLegnyomas() { return legnyomas; } public double getPara() { return para; } public int getOra() { return ora; } @Override public String toString() { return "Ido{" + "idokep=" + idokep + ", hom=" + hom + ", szelirany=" + szelirany + ", szelero=" + szelero + ", legnyomas=" + legnyomas + ", para=" +para + ", ora=" + ora + '}'; } }
A main()-t tartalmazó osztály, mely a fájlkezelést és a feladatokat tartalmazza:
/** * * @author http://webotlet.hu */ package webotlet_idojaras; import java.io.*; public class Webotlet_idojaras { public static void main(String[] args) { int db; String sor; RandomAccessFile raf; Ido[] idok; try { // 1. feladat raf = new RandomAccessFile("idojaras.csv","r"); idok = new Ido[24]; db = 0; raf.readLine(); for( sor = raf.readLine(); sor != null; sor = raf.readLine() ) { idok[db] = new Ido( sor.split(";"), db ); db++; } raf.close(); /* kiiratas, hogy az adatokat megfeleloen beolvastam for( Ido o : idok ) { System.out.println( o.toString() ); } */ // 2. feladat System.out.println( "\n2. feladat" ); int homax = 0; for( int i = 0; i < idok.length; i++ ) { if( idok[i].getHom() > idok[homax].getHom() ) { homax = i; } } System.out.println( idok[homax].getOra()+" orakor volt a legmelegebb." ); // 3. feladat System.out.println( "\n3. feladat" ); int maxszel = 0; for( int i = 0; i < idok.length; i++ ) { if( idok[i].getSzelero() > idok[maxszel].getSzelero() ) { maxszel = i; } } // tobb maximum eseten ertelemszeruen az elsonek az idopontjat kapjuk meg System.out.println( idok[maxszel].getOra()+" orakor fujt a legerosebb szel." ); // 4. feladat System.out.println( "\n4. feladat" ); System.out.println( "Ezekben az orakban fujt ENY-i szel:" ); for( int i = 0; i < idok.length; i++ ) { if( idok[i].getSzelirany() > 270 && idok[i].getSzelirany() < 360 ) { System.out.println( idok[i].getOra()+" ora" ); } } // 5. feladat System.out.println( "\n5. feladat" ); int borultdb = 0; for( int i = 0; i < idok.length; i++ ) { if( idok[i].getIdokep().equalsIgnoreCase("borult") ) { borultdb++; } } System.out.println( borultdb+" alkalommal volt borult az eg." ); // 6. feladat System.out.println( "\n6. feladat" ); int homin = 0; for( int i = 0; i < idok.length; i++ ) { if( idok[i].getHom() < idok[homin].getHom() ) { homin = i; } } System.out.println( idok[homax].getHom() - idok[homin].getHom()+" fok a napi hoingas." ); // 7. feladat System.out.println( "\n7. feladat" ); int fagyp = 0; for( int i = 0; i < idok.length; i++ ) { if( idok[i].getHom() == 0 ) { fagyp++; } } System.out.println( fagyp+" alkalommal volt fagypont." ); // 8. feladat System.out.println( "\n8. feladat" ); int fagyott = 0; if( idok[0].getHom() < 0 ) fagyott = 1; for( int i = 1; i < idok.length; i++ ) { if( idok[i].getHom() < 0 && idok[i-1].getHom() >= 0 ) { fagyott++; } } System.out.println( fagyott+" alkalommal fagyott." ); // 9. feladat System.out.println( "\n9. feladat" ); int emel = 0; for( int i = 1; i < idok.length; i++ ) { if( idok[i].getHom() > idok[i-1].getHom() ) { emel++; } } System.out.println( emel+" alkalommal emelkedett a homerseklet." ); // 10. feladat System.out.println( "\n10. feladat" ); String irany = null; if( idok[homax].getSzelirany() == 0 ) irany = "E"; else if( idok[homax].getSzelirany() > 0 && idok[homax].getSzelirany() < 90 ) irany = "EK"; else if( idok[homax].getSzelirany() == 90 ) irany = "K"; else if( idok[homax].getSzelirany() >90 && idok[homax].getSzelirany() < 180 ) irany = "DK"; else if( idok[homax].getSzelirany() == 180 ) irany = "D"; else if( idok[homax].getSzelirany() > 180 && idok[homax].getSzelirany() < 270 ) irany = "DNY"; else if( idok[homax].getSzelirany() == 270 ) irany = "NY"; else irany = "ENY"; System.out.println( irany+"-rol fujt a szel, amikor a legmelegebb volt." ); // 11. feladat System.out.println( "\n11. feladat" ); int napdb = 0; int napossz = 0; for( int i = 0; i < idok.length; i++ ) { if( idok[i].getOra() >= 8 && idok[i].getOra() <= 16 ) { napdb++; napossz += idok[i].getHom(); } } System.out.println( "A nappali atlaghomerseklet: "+(double)napossz/napdb ); } catch( IOException e ) { System.err.println( "HIBA" ); } } }