2) Allons plus loin
Former tous les nombres de 10 à 18 avec en plus comme opération la racine carrée et la concaténation (le "regroupe" de Scratch qui permet par exemple avec deux 4 d'obtenir 44 et avec trois 4 d'obtenir 444).
3) ça a l’air simple…
Sur le même principe, obtenir 24 avec deux 8 et deux 3, des opérations élémentaires (+,-, x, :) et des parenthèses. Les deux 8 et les deux 3 doivent être tous utilisés.
4) Et si on demandait à l’ordinateur de le faire ?!
Petit détour par la Notation Polonaise Inversée
En notation polonaise inversée :
- l’expression 4+3 s’écrit 4, 3, +
- l’expression (4+3) x 5 s’écrit 4, 3, +, 5, x
Remarque : la virgule permet ici de séparer les éléments de l'expression. Le séparateur décimal est le point (.).
Cette notation permet d’éviter les parenthèses. Elle est utilisée dans certaines calculatrice (de marque HP en particulier).
Pour calculer l'expression, on utilise une structure que l'on appelle une "pile" (on écrit les nombres les uns au dessus des autres, on les insère et on les retire toujours par le dessus de la pile). Quand on parcourt l'expression (de gauche à droite) pour la calculer, chaque fois que l’on lit un nombre, on le met en haut de la pile. Et quand on lit un opérateur, alors le programme (la calculatrice) récupère les 2 derniers nombres de la pile, leur applique l'opération adéquate et remet le résultat au sommet de la pile à la place des 2 nombres sortis.
Par exemple (4+3) x (7 - 5) s’écrit 4, 3, +, 7, 5 , -, x
On a créé avec Scratch un programme qui permet de calculer une expression en notation polonaise inversée (cette expression est codée sous forme d'une liste appelée expr).
Version pour le défi avec les quatre 4
Version pour le défi avec les deux 8 et les deux 3
L’image ci-dessus est une copie d’écran de la version pour le défi avec les quatre 4.
Ce programme permet d’entrer une expression en notation polonaise inversée à la main (dans la liste expr). Quand on clique sur le drapeau vert, le programme vérifie que l’expression est valide et si oui la calcule et met le résultat dans la variable resultat.
On a aussi la possibilité de renseigner l’expression par script en complétant le bloc « renseigner l’expression » (qui pour l’instant est vide et donc ne fait rien).
Compléter ce programme (bloc « renseigner l’expression » et partie principale sous le drapeau vert) pour que le programme puisse trouver n’importe qu’elle solution pour la question 1)
Faire de même avec la deuxième version du script pour trouver la solution de la question 3).;
En déduire les solutions qui vous manquent pour les questions 1) et 3) ! On écrira ces expressions sous forme classique avec des parenthèses.