Cours La pensée informatique
Introduction
Dans ce cours, nous apprendrons à construire et à lire des programmes simples dans un langage de programmation par blocs, comme Scratch. Nous verrons comment utiliser une donnée saisie pour effectuer un calcul, prévoir le résultat d’un programme et répéter plusieurs fois une même séquence d’instructions.
Construire et exécuter un programme simple
Séquencer des instructions
Instruction :
Une instruction est un ordre donné à un ordinateur pour qu’il réalise une action.
Un programme informatique est composé d’une ou de plusieurs instructions. Lorsque le programme est lancé, ces instructions sont exécutées dans l’ordre où elles sont placées.
Séquence d’instructions :
Une séquence d’instructions est une suite ordonnée d’instructions exécutées les unes après les autres.
Dans un langage de programmation par blocs, les instructions d’une séquence sont généralement placées les unes sous les autres. Elles sont exécutées en commençant par celle qui se trouve en haut.
Observons la séquence d’instructions suivante :
- avancer de $50$ pas ;
- dire « Bonjour ! » pendant $2$ secondes ;
- tourner de $90$ degrés.
Lorsque le programme est lancé, le personnage commence par avancer. Il affiche ensuite le texte « Bonjour ! », puis il tourne.
Si l’on modifie l’ordre des instructions, le comportement du personnage est différent.
Dans une séquence, les instructions sont exécutées les unes après les autres, dans l’ordre où elles sont placées.
- L’ordre des instructions est donc essentiel au bon fonctionnement du programme.
Identifier les entrées et les sorties
Pour communiquer avec l’utilisateur, un programme peut recevoir des informations et produire un résultat.
Entrée et sortie d’un programme :
- Une entrée est une information transmise au programme, par exemple un texte saisi, une touche du clavier pressée ou un clic de souris.
- Une sortie est une information ou une action produite par le programme, par exemple un texte affiché, un son joué ou un déplacement à l’écran.
Dans Scratch, l’instruction demander « Combien mesures-tu en cm ? » et attendre permet à l’utilisateur de saisir sa taille.
- La taille saisi par l’utilisateur est une entrée du programme.
- Le programme peut ensuite utiliser l’instruction dire réponse pour afficher cette taille à l’écran.
- Le texte affiché est une sortie du programme.
(© CC BY-SA 2.0)
Le bloc réponse contient uniquement la dernière réponse saisie par l’utilisateur. Si le programme pose une nouvelle question, la nouvelle réponse remplace la précédente.
L’instruction demander […] et attendre permet de demander une information à l’utilisateur. La donnée saisie est ensuite accessible grâce au bloc réponse.
Effectuer un calcul à l’aide d’un programme
Traduire une formule mathématique en blocs
Un programme peut utiliser une donnée saisie par l’utilisateur pour effectuer un calcul. Dans un langage de programmation par blocs, les nombres et les blocs d’opérations peuvent être assemblés pour former une expression informatique.
Expression informatique :
Une expression informatique est un assemblage de valeurs et d’opérations que le programme peut évaluer pour obtenir un résultat.
On souhaite créer un programme qui calcule le périmètre d’un carré. Le périmètre $P$ d’un carré de côté $c$ est donné par la formule : $$P=4\times c$$
Pour calculer ce périmètre, le programme doit exécuter trois étapes dans l’ordre :
- Entrée : demander à l’utilisateur la longueur du côté du carré ;
- Calcul : multiplier la réponse saisie par $4$ ;
- Sortie : afficher le résultat obtenu.
En version « blocs », cela ressemble à ceci :
(© CC BY-SA 2.0)
Le bloc opérateur contenant $\left(4\times\text{réponse}\right)$ représente la formule du périmètre sous la forme d’une expression informatique.
Prévoir le résultat d’un programme
Il est possible de prévoir le résultat d’un programme avant de le lancer. Pour cela, on lit les instructions dans l’ordre et on effectue soi-même les opérations demandées.
Reprenons le programme qui calcule le périmètre d’un carré. Si l’utilisateur saisit $5$, le bloc réponse prend la valeur $5$.
L’expression informatique évaluée par le programme devient alors :$$4\times 5=20$$ Le programme affichera donc $20$.
Si l’utilisateur saisit $8$, l’expression devient : $$4\times 8=32$$ Le programme affichera alors $32$.
Répéter et modifier une séquence d’instructions
Utiliser une boucle inconditionnelle
Il est parfois nécessaire d’exécuter plusieurs fois la même séquence d’instructions. Plutôt que de recopier plusieurs fois les mêmes blocs, on peut utiliser une boucle.
Boucle inconditionnelle :
Une boucle inconditionnelle permet de répéter une séquence d’instructions un nombre de fois fixé à l’avance.
Dans Scratch, le bloc répéter […] fois contient les instructions qui doivent être répétées. Le nombre indiqué dans le bloc précise le nombre de répétitions.
Pour tracer un carré de $50$ pas de côté, le personnage doit répéter quatre fois la même séquence :
- avancer de $50$ pas ;
- tourner de $90$ degrés.
On utilise donc le programme suivant :
- effacer tout
- mettre le stylo en position d’écriture ;
- répéter $4$ fois ;
- avancer de $50$ pas ;
- tourner de $90$ degrés.
(© CC BY-SA 2.0)
À chaque passage dans la boucle, le personnage trace un côté du carré puis tourne. Après quatre répétitions, il a tracé les quatre côtés et revient à son point de départ.
Les instructions placées à l’intérieur du bloc répéter […] fois sont exécutées dans l’ordre, autant de fois que l’indique le bloc.
Analyser et modifier les paramètres d’un programme
Un programme peut être modifié en changeant les valeurs indiquées dans certains blocs. Ces valeurs sont appelées des paramètres. Avant de lancer le programme modifié, on peut analyser les instructions pour prévoir le résultat qui sera obtenu.
Reprenons le programme qui trace un carré. Si l’on remplace avancer de $50$ pas par avancer de $100$ pas, le personnage effectue toujours quatre répétitions et tourne toujours de $90$ degrés.
- Le programme trace donc encore un carré, mais celui-ci est plus grand.
Modifions maintenant deux paramètres du programme :
- le nombre de répétitions passe de $4$ à $3$ ;
- l’angle de rotation passe de $90$ à $120$ degrés.
Le programme devient :
- répéter $3$ fois :
- avancer de $50$ pas ;
- tourner de $120$ degrés.
Le personnage trace trois côtés de même longueur et effectue trois rotations. La figure obtenue est un triangle équilatéral.
(© CC BY-SA 2.0)
Pour analyser un programme, il faut repérer :
- les instructions exécutées ;
- l’ordre dans lequel elles sont exécutées ;
- le nombre de répétitions ;
- les paramètres utilisés. Modifier un paramètre peut changer la taille, la forme ou le comportement du résultat obtenu.
Conclusion
Dans ce cours, nous avons appris à construire, lire et modifier des programmes simples dans un langage de programmation par blocs. Un programme exécute les instructions dans l’ordre où elles sont placées. Il peut recevoir des données en entrée, les utiliser pour effectuer des calculs, puis produire un résultat en sortie. Nous avons également appris à prévoir le résultat d’une expression informatique avant son exécution et à utiliser une boucle inconditionnelle pour répéter une séquence d’instructions un nombre précis de fois.