{"id":1478,"date":"2015-05-19T11:19:56","date_gmt":"2015-05-19T09:19:56","guid":{"rendered":"http:\/\/www.webotlet.hu\/?p=1478"},"modified":"2015-05-19T11:19:56","modified_gmt":"2015-05-19T09:19:56","slug":"java-egyperces-kombinalt-megszamlalas-megoldasa","status":"publish","type":"post","link":"https:\/\/www.webotlet.hu\/?p=1478","title":{"rendered":"Java egyperces &#8211; Kombin\u00e1lt megsz\u00e1ml\u00e1l\u00e1s megold\u00e1sa"},"content":{"rendered":"<h3><strong>Csak akkor olvass tov\u00e1bb, ha az <a href=\"http:\/\/www.webotlet.hu\/?p=1461\">Kombin\u00e1lt megsz\u00e1ml\u00e1l\u00e1s<\/a> feladatot megoldottad, vagy nem siker\u00fclt megoldani.<\/strong><\/h3>\n<p>Az alap feladatot a fenti linken megtal\u00e1lod, az ott bemeneti adatokat fogom haszn\u00e1lni.<\/p>\n<p>A feladatot k\u00e9t oszt\u00e1ly \u00edr\u00e1s\u00e1val oldom meg. El\u0151sz\u00f6r kell egy Hivas oszt\u00e1ly, amely a beolvasott adatokat t\u00e1rolja, \u00e9s azokb\u00f3l k\u00fcl\u00f6nf\u00e9le tulajdons\u00e1gokat sz\u00e1m\u00edt ki. A tulajdons\u00e1gokb\u00f3l az \u00f3ra \u00e9s m\u00e1sodperc t\u00e1rol\u00e1s\u00e1t kihagytam, ennek a feladatnak nincs r\u00e1 sz\u00fcks\u00e9ge. Term\u00e9szetesen ha h\u00edv\u00e1shossz vagy valami m\u00e1s sz\u00e1m\u00edtott adatra lenne sz\u00fcks\u00e9g, akkor azokat is t\u00e1roln\u00e1m a megfelel\u0151 helyen.<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\/**\r\n *\r\n * @author http:\/\/webotlet.hu\r\n *\/\r\npackage webotlet_kombinaltmegszamlalas;\r\n\r\npublic class Hivas\r\n{\r\n  private String szam;\r\n  private String ido;\r\n  private int ora;\r\n  private boolean csucs;\r\n  private boolean mobil;\r\n\r\n  public Hivas(String&#x5B;] tomb)\r\n  {\r\n    szam = tomb&#x5B;0].substring(3);\r\n    ido = tomb&#x5B;1];\r\n    ora = Integer.parseInt(ido.split(&quot;:&quot;)&#x5B;0]);\r\n    csucs = ora &gt;= 8 &amp;&amp; ora &lt; 18;\r\n    mobil = szam.startsWith(&quot;21&quot;) || szam.startsWith(&quot;31&quot;) ||\r\n            szam.startsWith(&quot;71&quot;);\r\n  }\r\n\r\n  public int getOra()\r\n  {\r\n    return ora;\r\n  }\r\n\r\n  public boolean isCsucs()\r\n  {\r\n    return csucs;\r\n  }\r\n\r\n  public boolean isMobil()\r\n  {\r\n    return mobil;\r\n  }\r\n}\r\n<\/pre>\n<p>Akkor j\u00f6jj\u00f6n az oszt\u00e1ly, mely a f\u00e1jlkezel\u00e9st v\u00e9gzi, megsz\u00e1molja a megfelel\u0151 tulajdons\u00e1g\u00fa objektumokat \u00e9s ki\u00edrja a v\u00e9geredm\u00e9nyt:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\/**\r\n *\r\n * @author http:\/\/webotlet.hu\r\n *\/\r\npackage webotlet_kombinaltmegszamlalas;\r\n\r\nimport java.io.*;\r\nimport java.util.ArrayList;\r\n\r\npublic class Webotlet_KombinaltMegszamlalas\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    String sor;\r\n    RandomAccessFile raf;\r\n\r\n    try\r\n    {\r\n      raf = new RandomAccessFile( &quot;kombihivasok.csv&quot;,&quot;r&quot;);\r\n      raf.readLine();\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;) ) );\r\n      }\r\n      raf.close();\r\n\r\n\/\/ ora: cs, ncs, m, v\r\n\/\/ cs - csucsido, ncs - nem csucsido, m - mobil, v - vezetekes\r\n      int&#x5B;]&#x5B;] db = new int&#x5B;24]&#x5B;4];\r\n      int ora;\r\n      for( Hivas h : hivasok )\r\n      {\r\n        ora = h.getOra();\r\n\/\/ csucsideju, nem csucsideju\r\n        if( h.isCsucs() ) db&#x5B;ora]&#x5B;0]++;\r\n        else db&#x5B;ora]&#x5B;1]++;\r\n\r\n\/\/  mobil, vezetekes\r\n        if( h.isMobil() ) db&#x5B;ora]&#x5B;2]++;\r\n        else db&#x5B;ora]&#x5B;3]++;\r\n      }\r\n\r\n      for( int i = 0; i &lt; db.length; i++ )\r\n      {\r\n        System.out.println( i+&quot;. ora: &quot;+db&#x5B;i]&#x5B;0]+&quot;, &quot;+db&#x5B;i]&#x5B;1]+\r\n                            &quot;, &quot;+db&#x5B;i]&#x5B;2]+&quot;, &quot;+db&#x5B;i]&#x5B;3] );\r\n      }\r\n\r\n    }\r\n    catch( IOException e )\r\n    {\r\n      System.err.println(&quot;HIBA&quot;);\r\n    }\r\n  }\r\n}\r\n<\/pre>\n<p>Ha megfigyeled, a t\u00f6bbsz\u00f6r\u00f6s megsz\u00e1ml\u00e1l\u00e1st kombin\u00e1ltam egy t\u00f6bbdimenzi\u00f3s t\u00f6mbbel. A t\u00f6mb indexei jelentik azt az \u00f3r\u00e1t, melyen bel\u00fcl k\u00fcl\u00f6n \u00f6ssze kell sz\u00e1molni az adott tulajdons\u00e1g\u00fa objektumokat. A 2. dimenzi\u00f3, az oszlopok, gyakorlatilag azt a 4 adatot tartalmazza, ah\u00e1ny fajta sz\u00e1mot kell t\u00e1rolni az egyes \u00f3r\u00e1khoz. Az oszlopok sz\u00e1ma term\u00e9szetesen b\u0151v\u00edthet\u0151, ha a feladat \u00fagy k\u00edv\u00e1nja, amire oda kell figyelni az az, hogy melyik oszlop milyen megsz\u00e1ml\u00e1lt tulajdons\u00e1got jelent.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Csak akkor olvass tov\u00e1bb, ha az Kombin\u00e1lt megsz\u00e1ml\u00e1l\u00e1s feladatot megoldottad, vagy nem siker\u00fclt megoldani. Az alap feladatot a fenti linken megtal\u00e1lod, az ott bemeneti adatokat fogom haszn\u00e1lni. A feladatot k\u00e9t oszt\u00e1ly \u00edr\u00e1s\u00e1val oldom meg. El\u0151sz\u00f6r kell egy Hivas oszt\u00e1ly, amely <a class=\"more-link\" href=\"https:\/\/www.webotlet.hu\/?p=1478\">Tov\u00e1bb <span class=\"screen-reader-text\">  Java egyperces &#8211; Kombin\u00e1lt megsz\u00e1ml\u00e1l\u00e1s megold\u00e1sa<\/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":[95],"tags":[86,120,87,143,65],"class_list":["post-1478","post","type-post","status-publish","format-standard","hentry","category-egyperces-feladatok-megoldasai","tag-java","tag-ketdimenzios-tomb","tag-megszamlalas","tag-programozas","tag-tobbdimenzios-tomb"],"_links":{"self":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1478","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=1478"}],"version-history":[{"count":3,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1478\/revisions"}],"predecessor-version":[{"id":1482,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1478\/revisions\/1482"}],"wp:attachment":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1478"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}