{"id":6149,"date":"2012-11-05T20:23:30","date_gmt":"2012-11-06T01:23:30","guid":{"rendered":"http:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=6149"},"modified":"2019-03-04T09:48:08","modified_gmt":"2019-03-04T14:48:08","slug":"7c-loops-nl","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/7c-loops-nl\/","title":{"rendered":"07C: Lussen"},"content":{"rendered":"<p><em>Les 7 kent drie delen A, B, C die in een willekeurige volgorde kunnen worden doorgenomen.<\/em><\/p>\n<p>Tot nu toe hebben we een aantal basisprogrammeeropdrachten leren kennen (bijv. het toekennen van een waarde aan een variabele en het afdrukken van een waarde) en ook de\u00a0<code>if<\/code>-opdracht. In deze les introduceren we <strong>lussen<\/strong> (Eng.:\u00a0<strong><em>loops<\/em><\/strong>)\u00a0(ook wel <strong>de herhaal-opdracht<\/strong> genoemd of <strong>iteratie<\/strong>): een manier om de computer dezelfde opdrachten vele keren na elkaar te laten uitvoeren. Bijvoorbeeld,\u00a0bij het controleren van de spelling van een document komt <em>ieder<\/em> woord in het document aan bod; zoiets programmeer je typisch met een lus.\u00a0We zullen twee soorten lussen van Python beschrijven: <code>while<\/code>-lussen en <code>for<\/code>-lussen.<\/p>\n<h2><code>while<\/code>-lussen<\/h2>\n<p>Een <code>while<\/code>-opdracht herhaalt een aantal regels uit je programma keer op keer zolang er aan een bepaalde voorwaarde wordt voldaan. Hier volgt een voorbeeld:<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform0\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox0'>\n<div class=\"heading\"><span class='type'>Example: <\/span><span class='title'>Aftellen<\/span><\/div> <div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 136px;'><textarea wrap='off' name='usercode0' id='usercode0'  cols=10 rows=5 readonly='readonly'  style = 'height : 136px;'  class='pyboxCode RO'>\ntijdOver = 5\nwhile tijdOver &gt; 0:           # voorwaarde\n  print(tijdOver)             # body\n  tijdOver = tijdOver-1       # body\nprint('Boem!')             # dit is geen deel van de loop<\/textarea><\/div>\n<div id='pbhistory0' class='flexcontain' style='display:none;'><\/div>\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,'N')\" ><\/td>\n<\/tr><\/table><\/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=\"cd5b30931ef3b245d45c64be66a4eb60\"\/>\n<div id='pbresults0' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit0\").value = \"Run program\";document.getElementById(\"inputInUse0\").value = \"N\";<\/script>\n<\/p>\n<p>Hier volgt de algemene structuur:<\/p>\n<ul>\n<li>De eerste regel bestaat uit <code>while \u00abvoorwaarde\u00bb:<\/code> waarbij \u00abvoorwaarde\u00bb\u00a0een uitdrukking is die <code>True<\/code>\u00a0(waar) of\u00a0<code>False<\/code>\u00a0(onwaar) oplevert\u00a0(een Booleaanse uitdrukking dus, zoals bij <code>if<\/code>-opdrachten).<\/li>\n<li>Daarna volgt een blok bestaande uit opdrachten die inspringen (net zoals bij de\u00a0<code>if<\/code>-opdracht) dat steeds weer wordt uitgevoerd. Dit wordt het <em>lichaam<\/em> (Eng.:\u00a0<em>body<\/em>)\u00a0genoemd.<\/li>\n<li>Wanneer je het programma uitvoert, gebeurt het volgende:\n<ol>\n<li>De voorwaarde wordt getest. Als de voorwaarde <code>False<\/code>\u00a0is, stopt de lus, en voert Python de code uit die na de lus komt in het programma.<\/li>\n<li>Als de voorwaarde <code>True<\/code>\u00a0is, dan wordt het lichaam uitgevoerd, waarbij de opdrachten van het lichaam van boven naar beneden doorlopen worden. Ga dan weer naar Stap 1.<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform1\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox1'>\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'>Countup<\/span><\/div>Pas het voorbeeld hierboven aan zodat het resultaat een programma is waarbij we <strong>vooruit<\/strong> tellen, beginnend bij 1 en dan tot <strong>10<\/strong>, en druk dan <code>Boem!<\/code> af.<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='usercode1' id='usercode1'  cols=10 rows=20   class='pyboxCode RW'>\n# delete this comment and enter your code here\n<\/textarea><\/div>\n<div id='pbhistory1' class='flexcontain' style='display:none;'><\/div>\n<div name=\"pyinput\" id=\"pyinput1\">You may enter input for the program in the box 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='submit1' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch1\" value=\"Input Switch\" onclick=\"pbInputSwitch(1,'N')\" ><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(1)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(1,'N')\" ><\/td>\n<\/tr><\/table><select id='pbSelect1' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(1,'7c.countup')\" >History<\/option>\n<option name='help' data-pbonclick=\"helpClick(1);\" >Help<\/option>\n<\/select><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse1\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"1\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"75e3446511effcf68e92372e74031c6f\"\/>\n<div id='pbresults1' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(1);});pbInputSwitch(1,\"N\");<\/script>\n<\/p>\n<p><table class='pywarn'><tr><td class='pywarnleft'><img src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/warning.png'\/><\/td><td class='pywarnright'><span> Met lussen kun je gemakkelijk een programma schrijven dat niet meer stopt, omdat het in een <em>eeuwigdurende<\/em> lus (ook een <em>oneindige lus<\/em> genoemd)\u00a0terecht is gekomen. <form class=\"pbform\" action=\"#\" id=\"pbform2\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox2'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Oneindige lus<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 58px;'><textarea wrap='off' name='usercode2' id='usercode2'  cols=10 rows=2 readonly='readonly'  style = 'height : 58px;'  class='pyboxCode RO'>\nwhile True:\n x=1<\/textarea><\/div>\n<div id='pbhistory2' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit2' value=' '\/><\/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,'N')\" ><\/td>\n<\/tr><\/table><\/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=\"7a48ca21c722ec9b36719434e8bb9f57\"\/>\n<div id='pbresults2' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit2\").value = \"Run program\";document.getElementById(\"inputInUse2\").value = \"N\";<\/script>\n Je krijgt een foutmelding \"Time Limit Exceeded\" (tijdlimiet overschreden). Dat komt doordat de CS\u00a0Circles-webserver een tijdslimiet heeft; na 1 seconde wordt het programma afgebroken. Wanneer je het programma <a href=\"\/run-at-home\/\">thuis uitvoert<\/a>, dan blijft het eeuwig doorlopen (totdat je het zelf be\u00ebindigt).\u00a0 <\/span><\/td><\/table><\/p>\n<h2><code>for<\/code>-lussen<\/h2>\n<p>Er is nog een andere soort lus in Python; de <code>for<\/code>-lus. In veel situaties kunnen beide soorten lussen (<code>for<\/code>\/<code>while<\/code>) worden gebruikt. Maar soms is de ene eenvoudiger en dan weer de andere, waardoor het nuttig is om ze beide te kennen. Een <code>for<\/code>-lus wordt gebruikt om gemakkelijk een rij getallen te doorlopen (of zoals we in een volgende les zullen zien, iedere lijst met data).<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform3\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox3'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Voorbeeld van een <code>for<\/code>-lus: opwaarts tellen<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 58px;'><textarea wrap='off' name='usercode3' id='usercode3'  cols=10 rows=2 readonly='readonly'  style = 'height : 58px;'  class='pyboxCode RO'>\nfor teller in range(10, 15):\n  print(\"De waarde van teller is\", teller)<\/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,'N')\" ><\/td>\n<\/tr><\/table><\/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=\"97b11c31b2c640fd35277b1db3563bb8\"\/>\n<div id='pbresults3' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit3\").value = \"Run program\";document.getElementById(\"inputInUse3\").value = \"N\";<\/script>\n<\/p>\n<p>De algemene structuur van een numerieke\u00a0<code>for<\/code>-lus is<\/p>\n<pre>for \u00abvariabeleNaam\u00bb in range(\u00abstartWaarde\u00bb, \u00abeindWaarde\u00bb):\r\n  \u00abinspringend blok met opdrachten, dat de \"body\" van de lus wordt genoemd\u00bb<\/pre>Zoals gebruikelijk kan het lichaam meerdere regels lang zijn, zolang de regels maar evenveel inspringen. Eerst wordt het luslichaam uitgevoerd met <code>variabeleNaam<\/code>\u00a0gelijk aan\u00a0<code>startWaarde<\/code>. Daarna wordt het herhaald met\u00a0<code>variabeleNaam<\/code>\u00a0gelijk aan\u00a0<code>startWaarde+1<\/code>, dan opnieuw met\u00a0<code>startWaarde+2<\/code>, enzovoort. Dit gaat zo door totdat\u00a0<code>variabeleNaam<\/code> de waarde <code>eindWaarde-1<\/code> heeft bereikt; na die laatste uitvoering van het luslichaam (de laatste <em>iteratie<\/em> van de lus dus)\u00a0stopt de lus.<\/p>\n<p><table class='pywarn'><tr><td class='pywarnleft'><img src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/warning.png'\/><\/td><td class='pywarnright'><span> De lus eindigt met\u00a0<code>eindWaarde-1<\/code>, en niet met\u00a0<code>eindWaarde<\/code>! Dit heeft dus veel weg van de manier waarop substring-indices werken (zie les 7A). <form class=\"pbform\" action=\"#\" id=\"pbform4\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox4'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div> <div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 58px;'><textarea wrap='off' name='usercode4' id='usercode4'  cols=10 rows=2 readonly='readonly'  style = 'height : 58px;'  class='pyboxCode RO'>\nfor i in range(1, 3):\n print(i)             # 3 wordt niet geprint!<\/textarea><\/div>\n<div id='pbhistory4' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit4' value=' '\/><\/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,'N')\" ><\/td>\n<\/tr><\/table><\/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=\"3e5fb197572b77b559cf6c0ecc73ca24\"\/>\n<div id='pbresults4' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit4\").value = \"Run program\";document.getElementById(\"inputInUse4\").value = \"N\";<\/script>\n <\/span><\/td><\/table><\/p>\n<p>Het lichaam van een lus kan gerust zelf ook weer een lus bevatten. (We spreken van <em>geneste lussen<\/em>\u00a0(Eng.:\u00a0<em>nested loops<\/em>).)\u00a0Bijvoorbeeld:<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform5\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox5'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Een vierkant van 5 bij 5 afdrukken.<br\/><strong>Merk op<\/strong>:\u00a0<code>S = S + '*'<\/code> zet een\u00a0<code>*<\/code> aan het eind van de string <code>S<\/code> (geleerd in les 7A).<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 136px;'><textarea wrap='off' name='usercode5' id='usercode5'  cols=10 rows=5 readonly='readonly'  style = 'height : 136px;'  class='pyboxCode RO'>\nfor i in range(0, 5):\n  S = ''\n  for j in range(0, 5):\n    S = S + '*'\n  print(S)<\/textarea><\/div>\n<div id='pbhistory5' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit5' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(5)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(5,'N')\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse5\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"5\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"391d1f0929b57d24c74b42c647263de5\"\/>\n<div id='pbresults5' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit5\").value = \"Run program\";document.getElementById(\"inputInUse5\").value = \"N\";<\/script>\n<\/p>\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'>Star triangle<\/span><\/div>Wijzig voorgaand programma op twee manieren. Ten eerste: teken een driehoek in plaats van een vierkant, zoals: \u25e3. Ten tweede: in plaats van altijd 5 regels af te drukken zou het de gewenste grootte via de invoer moeten inlezen. Bijvoorbeeld, wanneer de invoer\u00a0<code>3<\/code>\u00a0is, dan is de uitvoer: <\/p>\n<pre>*<br\/>**<br\/>***<\/pre> <a class=\"hintlink\"  id=\"hintlink7\">Klik hier voor een aanwijzing.<\/a>\u00a0<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'>\nn=int(input())\n# delete this comment and enter your code here\n<\/textarea><\/div>\n<div id='pbhistory6' class='flexcontain' style='display:none;'><\/div>\n<div name=\"pyinput\" id=\"pyinput6\">You may enter input for the program in the box below.<div class=\"pyboxTextwrap resizy\" style=\"height: 102px;\" ><textarea wrap=\"off\" name=\"userinput\" class=\"pyboxInput\" cols=10 rows=4><\/textarea><\/div><\/div>\n<input type='hidden' id='defaultCode6' value='n=int(input())\\n'><\/input>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit6' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch6\" value=\"Input Switch\" onclick=\"pbInputSwitch(6,'N')\" ><\/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,'N')\" ><\/td>\n<\/tr><\/table><select id='pbSelect6' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(6,'7c.triangle')\" >History<\/option>\n<option name='default' data-pbonclick=\"pbSetText(6,descape($('#defaultCode6').val()))\" >Reset code to default<\/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=\"401e7cd708f34308c37971db37d2749d\"\/>\n<div id='pbresults6' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(6);});pbInputSwitch(6,\"N\");<\/script>\n<\/p>\n<h2>De opdrachten\u00a0<code>break<\/code> en\u00a0<code>continue<\/code><\/h2>\n<p>De opdracht\u00a0<code>break<\/code>\u00a0is te vergelijken met een nooduitgang bij een\u00a0<code>while<\/code>- of\u00a0<code>for<\/code>-lus: <code>break<\/code>\u00a0veroorzaakt een onmiddellijke sprong naar de opdrachten na het einde van het lichaam van de lus. Hier is een voorbeeld van een\u00a0<code>break<\/code>: het leest alle invoerregels totdat er \u00e9\u00e9n gevonden wordt die zegt\u00a0<code>\"END\"<\/code>.<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform8\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox8'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Een lus door invoerregels<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 214px;'><textarea wrap='off' name='usercode8' id='usercode8'  cols=10 rows=8 readonly='readonly'  style = 'height : 214px;'  class='pyboxCode RO'>\ncounter = 0\nwhile True:\n  lineIn = input()\n  if lineIn == 'END':\n    break\n  counter = counter+1\n  print('line', counter, '=', lineIn)\nprint('The end.')<\/textarea><\/div>\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<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(8)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(8,'N')\" ><\/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=\"9ee0b4f0f2c68408162aee0f0e61a3a8\"\/>\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>De\u00a0<code>continue<\/code>-opdracht <b>slaat\u00a0<\/b>de rest van de huidige lusiteratie (de uitvoering van het luslichaam die momenteel bezig is)\u00a0<strong>over<\/strong>, waarna verdergegaan wordt met de volgende iteratie (de volgende uitvoering van het luslichaam, dus bv. voor de volgende waarde van de <code>range<\/code>).<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform9\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox9'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div><div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 110px;'><textarea wrap='off' name='usercode9' id='usercode9'  cols=10 rows=4 readonly='readonly'  style = 'height : 110px;'  class='pyboxCode RO'>\nfor n in range(10, 16):  \n  if (n == 13):  # pech gehad\n    continue     # dus gaan we door\n  print(n)<\/textarea><\/div>\n<div id='pbhistory9' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit9' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(9)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(9,'N')\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse9\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"9\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"f23f168f597a0110eadc7c6057b15f7a\"\/>\n<div id='pbresults9' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit9\").value = \"Run program\";document.getElementById(\"inputInUse9\").value = \"N\";<\/script>\n<\/p>\n<h2>Oefeningen<\/h2>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform10\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox10'>\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'>Kwadraten<\/span><\/div>Kwadraten zijn gehele getallen die gelijk zijn aan K \u00d7 K. Zo is bijvoorbeeld 9 een kwadraat want 3 \u00d7 3 = 9. Schrijf een programma dat een geheel getal\u00a0<em>n<\/em>\u00a0als invoer inleest en als uitvoer de kwadraten kleiner dan\u00a0<em>n<\/em> geeft. Elk op een aparte regel, in opklimmende volgorde. Wanneer bijvoorbeeld de invoer 16 is dan is de correcte uitvoer: <\/p>\n<pre>1<br\/>4<br\/>9<\/pre> <a class=\"hintlink\"  id=\"hintlink11\">Hint<\/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='usercode10' id='usercode10'  cols=10 rows=20   class='pyboxCode RW'>\nn=int(input())\n# delete this comment and enter your code here\n<\/textarea><\/div>\n<div id='pbhistory10' class='flexcontain' style='display:none;'><\/div>\n<div name=\"pyinput\" id=\"pyinput10\">You may enter input for the program in the box below.<div class=\"pyboxTextwrap resizy\" style=\"height: 102px;\" ><textarea wrap=\"off\" name=\"userinput\" class=\"pyboxInput\" cols=10 rows=4><\/textarea><\/div><\/div>\n<input type='hidden' id='defaultCode10' value='n=int(input())\\n'><\/input>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit10' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch10\" value=\"Input Switch\" onclick=\"pbInputSwitch(10,'N')\" ><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(10)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(10,'N')\" ><\/td>\n<\/tr><\/table><select id='pbSelect10' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(10,'7c.squares')\" >History<\/option>\n<option name='default' data-pbonclick=\"pbSetText(10,descape($('#defaultCode10').val()))\" >Reset code to default<\/option>\n<option name='help' data-pbonclick=\"helpClick(10);\" >Help<\/option>\n<\/select><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse10\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"10\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"3ccac8adfd85f3ddbd4a4f4bc7c2dfab\"\/>\n<div id='pbresults10' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(10);});pbInputSwitch(10,\"N\");<\/script>\n<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform12\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox12'>\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'>Skipping<\/span><\/div>Voeg extra regels toe aan het voorbeeld \"Een lus door invoerregels\" van hierboven (we hebben het programma al voor je gekopieerd) door een extra eis toe te voegen: iedere regel die gelijk is aan\u00a0<code>SKIP<\/code>\u00a0moet niet worden afgedrukt en moet ook niet tot gevolg hebben dat de teller wordt opgehoogd. Voer het programma uit om een voorbeeld te bekijken.<a class=\"hintlink\"  id=\"hintlink13\">Hint<\/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='usercode12' id='usercode12'  cols=10 rows=20   class='pyboxCode RW'>\ncounter = 0\nwhile True:\n  lineIn = input()\n  if lineIn=='END':\n    break\n  counter = counter+1\n  print('line', counter, '=', lineIn)\n# delete this comment and enter your code here\n<\/textarea><\/div>\n<div id='pbhistory12' class='flexcontain' style='display:none;'><\/div>\n<div name=\"pyinput\" id=\"pyinput12\">You may enter input for the program in the box below.<div class=\"pyboxTextwrap resizy\" style=\"height: 102px;\" ><textarea wrap=\"off\" name=\"userinput\" class=\"pyboxInput\" cols=10 rows=4><\/textarea><\/div><\/div>\n<input type='hidden' id='defaultCode12' value='counter = 0\\nwhile True:\\n  lineIn = input()\\n  if lineIn==\\u0027END\\u0027:\\n    break\\n  counter = counter+1\\n  print(\\u0027line\\u0027, counter, \\u0027=\\u0027, lineIn)\\n'><\/input>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit12' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch12\" value=\"Input Switch\" onclick=\"pbInputSwitch(12,'N')\" ><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(12)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(12,'N')\" ><\/td>\n<\/tr><\/table><select id='pbSelect12' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(12,'7c.skip')\" >History<\/option>\n<option name='default' data-pbonclick=\"pbSetText(12,descape($('#defaultCode12').val()))\" >Reset code to default<\/option>\n<option name='help' data-pbonclick=\"helpClick(12);\" >Help<\/option>\n<\/select><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse12\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"12\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"a0d655eb632c02926f89f6de2cfa5498\"\/>\n<div id='pbresults12' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(12);});pbInputSwitch(12,\"N\");<\/script>\n<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform14\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox14'>\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'>Delers vinden<\/span><\/div>Als\u00a0<em>a<\/em> \u00d7 <em>b<\/em> = <em>n<\/em>, dan noemen we\u00a0<em>a<\/em> \u00d7 <em>b\u00a0<\/em>een\u00a0<strong>factorisatie<\/strong>\u00a0van\u00a0<em>n<\/em>. Schrijf in deze oefening een programma dat een positief geheel getal\u00a0<em>n<\/em>\u00a0als invoer inleest, en alle factorisaties van\u00a0<em>n<\/em>\u00a0als uitvoer heeft; daarbij moet de uitvoer eruit zien als in het voorbeeld hier beneden voor <em>n<\/em>=10. <\/p>\n<pre>1 times 10 equals 10<br\/>2 times 5 equals 10<br\/>5 times 2 equals 10<br\/>10 times 1 equals 10<\/pre> <a class=\"hintlink\"  id=\"hintlink15\">Hint<\/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='usercode14' id='usercode14'  cols=10 rows=20   class='pyboxCode RW'>\nn = int(input())\n# delete this comment and enter your code here\n<\/textarea><\/div>\n<div id='pbhistory14' class='flexcontain' style='display:none;'><\/div>\n<div name=\"pyinput\" id=\"pyinput14\">You may enter input for the program in the box below.<div class=\"pyboxTextwrap resizy\" style=\"height: 102px;\" ><textarea wrap=\"off\" name=\"userinput\" class=\"pyboxInput\" cols=10 rows=4><\/textarea><\/div><\/div>\n<input type='hidden' id='defaultCode14' value='n = int(input())\\n'><\/input>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit14' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch14\" value=\"Input Switch\" onclick=\"pbInputSwitch(14,'N')\" ><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(14)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(14,'N')\" ><\/td>\n<\/tr><\/table><select id='pbSelect14' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(14,'7c.factorize')\" >History<\/option>\n<option name='default' data-pbonclick=\"pbSetText(14,descape($('#defaultCode14').val()))\" >Reset code to default<\/option>\n<option name='help' data-pbonclick=\"helpClick(14);\" >Help<\/option>\n<\/select><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse14\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"14\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"e0d529604db8e7723823eb64200ecf73\"\/>\n<div id='pbresults14' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(14);});pbInputSwitch(14,\"N\");<\/script>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les 7 kent drie delen A, B, C die in een willekeurige volgorde kunnen worden doorgenomen. Tot nu toe hebben we een aantal basisprogrammeeropdrachten leren kennen (bijv. het toekennen van een waarde aan een variabele en het afdrukken van een &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/7c-loops-nl\/\">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-6149","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/6149","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=6149"}],"version-history":[{"count":43,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/6149\/revisions"}],"predecessor-version":[{"id":11204,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/6149\/revisions\/11204"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=6149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}