Retour

Les bases du langage Scratch

🎲 Quiz GRATUIT

📝 Mini-cours GRATUIT

Algorithme et programmation avec Scratch

Algorithme

Un algorithme est une suite finie d’opérations ou d’instructions permettant de résoudre un problème ou d’obtenir un résultat.

Le mot algorithme vient du nom latinisé du mathématicien perse Al-Khawarizmi. Le domaine qui étudie les algorithmes est appelé l’algorithmique. L’algorithmique est un sous-domaine des mathématiques, c’est pourquoi on travaille cette science en cours de maths !

On retrouve aujourd’hui des algorithmes partout : ils sont à la base du fonctionnement des applications mobiles, des logiciels sur ordinateurs, du web, des réseaux sociaux, des plateformes de streaming ou de e-commerce avec les algorithmes de recommandation, etc.

La programmation


Pour créer un programme informatique, à partir d’un algorithme, il faut transformer l’algorithme en code source. La transformation suit les règles d’un langage de programmation.

Un langage de programmation décrit la manière dont les instructions de l’algorithme doivent être écrite pour être comprises par un ordinateur. Voici quelques exemples de langages de programmation très utilisés : Python, C, C++, Java, JavaScript et PHP.

La plupart des langages de programmation actuels permettent de coder en écrivant des lignes de code. D’autres langages, dits langages de programmation graphiques, permettent de coder en assemblant des blocs d’instructions visuellement. Les langages graphiques sont plus faciles à prendre en main. Le plus célèbre des langages graphiques est Scratch.

Langage Scratch et types de blocs

Scratch


Scratch est un langage de programmation graphique. Il permet de coder des algorithmes en associant et clipsant des blocs les uns dans les autres. C’est le langage de ce type le plus célèbre, et il sert de base à de nombreux autres langages de programmation graphique qui sont des dérivés de Scratch.

Blocs 

Les blocs disponibles pour créer des programmes sont répartis en 9 catégories. Chaque catégorie de bloc a sa propre couleur :


Voici les catégories et leurs rôles :

  • Mouvement : les blocs de cette catégorie permettent de déplacer le lutin dans la scène ;
  • Apparence : les blocs de cette catégorie permettent de faire parler le lutin, et de changer son apparence ou l’apparence de la scène (costume, arrière-plan, couleurs) ;
  • Son : les blocs de cette catégorie permettent de faire émettre des sons au lutin, ou de contrôler le son (volume, effets sonores) ;
  • Événements : les blocs de cette catégorie permettent de lancer des instructions quand un événement particulier est détecté (appui sur un bouton ou sur un lutin par exemple) ;
  • Contrôle : cette catégorie est très importante, elle comporte toutes les structures algorithmiques de Scratch. On y trouve tout ce qu’il faut pour créer des boucles et des structures conditionnelles. On y trouve aussi le bloc permettant de faire une pause dans le programme ;
  • Capteurs : les blocs de cette catégorie permettent de récupérer des informations, notamment en provenance du clavier (touche appuyée), de la souris (position et clics), ainsi que la date et l’heure actuelle ;
  • Opérations : dans cette catégorie, on trouve tous les blocs permettant d’effectuer des calculs et des tests logiques (un test logique permet de créer une condition) ;
  • Variables : les blocs de cette catégorie permettent de faire mémoriser des données au programme (nom, résultat d’un calcul, etc.) ;
  • Mes blocs : cette dernière catégorie est un peu particulière, car elle est vide au départ. On peut s’en servir pour créer soit même de nouveaux blocs.

Lecture et construction de programmes

Groupe de blocs

Un programme codé avec Scratch est composé d'un ou de plusieurs groupes de blocs. Chaque groupe de blocs constitue un algorithme, et va permettre de réaliser une action qui peut être simple ou complexe.

En général, un groupe de blocs débute par un bloc de la catégorie Événements (bloc jaune). Ce bloc permet d’indiquer l’événement déclencheur de l’algorithme. Le groupe se poursuit avec une série de blocs, de n’importe quel type, qui sont clipsés les uns sous les autres. Les blocs pouvant être clipsés comportent une encoche en haut à gauche, et une languette en bas à gauche :

Le groupe de blocs est exécuté par l’ordinateur (c’est-à-dire lu), du haut vers le bas, jusqu’au dernier bloc. Une fois le dernier bloc exécuté, l’algorithme est terminé.

Emplacements

Certains blocs comportent des emplacements. Les emplacements peuvent être :

  • arrondis et blancs : dans ce cas, on peut saisir au clavier la valeur (texte ou nombre) à écrire dans cet emplacement. On peut aussi placer un bloc arrondi dans l’emplacement : ces blocs se trouvent principalement dans les catégories Capteurs et Opérations ;
  • hexagonaux et gris : dans ce cas, on peut uniquement placer un bloc hexagonal dans l’emplacement : ces blocs se trouvent principalement dans les catégories Capteurs et Opérations ;
  • une liste déroulante : dans ce cas, il faut choisir une des propositions de la liste.

 

Exemple de programme Scratch

Voici un programme comportant 3 groupes de blocs, donc 3 algorithmes. Chaque groupe débute par un bloc Événements, et comporte un nombre variable de blocs :

Notion de Variables

Mémoire

Un ordinateur est capable de mémoriser des informations/données. L’ordinateur stocke ces données dans des puces électroniques, qu’on appelle sa mémoire (mémoire RAM par exemple).

L’ordinateur peut effectuer plusieurs opérations liées à sa mémoire. Il peut notamment :

  • récupérer/lire des données qui se trouvent dans sa mémoire ;
  • modifier des données qui se trouvent dans sa mémoire ;
  • supprimer des données de sa mémoire ;
  • ajouter de nouvelles données dans sa mémoire.

Enfin, la mémoire d’un ordinateur peut être découpée en plusieurs cases, qui permettent chacune de stocker une donnée. Chaque case s'appelle un emplacement mémoire.

Variables

Dans un programme codé avec Scratch, il est possible d’accéder à une case de la mémoire, en utilisant ce qu’on appelle une variable. Pour créer, récupérer les valeurs ou modifier des données, il faut aller dans la catégorie Variables.

Pour pouvoir utiliser une nouvelle variable, on commence par la créer, en choisissant son nom. Une fois créée, sa valeur peut être librement modifiée et affichée/cachée dans la scène avec les blocs de la catégorie Variables.

Calculs

Scratch permet de faire effectuer des calculs à l’ordinateur, grâce à certains blocs de la catégorie Opérations. Les blocs de cette catégorie comportent des emplacements, qu’on peut compléter avec des nombres, des variables ou des opérations. Ces opérations peuvent elles aussi contenir des variables.

Structures conditionnelles et boucles

Structure conditionnelle

Une structure conditionnelle est une structure algorithmique qui permet d’indiquer à l’ordinateur qu’il doit effectuer un choix. Ce choix dépendra d’une condition, que l’ordinateur devra évaluer en testant si elle est Vraie ou Fausse.

Une condition est un test, dans lequel deux éléments sont comparés. La comparaison se fait en fonction d’un opérateur de comparaison, comme ceux que vous connaissez en mathématiques (>, ≤, etc.).

Avec Scratch

Scratch propose 2 structures conditionnelles :

  • la structure si...alors qui permet de dire à l’ordinateur d’exécuter un groupe de blocs uniquement si une condition est respectée, et de ne rien faire dans le cas contraire ;
  • la structure si...alors...sinon qui permet de dire à l’ordinateur d’exécuter un groupe de blocs si une condition est respectée, ou un autre blocs si la condition n’est pas respectée.

Boucle

Une boucle est une structure algorithmique qui permet d’indiquer à l’ordinateur qu’il doit répéter certaines instructions. Le nombre de répétitions peut être fixé à l’avance, ou dépendre d’une condition, que l’ordinateur devra évaluer.

Avec Scratch

Scratch propose 3 boucles :

  • la boucle répéter...fois qui permet de répéter un nombre de fois, qu’on indique, un groupe de blocs ;
  • la boucle répéter indéfiniment qui permet de répéter un groupe de blocs tant qu’on n'arrête pas le programme ;
  • la boucle répéter jusqu’à ce que... qui permet de répéter un groupe de blocs, jusqu’à ce qu’une condition soit vraie.

Exemples

Structure si...alors...sinon

Cet algorithme permet de faire de déplacer le lutin de 100 pas, si la position du lutin sur l’axe x est inférieure à 150. Dans le cas contraire, on fait aller le lutin à une position aléatoire :

Boucle répéter...fois

Cet algorithme permet de déplacer, puis faire attendre le lutin, 10 fois de suite :

Boucle répéter jusqu’à ce que… 

  Cet algorithme permet de faire avancer le lutin jusqu’à ce que sa position soit supérieure à 200 :

Nomad+, Le pass illimité vers la réussite 🔥

NOMAD EDUCATION

L’app unique pour réussir !