{"id":3010,"date":"2019-12-19T14:36:54","date_gmt":"2019-12-19T13:36:54","guid":{"rendered":"https:\/\/www.webotlet.hu\/?p=3010"},"modified":"2019-12-19T14:36:54","modified_gmt":"2019-12-19T13:36:54","slug":"java-programozas-2017-majusi-emelt-informatika-erettsegi-tesztverseny-2-verzio","status":"publish","type":"post","link":"https:\/\/www.webotlet.hu\/?p=3010","title":{"rendered":"Java programoz\u00e1s \u2013 2017 m\u00e1jusi emelt informatika \u00e9retts\u00e9gi \u2013 tesztverseny (2. verzi\u00f3)"},"content":{"rendered":"<p>A feladat le\u00edr\u00e1s\u00e1t, melynek a megold\u00e1s\u00e1t k\u00f6zz\u00e9teszem <a href=\"https:\/\/www.webotlet.hu\/wp-content\/uploads\/2019\/12\/e_inf_17maj_tesztverseny.pdf\">innen<\/a> t\u00f6ltheted le. Ez a megold\u00e1s list\u00e1val dolgozik. Az utols\u00f3 feladatra k\u00e9t megold\u00e1st adtam. Tal\u00e1n a for ciklusos jutna t\u00f6bbeknek esz\u00e9be, de ez do-while ciklussal tipikusan eleg\u00e1nsabb.<\/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_17maj_tesztverseny_v2;\r\n\r\npublic class Versenyzo\r\n{\r\n  private String kod;\r\n  private String valaszok;\r\n  private int pontszam;\r\n  \r\n  public Versenyzo( String&#x5B;] tomb )\r\n  {\r\n    kod = tomb&#x5B;0];\r\n    valaszok = tomb&#x5B;1];\r\n  }\r\n\r\n  public String getKod()\r\n  {\r\n    return kod;\r\n  }\r\n\r\n  public String getValaszok()\r\n  {\r\n    return valaszok;\r\n  }\r\n\r\n  public int getPontszam()\r\n  {\r\n    return pontszam;\r\n  }\r\n\r\n  public void setPontszam(int pontszam)\r\n  {\r\n    this.pontszam = pontszam;\r\n  }\r\n\r\n  @Override\r\n  public String toString()\r\n  {\r\n    return &quot;Versenyzo{&quot; + &quot;kod=&quot; + kod + &quot;, valaszok=&quot;\r\n      + valaszok + &quot;, pontszam=&quot; + pontszam + '}';\r\n  }\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\npackage webotlet_17maj_tesztverseny_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_17maj_tesztverseny_v2\r\n{\r\n  public static void main(String&#x5B;] args)\r\n  {\r\n    ArrayList&lt;Versenyzo&gt; versenyzok = new ArrayList&lt;&gt;();\r\n    String helyes = null;\r\n    \r\n    try\r\n    {\r\n      RandomAccessFile raf = new RandomAccessFile(&quot;valaszok.txt&quot;, &quot;r&quot;);\r\n      String sor;\r\n      helyes = raf.readLine();\r\n      for( sor = raf.readLine(); sor != null; sor = raf.readLine() )\r\n      {\r\n        versenyzok.add(new Versenyzo(sor.split(&quot; &quot;)));\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\/\/    for( int i = 0; i &lt; versenyzok.length; i++ )\r\n\/\/    {\r\n\/\/      System.out.println(versenyzok.get(i).toString());\r\n\/\/    }\r\n    \r\n    System.out.println(&quot;2. feladat: A vetelkedon &quot; + versenyzok.size()\r\n      + &quot; versenyzo indult.\\n&quot;);\r\n    \r\n    System.out.print(&quot;3. feladat: A versenyzo azonositoja = &quot;);\r\n    Scanner sc = new Scanner(System.in);\r\n    String azon = sc.nextLine();\r\n    Versenyzo v = null;\r\n    \r\n    for( Versenyzo versenyzo : versenyzok)\r\n    {\r\n      if( versenyzo.getKod().equals(azon) )\r\n      {\r\n        v = versenyzo;\r\n        break;\r\n      }\r\n    }\r\n    \r\n    System.out.println(v.getValaszok()\r\n      + &quot;   (a versenyzo valasza)\\n&quot;);\r\n    \r\n    System.out.println(&quot;4. feladat:&quot;);\r\n    System.out.println(helyes + &quot;   (helyes megoldas)&quot;);\r\n    for( int i = 0; i &lt; helyes.length(); i++ )\r\n    {\r\n      if( v.getValaszok().charAt(i) == helyes.charAt(i) )\r\n      {\r\n        System.out.print(&quot;+&quot;);\r\n      }\r\n      else\r\n      {\r\n        System.out.print(&quot; &quot;);\r\n      }\r\n    }\r\n    System.out.println(&quot;   (a versenyzo helyes valaszai)\\n&quot;);\r\n    \r\n    System.out.print(&quot;5. feladat: A feladat sorszama = &quot;);\r\n    int szam = sc.nextInt() - 1; \/\/ a tombindex 1-gyel kisebb a sorszamtol\r\n    \r\n    int jo = 0;\r\n    for( Versenyzo versenyzo : versenyzok)\r\n    {\r\n      if( versenyzo.getValaszok().charAt(szam) == helyes.charAt(szam) )\r\n      {\r\n        jo++;\r\n      }\r\n    }\r\n\r\n    double szazalek = (double)jo \/ versenyzok.size() * 100;\r\n    System.out.println(String.format(&quot;A feladatra %d fo, a &quot;\r\n      + &quot;versenyzok %.2f%%-a adott helyes valaszt.%n&quot;,\r\n      versenyzok.size(), szazalek));\r\n    \r\n    \/\/ 6. feladat\r\n    int&#x5B;] pontok = {3,3,3,3,3,4,4,4,4,4,5,5,5,6};\r\n    for( Versenyzo versenyzo : versenyzok)\r\n    {\r\n      int pontszam = 0;\r\n      for( int j = 0; j &lt; versenyzo.getValaszok().length(); j++ )\r\n      {\r\n        if( versenyzo.getValaszok().charAt(j) == helyes.charAt(j) )\r\n        {\r\n          pontszam += pontok&#x5B;j];\r\n        }\r\n      }\r\n      versenyzo.setPontszam(pontszam);\r\n    }\r\n    \r\n    try\r\n    {\r\n      RandomAccessFile ki = new RandomAccessFile(&quot;pontok.txt&quot;, &quot;rw&quot;);\r\n      ki.setLength(0);\r\n      \r\n      for( Versenyzo versenyzo : versenyzok)\r\n      {\r\n        ki.writeBytes(versenyzo.getKod() + &quot; &quot; + versenyzo.getPontszam() + &quot;\\n&quot;);\r\n      }\r\n      ki.close();\r\n    }\r\n    catch( IOException e )\r\n    {\r\n      System.out.println(&quot;HIBA&quot;);\r\n    }\r\n    \r\n    System.out.println(&quot;7. feladat: A verseny legjobbjai:&quot;);\r\n    for( int i = 0; i &lt; versenyzok.size() - 1; i++ )\r\n    {\r\n      for( int j = i + 1; j &lt; versenyzok.size(); j++ )\r\n      {\r\n        if( versenyzok.get(i).getPontszam() &lt; versenyzok.get(j).getPontszam() )\r\n        {\r\n          Versenyzo csere = versenyzok.get(i);\r\n          versenyzok.set(i, versenyzok.get(j));\r\n          versenyzok.set(j, csere);\r\n        }\r\n      }\r\n    }\r\n\r\n    \/\/ 7. feladat egyik valtozat\r\n    int helyezes = 1;\r\n    System.out.println(&quot;1. dij (&quot; + versenyzok.get(0).getPontszam()\r\n      + &quot; pont): &quot; + versenyzok.get(0).getKod());\r\n    \r\n    for( int i = 1; i &lt; versenyzok.size(); i++ )\r\n    {\r\n      if( versenyzok.get(i).getPontszam() != versenyzok.get(i - 1).getPontszam() )\r\n      {\r\n        helyezes++;\r\n      }\r\n      \r\n      if( helyezes &lt;= 3 )\r\n      {\r\n        System.out.println(helyezes + &quot;. dij (&quot; + versenyzok.get(i).getPontszam()\r\n          + &quot; pont): &quot; + versenyzok.get(i).getKod());\r\n      }\r\n      else\r\n      {\r\n        break;\r\n      }\r\n    }\r\n    System.out.println();\r\n    \r\n    \/\/ 7. feladat maskepp\r\n    System.out.println(&quot;7. feladat maskepp:&quot;);\r\n    \r\n    helyezes = 1;\r\n    int i = 0;\r\n    do\r\n    {\r\n      System.out.println(helyezes + &quot;. dij (&quot; + versenyzok.get(i).getPontszam()\r\n        + &quot; pont): &quot; + versenyzok.get(i).getKod());\r\n      i++;\r\n      if( versenyzok.get(i).getPontszam() != versenyzok.get(i - 1).getPontszam() )\r\n      {\r\n        helyezes++;\r\n      }\r\n    }\r\n    while( helyezes != 4);\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 utols\u00f3 feladatra k\u00e9t megold\u00e1st adtam. Tal\u00e1n a for ciklusos jutna t\u00f6bbeknek esz\u00e9be, de ez do-while ciklussal tipikusan eleg\u00e1nsabb. Adatt\u00e1rol\u00f3 oszt\u00e1ly: \/** * * @author <a class=\"more-link\" href=\"https:\/\/www.webotlet.hu\/?p=3010\">Tov\u00e1bb <span class=\"screen-reader-text\">  Java programoz\u00e1s \u2013 2017 m\u00e1jusi emelt informatika \u00e9retts\u00e9gi \u2013 tesztverseny (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":[108,107,109,86,144,16,143,183,25,26],"class_list":["post-3010","post","type-post","status-publish","format-standard","hentry","category-java-emelt-erettsegi-feladatok","tag-emelt","tag-emelt-erettsegi","tag-emelt-informatika-erettsegi","tag-java","tag-java_programozas","tag-lista","tag-programozas","tag-programozas-feladat","tag-randomaccessfile","tag-szovegfajl"],"_links":{"self":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/3010","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=3010"}],"version-history":[{"count":1,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/3010\/revisions"}],"predecessor-version":[{"id":3011,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/3010\/revisions\/3011"}],"wp:attachment":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3010"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3010"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}