{"id":2823,"date":"2019-11-06T09:21:42","date_gmt":"2019-11-06T08:21:42","guid":{"rendered":"http:\/\/www.webotlet.hu\/?p=2823"},"modified":"2020-01-15T12:44:05","modified_gmt":"2020-01-15T11:44:05","slug":"java-programozas-2006-oktoberi-emelt-informatika-erettsegi-programozasi-feladatanak-megoldasa-2-verzio","status":"publish","type":"post","link":"https:\/\/www.webotlet.hu\/?p=2823","title":{"rendered":"Java programoz\u00e1s &#8211; 2006 okt\u00f3beri 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_06okt_zenei_adok.pdf\">innen<\/a> t\u00f6ltheted le. Ezzel a feladattal viszont t\u00f6bb bajom van, amiket az <a href=\"http:\/\/www.webotlet.hu\/?p=2793\">1. verzi\u00f3<\/a> megold\u00e1s\u00e1n\u00e1l le\u00edrtam. Ez a megold\u00e1s list\u00e1val dolgozik, sok helyen foreach ciklust haszn\u00e1lok, \u00e9s egy helyen bemutatok egy switch utas\u00edt\u00e1st m\u0171k\u00f6d\u00e9s k\u00f6zben.<\/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\npackage webotlet_06okt_zenei_adok_java_v2;\r\n\r\npublic class Zene\r\n{\r\n  private int radio;\r\n  private int perc;\r\n  private int mperc;\r\n  private String azonosito;\r\n  private String eloado;\r\n  private String cim;\r\n  \r\n  \r\n  private int hosszMp;\r\n  private int kezd;\r\n  private int vege;\r\n  \r\n  public Zene( String&#x5B;] tomb )\r\n  {\r\n    radio = Integer.parseInt(tomb&#x5B;0]);\r\n    perc = Integer.parseInt(tomb&#x5B;1]);\r\n    mperc = Integer.parseInt(tomb&#x5B;2]);\r\n    azonosito = tomb&#x5B;3];\r\n    String&#x5B;] tmp = azonosito.split(&quot;:&quot;);\r\n    eloado = tmp&#x5B;0];\r\n    cim = tmp&#x5B;1];\r\n    \r\n    hosszMp = perc * 60 + mperc;\r\n  }\r\n\r\n  public int getRadio()\r\n  {\r\n    return radio;\r\n  }\r\n\r\n  public int getPerc()\r\n  {\r\n    return perc;\r\n  }\r\n\r\n  public int getMperc()\r\n  {\r\n    return mperc;\r\n  }\r\n\r\n  public String getAzonosito()\r\n  {\r\n    return azonosito;\r\n  }\r\n  \r\n  public String getEloado()\r\n  {\r\n    return eloado;\r\n  }\r\n\r\n  public String getCim()\r\n  {\r\n    return cim;\r\n  }\r\n\r\n  public int getHosszMp()\r\n  {\r\n    return hosszMp;\r\n  }\r\n\r\n  public int getKezd()\r\n  {\r\n    return kezd;\r\n  }\r\n\r\n  public int getVege()\r\n  {\r\n    return vege;\r\n  }\r\n  \r\n  public void setKezd(int kezd)\r\n  {\r\n    this.kezd = kezd;\r\n    this.vege = kezd + hosszMp;\r\n  }\r\n\r\n  @Override\r\n  public String toString()\r\n  {\r\n    return &quot;Zene{&quot; + &quot;radio=&quot; + radio + &quot;, perc=&quot; + perc\r\n      + &quot;, mperc=&quot; + mperc + &quot;, azonosito=&quot; + azonosito + &quot;, eloado=&quot;\r\n      + eloado + &quot;, cim=&quot; + cim + &quot;, hosszMp=&quot; + hosszMp\r\n      + &quot;, kezd=&quot; + kezd + &quot;, vege=&quot; + vege + '}';\r\n  }\r\n}\r\n<\/pre>\n<p>A feladat megold\u00e1sa:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\/**\r\n *\r\n * @author https:\/\/webotlet.hu\r\n *\/\r\npackage webotlet_06okt_zenei_adok_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_06okt_zenei_adok_java_v2\r\n{\r\n  public static void main(String&#x5B;] args)\r\n  {\r\n    \/\/ 1. feladat\r\n    ArrayList&lt;Zene&gt; zenek = new ArrayList&lt;&gt;();\r\n    \r\n    try\r\n    {\r\n      RandomAccessFile raf = new RandomAccessFile(&quot;musor.txt&quot;, &quot;r&quot;);\r\n      raf.readLine();\r\n      String sor;\r\n      \r\n      for( sor = raf.readLine(); sor != null; sor = raf.readLine() )\r\n      {\r\n        zenek.add(new Zene(sor.split(&quot; &quot;, 4)));\r\n      }\r\n      raf.close();\r\n    }\r\n    catch( IOException e )\r\n    {\r\n      System.out.println(&quot;HIBA&quot;);\r\n    }\r\n\r\n    \r\n    \/\/ 2. feladat\r\n    System.out.println(&quot;2. feladat&quot;);\r\n    \r\n    int&#x5B;] dbRadiok = new int&#x5B;4];\r\n    \r\n    for( Zene zene : zenek)\r\n    {\r\n      dbRadiok&#x5B;zene.getRadio()]++;\r\n    }\r\n        \r\n    for( int i = 1; i &lt; dbRadiok.length; i++ )\r\n    {\r\n      System.out.println(i + &quot;. radio: &quot; + dbRadiok&#x5B;i]);\r\n    }\r\n    \r\n    \/\/ 3. feladat\r\n    System.out.println(&quot;3. feladat&quot;);\r\n    \r\n    int elsoEric = 0;\r\n    int utolsoEric = 0;\r\n    \r\n    for( int i = 0; i &lt; zenek.size(); i++ )\r\n    {\r\n      if( zenek.get(i).getRadio() == 1 &amp;&amp; zenek.get(i).getEloado().equals(&quot;Eric Clapton&quot;))\r\n      {\r\n        elsoEric = i;\r\n        break;\r\n      }\r\n    }\r\n\r\n    for( int i = zenek.size() - 1; i &gt;= 0; i-- )\r\n    {\r\n      if( zenek.get(i).getRadio() == 1 &amp;&amp; zenek.get(i).getEloado().equals(&quot;Eric Clapton&quot;))\r\n      {\r\n        utolsoEric = i;\r\n        break;\r\n      }\r\n    }\r\n    \r\n    int ido = 0;\r\n    \r\n    for( int i = elsoEric; i &lt;= utolsoEric; i++ )\r\n    {\r\n      if( zenek.get(i).getRadio() == 1 )\r\n      {\r\n        ido += zenek.get(i).getHosszMp();\r\n      }\r\n    }\r\n\r\n    System.out.println(idoFormaz(ido));\r\n    \r\n    \/\/ 4. feladat\r\n    System.out.println(&quot;4. feladat&quot;);\r\n    \r\n    int radio1 = 0;\r\n    int radio2 = 0;\r\n    int radio3 = 0;\r\n    \r\n    for( Zene zene : zenek)\r\n    {\r\n      switch( zene.getRadio() )\r\n      {\r\n        case 1:\r\n          zene.setKezd(radio1);\r\n          radio1 += zene.getHosszMp();\r\n          break;\r\n        case 2:\r\n          zene.setKezd(radio2);\r\n          radio2 += zene.getHosszMp();\r\n          break;\r\n        default:\r\n          zene.setKezd(radio3);\r\n          radio3 += zene.getHosszMp();\r\n          break;\r\n      }\r\n    }\r\n    \r\n    Zene omega = null;\r\n\r\n    for( Zene zene : zenek)\r\n    {\r\n      if( zene.getAzonosito().equals(&quot;Omega:Legenda&quot;) )\r\n      {\r\n        omega = zene;\r\n        break;\r\n      }\r\n    }\r\n    \r\n    System.out.println(&quot;Az Omega:Legenda zene a &quot;\r\n      + omega.getRadio() + &quot;. radion szolt.&quot;);\r\n    \r\n    for( Zene zene : zenek)\r\n    {\r\n      if( zene.getRadio() != omega.getRadio() )\r\n      {\r\n        if( omega.getKezd() &gt;= zene.getKezd()\r\n          &amp;&amp; omega.getKezd() &lt;= zene.getVege() )\r\n        {\r\n          System.out.println(zene.getRadio() + &quot;: &quot; \r\n            + zene.getEloado() + &quot;-&quot; + zene.getCim());\r\n        }\r\n      }\r\n    }\r\n    \r\n    \/\/ 5. feladat\r\n    System.out.println(&quot;5. feladat&quot;);\r\n    \r\n    Scanner sc = new Scanner(System.in);\r\n    System.out.println(&quot;Add meg a felismert karaktereket!&quot;);\r\n    String mintasor = sc.nextLine().toLowerCase();\r\n    \r\n    char&#x5B;] minta = mintasor.toCharArray();\r\n    try\r\n    {\r\n      RandomAccessFile ki =new RandomAccessFile(&quot;keres.txt&quot;, &quot;rw&quot;);\r\n      ki.setLength(0);\r\n      ki.writeBytes(mintasor + &quot;\\n&quot;);\r\n      \r\n      for( Zene zene : zenek)\r\n      {\r\n        String dal = zene.getAzonosito().toLowerCase();\r\n        int talalt = 0;\r\n        for( int j = 0; j &lt; dal.length(); j++ )\r\n        {\r\n          if( talalt &lt; minta.length &amp;&amp; dal.charAt(j) == minta&#x5B;talalt])\r\n          {\r\n            talalt++;\r\n          }\r\n        }\r\n        \r\n        if( talalt == minta.length )\r\n        {\r\n          ki.writeBytes(zene.getAzonosito()+&quot;\\n&quot;);\r\n        }\r\n      }\r\n    }\r\n    catch( IOException e )\r\n    {\r\n      System.out.println(&quot;HIBA&quot;);\r\n    }\r\n\r\n    \/\/ 6. feladat\r\n    System.out.println(&quot;6. feladat&quot;);\r\n    int musorido = 0;\r\n    \r\n    for( Zene zene : zenek)\r\n    {\r\n      if( zene.getRadio() == 1 )\r\n      {\r\n        if( 3600 - (musorido % 3600) &lt; (60 + zene.getHosszMp()) )\r\n        {\r\n          musorido += 3600 - (musorido % 3600);\r\n          musorido += 180;\r\n        }\r\n        musorido += 60 + zene.getHosszMp();\r\n      }\r\n    }\r\n    \r\n    System.out.println(idoFormaz(musorido));\r\n  }\r\n  \r\n  public static String idoFormaz(int hossz)\r\n  {\r\n    int ora;\r\n    int perc;\r\n    int mperc;\r\n    \r\n    ora = hossz \/ 3600;\r\n    hossz = hossz % 3600;\r\n    perc = hossz \/ 60;\r\n    mperc = hossz % 60;\r\n    return ora + &quot;:&quot; + perc + &quot;:&quot; + mperc;\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. Ezzel a feladattal viszont t\u00f6bb bajom van, amiket az 1. verzi\u00f3 megold\u00e1s\u00e1n\u00e1l le\u00edrtam. Ez a megold\u00e1s list\u00e1val dolgozik, sok helyen foreach ciklust haszn\u00e1lok, \u00e9s egy helyen bemutatok egy switch utas\u00edt\u00e1st <a class=\"more-link\" href=\"https:\/\/www.webotlet.hu\/?p=2823\">Tov\u00e1bb <span class=\"screen-reader-text\">  Java programoz\u00e1s &#8211; 2006 okt\u00f3beri 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,22,86,144,25],"class_list":["post-2823","post","type-post","status-publish","format-standard","hentry","category-java-emelt-erettsegi-feladatok","tag-emelt-erettsegi","tag-emelt-informatika-erettsegi","tag-fajlkezeles","tag-java","tag-java_programozas","tag-randomaccessfile"],"_links":{"self":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/2823","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=2823"}],"version-history":[{"count":1,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/2823\/revisions"}],"predecessor-version":[{"id":2825,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/2823\/revisions\/2825"}],"wp:attachment":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2823"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2823"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2823"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}