{"id":6168,"date":"2012-11-05T20:33:47","date_gmt":"2012-11-06T01:33:47","guid":{"rendered":"http:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=6168"},"modified":"2014-11-24T10:11:53","modified_gmt":"2014-11-24T15:11:53","slug":"15a-termination-determination-nl","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/15a-termination-determination-nl\/","title":{"rendered":"15A: Komt er een einde aan?"},"content":{"rendered":"<p><em>Oefeningen 15A, 15B, en 15C kunnen in elke willekeurige volgorde worden doorgewerkt.<\/em><\/p>\n<p>In deze les zul je een lang en complexe opgave afmaken dat in delen voor je wordt gepresenteerd. In deze les wordt <code>str.split(), <\/code>een nuttige methode om een string te splitsen, gepresenteerd, waarbij alle spaties worden verwijderd en waarbij een lijst wordt teruggegeven met alle woorden in de string. De originele string wordt niet aangetast.<\/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=\"title\">Example<\/span><\/div>Voorbeelden van <code>str.split()<\/code><div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 188px;'><textarea wrap='off' name='usercode0' id='usercode0'  cols=10 rows=7 readonly='readonly'  style = 'height : 188px;'  class='pyboxCode RO'>\nS = 'Dit is een string'\nwords = S.split()\nprint(words)\nprint(len(words))\nprint(words[1])\nprint(S)   # S is not changed\nprint('  Nog een voorbeeld van  split '.split())<\/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=\"e31f07f3cac71b958d19fad91f2a965a\"\/>\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><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> Je kunt <code>split()<\/code> aanroepen met specifieke argumenten om meer geavanceerd te splitsen, maar we hebben deze mogelijkheid hier beneden niet nodig. Wanneer je ge\u00efnteresseerd bent, ga dan naar de <a href=\"http:\/\/docs.python.org\/py3k\/library\/stdtypes.html#str.split\">Python documentie<\/a>. <\/span><\/td><\/table><\/p>\n<p>We gaan nu naar het eigenlijke probleem. De oude programmeertaal <a href=\"http:\/\/en.wikipedia.org\/wiki\/BASIC\">BASIC<\/a>\u00a0was beroemd door zijn regels die waren voorzien van een nummer en <code>goto<\/code> statements. In deze oefening gaat het erom om een sterk vereenvoudigde versie van BASIC te maken dei juist deze eigenschap heeft. In het bijzonder zal de invoer van je programma bestaan uit een aantal regels van de vrom<\/p>\n<p><code>\u00ablabel\u00bb goto \u00abtarget\u00bb<\/code><\/p>\n<p>waarbij\u00a0<code>\u00ablabel\u00bb<\/code>\u00a0en\u00a0<code>\u00abtarget\u00bb<\/code>\u00a0positieve gehele getallen zijn. Het \u00a0<em>label<\/em>\u00a0functioneert als de naam van een adres van de regel;\u00a0<em>alle labels zijn uniek.<\/em>\u00a0De\u00a0<em>target<\/em>\u00a0geeft aan welke regel vervolgens moet worden uitgevoerd. De laatste regel van het programma is <code>\u00ablabel\u00bb END<\/code>\u00a0dat aangeeft dat je meet stoppen zodra je deze regel hebt bereikt.\u00a0Hier volgt een voorbeeld van een programma in BASIC:<\/p>\n<pre>5 GOTO 30\r\n10 GOTO 20\r\n20 GOTO 10\r\n30 GOTO 40\r\n40 END<\/pre>Als BASIC dit programma uitvoert dan gebeurt het volgende. Begonnen wordt met de eerste regel (die met label 5). De regel met label 5 heeft target 30, dus door naar regel met label 30. Regel 30 zegt om verder te gaan naar regel 40. Regel 40 geeft aan om het programma te stoppen. Het programma komt op een correcte wijze tot een einde.<\/p>\n<p>Het is aan de nadere kant ook mogelijk dat een BASIC programma in oneindig lange loop zit. Hier volgt een voorbeeld:<\/p>\n<pre>10 GOTO 21\r\n21 GOTO 37\r\n37 GOTO 21\r\n40 END<\/pre>Het programma begint op regel 10 maar daarna blijft het in een oneindige lus tussen regel 21 en 37.<\/p>\n<p>Het is <strong>jouw taak<\/strong> om een\u00a0Python programma te schrijven, dat een BASIC programma als input heeft. Wanneer het programma eindigt dan zal het programma <code>success<\/code>\u00a0afdrukken. Wanneer het programma in een oneindige loop terecht komt dan dient het programma\u00a0<code>infinite loop<\/code>\u00a0afdrukken. Neem aan dat iedere target wijst naar een bestaand label en dat alle labels uniek zijn, het is dus niet nodig om het BASIC-programma te controleren op fouten.<\/p>\n<p>Er zijn meerdere manieren om dit te doen, maar in deze les hebben we gekozen voor een eenvoudige aanpak, waarbij het programma wordt opgedeeld in 3 sub-taken. (In les 15C krijg je een omvangrijk probleem en moet je de sub-taken zelf ontwerpen.)<\/p>\n<h2>Sub-taak 1: Het inlezen van het programma<\/h2>\n<p>Om het programma in te lezen dienen we herhaald <code><a href=\"\/5-input\/\">input()<\/a><\/code>\u00a0aan te roepen. We dienen echter te stoppen met aanroepen van\u00a0<code>input()<\/code>\u00a0zodra de laatste regel (die met\u00a0<code>END<\/code>) wordt bereikt, dit om een\u00a0<code>EOFError<\/code>\u00a0te vermijden.<\/p>\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'>Lees het programma in<\/span><\/div>Schrijf een functie\u00a0<code>getBASIC()<\/code>\u00a0die geen argumenten heeft, en het volgende doet: het leest de regels vanaf input met behulp van een while loop; wanneer het einde bereikt wordt zal het hele programma worden teruggeven in de vorm van een lijst van strings. (Hints: <a class=\"hintlink\"  id=\"hintlink2\">lijsten<\/a> en <a class=\"hintlink\"  id=\"hintlink3\">stoppen<\/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='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,'15a.getbasic')\" >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=\"628c9218dba6d782e80a1db23d4b84de\"\/>\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<h2>Sub-taak 2: Daar gaan we!<\/h2>\n<p>Wanneer we eenmaal het programma hebben ingelezen moeten we van regel naar regel kunnen gaan in het programma. Om dit voor elkaar te kunnen krijgen, vragen we je om de volgende subroutine te schijven.<br \/>\n<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'>Go to it!<\/span><\/div>Definieer een functie\u00a0<code>findLine(prog, target)<\/code>\u00a0dat het volgende doet. Neem aan dat <code>prog<\/code>\u00a0een lijst is met strings dat een BASIC programma weergeeft, net zoals het type dat gegenereerd wordt door\u00a0<code>getBASIC()<\/code>; neem aan dat\u00a0<code>target<\/code>\u00a0een string is dat een regelnummer bevat, die de target vormt van een GOTO statement. De functie moet dan de index <code>i<\/code>\u00a0teruggegeven (een getal tussen\u00a0<code>0<\/code>\u00a0en\u00a0<code>len(prog)-1<\/code>) waarbij\u00a0<code>prog[i]<\/code>\u00a0de regel is waarvan het label gelijk is aan <code>target<\/code>. <a class=\"hintlink\"  id=\"hintlink5\">Hint<\/a>\u00a0<br\/><strong>Sample input\/output:<\/strong>\u00a0Wanneer je <\/p>\n<pre>findLine(['10 GOTO 20','20 END'], '10')<\/pre> aanroept dan moet de output\u00a0<code>0<\/code>\u00a0zijn, \u00a0want item 0 uit de lijst is de regel met label 10.<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,'15a.goto')\" >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=\"ac782943c2ab9fe93f047e3f2a8fb981\"\/>\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<h2>Sub-taak 3: Slim het programma nabootsen<\/h2>\n<p>In de vorige twee oefeningen hebben we de\u00a0<em>input routine<\/em>\u00a0en de\u00a0<em>zoek taak gerealiseerd.<\/em>\u00a0Dit helpt om het programma korter te maken. Er is echter nog een belangrijke vraag onbeantwoord: hoe kunnen we het probleem dat we ons gesteld hebben oplossen? De meest rechttoe rechtaan weg zou het nabootsen van het BASIC programma zijn:<\/p>\n<ul>\n<li>laat\u00a0<code>prog<\/code>\u00a0het BASIC programma zijn (een array met strings)<\/li>\n<li>start een teller\u00a0<code>location<\/code>\u00a0met beginwaarde 0, omdat we beginnen met de eerste regel van het programma<\/li>\n<li>while True (zolang True),\n<ul>\n<li>als\u00a0<code>prog[location]<\/code>\u00a0de END regel is, geef \"success\" terug and stop.<\/li>\n<li>zorg ervoor dat\u00a0<code>T<\/code>\u00a0de target string is in\u00a0<code>prog[location]<\/code><\/li>\n<li>zorg ervoor dat de nieuwe waarde van <code>location<\/code> <code>findLine(prog, T)\u00a0<\/code>is.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Maar er is een probleem: hiermee worden geen oneindige loops gedetecteerd, en als het BASIC programma een oneindige loop heeft, dan zal ook het Python programma in een oneindige loop blijven doorgaan. Wat we wilden was dat het programma in deze situatie \"infinite loop\" zou afdrukken. Aan jou om dit probleem op te lossen; we geven hier beneden een hint.<\/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'>Slim nabootsen<\/span><\/div>Schrijf een functie\u00a0<code>execute(prog)<\/code>\u00a0dat het volgende doet. Stel dat\u00a0<code>prog<\/code> een lijst met strings is dat een BASIC programma bevat zoals eerder. Dan moet je programma ofwel \"<code>success<\/code>\" ofwel \"<code>infinite loop<\/code>\" teruggeven, afhankelijk of het programma wordt beeindigd, of voor altijd in een loop blijft. <strong>Belangrijk<\/strong>: je moet doen alsof de procedure <code>findLine(prog, target)<\/code>\u00a0zoals gedefinieerd in sub-taak 2 al gedefinieerd is, je hoeft die niet nog een keer te schrijven. <a class=\"hintlink\"  id=\"hintlink7\">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='usercode6' id='usercode6'  cols=10 rows=20   class='pyboxCode RW'>\n# here is a broken solution to get you started\ndef execute(prog):\n  location = 0\n  while True:\n    if location==len(prog)-1: return \"success\"\n    #get T from prog[location] via str.split\n    location = findLine(prog, T)\n<\/textarea><\/div>\n<div id='pbhistory6' class='flexcontain' style='display:none;'><\/div>\n<div name=\"pyinput\" id=\"pyinput6\">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<input type='hidden' id='defaultCode6' value='# here is a broken solution to get you started\\ndef execute(prog):\\n  location = 0\\n  while True:\\n    if location==len(prog)-1: return \\\"success\\\"\\n    #get T from prog[location] via str.split\\n    location = findLine(prog, T)\\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,'Y')\" ><\/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<\/tr><\/table><select id='pbSelect6' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(6,'15a.main')\" >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=\"5a8965bf24065416c4e0876322ecfc77\"\/>\n<div id='pbresults6' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(6);});pbInputSwitch(6,\"Y\");<\/script>\n<\/p>\n<h2>Alles samenvoegen<\/h2>\n<p>Om je programma te testen als complete oplossing kopieer je je deelprogramma's in het volgende template.<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform8\" method=\"POST\">\n<div class='pybox modeNeutral ' 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'>Coding Exercise: <\/span><span class='title'>BASIC Simulator<\/span><\/div>Put together your BASIC simulator.<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='usercode8' id='usercode8'  cols=10 rows=20   class='pyboxCode RW'>\n# def getBASIC from subtask 1\n\n# def findLine from subtask 2\n\n# def execute from subtask 3\n\nprint(execute(getBASIC()))\n<\/textarea><\/div>\n<div id='pbhistory8' class='flexcontain' style='display:none;'><\/div>\n<div name=\"pyinput\" id=\"pyinput8\">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='defaultCode8' value='# def getBASIC from subtask 1\\n\\n# def findLine from subtask 2\\n\\n# def execute from subtask 3\\n\\nprint(execute(getBASIC()))\\n'><\/input>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit8' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch8\" value=\"Input Switch\" onclick=\"pbInputSwitch(8,'N')\" ><\/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><select id='pbSelect8' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(8,'15a.overall')\" >History<\/option>\n<option name='default' data-pbonclick=\"pbSetText(8,descape($('#defaultCode8').val()))\" >Reset code to default<\/option>\n<option name='help' data-pbonclick=\"helpClick(8);\" >Help<\/option>\n<\/select><\/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=\"65fa257da1397c3584f44a84247679b0\"\/>\n<div id='pbresults8' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(8);});pbInputSwitch(8,\"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> Wanneer je programma een beetje ingewikkelder is, dan is het <em>onmogelijk<\/em>\u00a0om een een programma te schrijven dat nagaat of het eindigt. Dit was de eerste belangrijke stelling in de Informatica, bewezen door\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Alan_Turing\">Alan Turing<\/a>\u00a0in de \u00a0jaren 30 van de vorige eeuw, en tegenwoordig wordt eraan gerefereerd als \"het\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Halting_problem\">Halting Problem<\/a>\u00a0is onbeslisbaar.\" <\/span><\/td><\/table><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oefeningen 15A, 15B, en 15C kunnen in elke willekeurige volgorde worden doorgewerkt. In deze les zul je een lang en complexe opgave afmaken dat in delen voor je wordt gepresenteerd. In deze les wordt str.split(), een nuttige methode om een &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/15a-termination-determination-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-6168","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/6168","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=6168"}],"version-history":[{"count":18,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/6168\/revisions"}],"predecessor-version":[{"id":8797,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/6168\/revisions\/8797"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=6168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}