{"id":2995,"date":"2019-12-19T09:16:17","date_gmt":"2019-12-19T08:16:17","guid":{"rendered":"https:\/\/www.webotlet.hu\/?p=2995"},"modified":"2019-12-27T18:43:03","modified_gmt":"2019-12-27T17:43:03","slug":"java-programozas-2017-oktoberi-emelt-informatika-erettsegi-hianyzasok-2-verzio","status":"publish","type":"post","link":"https:\/\/www.webotlet.hu\/?p=2995","title":{"rendered":"Java programoz\u00e1s \u2013 2017 okt\u00f3beri emelt informatika \u00e9retts\u00e9gi \u2013 hi\u00e1nyz\u00e1sok (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_17okt_hianyzasok.pdf\">innen<\/a> t\u00f6ltheted le. A megold\u00e1st \u00e1t\u00edrtam list\u00e1ra, ami a 7. feladatban t\u00f6bb helyen is egyszer\u0171s\u00edtette a dolgom, valamint a beolvas\u00e1s is r\u00f6videbb lett.<\/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_17okt_hianyzasok_v2;\r\n\r\npublic class Hianyzo\r\n{\r\n  private String nev;\r\n  private int honap;\r\n  private int nap;\r\n  private String hianyzas;\r\n  \r\n  public Hianyzo(String&#x5B;] tomb, String datum)\r\n  {\r\n    nev = tomb&#x5B;0] + &quot; &quot; + tomb&#x5B;1];\r\n    String&#x5B;] tmp = datum.split(&quot; &quot;);\r\n    honap = Integer.parseInt(tmp&#x5B;1]);\r\n    nap = Integer.parseInt(tmp&#x5B;2]);\r\n    hianyzas = tomb&#x5B;2];\r\n  }\r\n\r\n  public String getNev()\r\n  {\r\n    return nev;\r\n  }\r\n\r\n  public int getHonap()\r\n  {\r\n    return honap;\r\n  }\r\n\r\n  public int getNap()\r\n  {\r\n    return nap;\r\n  }\r\n\r\n  public String getHianyzas()\r\n  {\r\n    return hianyzas;\r\n  }\r\n\r\n  @Override\r\n  public String toString()\r\n  {\r\n    return &quot;Hianyzo{&quot; + &quot;nev=&quot; + nev + &quot;, honap=&quot;\r\n      + honap + &quot;, nap=&quot; + nap + &quot;, hianyzas=&quot;\r\n      + hianyzas + '}';\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_17okt_hianyzasok_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_17okt_hianyzasok_v2\r\n{\r\n\r\n  public static void main(String&#x5B;] args)\r\n  {\r\n    ArrayList&lt;Hianyzo&gt; hianyzasok = new ArrayList&lt;&gt;();\r\n    \r\n    try\r\n    {\r\n      RandomAccessFile raf = new RandomAccessFile(&quot;naplo.txt&quot;, &quot;r&quot;);\r\n      String sor;\r\n      String datum = &quot;&quot;;\r\n      for( sor = raf.readLine();sor != null; sor = raf.readLine() )\r\n      {\r\n        if( sor.charAt(0) == '#' )\r\n        {\r\n          datum = sor;\r\n        }\r\n        else\r\n        {\r\n          hianyzasok.add(new Hianyzo(sor.split(&quot; &quot;), datum));\r\n        }\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; hianyzasok.length; i++ )\r\n\/\/    {\r\n\/\/      System.out.println(hianyzasok&#x5B;i].toString());\r\n\/\/    }\r\n    \r\n    System.out.println(&quot;2. feladat&quot;);\r\n    System.out.println(&quot;A naploban &quot; + hianyzasok.size()\r\n      + &quot; bejegyzes van.&quot;);\r\n    \r\n    System.out.println(&quot;3. feladat&quot;);\r\n    int igazolt = 0;\r\n    int igazolatlan = 0;\r\n    for( Hianyzo hianyzo : hianyzasok)\r\n    {\r\n      for( int j = 0; j &lt; 7; j++ )\r\n      {\r\n        if( hianyzo.getHianyzas().charAt(j) == 'X' )\r\n        {\r\n          igazolt++;\r\n        }\r\n        else if( hianyzo.getHianyzas().charAt(j) == 'I')\r\n        {\r\n          igazolatlan++;\r\n        }\r\n      }\r\n    }\r\n    System.out.println(&quot;Az igazolt hianyzasok szama &quot;\r\n      + igazolt + &quot;, az igazolatlanoke &quot; + igazolatlan + &quot; ora.&quot;);\r\n    \r\n    System.out.println(&quot;5. feladat&quot;);\r\n    Scanner sc = new Scanner(System.in);\r\n    System.out.print(&quot;A honap sorszama=&quot;);\r\n    int honap = sc.nextInt();\r\n    System.out.print(&quot;A nap sorszama=&quot;);\r\n    int nap = sc.nextInt();\r\n    System.out.println(&quot;Az adott napon &quot; + hetnapja(honap, nap) + &quot; volt.&quot;);\r\n    \r\n    System.out.println(&quot;6. feladat&quot;);\r\n    sc = new Scanner(System.in);\r\n    System.out.print(&quot;A nap neve=&quot;);\r\n    String napnev = sc.nextLine();\r\n    System.out.print(&quot;Az ora sorszama=&quot;);\r\n    int sorszam = sc.nextInt();\r\n    \r\n    int hianyzasDb = 0;\r\n    for( Hianyzo hianyzo : hianyzasok)\r\n    {\r\n      if( hetnapja(hianyzo.getHonap(), hianyzo.getNap()).equals(napnev) )\r\n      {\r\n        if( hianyzo.getHianyzas().charAt(sorszam - 1) == 'X'\r\n          || hianyzo.getHianyzas().charAt(sorszam - 1) == 'I' )\r\n        {\r\n          hianyzasDb++;\r\n        }\r\n      }\r\n    }\r\n    System.out.println(&quot;Ekkor osszesen &quot; + hianyzasDb\r\n      + &quot; ora hianyzas tortent.&quot;);\r\n    \r\n    System.out.println(&quot;7. feladat&quot;);\r\n    \r\n    \/\/ kivalogatom az egyedi neveket\r\n    ArrayList&lt;String&gt; nevek = new ArrayList&lt;&gt;();\r\n    for( Hianyzo hianyzo : hianyzasok)\r\n    {\r\n      if( !nevek.contains(hianyzo.getNev()) )\r\n      {\r\n        nevek.add(hianyzo.getNev());\r\n      }\r\n    }\r\n    \r\n    \/\/ nevenkent osszeszamolom a hianyzasokat\r\n    int&#x5B;] diakHianyzas = new int&#x5B;nevek.size()];\r\n    \r\n    for( Hianyzo hianyzo : hianyzasok)\r\n    {\r\n      for( int i = 0; i &lt; hianyzo.getHianyzas().length(); i++ )\r\n      {\r\n        if( hianyzo.getHianyzas().charAt(i) == 'X'\r\n          || hianyzo.getHianyzas().charAt(i) == 'I' )\r\n        {\r\n          \/\/ a nevek listajaban a nev helye alapjan novelem\r\n          \/\/ a hianyzasok darabszamat tartalmazo tomb\r\n          \/\/ azonos helyen levo elemet\r\n          diakHianyzas&#x5B;nevek.indexOf(hianyzo.getNev())]++;\r\n        }\r\n      }\r\n    }\r\n    \r\n    int max = 0;\r\n    for( int i : diakHianyzas)\r\n    {\r\n      if( i &gt; max )\r\n      {\r\n        max = i;\r\n      }\r\n    }\r\n    \r\n    System.out.print(&quot;A legtobbet hianyzo tanulok: &quot;);\r\n    for( int i = 0; i &lt; diakHianyzas.length; i++ )\r\n    {\r\n      if( diakHianyzas&#x5B;i] == max )\r\n      {\r\n        System.out.print(nevek.get(i) + &quot; &quot;);\r\n      }\r\n    }\r\n    System.out.println();\r\n  }\r\n  \r\n  \/\/ 4. feladat\r\n  public static String hetnapja(int honap, int nap)\r\n  {\r\n    String&#x5B;] napev = {&quot;vasarnap&quot;,&quot;hetfo&quot;,&quot;kedd&quot;,&quot;szerda&quot;\r\n      ,&quot;csutortok&quot;,&quot;pentek&quot;,&quot;szombat&quot;};\r\n    int&#x5B;] napszam = {0,31,59,90,120,151,181,212,243,273,304,335};\r\n    int napsorszam = (napszam&#x5B;honap-1] + nap) % 7;\r\n    return napev&#x5B;napsorszam];\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. A megold\u00e1st \u00e1t\u00edrtam list\u00e1ra, ami a 7. feladatban t\u00f6bb helyen is egyszer\u0171s\u00edtette a dolgom, valamint a beolvas\u00e1s is r\u00f6videbb lett. Adatt\u00e1rol\u00f3 oszt\u00e1ly: \/** * * @author https:\/\/webotlet.hu *\/ package webotlet_17okt_hianyzasok_v2; <a class=\"more-link\" href=\"https:\/\/www.webotlet.hu\/?p=2995\">Tov\u00e1bb <span class=\"screen-reader-text\">  Java programoz\u00e1s \u2013 2017 okt\u00f3beri emelt informatika \u00e9retts\u00e9gi \u2013 hi\u00e1nyz\u00e1sok (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":[92],"tags":[108,107,109,86,144,16,143,183,25,26],"class_list":["post-2995","post","type-post","status-publish","format-standard","hentry","category-feladatok-megoldasai-java-nyelven","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\/2995","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=2995"}],"version-history":[{"count":4,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/2995\/revisions"}],"predecessor-version":[{"id":3019,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/2995\/revisions\/3019"}],"wp:attachment":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2995"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2995"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}