{"id":5520,"date":"2012-09-12T20:33:23","date_gmt":"2012-09-13T00:33:23","guid":{"rendered":"http:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=5520"},"modified":"2026-01-23T08:15:58","modified_gmt":"2026-01-23T13:15:58","slug":"11c-de","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/11c-de\/","title":{"rendered":"11C: Geometrie"},"content":{"rendered":"<p><em>Lektion 11 hat drei Teile A, B und C, die in beliebiger Reihenfolge beendet werden k\u00f6nnen.<\/em><\/p>\n<p>In dieser \u00dcbung werden wir vier Funktionen schreiben, die geometrische Berechnungen ausf\u00fchren k\u00f6nnen:<\/p>\n<ul>\n<li>eine Funktion, um die L\u00e4nge der Hypotenuse eines rechteckigen Dreiecks zu berechnen,<\/li>\n<li>eine Funktion, um den Umfang eines rechteckigen Dreiecks zu berechnen,<\/li>\n<li>eine Funktion, um den Abstand zwischen zwei Punkten in einem zweidimensionalen Raum zu berechnen,<\/li>\n<li>und eine Funktion, um den Umfang eines beliebigen Dreiecks zu berechnen.<\/li>\n<\/ul>\n<h2>Hypotenuse<\/h2>\n<p><a href=\"\/static\/lesson\/11C\/hypotenuse.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright  wp-image-1606\" title=\"hypotenuse\" src=\"..\/wp-content\/lesson_files\/img\/11C\/hypotenuse.png\" alt=\"\" width=\"210\" height=\"257\" \/><\/a>Ein <em>rechtwinkliges Dreieck<\/em> kannst du im Bild auf der rechten Seite sehen. Definitionsgem\u00e4\u00df ist einer der Winkel eines rechtwinkligen Dreiecks gleich 90 Grad (ein <em>rechter Winkel<\/em>). Das Dreieck hat drei Seiten. Die dem rechten Winkel gegen\u00fcberliegende Seite hat einen besonderen Namen: man nennt sie die <em>Hypotenuse<\/em>.<\/p>\n<p>Wie man im Diagramm sieht, sollen <em>a<\/em> und <em>b<\/em> die L\u00e4nge der Seiten, die am rechten Winkel anliegen, bezeichnen, und <em>c<\/em> soll die L\u00e4nge der Hypotenuse bezeichnen. Der ber\u00fchmte Satz des Pythagoras sagt uns, dass<\/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>Bei der ersten Aufgabenstellung musst du diesen Satz in eine Funktion umwandeln, die, wenn <em>a<\/em> und <em>b<\/em> gegeben sind, die L\u00e4nge der Hypotenuse berechnet.<\/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>Definiere eine Funktion <code>hypotenuse(a, b)<\/code>, die die L\u00e4nge der Hypotenuse <em>c<\/em> zur\u00fcckgibt, wenn die anderen beiden Seiten die L\u00e4ngen <em>a<\/em> und <em>b<\/em> haben\u00a0<a class=\"hintlink\"  id=\"hintlink1\">Tipp<\/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>Umfang<\/h2>\n<p>Erinnere dich daran, dass der <em>Umfang<\/em> eines Dreiecks die Summe seiner Seiten ist. So hat der Umfang im obigen Diagramm die L\u00e4nge <em>a+b+c<\/em>.\u00a0<strong>Dein Programm sollte annehmen,<\/strong> dass eine korrekte Version von \u00a0<code>hypotenuse<\/code> bereits definiert wurde (du musst sie nicht von der ersten Box zur zweiten kopieren).<\/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'>Die Dreiecke sind rechteckig<\/span><\/div>Definiere eine Funktion <code>rightTrianglePerimeter(a, b)<\/code>, die die L\u00e4nge des Umfangs eines rechtwinkligen Dreieck ausgibt. Die nicht-Hypotenusenseiten (Katheten) haben die L\u00e4ngen \u00a0<em>a<\/em> und \u00a0<em>b<\/em>; verwende <code>hypotenuse(a, b)<\/code>.<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=\"fa807832600203e77df17a83be12c640\"\/>\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>Abstand im zweidimensionalen Raum<\/h2>\n<p>Um \u00fcber Punkte zu sprechen, die in zwei Dimensionen existieren, verwenden wir zwei Koordinaten (<a href=\"http:\/\/de.wikipedia.org\/wiki\/Kartesisches_Koordinatensystem\" target=\"_blank\" rel=\"noopener noreferrer\">Kartesisches Koordinatensystem<\/a>), die <em>x<\/em> Koordinate und die <em>y<\/em> Koordinate. Wir m\u00f6chten eine Funktion schreiben, deren Input ein Punktepaar ist und deren Output der Abstand zwischen diesen zwei Punkten ist. Es stellt sich heraus, dass die <code>hypotenuse<\/code> Funktion uns dabei hilft, diese Aufgabe zu erledigen!<\/p>\n<p>Um mehr ins Detail zu gehen, lass uns annehmen, dass der erste Punkt die Koordinaten (x1, y1) hat, bei denen x1 und y1 reale Zahlen sind, und lass uns annehmen, dass der zweite Punkt die Koordinaten (x2, y2) hat. Die Schl\u00fcsselidee ist es, das rechtwinklige Dreieck zu zeichnen, das im Diagramm unten gezeigt wird: die Hypotenuse geht von (x1, y1) zu (x2, y2) und somit entspricht ihre L\u00e4nge dem Abstand zwischen diesen zwei Punkten.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"..\/wp-content\/lesson_files\/img\/11C\/distance2d.png\" alt=\"\" width=\"468\" height=\"459\" \/><\/p>\n<p>Um die L\u00e4nge der Hypotenuse zu berechnen, m\u00fcssen wir die L\u00e4nge der anderen beiden Seiten des Dreiecks ausrechnen. Dies kann gemacht werden, indem wir die Definition von Koordinaten verwenden (siehe Diagramm):\u00a0 die horizontale Verschiebung ist <em>a<\/em> = x1-x2 und die vertikale ist <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'>2D Distance<\/span><\/div>Nimm an, dass <code>hypotenuse(a, b)<\/code> bereits definiert wurde. Definiere eine Funktion <code>distance2D(x1, y1, x2, y2)<\/code>, die den Abstand (distance) zwischen Punkt (x1, y1) und Punkt (x2, y2) berechnet.<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=\"13a53d1b1f5f50ae4ad1a7c51a3d9203\"\/>\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>Umfang eines beliebigen Dreiecks<\/h2>\n<p>Wir haben jetzt die letzte \u00dcbung vor uns. Erinnere dich daran, dass der Umfang die Summe der drei Seitenl\u00e4ngen des Dreiecks ist und beachte, dass die Seitenl\u00e4nge die gleiche ist, wie der Abstand zwischen zwei Punkten des Dreiecks.<\/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>Nimm an, dass <code>distance2D(x1, y1, x2, y2)<\/code> bereits definiert wurde. Definiere nun eine Funktion <code>trianglePerimeter(xA, yA, xB, yB, xC, yC)<\/code> , die den Umfang eines Dreiecks berechnet, dessen drei Punkte (xA, yA), (xB, yB) und (xC, yC) sind.<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>Du bist jetzt f\u00fcr die n\u00e4chste Lektion bereit!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lektion 11 hat drei Teile A, B und C, die in beliebiger Reihenfolge beendet werden k\u00f6nnen. In dieser \u00dcbung werden wir vier Funktionen schreiben, die geometrische Berechnungen ausf\u00fchren k\u00f6nnen: eine Funktion, um die L\u00e4nge der Hypotenuse eines rechteckigen Dreiecks zu &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/11c-de\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2653,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5520","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/5520","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\/2653"}],"replies":[{"embeddable":true,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/comments?post=5520"}],"version-history":[{"count":20,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/5520\/revisions"}],"predecessor-version":[{"id":15973,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/5520\/revisions\/15973"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=5520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}