{"id":532,"date":"2022-06-14T07:00:33","date_gmt":"2022-06-14T06:00:33","guid":{"rendered":"https:\/\/blog.univ-angers.fr\/mathsinfo\/?p=532"},"modified":"2022-06-19T08:03:35","modified_gmt":"2022-06-19T07:03:35","slug":"kata13","status":"publish","type":"post","link":"https:\/\/blog.univ-angers.fr\/mathsinfo\/2022\/06\/14\/kata13\/","title":{"rendered":"Treizi\u00e8me exercice en Python, JavaScript et APL"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.univ-angers.fr\/mathsinfo\/files\/2022\/06\/image-17.png\"><img loading=\"lazy\" decoding=\"async\" width=\"858\" height=\"399\" src=\"https:\/\/blog.univ-angers.fr\/mathsinfo\/files\/2022\/06\/image-17.png\" alt=\"\" class=\"wp-image-533\" srcset=\"https:\/\/blog.univ-angers.fr\/mathsinfo\/files\/2022\/06\/image-17.png 858w, https:\/\/blog.univ-angers.fr\/mathsinfo\/files\/2022\/06\/image-17-300x140.png 300w, https:\/\/blog.univ-angers.fr\/mathsinfo\/files\/2022\/06\/image-17-768x357.png 768w, https:\/\/blog.univ-angers.fr\/mathsinfo\/files\/2022\/06\/image-17-500x233.png 500w\" sizes=\"auto, (max-width: 858px) 100vw, 858px\" \/><\/a><\/figure>\n\n\n\n<p><span style=\"text-decoration: underline\">R\u00e9sum\u00e9 en fran\u00e7ais<\/span> : Une pizzeria <strong>r\u00e9compense<\/strong> ses meilleurs clients en offrant une <strong>pizza gratuite<\/strong> s&rsquo;ils ont fait <strong>au moins 5 achats<\/strong> d&rsquo;un <strong>montant au moins \u00e9gal \u00e0 20<\/strong> EUR. Cependant, ce <strong>syst\u00e8me<\/strong> est susceptible d&rsquo;\u00eatre <strong>modifi\u00e9<\/strong> dans le futur. On vous demande de cr\u00e9er une <strong>fonction<\/strong> qui \u00e0 partir du <strong>nombre d&rsquo;achats<\/strong> <strong>minimum<\/strong>, du <strong>montant minimum<\/strong> et d&rsquo;un <strong>dictionnaire<\/strong> contenant les <strong>donn\u00e9es<\/strong> sur vos <strong>clients<\/strong>, va renvoyer la liste de ceux qui auront une pizza gratuite.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Syst\u00e8me 1 : Pour avoir une pizza gratuite, il faut avoir au moins 5 achats d'un montant minimum de 20 EUR.\n\nmin_achats = 5\nmin_prix = 20\nconso = {\n'John Doe' : &#091;<strong><span style=\"text-decoration: underline\">22<\/span><\/strong>, <strong><span style=\"text-decoration: underline\">30<\/span><\/strong>, 11, 17, 15, <strong><span style=\"text-decoration: underline\">52<\/span><\/strong>, <strong><span style=\"text-decoration: underline\">27<\/span><\/strong>, 12],  # Montants des achats\n'Jane Doe' : &#091;5, 17, <strong><span style=\"text-decoration: underline\">30<\/span><\/strong>, <strong><span style=\"text-decoration: underline\">33<\/span><\/strong>, <strong><span style=\"text-decoration: underline\">40<\/span><\/strong>, <strong><span style=\"text-decoration: underline\">22<\/span><\/strong>, <strong><span style=\"text-decoration: underline\">26<\/span><\/strong>, 10, 11, <strong><span style=\"text-decoration: underline\">45<\/span><\/strong>]\n}\n\n&gt;&gt; free(conso, min_achats, min_prix)\n&#091;'Jane Doe']     # Elle seule aura une pizza gratuite\n\n# Syst\u00e8me 2 : Pour avoir une pizza gratuite, il faut avoir au moins 2 achats d'un montant minimum de 50 EUR.\n\nmin_achats = 2\nmin_prix = 50\nconso = {\n'Joey Bonzo' : &#091;22, <strong><span style=\"text-decoration: underline\">67<\/span><\/strong>, <strong><span style=\"text-decoration: underline\">53<\/span><\/strong>, 29],       # Montants des achats\n'Jennifer Bonzo' : &#091;<strong><span style=\"text-decoration: underline\">51<\/span><\/strong>, 19]\n}\n\n&gt;&gt; free(conso, min_achats, min_prix)\n&#091;'Joey Bonzo']<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Version classique<\/h2>\n\n\n\n<p>Pour chaque consommateur, on va compter le nombre d&rsquo;achats dont le montant est \u2265 au montant minimum impos\u00e9. Si ce nombre est \u2265 au minimum d&rsquo;achats, la personne aura une pizza gratuite. <\/p>\n\n\n\n<p>On peut imaginer une <strong>premi\u00e8re boucle<\/strong> pour parcourir les <strong>consommateurs<\/strong>, une <strong>seconde<\/strong> pour parcourir les <strong>achats<\/strong> et enfin un <strong>test<\/strong> pour savoir <strong>si<\/strong> cette personne doit avoir une <strong>pizza<\/strong>.<\/p>\n\n\n\n<p>Comment :<br>&#8211; r\u00e9cup\u00e9rer les diff\u00e9rents consommateurs ?<br>&#8211; r\u00e9cup\u00e9rer leurs achats ?<\/p>\n\n\n\n<p>Partons de cet exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>conso = {\n'John Doe' : &#091;22, 30, 11, 17, 15, 52, 27, 12],\n'Jane Doe' : &#091;5, 17, 30, 33, 40, 22, 26, 10, 11, 45]\n}\n\n<span style=\"text-decoration: underline\">Python<\/span>\n\n&gt;&gt; conso.keys()                        # Autre solution plus bas\ndict_keys(&#091;'John Doe', 'Jane Doe'])\n\n&gt;&gt; list(conso.keys())\n&#091;'John Doe', 'Jane Doe']\n\n<span style=\"text-decoration: underline\">JavaScript<\/span>\n\n&gt;&gt; Object.keys(conso)\n&#091;'John Doe', 'Jane Doe']\n\n<span style=\"text-decoration: underline\">APL<\/span>\n\nconso \u2190 ('John Doe' 22 30 11 17 15 52 27 12) \n        ('Jane Doe' 5 17 30 33 40 22 26 10 11 45)\n\n      1\u2191\u00a8conso             \u235d Premier \u00e9l\u00e9ment de chaque\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\n\u2502\u2502John Doe\u2502\u2502\u2502Jane Doe\u2502\u2502\n\u2502\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u2502\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/code><\/pre>\n\n\n\n<p>Et pour r\u00e9cup\u00e9rer les achats d&rsquo;un consommateur :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><span style=\"text-decoration: underline\">Python &amp; JavaScript<\/span>\n\n&gt;&gt; conso&#091;'John Doe']\n&#091;22, 30, 11, 17, 15, 52, 27, 12]\n\n\n<span style=\"text-decoration: underline\">APL<\/span>\n\n      1\u2193\u00a8 conso         \u235d Achats des diff\u00e9rents clients\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u250222 30 11 17 15 52 27 12\u25025 17 30 33 40 22 26 10 11 45\u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">python<\/h3>\n\n\n\n<p>On peut \u00e9galement parcourir \u00e0 la fois les <strong>cl\u00e9s<\/strong> et les <strong>valeurs<\/strong>. Voici un exemple qui calcule le montant total des achats des consommateurs :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt; conso = {\n'John Doe' : &#091;22, 30, 11, 17, 15, 52, 27, 12],\n'Jane Doe' : &#091;5, 17, 30, 33, 40, 22, 26, 10, 11, 45]\n}\n\n&gt;&gt; for (p, achats) in conso.items():\n     print('Total pour {} : {}'.format(p, sum(achats)))\n\nTotal pour John Doe : 186\nTotal pour Jane Doe : 239<\/code><\/pre>\n\n\n\n<p><strong>Version finale<\/strong> <a href=\"https:\/\/tio.run\/##hVJNSgMxFN7nFB@4aIuDtFNHoVDduNGFii5Lkdhm2uhMEvMD\/uABPIgLz@FNvEh9mZlOqwgGwoTM9\/fei3nyS62Gq9Vc5MitEN2ZVk4nKKW64bMl964@GysfeyMGLPhCceUdxphgiu21g0thnVZKODwECR6sVh5BCRj5\/MyxsNwH6QXJ5NrCQCpUfnv34sl1e6NG5kLBcDvTwXoUJFZhypJ7EaxjEVNHowzVr4mZbjJcfX7Mgvn8IC@pFebEr9EV0WvPC@L18Wvt4PwW804j\/PX2jpLCU6Wx\/IoaI5cxco0ZbVF\/B94yBGROtKNx20asy7yWrcdffpu4u2MMfkQlP36ngxfYHYA1JjW2MWozkk3Ic@l4WQoSbys8bjzW89zjxgg175pe43FaxAHyv8dnhQ9WbR7Dj3RXwlMnqPMoOArpKGacwhrMWDU0GsIL65zppcKJFh3qyiRNEwz7CQYD2oe0swQZ3aXxnE4TgnNKs4ZnNSoyhsME@\/SNCukB3Tcq@9mUvbJNQ8g0Y@0gxkj7jNFR@e6\/j7@3Wn0D\" target=\"_blank\" rel=\"noreferrer noopener\">\u00e0 tester ici <\/a>qui reprend notre premi\u00e8re approche : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def free(conso, min_achats, min_prix):\n  gagnants = &#091; ]             # Personnes qui auront une pizza gratuite\n  for p in conso.keys():     # On parcourt les consommateurs\n    achats = conso&#091;p]        # R\u00e9cup\u00e9ration des achats\n    total = 0                # Nb d'achats \u2265 montant min\n    for m in achats:         # On parcourt les achats\n      if m &gt;= min_prix :     # Si montant \u2265 montant min\n        total += 1           # On ajoute +1 \n    if total &gt;= min_achats:  # Suffisamment d'achats ?\n      gagnants.append(p)     # Il aura une pizza gratuite\n  return gagnants            # Retour de la liste des gagnants\n\n&gt;&gt; free(conso, min_achats, min_prix)     # Avec l'exemple 1\n&#091;'Jane Doe']<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">javascript<\/h3>\n\n\n\n<p>Vous pouvez <a href=\"https:\/\/tio.run\/##fZHNTsQgFIX3PMXdTRux6c9UjaazcuXGB2gagw39GTtAgJloJn32eilYXUlCgHPP@biEI7sw0@pR2dvLw7K0UhgLneYcKojcSVI4jeKNtQOzxu@VHj9jqA5wJYCjZ71gwhpM1NA8rVonNUQKZAev70fe2uSDfxnPi2NYLT4MHozZtVirAAArLZtQTiEIK\/LkkD4SezlgYOxc9VD96dAjbqrMW2ayGX0lmANue0eizmaIlOf7kOb2rMXmmAlZu8X2rmT3IgcBz5Lv4BHqPKdQpBSyDOc9zpJCiVru9nlD0c4E3@yld7lEUVDY4@oI@R3qgbIvGzKT30bx0pL8PBIPeRq6mXgyyT5yn\/fvz8XL8g0\" target=\"_blank\" rel=\"noreferrer noopener\">tester cette version ici<\/a> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const free = (conso, min_achats, min_prix) =&gt; {\n    gagnants = &#091; ];\n    for (p of Object.keys(conso)) \n    {\n     achats = conso&#091;p];\n     total = 0 ;\n     for (m of achats)\n     {\n      if (m &gt;= min_prix) total +=1\n     }\n     if (total &gt;= min_achats) gagnants.push(p)\n    }\n    return gagnants}\n\n&gt;&gt; free(conso, min_achats, min_prix)     \/\/ Avec l'exemple 1\n&#091;'Jane Doe']<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Version plus moderne<\/h2>\n\n\n\n<p>Nous devons <strong>filtrer<\/strong> les consommateurs suivant un double crit\u00e8re : Nombre de pizzas achet\u00e9s et ayant un prix \u2265 montant minimum. Rappelons bri\u00e8vement comment on peut filtrer en Python, JavaScript et APL, par exemple en cherchant quels \u00e9tudiants ont des notes \u2265 10 :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>notes = &#091;5, 12, 11, 9, 3, 17, 18, 6]\n\n<span style=\"text-decoration: underline\">Python<\/span>\n\n&gt;&gt; &#091;v for v in notes if v &gt;= 10]\n&#091;12, 11, 17, 18]\n\n<span style=\"text-decoration: underline\">JavaScript<\/span>\n\n&gt;&gt; notes.filter(v =&gt; v &gt;= 10)\n&#091;12, 11, 17, 18]\n\n<span style=\"text-decoration: underline\">APL<\/span>\n\n      notes \u2190 5 12 11 9 3 17 18 6\n\n      (notes \u2265 10) \/ notes      \u235d Version 1\n12 11 17 18\n\n      (10 \u2264 notes) \u2286 notes      \u235d Version 2\n\u250c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2510\n\u250212 11\u250217 18\u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2518\n\n      10 (\u2264 \u2286 \u22a2) notes          \u235d Version \"train\"\n\u250c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2510\n\u250212 11\u250217 18\u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2518\n\n     \u220a (10 \u2264 notes) \u2286 notes\n12 11 17 18\n\n      10 (\u220a &lt; \u2286 \u22a2) notes\n12 11 17 18<\/code><\/pre>\n\n\n\n<p>Et pour compter le nombre d&rsquo;\u00e9tudiants re\u00e7us (c&rsquo;est-\u00e0-dire avec une note \u2265 10 :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>notes = &#091;5, 12, 11, 9, 3, 17, 18, 6]\n\n<span style=\"text-decoration: underline\">Python<\/span>\n\n&gt;&gt; len(&#091;v for v in notes if v &gt;= 10])  # Taille du tableau\n4\n\n&gt;&gt; sum(&#091;v &gt;= 10 for v in notes])       # Somme de True ou False\n4\n\n&gt;&gt; sum(v &gt;= 10 for v in notes)         # Parenth\u00e8ses inutiles\n4\n\n\n<span style=\"text-decoration: underline\">JavaScript<\/span>\n\n&gt;&gt; notes.filter(v =&gt; v &gt;= 10).length\n4\n\n&gt;&gt; notes.reduce((a, v) =&gt; a + (v &gt;= 10), 0)\n4\n\n<span style=\"text-decoration: underline\">APL<\/span>\n\n      notes \u2190 5 12 11 9 3 17 18 6\n\n      notes +.\u2265 10         \u235d Somme des \u00e9l\u00e9ments \u2265 10\n4<\/code><\/pre>\n\n\n\n<p>On obtient ainsi ces 2 versions plus modernes pour JavaScript et Python :<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">javascript<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>const free = (conso, min_achats, min_prix) =&gt;\n  Object.keys(conso)            \/\/ Liste de consommateurs\n    .filter(p =&gt;                \/\/ Pour chaque personne p   \n       conso&#091;p]                 \/\/ On filtre ses achats\n        .filter(m =&gt; m &gt;= min_prix)   \/\/ en gardant ceux \u2265 min_prix\n        .length                 \/\/ On compte le nombre d'achats ok\n        &gt;= min_achats           \/\/ On garde la personne si \u2265 min_achats\n    )<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">python<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>def free(conso, min_achats, min_prix):\n  return &#091; \\\n    p for p in conso.keys() \\       # on garde le consommateur si...\n    if sum(m &gt;= min_prix for m in conso&#091;p]) \\  # Nb achats \u2265 min_prix\n    &gt;= min_achats \\                 # ...d\u00e9passe min_achats\n  ]<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">APL<\/h3>\n\n\n\n<p>On veut <strong>s\u00e9lectionner<\/strong> ( <strong>\/<\/strong> ) les noms des consommateurs, pour cela on va utiliser un vecteur <strong>logique<\/strong> (bool\u00e9en) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>      1\u2191\u00a8conso                \u235d Noms des consommateurs\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\n\u2502\u2502John Doe\u2502\u2502\u2502Jane Doe\u2502\u2502\n\u2502\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u2502\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n      1 0 \/ 1\u2191\u00a8conso          \u235d je veux le 1er et pas le 2e nom\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\n\u2502\u2502John Doe\u2502\u2502\n\u2502\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/code><\/pre>\n\n\n\n<p>Cr\u00e9ons le vecteur logique :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>      conso \u2190 ('John Doe' 22 30 11 17 15 52 27 12) \n              ('Jane Doe' 5 17 30 33 40 22 26 10 11 45)\n\n      (1\u2193\u22a2)\u00a8 conso            \u235d  Achats des consommateurs\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u250222 30 11 17 15 52 27 12\u25025 17 30 33 40 22 26 10 11 45\u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n      (20 +.\u2264 1\u2193\u22a2)\u00a8 conso     \u235d  Nombre d'achats \u2265 20\n4 6\n\n      20 (\u22a3 +.\u2264 1\u2193\u22a2)\u00a8 conso     \u235d Version plus g\u00e9n\u00e9rale\n4 6\n\n    5 \u2264  20 (\u22a3 +.\u2264 1\u2193\u22a2)\u00a8 conso  \u235d Ce nb d'achats est-il \u2265 5 ?\n0 1\n\n    (5 \u2264  20 (\u22a3 +.\u2264 1\u2193\u22a2)\u00a8 conso) \/ 1\u2191\u00a8conso   \u235d Pizza gratuite pour\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\n\u2502\u2502Jane Doe\u2502\u2502\n\u2502\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/code><\/pre>\n\n\n\n<p>Ce qui am\u00e8ne \u00e0 cette <strong>version finale<\/strong> en <a href=\"https:\/\/tio.run\/##NU8xCsJAEOzziuniIdHcJpdgK1Z@QSyOeGog3ImpVGwFBUHxB2LhB2wsfcp9RHOnbjWzMzvMykUVTVayMrOoqGRdl8W7mcLo2sDuTmiFQzPXGBgVgghJDM7Bc3ABQaAGEHMmqdXXJJza2JIEaexOKAP3V6lgwXSplM\/dtOzxOeJj2P0NHtMY7Y5j3O4u9nBlr7s9Phi6bnH2ZBsIUAwf4isGBPHjrqhaoW\/02viqWQ6RgHq@ntK6nKrlXxbNDz32AQ\" target=\"_blank\" rel=\"noreferrer noopener\">APL \u00e0 tester ici<\/a> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>      free \u2190 {(\u237a&#091;1] \u2264 (\u237a&#091;2] +.\u2264 1\u2193\u22a2)\u00a8\u2375) \/ 1\u2191\u00a8\u2375}\n\n      5 20 free conso\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\n\u2502\u2502Jane Doe\u2502\u2502\n\u2502\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n      2 50 free ('Joey Bonzo' 22 67 53 29) ('Jennifer Bonzo' 51 19)\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\n\u2502\u2502Joey Bonzo\u2502\u2502\n\u2502\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>R\u00e9sum\u00e9 en fran\u00e7ais : Une pizzeria r\u00e9compense ses meilleurs clients en offrant une pizza gratuite s&rsquo;ils ont fait au moins 5 achats d&rsquo;un montant au moins \u00e9gal \u00e0 20 EUR. Cependant, ce syst\u00e8me est susceptible d&rsquo;\u00eatre modifi\u00e9 dans le futur. &hellip; <a href=\"https:\/\/blog.univ-angers.fr\/mathsinfo\/2022\/06\/14\/kata13\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4913,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-532","post","type-post","status-publish","format-standard","hentry","category-twitter"],"_links":{"self":[{"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/posts\/532","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/users\/4913"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/comments?post=532"}],"version-history":[{"count":35,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/posts\/532\/revisions"}],"predecessor-version":[{"id":662,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/posts\/532\/revisions\/662"}],"wp:attachment":[{"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/media?parent=532"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/categories?post=532"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/tags?post=532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}