{"id":19391,"date":"2015-06-22T20:53:08","date_gmt":"2015-06-22T18:53:08","guid":{"rendered":"http:\/\/kmim.wm.pwr.edu.pl\/myszka\/?p=19391"},"modified":"2015-07-02T20:45:28","modified_gmt":"2015-07-02T18:45:28","slug":"kilka-uwag-po-kolokwium","status":"publish","type":"post","link":"https:\/\/kmim.wm.pwr.edu.pl\/myszka\/2015\/06\/22\/kilka-uwag-po-kolokwium\/","title":{"rendered":"Kilka uwag po kolokwium"},"content":{"rendered":"<p>Nie s\u0105dz\u0119, \u017ce ktokolwiek to przeczyta, ale sprawdzanie waszych prac, to prawdziwa mord\u0119ga.<\/p>\n<ol start=\"1\" type=\"1\">\n<li>Jak przepisujecie od kolegi \u2014 przetwarzajcie tekst. \u017beby si\u0119 troch\u0119 r\u00f3\u017cni\u0142. Chyba, \u017ce nie rozumiecie co przepisujecie (obawiam si\u0119, \u017ce w wi\u0119kszo\u015bci przypadk\u00f3w tak w\u0142a\u015bnie by\u0142o).<\/li>\n<li>Przepisujcie tylko od tych, kt\u00f3rzy co\u015b wiedz\u0105.<\/li>\n<li>Sprawd\u017acie tre\u015b\u0107 zadania. Bo czasami przepisywana tre\u015b\u0107 zupe\u0142nie do zadania nie przystaje. Ale czytanie ze zrozumieniem, nie musi by\u0107 \u0142atwe.<\/li>\n<li>Nie jest prawd\u0105, \u017ce po ka\u017cdym poleceniu <code>if<\/code> albo <code>else<\/code> powinny wyst\u0105pi\u0107 nawiasy klamrowe (dotyczy to r\u00f3wnie\u017c <code>for<\/code> i <code>while<\/code>). Je\u017celi wykonywane jest tylko jedno polecenie \u2014 nawias\u00f3w mo\u017ce nie by\u0107!<\/li>\n<li>Nie jest prawd\u0105, \u017ce <code>void f(int x)<\/code> nie jest funkcj\u0105 tylko procedur\u0105. W terminologii j\u0119zyka C jest <strong>funkcj\u0105<\/strong>, kt\u00f3r\u0105 czasami (przez analogi\u0119 do innych j\u0119zyk\u00f3w programowania) nazywa si\u0119<strong>procedur\u0105<\/strong>.<\/li>\n<li>Po raz kolejny zwracam uwag\u0119 na operatory (dwuargumentowe) <code>&amp;<\/code> oraz <code>&amp;&amp;<\/code> i par\u0119 <code>|<\/code> oraz <code>||<\/code>. Pierwszy (<code>&amp;<\/code> to operator logiczny <strong>I<\/strong> (<strong>AND<\/strong> po angielsku) dzia\u0142aj\u0105cy na bitach. Drugi (<code>&amp;&amp;<\/code>) <strong>I<\/strong> (<strong>AND<\/strong> po angielsku) dzia\u0142aj\u0105ce na ca\u0142ych warto\u015bciach. Zatem &#8217;<code>1 &amp; 3<\/code>&#8217; nale\u017cy interpretowa\u0107 jako 00000001 &amp; 00000011; wynik ostatniej operacji to 00000001 (operator \u201ewynajduje\u201d bity 1 wyst\u0119puj\u0105ce na tych samych pozycjach w obu liczbach. W przypadku operatora <code>&amp;&amp;<\/code> warto\u015bci nie s\u0105 rozbijane na poszczeg\u00f3lne bity tylko interpretowane jako ca\u0142o\u015b\u0107: warto\u015b\u0107 r\u00f3wna zeru to <strong>fa\u0142sz<\/strong> (<strong>False<\/strong>) a r\u00f3\u017cna od zera \u2014 <strong>prawda<\/strong> (<strong>True<\/strong>). I tak przeprowadzane s\u0105 obliczenia. Gdy <code>i<\/code> zmienia si\u0119 od 0 do 9 to <code>1 &amp; i<\/code> przyjmuje warto\u015bci 0, 1, 0, 1 i tak dalej (zero dla liczb parzystych i 1 dla nieparzystych). W przypadku wyra\u017cenia <code>1 &amp;&amp; i<\/code> \u2014 gdy i jest r\u00f3wne zero \u2014 wynik ca\u0142ego wyra\u017cenia jest fa\u0142sz (bo <strong>prawda<\/strong> (1) AND <strong>fa\u0142sz<\/strong> (0)), dla pozosta\u0142ych warto\u015bci <code>i<\/code> b\u0119dzie <strong>prawda<\/strong> <strong>AND<\/strong><strong>prawda<\/strong> czyli <strong>prawda<\/strong>. W przypadku operator\u00f3w <strong>LUB<\/strong> (<strong>OR<\/strong>) jest bardzo podobnie.<\/li>\n<li>Je\u017celi gdzie\u015b Pa\u0144stwo zobacz\u0105 co\u015b takiego <code>cards[2] = cards[3];<\/code> to nie interpretujcie tego jako \u201edo tablicy dwuelementowej wpisz tablic\u0119 tr\u00f3jelementow\u0105\u201d tylko jako \u201etrzeci (cho\u0107 numerowany od zera) element tablicy <code>cards<\/code> wstaw w miejsce drugiego (te\u017c numerowanego od zera)\u201d.<\/li>\n<li>To: <code>\"abcdef\"<\/code> to sta\u0142a tekstowa. Charakter (typ) tej sta\u0142ej to \u201etablica znakowa\u201d. <code>\"abcdef\"[5]<\/code> to pi\u0105ty (licz\u0105c od zera) element tej tablicy. Tablica ta zawiera sze\u015b\u0107 znak\u00f3w (liter), a jej si\u00f3dmym elementem jest znak o kodzie ASCII 0. W \u017cadnym wypadku <code>\"abcdef\"[5]<\/code> nie jest pytaniem o d\u0142ugo\u015b\u0107 napisu. Cho\u0107 istotnie, <code>\"abcdef\"[i]<\/code>, gdy <code>i<\/code> zmienia si\u0119 od zera do 5 b\u0119dzie r\u00f3\u017cne od zera, a <code>\"abcdef\"[6]<\/code> b\u0119dzie r\u00f3wne 0, natomiast ile wyniesie <code>\"abcdef\"[7]<\/code> nie bardzo wiadomo. Mo\u017ce by\u0107, na\u00a0przyk\u0142ad tak:<\/li>\n<\/ol>\n<pre>\"abcdef\"[0] = 97\r\n\"abcdef\"[1] = 98\r\n\"abcdef\"[2] = 99\r\n\"abcdef\"[3] = 100\r\n\"abcdef\"[4] = 101\r\n\"abcdef\"[5] = 102\r\n\"abcdef\"[6] = 0\r\n\"abcdef\"[7] = 0\r\n\"abcdef\"[8] = 0\r\n\"abcdef\"[9] = 1\r\n\"abcdef\"[10] = 27\r\n<\/pre>\n<p>(Jest to wynik dzia\u0142ania programu:<\/p>\n<pre>#include &lt;stdio.h&gt;\r\nint main(int argc, char **argv)\r\n{\r\n\tint i;\r\n\tfor(i=0;i&lt;11;i++)\r\n\t\tprintf(\"\\\"abcdef\\\"[%d] = %d\\n\", i, \"abcdef\"[i]);\r\n\treturn 0;\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Nie s\u0105dz\u0119, \u017ce ktokolwiek to przeczyta, ale sprawdzanie waszych prac, to prawdziwa mord\u0119ga. Jak przepisujecie od kolegi \u2014 przetwarzajcie tekst. \u017beby si\u0119 troch\u0119 r\u00f3\u017cni\u0142. Chyba, \u017ce nie rozumiecie co przepisujecie (obawiam si\u0119, \u017ce w wi\u0119kszo\u015bci przypadk\u00f3w tak w\u0142a\u015bnie by\u0142o). Przepisujcie tylko od tych, kt\u00f3rzy co\u015b wiedz\u0105. Sprawd\u017acie tre\u015b\u0107 zadania. Bo czasami przepisywana tre\u015b\u0107 zupe\u0142nie do &hellip; <a href=\"https:\/\/kmim.wm.pwr.edu.pl\/myszka\/2015\/06\/22\/kilka-uwag-po-kolokwium\/\" class=\"more-link\">Czytaj dalej <span class=\"screen-reader-text\">Kilka uwag po kolokwium<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[112],"tags":[104,102],"class_list":["post-19391","post","type-post","status-publish","format-standard","hentry","category-jezyk-c","tag-air","tag-mechatronika"],"publishpress_future_action":{"enabled":false,"date":"2026-04-25 18:20:58","action":"change-status","newStatus":"draft","terms":[],"taxonomy":"category","extraData":[]},"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/kmim.wm.pwr.edu.pl\/myszka\/wp-json\/wp\/v2\/posts\/19391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kmim.wm.pwr.edu.pl\/myszka\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kmim.wm.pwr.edu.pl\/myszka\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kmim.wm.pwr.edu.pl\/myszka\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kmim.wm.pwr.edu.pl\/myszka\/wp-json\/wp\/v2\/comments?post=19391"}],"version-history":[{"count":3,"href":"https:\/\/kmim.wm.pwr.edu.pl\/myszka\/wp-json\/wp\/v2\/posts\/19391\/revisions"}],"predecessor-version":[{"id":19434,"href":"https:\/\/kmim.wm.pwr.edu.pl\/myszka\/wp-json\/wp\/v2\/posts\/19391\/revisions\/19434"}],"wp:attachment":[{"href":"https:\/\/kmim.wm.pwr.edu.pl\/myszka\/wp-json\/wp\/v2\/media?parent=19391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kmim.wm.pwr.edu.pl\/myszka\/wp-json\/wp\/v2\/categories?post=19391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kmim.wm.pwr.edu.pl\/myszka\/wp-json\/wp\/v2\/tags?post=19391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}