{"id":1871,"date":"2024-07-03T12:31:03","date_gmt":"2024-07-03T11:31:03","guid":{"rendered":"https:\/\/blog.univ-angers.fr\/mathsinfo\/?p=1871"},"modified":"2024-07-06T10:52:08","modified_gmt":"2024-07-06T09:52:08","slug":"one-liners-sur-hp-prime","status":"publish","type":"post","link":"https:\/\/blog.univ-angers.fr\/mathsinfo\/2024\/07\/03\/one-liners-sur-hp-prime\/","title":{"rendered":"One-liners sur HP Prime"},"content":{"rendered":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"HP-Prime : Programmation One-Liners (unilignes)\" width=\"584\" height=\"329\" src=\"https:\/\/www.youtube.com\/embed\/7idd8cjeUAk?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">R\u00e9ponses possibles aux 2 questions finales<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">ZIPSORT<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>cat(EXECON(\"CHAR(SORT({&amp;1,&amp;2}))\",ASC(A),ASC(B)))<\/code><\/pre>\n\n\n\n<p>Exemple de d\u00e9roulement avec <strong>zipsort(\u00ab\u00a0oui\u00a0\u00bb,\u00a0\u00bbnon\u00a0\u00bb)<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On transforme les 2 chaines <strong>A<\/strong> et <strong>B<\/strong> en listes de codes ASCII : <strong>{111,117,105}<\/strong> et <strong>{110,111,110}<\/strong><\/li>\n\n\n\n<li>On trie les couples de lettres SORT({&amp;1,&amp;2}) : <strong>SORT({111,110}) -&gt; {110,111}<\/strong><\/li>\n\n\n\n<li>Transformation en chaine : <strong>CHAR({110,111}) -&gt; \u00ab\u00a0no\u00a0\u00bb<\/strong><\/li>\n\n\n\n<li>On obtient la liste : <strong>{\u00ab\u00a0no\u00a0\u00bb,\u00a0\u00bbou\u00a0\u00bb,\u00a0\u00bbin\u00a0\u00bb}<\/strong><\/li>\n\n\n\n<li>Concat\u00e9nation finale : <strong>\u00ab\u00a0noouin\u00a0\u00bb<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Lettres manquantes<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>cat(EXECON(\"CAS((&amp;2\u22601+&amp;1)*char(1+&amp;1))\",ASC(T)))<\/code><\/pre>\n\n\n\n<p>Exemple de d\u00e9roulement avec <strong>manque(\u00ab\u00a0abcdfg\u00a0\u00bb)<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On transforme la chaine en liste ASCII : <strong>{97,98,99,100,102,103}<\/strong><\/li>\n\n\n\n<li>Est-ce que l&rsquo;\u00e9l\u00e9ment suivant est diff\u00e9rent de l&rsquo;\u00e9l\u00e9ment courant + 1 ?<\/li>\n\n\n\n<li><strong>EXECON(\u00ab\u00a0&amp;2\u22601+&amp;1\u00a0\u00bb,{97,98,99,100,102,103}) -&gt; {0,0,0,1,0}<\/strong><\/li>\n\n\n\n<li>La lettre manquante a comme code ASCII la lettre courante + 1 : <strong>char(1+&amp;1)<\/strong><\/li>\n\n\n\n<li>En multipliant le caract\u00e8re par 0 on a une chaine vide, sinon on r\u00e9cup\u00e8re le caract\u00e8re manquant<\/li>\n\n\n\n<li>Concat\u00e9nation des chaines vides + lettres manquantes<\/li>\n\n\n\n<li><strong>manque(\u00ab\u00a0abdefgijklmnpqrstv\u00a0\u00bb) -&gt; \u00ab\u00a0chou\u00a0\u00bb<\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Quelques challenges (proposition de solutions plus bas)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Autant de \u00ab\u00a0x\u00a0\u00bb que de \u00ab\u00a0o\u00a0\u00bb<\/h3>\n\n\n\n<p>Afficher 1 s&rsquo;il y a autant de \u00ab\u00a0x\u00a0\u00bb que de \u00ab\u00a0o\u00a0\u00bb dans une chaine de caract\u00e8re, sinon afficher 0.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>xox(\"xxabcoo\") -&gt; 1\nxox(\"xxooxoox\") -&gt; 1\nxox(\"xaxoboxocccoox\") -&gt; 0\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Au milieu<\/h3>\n\n\n\n<p>Ecrire une fonction qui prend en param\u00e8tres un caract\u00e8re <strong>X<\/strong> et le place <span style=\"text-decoration: underline\">au milieu<\/span> de <strong>Y<\/strong> r\u00e9p\u00e9t\u00e9 <strong>N<\/strong> fois. Lorsque ce n&rsquo;est pas possible, renvoyer <strong>X<\/strong>.<\/p>\n\n\n\n<p>Exemples : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>middle(10,\"A\",\"*\") --&gt; \"*****A*****\"  (\"A\" est au milieu de 10 \"*\")\nmiddle(9,\"A\",\"*\") --&gt; \"A\"             (\"A\" ne peut pas \u00eatre au milieu)\nmiddle(2,\"X\",\"+\") --&gt; \"+X+\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">mot pur<\/h3>\n\n\n\n<p>Un mot pur est un mot dont la <strong>somme des positions<\/strong> dans l&rsquo;alphabet de chaque lettre est <strong>divisible par la longueur totale<\/strong> du mot. <\/p>\n\n\n\n<p>Par exemple, \u00ab\u00a0abcb\u00a0\u00bb est un mot pur car <strong>1 + 2 + 3 + 2 = 8<\/strong> et <strong>8\/4 = 2<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pure(\"ccc\") -&gt; 1\npure(\"bed\") -&gt; 0<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Palindrome<\/h3>\n\n\n\n<p>Renvoyer 1 si une chaine est un palindrome, 0 sinon. La chaine pourra \u00eatre \u00e9crite en minuscules et\/ou majuscules.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>palind(\"Laval\") -&gt; 1\npalind(\"Angers\") -&gt; 0<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Somme des N plus grands<\/h3>\n\n\n\n<p>Ecrire une fonction qui \u00e0 partir d&rsquo;une liste <strong>L<\/strong> et d&rsquo;un entier <strong>N<\/strong> renvoie la somme des <strong>N<\/strong> entiers les plus grands de <strong>L<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sumgrand({4,9,2,3,7,1},2) --&gt; 16    (Les 2 nombres les + grands sont 9 et 7)\nsumgrand({-7,9,12,-1,-3},3) --&gt; 20  (9 + 12 - 1 = 20)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Somme sans doublons<\/h3>\n\n\n\n<p>Ecrire une fonction qui fait la somme des \u00e9l\u00e9ments d&rsquo;une liste, mais ignore ceux qui sont dupliqu\u00e9s.<\/p>\n\n\n\n<p>Exemples : pour la liste&nbsp;<code>[3, 4, 3, 6]<\/code>&nbsp;la fonction devra renvoyer&nbsp;<code>10<\/code><br>et pour la liste&nbsp;<code>[1, 10, 3, 10, 10]<\/code>&nbsp;la fonction devra renvoyer&nbsp;<code>4<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Project Euler n\u00b01<\/h3>\n\n\n\n<p><a href=\"https:\/\/projecteuler.net\/problem=1\" target=\"_blank\" rel=\"noreferrer noopener\">L&rsquo;\u00e9nonc\u00e9 est ici<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exemples de solutions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Autant de \u00ab\u00a0x\u00a0\u00bb que de \u00ab\u00a0o\u00a0\u00bb<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>count_eq(120,ASC(T))=count_eq(111,ASC(T))<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Au milieu<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>IFTE(N MOD 2,X,CAS(N\/2*Y+X+N\/2*Y))<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">mot pur<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>0=\u03a3LIST(ASC(T) MOD SIZE(T))<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Palindrome<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>UPPER(T)==CHAR(revlist(ASC(UPPER(T))))\n\nRemarquez que cette version fonctionne \u00e9galement (en d\u00e9cochant \"L1\") : \n\nrevlist(sto(ASC(UPPER(T)),L1))==L1<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Somme des N plus grands<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>\u03a3LIST(CAS.mid(CAS.SORT(L,\"(x,y)-&gt;x&gt;y\"),1,N))<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Somme sans doublons<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>\u03a3LIST(apply(\"x-&gt;x*(count_eq(x,L)==1)\",L))<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Project euler n\u00b01<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>D\u00e9cochez \"v\" :\n\n\u03a3LIST(remove(\"x-&gt;(x MOD 3)*(x MOD 5)&gt;0\",MAKELIST(v,v,1,N)))-N<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>R\u00e9ponses possibles aux 2 questions finales ZIPSORT Exemple de d\u00e9roulement avec zipsort(\u00ab\u00a0oui\u00a0\u00bb,\u00a0\u00bbnon\u00a0\u00bb) : Lettres manquantes Exemple de d\u00e9roulement avec manque(\u00ab\u00a0abcdfg\u00a0\u00bb) : Quelques challenges (proposition de solutions plus bas) Autant de \u00ab\u00a0x\u00a0\u00bb que de \u00ab\u00a0o\u00a0\u00bb Afficher 1 s&rsquo;il y a autant &hellip; <a href=\"https:\/\/blog.univ-angers.fr\/mathsinfo\/2024\/07\/03\/one-liners-sur-hp-prime\/\">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":[1],"tags":[],"class_list":["post-1871","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"_links":{"self":[{"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/posts\/1871","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=1871"}],"version-history":[{"count":18,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/posts\/1871\/revisions"}],"predecessor-version":[{"id":1893,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/posts\/1871\/revisions\/1893"}],"wp:attachment":[{"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/media?parent=1871"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/categories?post=1871"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/tags?post=1871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}