{"id":4688,"date":"2012-06-21T17:41:18","date_gmt":"2012-06-21T21:41:18","guid":{"rendered":"http:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=4688"},"modified":"2020-11-06T00:30:43","modified_gmt":"2020-11-06T05:30:43","slug":"15b-fr","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/15b-fr\/","title":{"rendered":"15B: Les pompes Python"},"content":{"rendered":"<!-- Please retain this notice and add more notes if you create a new version.<br \/>\nMain French translator: Brice Canvel, brice.canvel@gmail.com<br \/>\nOriginal lesson author: David Pritchard, daveagp@gmail.com<br \/>\nLicense: http:\/\/creativecommons.org\/licenses\/by-nc-sa\/3.0\/<br \/>\nFor the full site, visit http:\/\/cscircles.ca-->\n<p><em>Les exercices 15A, 15B et 15C peuvent \u00eatre fait dans n'importe quel ordre.<\/em><\/p>\n<p>Dans cette le\u00e7on nous vous proposons des exercices de difficult\u00e9 moyenne qui combinent les outils que nous avons vus dans les le\u00e7ons pr\u00e9c\u00e9dentes.<\/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'>\u221240\u00b0C en hiver<\/span><\/div>Dans cette exercice, vous allez cr\u00e9er une convertisseur de temp\u00e9rature qui convertira des temp\u00e9ratures Fahrenheit en Celsius et vice-versa. Vous aurez besoin des formules suivantes qui lient la temp\u00e9rature <em>f<\/em> en Fahrenheit \u00e0 la temp\u00e9rature <em>c<\/em> en Celsius:<\/p>\n<p style=\"text-align: center;\"><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cdisplaystyle%7Bf+%3D+c+%5Ctimes+%5Cfrac%7B9%7D%7B5%7D+%2B+32%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='\\displaystyle{f = c \\times \\frac{9}{5} + 32}' title='\\displaystyle{f = c \\times \\frac{9}{5} + 32}' class='latex' \/><\/p>\n<p style=\"text-align: center;\"><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cdisplaystyle%7Bc+%3D+%28f+-+32%29%5Ctimes%5Cfrac%7B5%7D%7B9%7D.%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='\\displaystyle{c = (f - 32)\\times\\frac{5}{9}.}' title='\\displaystyle{c = (f - 32)\\times\\frac{5}{9}.}' class='latex' \/><\/p>\n<p>L'entr\u00e9e consistera en un nombre de type float imm\u00e9diatement suivi de la lettre F ou C, par exemple \"<code>13.2C<\/code>\". Vous convertirez et afficherez la temp\u00e9rature convertie au m\u00eame format. Par exemple, si l'entr\u00e9 est \"<code>8F<\/code>\" la sortie sera (environ) \"<code>-13.333C<\/code>\" et si l'entr\u00e9e est \"<code>12.5C<\/code>\" la sortie sera \"<code>54.5F<\/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='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\">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='submit0' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch0\" value=\"Input Switch\" onclick=\"pbInputSwitch(0,'N')\" ><\/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><select id='pbSelect0' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(0,'15b.degrees')\" >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=\"e1a4654f45dcaa982a977491bcdae061\"\/>\n<div id='pbresults0' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(0);});pbInputSwitch(0,\"N\");<\/script>\n<\/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'>V\u00e9rification de num\u00e9ro de carte de cr\u00e9dit<\/span><\/div>Vous avez \u00e9t\u00e9 embauch\u00e9 par MeisterCard pour \u00e9crire une fonction qui v\u00e9rifie si un num\u00e9ro de carte de cr\u00e9dit est valide. Votre fonction <code>check(S)<\/code> prend une cha\u00eene <code>S<\/code> en entr\u00e9e. Tout d'abord, si la cha\u00eene ne respecte pas le format <code>\"#### #### #### ####\"<\/code> o\u00f9 chaque\u00a0<code>#<\/code> est un chiffre, la fonction retounera <code>False<\/code>. Sinon, si la somme des chiffres est divisible par 10 (une m\u00e9thode \"checksum\"), alors la proc\u00e9dure retournera <code>True<\/code>, sinon elle retournera <code>False<\/code>. Par exemple, si <code>S<\/code> est la cha\u00eene\u00a0\"<code>9384 3495 3297 0123<\/code>\"\u00a0alors, bien que le format soit correct, la somme des chiffres est 72 et donc le programme retournera <code>False<\/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='usercode1' id='usercode1'  cols=10 rows=20   class='pyboxCode RW'>\ndef check(S):\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\">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='defaultCode1' value='def check(S):\\n'><\/input>\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,'Y')\" ><\/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,'Y')\" ><\/td>\n<\/tr><\/table><select id='pbSelect1' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(1,'15b.creditcard')\" >History<\/option>\n<option name='default' data-pbonclick=\"pbSetText(1,descape($('#defaultCode1').val()))\" >Reset code to default<\/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=\"da836c307f058db801b776d63dbe4a4c\"\/>\n<div id='pbresults1' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(1);});pbInputSwitch(1,\"Y\");<\/script>\n<\/p>\n<p>Dans l'exercice suivant, utilisez la m\u00e9thode\u00a0<code>string.split()<\/code>, qui supprime les espaces d'une cha\u00eene et retourne une liste de mots qu'elle contient; et\u00a0<code>string.lower()<\/code>, qui converte une cha\u00eene en minuscules. par exemple,<\/p>\n<ul>\n<li><code>\"Diviser ces mots!\".split()<\/code> retourne la liste\u00a0<code>[\"Diviser\", \"ces\", \"mots!\"]<\/code><\/li>\n<li><code>\"MINIScules\".lower()<\/code> retourne\u00a0<code>\"miniscules\"<\/code><\/li>\n<\/ul>\n<p>Note: <code>split()<\/code> accepte d'autres option pour s\u00e9parer une cha\u00eene diff\u00e9remment; voir la <a href=\"http:\/\/docs.python.org\/py3k\/library\/stdtypes.html#str.split\">documentation<\/a>.<\/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'>Analyse po\u00e9tique<\/span><\/div>Un \u00e9crivain travaille sur son nouveau po\u00e8me <em>Turing et les Machines<\/em>. Il vous a embauch\u00e9 pour d\u00e9terminer le mot qui appara\u00eet le plus souvent. Vous pouvez acc\u00e9der aux lignes du po\u00e8me en appelant <code>input()<\/code>. La derni\u00e8re ligne contient les caract\u00e8res\u00a0<code>###<\/code>. Toutes les lignes sont compos\u00e9es de mots s\u00e9par\u00e9s par des espaces; il n'y a pas de chiffres ou de ponctuation. Convertissez tous les mots en minuscules et <strong>affichez le mot qui appara\u00eet le plus souvent<\/strong> (il n'y aura jamais plus d'un). Par exemple, si l'entr\u00e9e est<\/p>\n<pre>Compter chaque mot avec soin\nAvec Python la tache prend pas longue \n###<\/pre>La sortie sera<\/p>\n<pre>avec<\/pre>puisqu'il appara\u00eet deux fois et que tous les autres mots appara\u00eessent une fois.<\/p>\n<p><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\">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='submit2' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch2\" value=\"Input Switch\" onclick=\"pbInputSwitch(2,'N')\" ><\/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><select id='pbSelect2' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(2,'15b.poem')\" >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=\"46b042fca21bf282288e6808ed0d78bc\"\/>\n<div id='pbresults2' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(2);});pbInputSwitch(2,\"N\");<\/script>\n<\/p>\n<p>Supposons que vous avez\u00a0<em>n<\/em>\u00a0parfums de glace et que vous vouliez faire un sundae en utilisant exactement\u00a0<em>k<\/em>\u00a0de ces parfums. Combien de combinaisons diff\u00e9rentes sont-elles possibles? Par exemple, si\u00a0<em>n<\/em>=4 and\u00a0<em>k<\/em>=2, il y a 6 possibilit\u00e9s:<\/p>\n<p style=\"text-align: center;\">(1) A et B, (2) A et C, (3) A et D, (4) B et C, (5) B et D, (6) C et D.<\/p>\n<p>(par exemple ici les parfums sont\u00a0<strong>A<\/strong>bricot,\u00a0<strong>B<\/strong>anane,\u00a0<strong>C<\/strong>hocolat, et\u00a0<strong>D<\/strong>ate).<\/p>\n<p>De la m\u00eame mani\u00e8re, si vous choisissez 2 personnes parmi 4 (<strong>A<\/strong>lain,\u00a0<strong>B<\/strong>rice,\u00a0<strong>C<\/strong>amille,\u00a0<strong>D<\/strong>iane) pour constituer un comit\u00e9, combien de mani\u00e8res diff\u00e9rentes existe-t-il? La r\u00e9ponse est toujours 6. Dans le prochain probl\u00e8me tu vas calculer une forme g\u00e9n\u00e9rale de cette valeur.<\/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'>Le choix est le v\u00f4tre<\/span><\/div>Le nombre de combinaisons de <em>k<\/em> \u00e9l\u00e9ments sur une total de\u00a0<em>n<\/em> \u00e9l\u00e9ments est \u00e9gal \u00e0<\/p>\n<p style=\"text-align: center;\"><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cdisplaystyle%7B%5Cfrac%7Bn%7D%7Bk%7D%5Ctimes%5Cfrac%7Bn-1%7D%7Bk-1%7D%5Ctimes%5Ccdots%5Ctimes%5Cfrac%7Bn-k%2B2%7D%7B2%7D%5Ctimes%5Cfrac%7Bn-k%2B1%7D%7B1%7D%7D&#038;bg=T&#038;fg=000000&#038;s=2' alt='\\displaystyle{\\frac{n}{k}\\times\\frac{n-1}{k-1}\\times\\cdots\\times\\frac{n-k+2}{2}\\times\\frac{n-k+1}{1}}' title='\\displaystyle{\\frac{n}{k}\\times\\frac{n-1}{k-1}\\times\\cdots\\times\\frac{n-k+2}{2}\\times\\frac{n-k+1}{1}}' class='latex' \/><\/p>\n<p>Ecrivez une fonction <code>parmi(n, k)<\/code> qui prend deux entiers <code>n<\/code> et <code>k<\/code>; nous garantissons\u00a0<em>n<\/em>&gt;<em>k<\/em>&gt;0. La fonction doit retourner la valeur donn\u00e9e par formule ci-dessus.<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,'15b.choose')\" >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=\"fa4be95784017d5264500cc3b72e1bfd\"\/>\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<p><span style=\"text-align: left;\">En math\u00e9matiques, le nombre que vous avez calcul\u00e9 dans l'exercice pr\u00e9c\u00e9dent est normalement \u00e9crit<\/span><\/p>\n<p style=\"text-align: center;\"><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cdisplaystyle%7B%5Cbinom%7Bn%7D%7Bk%7D%7D&#038;bg=T&#038;fg=000000&#038;s=2' alt='\\displaystyle{\\binom{n}{k}}' title='\\displaystyle{\\binom{n}{k}}' class='latex' \/><\/p>\n<p style=\"text-align: left;\">et appel\u00e9 \"<a href=\"http:\/\/fr.wikipedia.org\/wiki\/Coefficient_binomial\"><em>k<\/em> parmi\u00a0<em>n<\/em><\/a>.\" Il y a de nombreux faits int\u00e9ressants \u00e0 propos de ces valeurs comme<\/p>\n<p style=\"text-align: center;\"><img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cdisplaystyle%7B%5Cbinom%7Bn%7D%7Bk%7D+%3D+%5Cbinom%7Bn%7D%7Bn-k%7D%7D&#038;bg=T&#038;fg=000000&#038;s=2' alt='\\displaystyle{\\binom{n}{k} = \\binom{n}{n-k}}' title='\\displaystyle{\\binom{n}{k} = \\binom{n}{n-k}}' class='latex' \/> et <img src='https:\/\/s0.wp.com\/latex.php?latex=%5Cdisplaystyle%7B%5Cbinom%7Bn%7D%7Bk%7D+%3D+%5Cbinom%7Bn-1%7D%7Bk%7D+%2B+%5Cbinom%7Bn-1%7D%7Bk-1%7D%7D&#038;bg=T&#038;fg=000000&#038;s=2' alt='\\displaystyle{\\binom{n}{k} = \\binom{n-1}{k} + \\binom{n-1}{k-1}}' title='\\displaystyle{\\binom{n}{k} = \\binom{n-1}{k} + \\binom{n-1}{k-1}}' class='latex' \/><\/p>\n<p style=\"text-align: left;\">Ceci est la fin de notre session d'exercices; vous pouvez passer \u00e0 la le\u00e7on suivante.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les exercices 15A, 15B et 15C peuvent \u00eatre fait dans n'importe quel ordre. Dans cette le\u00e7on nous vous proposons des exercices de difficult\u00e9 moyenne qui combinent les outils que nous avons vus dans les le\u00e7ons pr\u00e9c\u00e9dentes. Coding Exercise: \u221240\u00b0C en &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/15b-fr\/\">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-4688","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/4688","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=4688"}],"version-history":[{"count":25,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/4688\/revisions"}],"predecessor-version":[{"id":14318,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/4688\/revisions\/14318"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=4688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}