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" );
}
}
}
