{"id":2803,"date":"2019-11-03T21:55:20","date_gmt":"2019-11-03T20:55:20","guid":{"rendered":"http:\/\/www.webotlet.hu\/?p=2803"},"modified":"2019-11-06T09:12:30","modified_gmt":"2019-11-06T08:12:30","slug":"java-programozas-2006-februari-emelt-informatika-erettsegi-programozasi-feladatanak-megoldasa-2-verzio","status":"publish","type":"post","link":"https:\/\/www.webotlet.hu\/?p=2803","title":{"rendered":"Java programoz\u00e1s &#8211; 2006 febru\u00e1ri emelt informatika \u00e9retts\u00e9gi programoz\u00e1si feladat\u00e1nak megold\u00e1sa (2. verzi\u00f3)"},"content":{"rendered":"<p>A feladat le\u00edr\u00e1s\u00e1t, melynek a megold\u00e1s\u00e1t k\u00f6zz\u00e9teszem <a href=\"http:\/\/www.webotlet.hu\/wp-content\/uploads\/2019\/11\/e_info_06febr_telefonszamla.pdf\">innen<\/a> t\u00f6ltheted le. Ez a megold\u00e1s list\u00e1val dolgozik. Az adatt\u00e1rol\u00f3 oszt\u00e1lyban m\u00e1r bel\u00fcl sok feladatot el\u0151k\u00e9sz\u00edtek, \u00e9s a v\u00e9gs\u0151 megold\u00e1sban csak ezeket haszn\u00e1lom.<\/p>\n<p>A t\u00e1rol\u00f3 oszt\u00e1lyban statikus met\u00f3dusokat is haszn\u00e1lok, mely az 1. \u00e9s 2. feladat megold\u00e1s\u00e1t nagyban megk\u00f6nny\u00edti. A konstruktorban l\u00e9v\u0151 if-else szerkezeteket t\u00f6m\u00f6r\u00edtettem, vagy met\u00f3dussal kiv\u00e1ltottam.<\/p>\n<p>Adatt\u00e1rol\u00f3 oszt\u00e1ly:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\/**\r\n *\r\n * @author https:\/\/webotlet.hu\r\n *\/\r\n\r\npackage webotlet_06feb_szamla_java_v2;\r\n\r\npublic class Hivas\r\n{\r\n  private int kOra;\r\n  private int kPerc;\r\n  private int kMperc;\r\n  private int vOra;\r\n  private int vPerc;\r\n  private int vMperc;\r\n  private String szam;\r\n  \r\n  private boolean mobil;\r\n  private boolean csucs;\r\n  private int hosszPercek;\r\n  private double koltseg;\r\n  \r\n  public Hivas( String&#x5B;] tomb, String szam )\r\n  {\r\n    kOra = Integer.parseInt(tomb&#x5B;0]);\r\n    kPerc = Integer.parseInt(tomb&#x5B;1]);\r\n    kMperc = Integer.parseInt(tomb&#x5B;2]);\r\n    vOra = Integer.parseInt(tomb&#x5B;3]);\r\n    vPerc = Integer.parseInt(tomb&#x5B;4]);\r\n    vMperc = Integer.parseInt(tomb&#x5B;5]);\r\n    this.szam = szam;\r\n\r\n    \/\/ mobilhivas vagy nem\r\n    mobil = mobilHivas(szam);\r\n    \r\n    \/\/ csucsideju vagy nem\r\n    csucs = kOra &gt;= 7 &amp;&amp; kOra &lt; 18;\r\n\r\n    \/\/ a hivas hossza percekben\r\n    hosszPercek = hivashossz( kOra, kPerc, kMperc, vOra, vPerc, vMperc );\r\n\r\n    \/\/ hivaskoltsegek kiszamitasa\r\n    if( csucs &amp;&amp; mobil )\r\n    {\r\n      koltseg = 69.175 * hosszPercek;\r\n    }\r\n    else if( csucs &amp;&amp; !mobil )\r\n    {\r\n      koltseg = 30 * hosszPercek;\r\n    }\r\n    \/\/ ez a ketto felesleges a feladat szempontjabol,\r\n    \/\/ de inkabb ne maradjon ekkor sem ures a koltseg\r\n    else if( !csucs &amp;&amp; mobil )\r\n    {\r\n      koltseg = 46.675 * hosszPercek;\r\n    }\r\n    else\r\n    {\r\n      koltseg = 15 * hosszPercek;\r\n    }\r\n  }\r\n\r\n  public String getSzam()\r\n  {\r\n    return szam;\r\n  }\r\n\r\n  public boolean isMobil()\r\n  {\r\n    return mobil;\r\n  }\r\n\r\n  public boolean isCsucs()\r\n  {\r\n    return csucs;\r\n  }\r\n\r\n  public int getHosszPercek()\r\n  {\r\n    return hosszPercek;\r\n  }\r\n\r\n  public double getKoltseg()\r\n  {\r\n    return koltseg;\r\n  }\r\n\r\n  @Override\r\n  public String toString()\r\n  {\r\n    return &quot;Hivas{&quot; + &quot;kOra=&quot; + kOra + &quot;, kPerc=&quot; + kPerc +\r\n           &quot;, kMperc=&quot; + kMperc + &quot;, vOra=&quot; + vOra +\r\n      &quot;, vPerc=&quot; + vPerc + &quot;, vMperc=&quot; + vMperc +\r\n      &quot;, szam=&quot; + szam + &quot;, mobil=&quot; + mobil + &quot;, csucs=&quot; +\r\n      csucs + &quot;, hossz=&quot; + hosszPercek + &quot;, koltseg=&quot; + koltseg + '}';\r\n  }\r\n\r\n  public static boolean mobilHivas( String szam )\r\n  {\r\n    return szam.startsWith( &quot;39&quot; )\r\n      || szam.startsWith( &quot;41&quot; )\r\n      || szam.startsWith( &quot;71&quot; );\r\n  }\r\n\r\n  public static int hivashossz( int kOra, int kPerc, int kMperc,\r\n                                int vOra, int vPerc, int vMperc )\r\n  {\r\n    int hosszMp = (vOra * 3600 + vPerc * 60 + vMperc) - (kOra * 3600 + kPerc * 60 + kMperc);\r\n    \r\n    int percek = hosszMp \/ 60;\r\n    \r\n    if( hosszMp % 60 != 0 )\r\n    {\r\n      percek++;\r\n    }\r\n    \r\n    return percek;\r\n  }\r\n}\r\n<\/pre>\n<p>A feladat megold\u00e1sai:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\/**\r\n *\r\n * @author https:\/\/webotlet.hu\r\n *\/\r\n\r\npackage webotlet_06feb_szamla_java_v2;\r\n\r\nimport java.io.IOException;\r\nimport java.io.RandomAccessFile;\r\nimport java.util.ArrayList;\r\nimport java.util.Scanner;\r\n\r\npublic class Webotlet_06feb_szamla_java_v2\r\n{\r\n  public static void main( String&#x5B;] args )\r\n  {\r\n    ArrayList&lt;Hivas&gt; hivasok = new ArrayList&lt;&gt;();\r\n\r\n\/\/ 1. feladat\r\n    System.out.println( &quot;1. feladat&quot; );\r\n    Scanner sc = new Scanner(System.in);\r\n    System.out.print( &quot;Adj meg egy telefonszamot: &quot; );\r\n    String szam = sc.nextLine();\r\n    \r\n    if( Hivas.mobilHivas( szam ) )\r\n    {\r\n      System.out.println( &quot;A telefonszam mobil.&quot; );\r\n    }\r\n    else\r\n    {\r\n      System.out.println( &quot;A telefonszam NEM mobil.&quot; );\r\n    }\r\n\r\n\/\/ 2. feladat\r\n    System.out.println( &quot;2. feladat&quot; );\r\n    System.out.print( &quot;Add meg egy hivas kezdesi es befejezesi &quot;+\r\n                      &quot;idopontjat\\n(pl: 6 15 0 6 19 0): &quot; );\r\n    String&#x5B;] idok = sc.nextLine().split(&quot; &quot;);\r\n    int hossz = Hivas.hivashossz( Integer.parseInt(idok&#x5B;0]),\r\n                                  Integer.parseInt(idok&#x5B;1]),\r\n                                  Integer.parseInt(idok&#x5B;2]),\r\n                                  Integer.parseInt(idok&#x5B;3]),\r\n                                  Integer.parseInt(idok&#x5B;4]),\r\n                                  Integer.parseInt(idok&#x5B;5]) );\r\n    System.out.println( &quot;A hivas hossza percben: &quot;+hossz );\r\n    \r\n    try\r\n    {\r\n\/\/ 3. feladat\r\n      int db;\r\n      String sor;\r\n\r\n      RandomAccessFile raf = new RandomAccessFile(&quot;hivasok.txt&quot;,&quot;r&quot;);\r\n      \r\n      for( sor = raf.readLine(); sor != null; sor = raf.readLine() )\r\n      {\r\n        hivasok.add(new Hivas( sor.split(&quot; &quot;), raf.readLine() ));\r\n      }\r\n      raf.close();\r\n      \r\n      RandomAccessFile ki = new RandomAccessFile(&quot;percek.txt&quot;,&quot;rw&quot;);\r\n      ki.setLength(0);\r\n\r\n      for( Hivas h : hivasok )\r\n      {\r\n        ki.writeBytes( h.getHosszPercek()+&quot; &quot;+h.getSzam()+&quot;\\n&quot; );\r\n      }\r\n      ki.close();\r\n    }\r\n    catch( IOException e )\r\n    {\r\n      System.err.println( &quot;HIBA&quot; );\r\n    }\r\n\r\n\/\/ 4. feladat\r\n    System.out.println( &quot;4. feladat&quot; );\r\n    int csucsdb = 0;\r\n    \r\n    for( Hivas h : hivasok)\r\n    {\r\n      if( h.isCsucs() )\r\n      {\r\n        csucsdb++;\r\n      }\r\n    }\r\n    \r\n    System.out.println( &quot;Csucsidobeli hivas: &quot;+csucsdb+&quot; db&quot; );\r\n    System.out.println( &quot;Csucsidon kivuli hivas: &quot;+(hivasok.size()-csucsdb)+&quot; db&quot; );\r\n\r\n\/\/ 5. feladat\r\n    System.out.println( &quot;5. feladat&quot; );\r\n    int vezperc = 0;\r\n    int mobilperc = 0;\r\n    \r\n    for( Hivas h : hivasok)\r\n    {\r\n      if( h.isMobil() )\r\n      {\r\n        mobilperc += h.getHosszPercek();\r\n      }\r\n      else\r\n      {\r\n        vezperc += h.getHosszPercek();\r\n      }\r\n    }\r\n\r\n    System.out.println( &quot;Mobil percek: &quot;+mobilperc+&quot; perc&quot; );\r\n    System.out.println( &quot;Vezetekes percek: &quot;+vezperc+&quot; perc&quot; );\r\n\r\n\/\/ 6. feladat\r\n    System.out.println( &quot;6. feladat&quot; );\r\n    double cskoltseg = 0;\r\n    \r\n    for( Hivas h : hivasok)\r\n    {\r\n      if( h.isCsucs() )\r\n      {\r\n        cskoltseg += h.getKoltseg();\r\n      }\r\n    }\r\n\r\n    System.out.println( &quot;A csucsidos hivasok koltsege: &quot;+cskoltseg );\r\n  }\r\n}\r\n<\/pre>\n<p>Ha hib\u00e1t tal\u00e1lsz benne, k\u00e9rlek jelezd!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A feladat le\u00edr\u00e1s\u00e1t, melynek a megold\u00e1s\u00e1t k\u00f6zz\u00e9teszem innen t\u00f6ltheted le. Ez a megold\u00e1s list\u00e1val dolgozik. Az adatt\u00e1rol\u00f3 oszt\u00e1lyban m\u00e1r bel\u00fcl sok feladatot el\u0151k\u00e9sz\u00edtek, \u00e9s a v\u00e9gs\u0151 megold\u00e1sban csak ezeket haszn\u00e1lom. A t\u00e1rol\u00f3 oszt\u00e1lyban statikus met\u00f3dusokat is haszn\u00e1lok, mely az 1. <a class=\"more-link\" href=\"https:\/\/www.webotlet.hu\/?p=2803\">Tov\u00e1bb <span class=\"screen-reader-text\">  Java programoz\u00e1s &#8211; 2006 febru\u00e1ri emelt informatika \u00e9retts\u00e9gi programoz\u00e1si feladat\u00e1nak megold\u00e1sa (2. verzi\u00f3)<\/span><span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[106],"tags":[107,109,86,144,20,58],"class_list":["post-2803","post","type-post","status-publish","format-standard","hentry","category-java-emelt-erettsegi-feladatok","tag-emelt-erettsegi","tag-emelt-informatika-erettsegi","tag-java","tag-java_programozas","tag-objektum","tag-osztaly"],"_links":{"self":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/2803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2803"}],"version-history":[{"count":4,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/2803\/revisions"}],"predecessor-version":[{"id":2821,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/2803\/revisions\/2821"}],"wp:attachment":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}