Sommaire
ILes notions d'algorithme et de programmeIILes blocs ScratchIIILes variablesADéfinition d'une variableBL'affectation d'une valeur à une variableCLes différentes utilisations des variablesIVLes instructions conditionnellesVLes bouclesALes boucles conditionnellesBLes boucles itérativesVILa décomposition d'un problème en plusieurs sous-problèmesLes notions d'algorithme et de programme
Un algorithme est une liste ordonnée d'instructions. Un programme est un algorithme écrit dans un langage compréhensible par une machine.
Algorithme
Un algorithme est une liste ordonnée d'instructions permettant d'effectuer une tâche, de résoudre un problème.
Les itinéraires déterminés par un GPS sont des algorithmes permettant de passer d'un lieu à un autre.
Programme
Un programme est un algorithme écrit dans un langage compréhensible par une machine (ordinateur, calculatrice, etc.).
Un algorithme peut être écrit en langage naturel ou traduit, dans un langage de programmation, sous la forme d'un programme exécutable par un ordinateur ou une calculatrice.
L'exécution d'un programme peut être déclenchée par un événement extérieur.
Le schéma suivant représente un programme.
Lorsqu'on clique sur le drapeau, le programme est lancé.
L'événement « clic sur le drapeau » est un événement extérieur qui lance le programme.
Les blocs Scratch
Le logiciel Scratch est un logiciel de programmation par blocs utilisé au collège pour découvrir la programmation avec une interface attrayante et un format ludique. Les différents types de blocs sont regroupés dans des catégories afin de les retrouver plus facilement. Parmi les blocs disponibles dans Scratch, les plus utiles sont : mouvement, événements, contrôle, opérateurs et variables.
Les blocs suivants sont les plus utiles en mathématiques parmi les blocs disponibles dans Scratch :
- mouvement ;
- événements ;
- contrôle ;
- opérateurs ;
- variables.
Les variables
Une variable contient une information que l'algorithme repère par son nom et utilise : l'information correspond à la valeur que l'on affecte à cette variable.
Définition d'une variable
Une variable est une « boîte » contenant une information que l'algorithme va repérer par son nom et utiliser. Il existe plusieurs types de variables.
Variable
Une variable est une « boîte » contenant une information que l'algorithme va repérer par son nom et utiliser.
Il existe plusieurs types de variables tels que les variables numériques (contenant des nombres) ou les variables textuelles (contenant du texte).
Dans le programme représenté sur le schéma ci-dessous, la variable « nombre » est numérique.
Elle contient le double du nombre choisi par l'utilisateur.
L'affectation d'une valeur à une variable
Quand on donne une valeur à une variable, on dit qu'on « affecte une valeur à cette variable ».
Affecter une valeur à une variable
Affecter une valeur à une variable, c'est donner une valeur à cette variable.
On souhaite affecter à la variable A la valeur 5.
Dans le logiciel Scratch, on utilisera le bloc suivant :
On peut affecter à une variable une valeur numérique, une chaîne de caractères, une valeur d'une autre variable ou encore une réponse donnée par l'utilisateur suite à une question.
On affecte à la variable A la réponse saisie par l'utilisateur, tel que représenté sur le schéma suivant :
Les différentes utilisations des variables
Les variables sont utilisables dans tous les programmes, y compris ceux de construction géométrique, de calcul ou de simulation d'une expérience aléatoire.
Les variables sont utilisables dans les programmes de construction géométrique.
Dans le programme représenté sur le schéma ci-dessous, on trouve les variables : réponses, A et B.
Ces variables sont utilisées au sein d'un programme de construction.
Les variables sont utilisables dans les programmes de calcul.
L'illustration suivante représente un programme de calcul. On retrouve deux variables nommées « nombre 1 » et « nombre 2 ».
Les variables sont utilisables dans les programmes de simulation d'une expérience aléatoire.
L'illustration suivante représente un programme de simulation du lancer d'un dé. On utilise une variable nommée « aléa ».
Les instructions conditionnelles
Lors de l'écriture d'un programme, on effectue souvent des actions en fonction d'une condition : c'est ce que l'on appelle une « instruction conditionnelle ».
Instruction conditionnelle
Lorsqu'un programme effectue des actions en fonction d'une condition, l'instruction contenant la condition est appelée « instruction conditionnelle ».
L'illustration suivante représente un programme dans lequel l'instruction conditionnelle est :
Si réponse > 0, alors on affiche le message « Votre nombre est bien strictement positif ».
Une instruction conditionnelle peut également contenir une instruction pour le cas où la condition n'est pas vérifiée.
L'illustration suivante représente un programme dans lequel l'instruction conditionnelle est :
Si réponse > 0, alors on affiche le message : « Votre nombre est bien strictement positif ».
Sinon, on affiche le message : « Votre nombre n'est pas strictement positif ».
Les instructions conditionnelles peuvent également être utilisées dans des programmes de tracés de figure.
L'illustration suivante représente un programme dans lequel, si l'utilisateur répond « droite » à la question, un segment horizontal de longueur 500 pixels est tracé vers la droite.
Sinon, un segment horizontal de longueur 300 pixels est tracé vers la gauche.
On peut avoir plusieurs instructions conditionnelles imbriquées les unes dans les autres.
On peut déterminer si une année est bissextile avec le logiciel Scratch, tel que représenté sur le schéma ci-dessous :
Les boucles
Lorsqu'on souhaite écrire un programme, il arrive souvent que l'on doive utiliser une ou plusieurs instructions, plusieurs fois de suite : on parle de « boucle ». Il existe notamment les boucles conditionnelles et les boucles itératives.
Les boucles conditionnelles
Écrire une boucle conditionnelle permet de répéter l'instruction ou le bloc d'instructions tant qu'une condition est vérifiée.
Boucle conditionnelle
On appelle « boucle conditionnelle » la répétition d'une instruction (ou d'un groupe d'instructions) tant qu'une condition est vérifiée.
L'illustration suivante représente un exemple de jeu pour deviner un nombre entier choisi aléatoirement entre 1 et 10.
La boucle ne s'arrête que si le nombre choisi aléatoirement a été trouvé.
On ne sait pas à l'avance le nombre de fois que l'instruction (ou le groupe d'instructions) sera répétée.
Les boucles itératives
Écrire une boucle itérative permet de répéter l'instruction ou le bloc d'instructions un nombre de fois déterminé à l'avance.
Boucle itérative
On appelle « boucle itérative » la répétition d'une instruction (ou d'un groupe d'instructions) un nombre de fois donné.
Une itération est une répétition de cette instruction (ou de ce groupe d'instructions).
Une telle boucle est du type « répéter ... fois » où « ... » est remplacé par un nombre entier naturel.
On peut tracer un carré avec le logiciel Scratch en répétant une action (tracé et rotation) quatre fois de suite, tel que représenté sur le schéma ci-dessous :
Dans une boucle itérative, un compteur apparaît et permet de vérifier à quelle itération de la boucle en est l'algorithme (ou le programme).
Le compteur est incrémenté automatiquement au début de chaque itération de la boucle : il augmente de 1 au début de chaque itération de la boucle itérative.
La décomposition d'un problème en plusieurs sous-problèmes
Lorsqu'on écrit un programme assez complexe, il peut être très utile de décomposer le problème à résoudre en plusieurs sous-problèmes. On traite ensuite ces sous-problèmes à la suite les uns des autres ou bien en parallèle.
On peut créer ses propres blocs permettant d'effectuer une tâche particulière, puis les utiliser ensuite au sein d'un autre programme.
On souhaite créer un programme réalisant le tracé de la figure suivante :
On utilise un bloc « carré » créé auparavant dans un programme qui convenait, tel que représenté sur le schéma suivant.
La création de ce bloc simplifie la lecture du programme principal.
On obtient alors la figure suivante :
On peut également créer des blocs de programme et les exécuter simultanément.
Dans l'exemple représenté sur le schéma suivant, on utilise deux lutins : un lutin chat et un lutin nommé « Tera ».
Le lutin chat part d'une position donnée puis change de position aléatoirement toutes les secondes.
Le lutin Tera part d'une autre position donnée puis s'oriente vers le chat et glisse vers lui pendant une seconde.
Les deux actions sont réalisées simultanément et répétées 100 fois de suite.
Les actions sont déclenchées en cliquant sur le drapeau.
Le mouvement du chat utilise un bloc « Position aléatoire » faisant glisser le chat vers une position aléatoire de l'écran.