{"id":9870,"date":"2017-05-11T03:05:31","date_gmt":"2017-05-11T07:05:31","guid":{"rendered":"https:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=9870"},"modified":"2017-05-16T05:18:51","modified_gmt":"2017-05-16T09:18:51","slug":"pl-2x","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/pl-2x\/","title":{"rendered":"2X \u0106wiczenia dodatkowe"},"content":{"rendered":"<!-- Please retain this notice and add more notes if you create a new version.<br \/>\nOriginal lesson author: David Pritchard, daveagp@gmail.com, http:\/\/cscircles.ca<br \/>\nLicense: http:\/\/creativecommons.org\/licenses\/by-nc-sa\/3.0\/-->\n<p>Ta lekcja zawiera dodatkowe \u0107wiczenia praktyczne, z kt\u00f3rych niekt\u00f3re s\u0105 trudne. Je\u015bli utkniesz, mo\u017cesz przej\u015b\u0107 do nast\u0119pnego problemu lub lekcji a wr\u00f3ci\u0107 do nich p\u00f3\u017aniej. Zawsze mo\u017cesz u\u017cy\u0107 strony <a href=\"http:\/\/cscircles.cemc.uwaterloo.ca\/user-page\/\">Moje post\u0119py<\/a>, aby sprawdzi\u0107 wszystkie poprzednie \u0107wiczenia.<\/p>\n<p>Pierwszym \u0107wiczeniem jest debugowanie. Pr\u00f3buje u\u017cy\u0107 formu\u0142y, kt\u00f3ra nie jest ca\u0142kiem poprawna do obliczania wzrostu liczby ludno\u015bci.<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform0\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox0'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Coding Exercise: <\/span><span class='title'>B\u0142\u0105d wzrostu<\/span><\/div>Napraw b\u0142\u0105d logiczny w tym programie: powinien oblicza\u0107 populacj\u0119 kraju na najbli\u017csze 3 lata, zak\u0142adaj\u0105c, \u017ce zaczyna si\u0119 od 1000 os\u00f3b w 2012 roku, a liczba os\u00f3b wzrasta o 10% rocznie. Mo\u017cesz zmieni\u0107 co najwy\u017cej trzy znaki.<br\/> <a class=\"hintlink\"  id=\"hintlink1\">Je\u015bli utkniesz, kliknij tutaj, aby uzyska\u0107 podpowied\u017a.<\/a> <div class=\"helpOuter\" style=\"display: none;\"><div class=\"helpInner\"><div style=\"text-align: center\">You need to create an account and log in to ask a question.<\/div><\/div><\/div><div class='pyboxTextwrap pyboxCodewrap RW resizy'  style='height: 526px;'><textarea wrap='off' name='usercode0' id='usercode0'  cols=10 rows=20   class='pyboxCode RW'>\npopulationIn2012 = 1000\npopulationIn2013 = populationIn2012 * 0.1\npopulationIn2014 = populationIn2013 * 0.1\npopulationIn2015 = populationIn2014 * 0.1\n<\/textarea><\/div>\n<div id='pbhistory0' class='flexcontain' style='display:none;'><\/div>\n<input type='hidden' id='defaultCode0' value='populationIn2012 = 1000\\npopulationIn2013 = populationIn2012 * 0.1\\npopulationIn2014 = populationIn2013 * 0.1\\npopulationIn2015 = populationIn2014 * 0.1\\n'><\/input>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit0' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(0)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(0,'Y')\" ><\/td>\n<td><input type='button' name='history' value=\"History\" onclick=\"historyClick(0,'1e.growth')\" ><\/td>\n<\/tr><\/table><select id='pbSelect0' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='default' data-pbonclick=\"pbSetText(0,descape($('#defaultCode0').val()))\" >Reset code to default<\/option>\n<option name='help' data-pbonclick=\"helpClick(0);\" >Help<\/option>\n<\/select><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse0\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"0\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"ba0b4452d8a7c456c545ef1e7db4f825\"\/>\n<div id='pbresults0' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(0);});document.getElementById(\"submit0\").value = \"Run program\";document.getElementById(\"inputInUse0\").value = \"N\";<\/script>\n<\/p>\n<p>Pozosta\u0142e \u0107wiczenia w tej lekcji dotycz\u0105 funkcji <code>min<\/code> i <code>max<\/code>.<\/p>\n<h2>Upraszczanie z\u0142o\u017conego wyra\u017cenia<\/h2>\n<div class='pybox modeNeutral' id='pybox2'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Multiple Choice Exercise: <\/span><span class='title'>Upraszczanie<\/span><\/div><div>Co jest uproszczeniem nast\u0119puj\u0105cego wyra\u017cenia?<\/p>\n<pre>max(x - 3, min(x + 10, x + 5))<\/pre><\/div><label>Your choice: <\/label><select id=\"pyselect2\"><option value=\"d\" selected>Select one<\/option><option value=\"r\">x + 5<\/option><option value=\"w\">x - 3<\/option><option value=\"w\">x + 10<\/option><\/select><div class='pyboxbuttons'><input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" name=\"slug\" value=\"2X.simplify\"\/><input type='submit' style='margin:5px;' value='Check answer' onClick='pbMultiCheck(2)'\/><\/div><div class=\"pbresults\" id=\"pyMultiResults2\"><\/div><div class=\"epilogue\">Poprawnie! Poniewa\u017c <code>x + 5<\/code> jest zawsze mniejsze od <code>x + 10<\/code>, mo\u017cemy upro\u015bci\u0107 <code>min(x + 10, x + 5)<\/code> do <code>x + 5<\/code>. Nast\u0119pnie przechodz\u0105c na zewn\u0105trz, otrzymamy wyra\u017cenie <code>max(x - 3, x + 5)<\/code>. Poniewa\u017c <code>x + 5<\/code> jest zawsze maksymaln\u0105 liczb\u0105 tych dw\u00f3ch liczb, to jest wynik.<\/div><\/div>\n<h2>Komplikowanie prostego wyra\u017cenia<\/h2>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform3\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox3'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Coding Exercise: <\/span><span class='title'>Komplikowanie<\/span><\/div>Za\u0142\u00f3\u017cmy, \u017ce nasz automatyczny tester zdefiniowa\u0142 dwie zmienne <code>A<\/code> i <code>B<\/code> dla Ciebie. Napisz program, kt\u00f3ry wydrukuje warto\u015b\u0107<\/p>\n<pre>min(A, B)<\/pre>Jednak, jest pewien haczyk: program nie mo\u017ce u\u017cywa\u0107 funkcji <code>min<\/code>. Zamiast tego u\u017cyj <code>max<\/code> w taki spos\u00f3b, aby symulowa\u0107 dzia\u0142anie <code>min<\/code>.<a class=\"hintlink\"  id=\"hintlink4\">Podpowied\u017a, Metoda 1<\/a><a class=\"hintlink\"  id=\"hintlink5\">Podpowied\u017a, Metoda 2<\/a><div class=\"helpOuter\" style=\"display: none;\"><div class=\"helpInner\"><div style=\"text-align: center\">You need to create an account and log in to ask a question.<\/div><\/div><\/div><div class='pyboxTextwrap pyboxCodewrap RW resizy'  style='height: 526px;'><textarea wrap='off' name='usercode3' id='usercode3'  cols=10 rows=20   class='pyboxCode RW'>\n<\/textarea><\/div>\n<div id='pbhistory3' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit3' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(3)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(3,'Y')\" ><\/td>\n<td><input type='button' name='history' value=\"History\" onclick=\"historyClick(3,'2X.simplifyagain')\" ><\/td>\n<\/tr><\/table><select id='pbSelect3' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='help' data-pbonclick=\"helpClick(3);\" >Help<\/option>\n<\/select><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse3\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"3\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"840b67ccc3234547d19eca11ffd83b05\"\/>\n<div id='pbresults3' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(3);});document.getElementById(\"submit3\").value = \"Run program\";document.getElementById(\"inputInUse3\").value = \"N\";<\/script>\n<\/p>\n<h2>Kalkulator P\u0142atno\u015bci<\/h2>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform6\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox6'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Coding Exercise: <\/span><span class='title'>Kalkulator p\u0142atno\u015bci<\/span><\/div>Firma obs\u0142uguj\u0105ca karty kredytowe oblicza \"minimaln\u0105 op\u0142at\u0119\" dla klienta zgodnie z nast\u0119puj\u0105c\u0105 zasad\u0105. Minimalna wysoko\u015b\u0107 p\u0142atno\u015bci wynosi 10 USD albo 2,1% warto\u015bci salda klienta, w zale\u017cno\u015bci od tego, kt\u00f3ra kwota jest wi\u0119ksza; ale je\u015bli op\u0142ata przekroczy saldo, p\u0142atno\u015b\u0107 wyniesie tyle co saldo. Napisz program, kt\u00f3ry wy\u015bwietli minimaln\u0105 p\u0142atno\u015b\u0107 u\u017cywaj\u0105c funkcji <code>min<\/code> i <code>maks<\/code>. Zak\u0142adamy, \u017ce zmienna <code>balance<\/code> jest saldem klienta. Tw\u00f3j program nie musi drukowa\u0107 znaku waluty.<\/p>\n<p><em>Przyk\u0142ad 1<\/em>: je\u015bli twoje saldo <code>balance<\/code> wynosi <code>1000<\/code>, tw\u00f3j program powinien wy\u015bwietli\u0107 <code>21<\/code>.<br \/>\n<em>Przyk\u0142ad 2<\/em>: je\u015bli twoje saldo <code>balance<\/code> wynosi <code>600<\/code>, tw\u00f3j program powinien wy\u015bwietli\u0107 <code>12.6<\/code>.<br \/>\n<em>Przyk\u0142ad 3<\/em>: je\u015bli twoje saldo <code>balance<\/code> wynosi <code>25<\/code>, tw\u00f3j program powinien wy\u015bwietli\u0107 <code>10<\/code>.<br \/>\n<em>Przyk\u0142ad 4<\/em>: je\u015bli twoje saldo <code>balance<\/code> wynosi <code>8<\/code>, tw\u00f3j program powinien wy\u015bwietli\u0107 <code>8<\/code>. <a class=\"hintlink\"  id=\"hintlink7\">Wskaz\u00f3wka<\/a> <div class=\"helpOuter\" style=\"display: none;\"><div class=\"helpInner\"><div style=\"text-align: center\">You need to create an account and log in to ask a question.<\/div><\/div><\/div><div class='pyboxTextwrap pyboxCodewrap RW resizy'  style='height: 526px;'><textarea wrap='off' name='usercode6' id='usercode6'  cols=10 rows=20   class='pyboxCode RW'>\n<\/textarea><\/div>\n<div id='pbhistory6' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit6' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(6)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(6,'Y')\" ><\/td>\n<td><input type='button' name='history' value=\"History\" onclick=\"historyClick(6,'2X.balance')\" ><\/td>\n<\/tr><\/table><select id='pbSelect6' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='help' data-pbonclick=\"helpClick(6);\" >Help<\/option>\n<\/select><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse6\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"6\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"d0e0a215d3c842fd01af60e49b27bfd1\"\/>\n<div id='pbresults6' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(6);});document.getElementById(\"submit6\").value = \"Run program\";document.getElementById(\"inputInUse6\").value = \"N\";<\/script>\n<\/p>\n<h2>Uk\u0142adanka Na Sortowanie<\/h2>\n<p>Ostatnim problemem jest trudny; sortowanie liczb w dziwny spos\u00f3b. Istniej\u0105 lepsze, prostsze i szybsze <a href=\"http:\/\/en.wikipedia.org\/wiki\/Sorting_algorithm\">metody sortowania<\/a>, kt\u00f3re mo\u017cna pozna\u0107 po zako\u0144czeniu naszych wst\u0119pnych lekcji.<\/p>\n<p>Je\u015bli utkniesz, mo\u017cesz pomin\u0105\u0107 problem. Mo\u017cesz zawsze wr\u00f3ci\u0107 do niego p\u00f3\u017aniej. Dodatkowo mo\u017cesz \u015bledzi\u0107, co masz ju\u017c zrobione lub czego jeszcze nie zako\u0144czy\u0142e\u015b, odwiedzaj\u0105c stron\u0119 <a href=\"\/user-page\">Moje Post\u0119py<\/a>.<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform8\" method=\"POST\">\n<div class='pybox modeNeutral scramble' id='pybox8'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Scramble Exercise: <\/span><span class='title'>Uk\u0142adanka na sortowanie<\/span><\/div><strong>Kodowa uk\u0142adanka<\/strong>: zr\u00f3b program <strong>sortuj\u0105cy<\/strong> trzy liczby <code>x<\/code>, <code>y<\/code> i <code>z<\/code> tak, \u017ce <code>x<\/code> b\u0119dzie przypisana najmniejsza warto\u015b\u0107, <code>y<\/code> kolejna a  <code>z<\/code> b\u0119dzie przypisana najwi\u0119ksza warto\u015b\u0107 z podanych pocz\u0105tkowo trzech liczb x, y, z. <br\/><em>Przeci\u0105gnij i upu\u015b\u0107 za pomoc\u0105 myszy, aby zmieni\u0107 kolejno\u015b\u0107 linii. <\/em><a class=\"hintlink\"  id=\"hintlink9\">Kliknij podpowied\u017a.<\/a><ul class=\"pyscramble\" name=\"pyscramble\" id=\"pyscramble8\">\n <li class=\"pyscramble\">y = tmp<\/li>\n <li class=\"pyscramble\">z = tmp<\/li>\n <li class=\"pyscramble\">y = min(y, z)<\/li>\n <li class=\"pyscramble\">x = min(x, y)<\/li>\n <li class=\"pyscramble\">tmp = max(x, y)<\/li>\n <li class=\"pyscramble\">tmp = max(y, z)<\/li>\n <li class=\"pyscramble\">x = min(x, y)<\/li>\n <li class=\"pyscramble\">y = tmp<\/li>\n <li class=\"pyscramble\">tmp = max(x, y)<\/li>\n<\/ul>\n<input type='hidden' id='usercode8' name='usercode8'\/>\n<div id='pbhistory8' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit8' value=' '\/><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse8\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"8\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"cf58e9efe849f8914d5ca7ed3a704f77\"\/>\n<div id='pbresults8' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit8\").value = \"Run program\";document.getElementById(\"inputInUse8\").value = \"N\";<\/script>\n<\/p>\n<p>Przejd\u017a do lekcji 3!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ta lekcja zawiera dodatkowe \u0107wiczenia praktyczne, z kt\u00f3rych niekt\u00f3re s\u0105 trudne. Je\u015bli utkniesz, mo\u017cesz przej\u015b\u0107 do nast\u0119pnego problemu lub lekcji a wr\u00f3ci\u0107 do nich p\u00f3\u017aniej. Zawsze mo\u017cesz u\u017cy\u0107 strony Moje post\u0119py, aby sprawdzi\u0107 wszystkie poprzednie \u0107wiczenia. Pierwszym \u0107wiczeniem jest debugowanie. &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/pl-2x\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-9870","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/9870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/comments?post=9870"}],"version-history":[{"count":13,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/9870\/revisions"}],"predecessor-version":[{"id":9933,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/9870\/revisions\/9933"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=9870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}