{"id":9978,"date":"2017-05-18T02:09:11","date_gmt":"2017-05-18T06:09:11","guid":{"rendered":"https:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=9978"},"modified":"2018-10-18T16:20:20","modified_gmt":"2018-10-18T20:20:20","slug":"11c-pl","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/11c-pl\/","title":{"rendered":"11C: Geometria"},"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><em>Lekcja 11 sk\u0142ada si\u0119 z trzech cz\u0119\u015bci A, B, C, kt\u00f3re mo\u017cesz wykona\u0107 w dowolnej kolejno\u015bci.<\/em><\/p>\n<p>W tym \u0107wiczeniu utworzymy cztery funkcje, kt\u00f3re wykonuj\u0105 obliczenia geometryczne:<\/p>\n<ul>\n<li>funkcja obliczaj\u0105ca d\u0142ugo\u015b\u0107 przeciwprostok\u0105tnej tr\u00f3jk\u0105ta prostok\u0105tnego,<\/li>\n<li>funkcja obliczaj\u0105ca obw\u00f3d tr\u00f3jk\u0105ta prostok\u0105tnego,<\/li>\n<li>funkcja obliczaj\u0105ca odleg\u0142o\u015bci mi\u0119dzy dwoma punktami w 2D,<\/li>\n<li>oraz funkcj\u0119 obliczaj\u0105c\u0105 obw\u00f3d dowolnego tr\u00f3jk\u0105ta.<\/li>\n<\/ul>\n<h2>Przeciwprostok\u0105tna<\/h2>\n<p><img decoding=\"async\" class=\"alignright\" title=\"hypotenuse\" src=\"..\/wp-content\/lesson_files\/img\/11C\/hypotenuse-pl.png\" alt=\"\" \/>Na rysunku po prawej stronie widoczny jest <em>tr\u00f3jk\u0105t prostok\u0105tny<\/em>. Z definicji, jeden z k\u0105t\u00f3w tr\u00f3jk\u0105ta prostok\u0105tnego r\u00f3wny jest 90 stopni (<em>k\u0105t prosty<\/em>). Tr\u00f3jk\u0105t ma trzy boki. Bok le\u017c\u0105cy na przeciw k\u0105ta prostego ma specjaln\u0105 nazw\u0119: nazywany jest <em>przeciwprostok\u0105tn\u0105<\/em>.<\/p>\n<p>Jak pokazano na rysunku, niech <em>a<\/em> i <em>b<\/em> oznaczaj\u0105 d\u0142ugo\u015bci bok\u00f3w przylegaj\u0105cych do k\u0105ta prostego, a <em>c<\/em> niech oznacza d\u0142ugo\u015b\u0107 przeciwprostok\u0105tnej. Znane twierdzenie Pitagorasa m\u00f3wi, \u017ce:<\/p>\n<p style=\"text-align: center;\"><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cdisplaystyle%7Ba%5E2%2Bb%5E2%3Dc%5E2%7D&#038;bg=T&#038;fg=000000&#038;s=2' alt='\\displaystyle{a^2+b^2=c^2}' title='\\displaystyle{a^2+b^2=c^2}' class='latex' \/><\/p>\n<p>W pierwszym problemie twoim zadaniem jest przekszta\u0142cenie tego twierdzenia w funkcj\u0119, kt\u00f3ra, bior\u0105c pod uwag\u0119 <em>a<\/em> i <em>b<\/em>, oblicza d\u0142ugo\u015b\u0107 przeciwprostok\u0105tnej.<\/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'>Hypotenuse<\/span><\/div>Zdefiniuj funkcj\u0119 <code>hypotenuse(a, b)<\/code>, kt\u00f3ra, je\u015bli dwa pozosta\u0142e boki maj\u0105 d\u0142ugo\u015bci <em>a<\/em> i <em>b<\/em>, zwraca d\u0142ugo\u015b\u0107 przeciwprostok\u0105tnej <em>c<\/em>.<a class=\"hintlink\"  id=\"hintlink1\">Wskaz\u00f3ka<\/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'>\n# delete this comment and enter your code here\n<\/textarea><\/div>\n<div id='pbhistory0' class='flexcontain' style='display:none;'><\/div>\n<div name=\"pyinput\" id=\"pyinput0\">Enter testing statements like <code>print(myfunction(\"test argument\"))<\/code> below.<div class=\"pyboxTextwrap resizy\" style=\"height: 102px;\" ><textarea wrap=\"off\" name=\"userinput\" class=\"pyboxInput\" cols=10 rows=4><\/textarea><\/div><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit0' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch0\" value=\"Input Switch\" onclick=\"pbInputSwitch(0,'Y')\" ><\/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<\/tr><\/table><select id='pbSelect0' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(0,'11c.hypotenuse')\" >History<\/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=\"42a9dd0089b8776ba80e790b24bc633e\"\/>\n<div id='pbresults0' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(0);});pbInputSwitch(0,\"Y\");<\/script>\n<\/p>\n<h2>Obw\u00f3d<\/h2>\n<p>Przypomnijmy, \u017ce <em>obw\u00f3d <\/em>tr\u00f3jk\u0105ta jest sum\u0105 bok\u00f3w. Zatem na powy\u017cszym rysunku obw\u00f3d wynosi <em>a + b + c<\/em>. <strong>Tw\u00f3j program powinien zak\u0142ada\u0107<\/strong>, \u017ce ju\u017c zosta\u0142a poprawnie zdefiniowana funkcja <code>hypotenuse<\/code> (nie musisz ju\u017c jej kopiowa\u0107 z pola pierwszego zadania do drugiego).<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform2\" method=\"POST\">\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'>Coding Exercise: <\/span><span class='title'>Tr\u00f3jk\u0105ty Prostok\u0105tne<\/span><\/div> U\u017cywaj\u0105c <code>hypotenuse(a, b)<\/code> nale\u017cy zdefiniowa\u0107 funkcj\u0119 <code>rightTrianglePerimeter(a, b)<\/code>, kt\u00f3ra zwraca d\u0142ugo\u015b\u0107 obwodu tr\u00f3jk\u0105ta prostok\u0105tnego, kt\u00f3rego przyprostok\u0105tne maj\u0105 d\u0142ugo\u015bci <em>a<\/em> i <em>b<\/em>.<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='usercode2' id='usercode2'  cols=10 rows=20   class='pyboxCode RW'>\n# delete this comment and enter your code here\n<\/textarea><\/div>\n<div id='pbhistory2' class='flexcontain' style='display:none;'><\/div>\n<div name=\"pyinput\" id=\"pyinput2\">Enter testing statements like <code>print(myfunction(\"test argument\"))<\/code> below.<div class=\"pyboxTextwrap resizy\" style=\"height: 102px;\" ><textarea wrap=\"off\" name=\"userinput\" class=\"pyboxInput\" cols=10 rows=4><\/textarea><\/div><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit2' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch2\" value=\"Input Switch\" onclick=\"pbInputSwitch(2,'Y')\" ><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(2)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(2,'Y')\" ><\/td>\n<\/tr><\/table><select id='pbSelect2' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(2,'11c.rightperimeter')\" >History<\/option>\n<option name='help' data-pbonclick=\"helpClick(2);\" >Help<\/option>\n<\/select><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse2\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"2\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"8c5546643010f3b9606131c6edc77ade\"\/>\n<div id='pbresults2' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(2);});pbInputSwitch(2,\"Y\");<\/script>\n<\/p>\n<h2>Odleg\u0142o\u015b\u0107 w 2 Wymiarach<\/h2>\n<p>Aby dyskutowa\u0107 o punktach znajduj\u0105cych si\u0119 w dw\u00f3ch wymiarach, u\u017cywamy dw\u00f3ch wsp\u00f3\u0142rz\u0119dnych (<a href=\"http:\/\/pl.wikipedia.org\/wiki\/Uk%C5%82ad_wsp%C3%B3%C5%82rz%C4%99dnych_kartezja%C5%84skich\" target=\"_blank\" rel=\"noopener\">Kartezja\u0144ski uk\u0142ad wsp\u00f3\u0142rz\u0119dnych<\/a>), wsp\u00f3\u0142rz\u0119dnej <em>x<\/em> i wsp\u00f3\u0142rz\u0119dnej <em>y<\/em>. Chcemy napisa\u0107 funkcj\u0119, kt\u00f3rej wej\u015bcie jest par\u0105 punkt\u00f3w, a kt\u00f3rych wyj\u015bcie jest odleg\u0142o\u015bci\u0105 mi\u0119dzy tymi dwoma punktami. Okazuje si\u0119, \u017ce funkcja <code>hypotenuse<\/code> pomo\u017ce nam to wykona\u0107!<\/p>\n<p>Bardziej szczeg\u00f3\u0142owo, niech pierwszy punkt ma wsp\u00f3\u0142rz\u0119dne (x1, y1), gdzie x1 i y1 s\u0105 liczbami rzeczywistymi, i niech drugi punkt ma wsp\u00f3\u0142rz\u0119dne (x2, y2). Najwa\u017cniejsz\u0105 ide\u0105 jest narysowanie tr\u00f3jk\u0105ta prostok\u0105tnego pokazanego na poni\u017cszym wykresie: przeciwprostok\u0105tna przebiega od (x1, y1) do (x2, y2), a wi\u0119c jej d\u0142ugo\u015b\u0107 to odleg\u0142o\u015b\u0107 mi\u0119dzy dwoma punktami.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" src=\"..\/wp-content\/lesson_files\/img\/11C\/distance2d-pl.png\" \/><\/p>\n<p>Aby obliczy\u0107 d\u0142ugo\u015b\u0107 przeciwprostok\u0105tnej, musimy obliczy\u0107 d\u0142ugo\u015b\u0107 pozosta\u0142ych dw\u00f3ch bok\u00f3w tr\u00f3jk\u0105ta. Mo\u017cna to zrobi\u0107 przy u\u017cyciu definicji wsp\u00f3\u0142rz\u0119dnych (patrz rysunek): poziome przemieszczenie to <em>a<\/em> = x1-x2, a pionowe to <em>b<\/em> = y1-y2.<\/p>\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'>Odleg\u0142o\u015b\u0107 2D<\/span><\/div>Za\u0142\u00f3\u017cmy, \u017ce istnieje ju\u017c <code>hypotenuse(a, b)<\/code>. U\u017cywaj\u0105c go, zdefiniuj funkcj\u0119 <code>distance2D(x1, y1, x2, y2)<\/code>, kt\u00f3ra oblicza odleg\u0142o\u015b\u0107 mi\u0119dzy punktem (x1, y1) a punktem (x2, y2).<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# delete this comment and enter your code here\n<\/textarea><\/div>\n<div id='pbhistory3' class='flexcontain' style='display:none;'><\/div>\n<div name=\"pyinput\" id=\"pyinput3\">Enter testing statements like <code>print(myfunction(\"test argument\"))<\/code> below.<div class=\"pyboxTextwrap resizy\" style=\"height: 102px;\" ><textarea wrap=\"off\" name=\"userinput\" class=\"pyboxInput\" cols=10 rows=4><\/textarea><\/div><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit3' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch3\" value=\"Input Switch\" onclick=\"pbInputSwitch(3,'Y')\" ><\/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<\/tr><\/table><select id='pbSelect3' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(3,'11c.distance')\" >History<\/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=\"4385d7364b190bcf125065df22b586b4\"\/>\n<div id='pbresults3' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(3);});pbInputSwitch(3,\"Y\");<\/script>\n<\/p>\n<h2>Obw\u00f3d Dowolnego Tr\u00f3jkata<\/h2>\n<p>Teraz ostatnie \u0107wiczenie na tej lekcji. Pami\u0119taj, \u017ce obw\u00f3d jest sum\u0105 trzech bok\u00f3w d\u0142ugo\u015bci tr\u00f3jk\u0105ta; i pami\u0119taj, \u017ce d\u0142ugo\u015b\u0107 boku jest taka sama, jak odleg\u0142o\u015b\u0107 pomi\u0119dzy dwoma punktami tr\u00f3jk\u0105ta.<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform4\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox4'>\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'>Secure the Perimeter<\/span><\/div>Za\u0142\u00f3\u017cmy, \u017ce\u00a0<code>distance2D(x1, y1, x2, y2)<\/code> jest ju\u017c zdefiniowany. U\u017cyj go do zdefinowania funkcji <code>trianglePerimeter(xA, yA, xB, yB, xC, yC)<\/code>, kt\u00f3ra oblicza obw\u00f3d tr\u00f3jk\u0105ta utworzonego z trzech punkt\u00f3w: (xA, yA), (xB, yB) and (xC, yC).<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='usercode4' id='usercode4'  cols=10 rows=20   class='pyboxCode RW'>\n# delete this comment and enter your code here\n<\/textarea><\/div>\n<div id='pbhistory4' class='flexcontain' style='display:none;'><\/div>\n<div name=\"pyinput\" id=\"pyinput4\">Enter testing statements like <code>print(myfunction(\"test argument\"))<\/code> below.<div class=\"pyboxTextwrap resizy\" style=\"height: 102px;\" ><textarea wrap=\"off\" name=\"userinput\" class=\"pyboxInput\" cols=10 rows=4><\/textarea><\/div><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit4' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch4\" value=\"Input Switch\" onclick=\"pbInputSwitch(4,'Y')\" ><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(4)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(4,'Y')\" ><\/td>\n<\/tr><\/table><select id='pbSelect4' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(4,'11c.perimeter')\" >History<\/option>\n<option name='help' data-pbonclick=\"helpClick(4);\" >Help<\/option>\n<\/select><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse4\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"4\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"a6526f8854c07cc4d03b49cc1c73849c\"\/>\n<div id='pbresults4' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(4);});pbInputSwitch(4,\"Y\");<\/script>\n<\/p>\n<p>Teraz jeste\u015b gotowy, aby kontynuowa\u0107 nast\u0119pn\u0105 lekcj\u0119!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lekcja 11 sk\u0142ada si\u0119 z trzech cz\u0119\u015bci A, B, C, kt\u00f3re mo\u017cesz wykona\u0107 w dowolnej kolejno\u015bci. W tym \u0107wiczeniu utworzymy cztery funkcje, kt\u00f3re wykonuj\u0105 obliczenia geometryczne: funkcja obliczaj\u0105ca d\u0142ugo\u015b\u0107 przeciwprostok\u0105tnej tr\u00f3jk\u0105ta prostok\u0105tnego, funkcja obliczaj\u0105ca obw\u00f3d tr\u00f3jk\u0105ta prostok\u0105tnego, funkcja obliczaj\u0105ca odleg\u0142o\u015bci &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/11c-pl\/\">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-9978","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/9978","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=9978"}],"version-history":[{"count":16,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/9978\/revisions"}],"predecessor-version":[{"id":11087,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/9978\/revisions\/11087"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=9978"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}