Vous êtes sur la page 1sur 194

Cycle 4

5e • 4e • 3e
Xavier Chanet

Algorithmique
et programmation

avec Scratch
Cycle 4
5e • 4e • 3e

Algorithmique
et programmation
avec Scratch

Xavier Chanet

Du même auteur chez le même éditeur




Conception graphique couverture : LouisePRÉAULT

ISBN 9782340-081208
© Ellipses Édition Marketing S.A., 2023
8/10 rue la Quintinie 75015 Paris
Avant-propos

Ce livre s'adresse en premier lieu aux élèves de 5e, 4e et 3 e du collège et traite


intégralement le thème « Algorithmique et programmation » du programme de
mathématiques. Il fait suite à une première édition, améliorée et enrichie, afin
de s’adapter aux dernières recommandations du programme officiel. Plus
précisément, on y trouvera tous les scripts Scratch en couleur, des exercices
reformulés, d’autres ajoutés, avec par exemple la notion de bloc utilisateur et
des exercices issus des annales du brevet des collèges. Aussi, pour chaque
exercice, il est indiqué son niveau de complexité relativement aux repères
annuels de progression. Ainsi, cet ouvrage se veut être un véritable outil
d'accompagnement, permettant à chacun, quel que soit son niveau, de
maîtriser toutes les connaissances et compétences attendues. Tous les
exercices, travaux pratiques et autres activités sont entièrement corrigés de
manière détaillée et expliquée.

Après un bref aperçu de l'intérêt de l'algorithmique et de la programmation avec


une présentation succincte du logiciel Scratch dans sa version 3.29, on
découvrira les outils algorithmiques de base : données, stockage, affichage et
saisie, listes, instructions conditionnelles et boucles. Chaque nouvelle notion est
abordée de manière expérimentale par le biais d'une activité de découverte,
suivie d'un résumé de ce qu'il faut retenir, et enfin d'exercices pour aboutir à
une bonne maîtrise des concepts. On pourra alors se perfectionner avec les
travaux pratiques dont les thématiques sont très variées : sondage,
dénombrement, chiffrement, calculs de dates… L'accent sera aussi mis sur les
déplacements des objets et leurs interactions, dans le but d'éditer des
applications ludiques. Pour terminer, on trouvera des exercices issus des annales
du brevet des collèges.

Cet ouvrage se veut aussi être une porte ouverte à une démarche de projet
interdisciplinaire. Ainsi, à travers les nombreux exercices, on aura déjà l'occasion
de revisiter des notions mathématiques familières telles que le calcul littéral, les
fonctions, la géométrie et les probabilités. De plus, quelques exercices balayant
un large champ de domaines (musique, analyse d'un texte, optimisation, jeux
de hasard...) peuvent déboucher sur de plus amples recherches individuelles ou
en groupe.

Ce livre pourra également intéresser les enseignants, les parents et toute autre
personne souhaitant s'initier à l'algorithmique et à la programmation.

III
III
IV
Sommaire
Sommaire
Programme officiel VII
Tableau des exercices et TP classés par niveaux et par classes IX
Introduction et découverte de Scratch 1
Chapitre 1 - Outils algorithmiques 5
1.1 Données et opérations
1.1 7
1.2 Stockage des données : les variables
1.2 14
1.3 Saisie et affichage des données
1.3 26
1.4 Stockage des données : les listes
1.4 42
1.5 Instructions conditionnelles
1.5 47
1.6 Boucle Pour
1.6 57
1.7 Boucle TantQue
1.7 77
Chapitre 2 - Gestion des objets 93
2.1 Déplacement d'un objet
2.1 95
2.2 La souris, le clavier
2.2 106
2.3 Interactions entre objets
2.3 115
Chapitre 3 - Travaux pratiques 125
3.1 Simulation d'un sondage
3.1 127
3.2 Dénombrement
3.2 130
3.3 Analyse d'un texte
3.3 132
3.4 Codage d’un mot
3.4 136
3.5 Calculs de dates
3.5 140
3.6 Tables de conjugaison
3.6 143
3.7 Répertoire téléphonique
3.7 147
Chapitre 4 - Applications ludiques 153
4.1 Jeu de pong
4.1 155
4.2 Jeu du tunnel
4.2 163
Chapitre 5 - Annales du brevet des collèges 171
5.1 Exercice 70
5.1 173
5.2 Exercice 71
5.2 175
5.3 Exercice 72
5.3 177

V
V
VI
Programme officiel
Programme officiel

Au cycle 4, les élèves s’initient à la programmation, en développant dans une


démarche de projet quelques programmes simples, sans viser une connaissance
experte et exhaustive d’un langage ou d’un logiciel particulier. En créant un
programme, ils développent des méthodes de programmation, revisitent les
notions de variables et de fonctions sous une forme différente, et s’entraînent
au raisonnement. Exemples d’activités possibles : jeux dans un labyrinthe, jeu
de Pong, bataille navale, jeu de nim, tic tac toe, jeu du cadavre exquis.

Croisements entre enseignements


Si les mathématiques sont une science à part entière avec son propre langage
et une démarche spécifique de preuve basée, non pas sur la confrontation au
réel, mais sur la démonstration, elles sont également intimement liées aux
autres disciplines. Elles fournissent en effet des outils de calcul et de
représentation et des modèles qui permettent de traiter des situations issues
de toutes les autres disciplines enseignées au cycle 4. De ce fait, les
mathématiques ont également toute leur place dans les enseignements
pratiques interdisciplinaires qui contribuent à faire percevoir aux élèves leur
dimension créative, inductive et esthétique et à éprouver le plaisir de les
pratiquer.

Repères annuels de progression


Les repères qui suivent indiquent une progressivité dans le niveau de complexité
des activités relevant de ce thème. Certains élèves sont capables de réaliser des
activités de troisième niveau dès le début du cycle. Le niveau 1 est attendu en
fin de 5e ; il est possible que certains élèves aillent au-delà. Les niveaux 1 et 2
sont attendus en fin de 4e ; il est possible que certains élèves aillent au-delà. Les
niveaux 1, 2 et 3 sont attendus en fin de 3e ; il est possible que certains élèves
aillent au-delà.

Niveau 1
À un premier niveau, les élèves mettent en ordre et/ou complètent des blocs
Scratch fournis par le professeur pour construire un programme simple.
L’utilisation progressive des instructions conditionnelles et/ou de la boucle
« répéter … fois ») permet d’écrire des scripts de déplacement, de construction
géométrique ou de programme de calcul.

VII
VII


Niveau 2
À un deuxième niveau, les connaissances et les compétences en algorithmique
et en programmation s’élargissent par :
- l’écriture d’une séquence d’instructions (condition « si … alors » et boucle
« répéter … fois ») ;
- l’écriture de programmes déclenchés par des événements extérieurs ;
- l’intégration d’une variable dans un programme de déplacement, de
construction géométrique, de calcul ou de simulation d’une expérience
aléatoire.

Niveau 3
À un troisième niveau, l’utilisation simultanée de boucles « répéter … fois », et
« répéter jusqu’à … » et d’instructions conditionnelles permet de réaliser des
figures, des calculs et des déplacements plus complexes. L’écriture de plusieurs
scripts fonctionnant en parallèle permet de gérer les interactions et de créer des
jeux. La décomposition d’un problème en sous problèmes et la traduction d’un
sous-problème par la création d’un bloc-utilisateur contribuent au
développement des compétences visées.

Afin d’aider au mieux les enseignants et leurs élèves, on trouvera pour chacun
des exercices de l’ouvrage,
● le niveau de complexité parmi,
 Niveau 1
 Niveau 2
 Niveau 3
● ainsi que le niveau de classe minimum requis parmi les suivants.
Classe de 5e
Classe de 4e
Classe de 3e

Par exemple, l’exercice 35 est classé « Niveau 2 » et « Classe de 4 e » :

VIII
VIII
Tableau des exercices et TP
classés par niveaux et par classes

Pour un meilleur repérage, les tableaux suivants donnent, pour chacun des
exercices et travaux pratiques, la page, le niveau de complexité, ainsi que le
niveau de classe minimum requis.

Niveau Classe
Exercice Page
1 2 3 5e 4e 3e
1 10  
2 11  
3 11  
4 16  
5 16  
6 16  
7 17  
8 17  
9 18  
10 18  
11 18   
12 19   
13 19  
14 20  
15 21  
16 27  
17 28  
18 28  
19 29  
20 29  
21 30  
22 30  
23 31  
24 31  
25 32  
26 33  
27 33  
28 34  
29 44  
30 45  

IX
IX









 

Niveau Classe
Exercice Page
1 2 3 5e 4e 3e
31 49  
32 50  
33 50  
34 50  
35 50  
36 51  
37 51  
38 52  
39 59  
40 59  
41 60  
42 60    
43 61    
44 61    
45 62  
46 62  
47 64  
48 64  
49 65  
50 66  
51 67  
52 68  
53 78  
54 79  
55 80  
56 81  
57 81  
58 82  
59 82  
60 83  
61 84  
62 98  
63 99  
64 100   
65 100   
66 109    
67 109   
68 110   
69 121   

X
X









 

Travaux pratiques, Niveau Classe


applications ludiques
Page
et exercices des 1 2 3 5e 4e 3e
annales du brevet
Simulation d’un sondage 127  
Dénombrement 130  
Analyse d’un texte 132  
Codage d’un mot 136  
Calculs de dates 140  
Tables de conjugaison 143  
Répertoire téléphonique 147  
Jeu de pong 155  
Jeu du tunnel 163  
Exercice 70 173  
Exercice 71 175  
Exercice 72 177  

XI
XI
XII
Introduction et découverte de Scratch

Les problèmes que l'on rencontre habituellement en mathématiques trouvent


en général leurs solutions dans le calcul à la main et le raisonnement. Il existe
cependant toute une catégorie de problèmes pour lesquels ces techniques
demeurent lourdes et inefficaces.
Pour comprendre, considérons les cinq problèmes suivants.

5 problèmes…
 Problème n°1 : Calculer  = 2 + 5 × 6 .
 Problème n°2 : Calculer  = 25,68 × 14,235 + 123,184.
 Problème n°3 : Trouver le nombre  tel que 5 + 1 = 7.
 Problème n°4 : Additionner tous les nombres entiers de trois chiffres.
 Problème n°5 : Quel est le plus petit nombre entier naturel  tel que
 + 3 > 100 000 ?

Résolutions

 Problème n°1 : On calcule aisément , à la main.


= 2+5×6
= 2 + 30 (la multiplication est prioritaire sur l'addition)
= 32

 Problème n°2 : Le calcul de  nécessite une calculatrice pour ne pas perdre


trop de temps. On obtient alors  = 488,7388.

 Problème n°3 : Pour déterminer  , on soustrait d'abord 1 de chaque


membre de l'égalité puis on les divise par 5.
5 + 1 = 7
5 + 1 − 1 = 7 − 1 (∗)
5 = 6
 
= (∗∗)
 

= 
= 1,2

 Avec l'habitude on peut se passer d'écrire les égalités (∗) et (∗∗).

1
1
 

 

 



 Les calculs à la main ou à la calculatrice et l'utilisation des règles algébriques


de base nous ont permis de résoudre les trois premiers problèmes. Concernant
la résolution des deux autres, l'usage de ces méthodes serait long, laborieux et
source d'erreurs. Alors, comment les résoudre ?

 Problème n°4 : Les nombres entiers de trois chiffres sont 100, 101, 102, …,
997, 998 et 999. Les additionner soi-même un à un prendrait trop de temps.
Cependant, on peut indiquer la démarche à suivre à un ordinateur qui
effectuerait alors lui-même les calculs quasi-instantanément.
Concernant la méthode, on pourrait lui demander d'effectuer les actions :
► Partir de 0.
► Puis, ajouter 100, puis 101, puis 102, puis 103, … ceci jusqu'à 999.
► Enfin, afficher le résultat.
Nous verrons dans le chapitre 1 comment traduire et faire exécuter ces actions
par un ordinateur. Nous nous contenterons pour l'instant de dire qu'on
obtiendra le résultat 494 550.

 Une série d'actions élémentaires, assemblées de manière logique, comme les


précédentes, est appelée algorithme.
Pour être interprété par un ordinateur, un algorithme devra être traduit au
préalable dans un langage qu'il comprend, appelé langage de programmation.
Il en existe des centaines, répondant chacun à des objectifs particuliers. Les plus
connus sont Python, C, C++, C#, VB.net et Php. Dans ce cours, nous avons choisi
de travailler avec le langage Scratch car c'est celui qui convient le mieux à
l'apprentissage des notions abordées au collège.

 Problème n°5 : On peut observer que l’inégalité  + 3 > 100 000 n'est
pas vraie pour des petites valeurs de l’entier naturel .
Par exemple, l'inégalité   + 3 > 100 000 est fausse pour  = 0 :
 0 + 3 × 0 = 0 et on n'a pas 0 > 100 000.
De même, elle est fausse pour  = 1 et  = 2 :
 1 + 3 × 1 = 1 + 3 = 4 et on n'a pas 4 > 100 000.
 2 + 3 × 2 = 8 + 6 = 14 et on n'a pas 14 > 100 000.
Cependant, pour de grandes valeurs de  , l'inégalité  + 3 > 100 000 est
vraie. Par exemple pour  = 100 :
 100 + 3 × 100 = 1 000 300 et on a bien 1 000 300 > 100 000.

22
 

 

 



De même que pour le problème n°4, il serait long et fastidieux de déterminer à


la main la valeur de  cherchée.
On peut alors écrire un algorithme :
► On part de  = 1.
► Puis, tant que  + 3 ne dépasse pas 100 000, on augmente  de 1.
► Enfin on affiche la valeur de  obtenue.
Après avoir traduit cet algorithme puis exécuté le programme correspondant,
on obtiendrait la valeur  = 47.

Présentation de Scratch
Scratch est un logiciel libre conçu dans le but de s'initier dès le plus jeune âge à
l'algorithmique et à la programmation informatique.
Dans cet ouvrage, nous utilisons la version 3.29 de Scratch, qui est la plus
récente au moment où il est écrit. Son approche est ludique et pratique pour
apprendre sans difficultés de formalisme le codage informatique et les bonnes
pratiques algorithmiques.
En effet, il n'est nul besoin de maîtriser une syntaxe d'écriture comme c'est
traditionnellement le cas pour les langages de programmation usuels. Dans le
cas de Scratch, il suffit de glisser, déposer et assembler des blocs pour définir les
instructions à effectuer. Nous découvrirons plus en détail ce fonctionnement
dans la prochaine partie.

Pour télécharger la version offline de Scratch 3.29 :


▪ Se rendre à l'adresse : https://scratch.mit.edu/download.
▪ Sélectionner son système d'exploitation (Mac OS, Windows ou Linux).
▪ Puis démarrer le téléchargement.

3
3
 

 

 



Après téléchargement puis installation, lancer Scratch. On arrive alors à l'écran


ci-après (figure 0.2) où on peut distinguer :

 Le menu des blocs d'instruction.


Ces blocs sont des sortes de briques que l'on assemble pour créer des
programmes. Ils sont classés par catégories.
Les blocs « Mouvement » gèrent le mouvement des objets, les blocs
« Apparence » gèrent leur apparence, etc.
 La zone des scripts.
C'est le lieu où on dépose et assemble les blocs par glisser-déposer.
 La scène.
C'est ici que ce déroule l'exécution du programme.

Menu des blocs Zone des


d’instruction scripts Scène

44
CHAPITRE

Outils
algorithmiques

5
6
1.1 

1.1 Données et opérations


 Activité de découverte …
Lancer Scratch puis faire apparaître les blocs « Opérateurs ».
Le bloc renvoie la somme de deux nombres.
On peut le vérifier en réalisant quelques tests : par exemple, si
on saisit 2 et 3 et si on clique ensuite sur le bloc, on
obtiendra bien 5.

De même, les blocs suivants renvoient respectivement la différence, le produit


et le quotient de deux nombres :

1) Réaliser des tests pour déterminer ce que retournent chacun des blocs
suivants :

2) Insérer des caractères dans les blocs comme ci-dessous.

Réaliser d'autres tests avec ces blocs, puis définir ce que retourne chacun des
blocs suivants :

7
7
Chapitre 1 ■ 

3) Faire les assemblages suivants dans l'aire des scripts :

Cliquer sur chacun de ces trois blocs puis justifier les affichages obtenus.

4) Si on clique sur le bloc suivant, va-t-on obtenir vrai ou faux ? Justifier.

Vérifier ce résultat en réalisant l'assemblage, puis en cliquant dessus.

Corrigé
1) Le bloc renvoie vrai si le nombre de gauche est inférieur à
celui de droite, faux sinon. Le bloc renvoie vrai si le nombre de
gauche est supérieur à celui de droite, faux sinon. Le bloc
renvoie vrai si les deux nombres saisis sont égaux, faux sinon.

Le bloc renvoie le reste de la division euclidienne du nombre


de gauche par le nombre de droite. Le bloc renvoie l'arrondi à
l'unité d’un nombre.

Le bloc renvoie un nombre au hasard


compris entre le nombre de gauche et celui de droite. S'il s'agit de deux
nombres entiers, un entier est renvoyé.

2) Le bloc renvoie la concaténation des deux chaînes de


caractères saisies.
Par exemple, retourne  :

Pour la saisie d'un nombre entier  et d'une chaîne de caractères, le bloc


retourne le ème caractère de la chaîne.

88
1.1 

Par exemple, renvoie le 2e caractère du mot "",


c'est-à-dire la lettre "".

retourne le nombre de caractères d’une chaîne.

Par exemple, renvoie 6.

3) L’assemblage renvoie faux puisque les


affirmations « 6 < 10 » et « 8 = 23 » ne sont pas toutes les deux vraies.

L’assemblage renvoie vrai puisque parmi


les affirmations « 6 < 10 » et « 8 = 23 », au moins une est vraie.

L’assemblage renvoie vrai puisque 7 + 2 = 9


n’est pas supérieur à 10.

4) renvoie vrai.

En effet, la longueur de la chaîne de caractères "" est 6 (son nombre de


caractères), le reste de la division euclidienne de 20 par 7 est aussi 6, et on a
bien 6 = 6.

9
9
Chapitre 1 ■ 

 À retenir
Chacun des blocs suivants renvoie vrai lorsque l’égalité ou l’inégalité est vraie, et
faux sinon.

Le bloc renvoie un nombre au hasard


compris entre le nombre de gauche et celui de droite. S'il s'agit de deux
nombres entiers, un entier est renvoyé.

Le bloc renvoie le reste de la division euclidienne du nombre


de gauche par le nombre de droite.

Le bloc renvoie l'arrondi à l'unité du nombre saisi.

Le bloc renvoie la concaténation de deux chaînes de


caractères.

Le bloc renvoie le nombre de caractères d’une chaîne.

 Pour obtenir le quotient d’une division euclidienne, on utilise l’assemblage de


blocs suivant. Plus précisément, celui-ci renvoie le quotient dans la division
euclidienne du nombre de gauche par celui de droite :

Figure 1.1.1

 Exercices

Exercice 1  Niveau 1 – Classe de 5e


Que retourne chacun des blocs ou assemblages de blocs suivants ?
Justifier.

a) b)

c) d)

10
10
1.1 

e) f)

g) h)

Exercice 2  Niveau 1 – Classe de 5e


Que retourne chacun des blocs ou assemblages de blocs suivants ?
Justifier.

a)

b)

c)

d)

e)

Exercice 3  Niveau 1 – Classe de 5e


Pour chacun des assemblages de blocs suivants, dire s'il retourne vrai ou faux.
Justifier.

a)

b)

c)

d)

11
11
Chapitre 1 ■ 

Corrigé

1. a) retourne 13 car 3 + (5 × 2) = 3 + 10 = 13.

b) retourne 16 car (3 + 5) × 2 = 8 × 2 = 16.

c) retourne 6 car 10 − 4 = 6.

d) retourne −6 car 4 − 10 = −6.

e) retourne 5 car (20 − 10) − 5 = 10 − 5 = 5.

f) retourne 15 car 20 − (10 − 5) = 20 − 5 = 15.


g) retourne 4 car (14 − 6)⁄2 =  = 4.

h) retourne 11 car 14 − (6 ⁄2 ) = 14 − 3 = 11.

2.
a) retourne 15 car le mot
"é" a 13 lettres et 13 + 2 = 15.

b) retourne la concaténation de "10" et "11" c’est-à-


dire "1011".

c) retourne la concaténation
de "" (7e lettre du mot Algorithme) et "é" c’est-à-dire "é".

d) retourne 4 car le reste de la division


euclidienne de 2023 par 10 est 3 et 3 + 1 = 4.

e) retourne le quotient de la division


euclidienne de 2023 par 100 c’est-à-dire 20.

12
12
1.1 

3.
a) retourne faux
car 3 × (6 + 1) = 3 × 7 = 21 et 19 ≠ 21.


b) retourne vrai car 
= 4 et 4 ≠ 5.

c) retourne vrai
    
car  +  =  +  =  = 1.

d) retourne vrai,

quel que soit le nombre entier tiré au hasard entre 1 et 10 car si  est un tel
   
nombre, alors 1 ≤  ≤ 10, donc ≤ ≤ d’où < 3.
   

13
13
Chapitre 1 ■ 

1.2 Stockage des données : les variables


Pour pouvoir réutiliser une donnée dans un programme ou un algorithme, il faut
la stocker provisoirement à l'aide de ce qu'on appelle une variable.

 Activité de découverte
1) Lancer Scratch.
Sélectionner le menu « Variables » de l’onglet « Code », puis cliquer sur « Créer
une variable ».
Nommer  cette variable puis valider par le bouton « Ok » (figure 1.2.1).

Figure 1.2.1

2) Créer, dans l'aire des scripts, à l'aide de blocs « Événements » et « Variables »


l'assemblage ci-après (figure 1.2.2)

14
14
1.2 

Figure 1.2.2

3) Cliquer ensuite sur le drapeau vert au-dessus de la scène pour exécuter le


programme. Lire ensuite sur la scène la valeur de la variable . Justifier le
résultat.

Corrigé
3) Après exécution, la variable  prend la valeur
15 (figure 1.2.3).
En effet,  prend d'abord la valeur 11, puis est
augmentée de 4.

Figure 1.2.3

 À retenir
Dans Scratch, on crée une variable en cliquant sur « Créer une variable » dans
le menu « Variables ».
Pour lui affecter une valeur on utilise le bloc « Variables » suivant :

15
15
Chapitre 1 ■ 

 Exercices

Exercice 4  Niveau 1 – Classe de 5e



Déterminer mentalement la valeur de la
variable , après exécution du programme
ci-contre. Justifier.
Contrôler ensuite le résultat en éditant le
programme, puis en l’exécutant (en cliquant
sur le drapeau vert au-dessus la scène).

Figure 1.2.4

Exercice 5  Niveau 1 – Classe de 5e


Déterminer mentalement la valeur
de la variable , après exécution du
programme ci-contre. Justifier.
Contrôler ensuite le résultat en
éditant le programme, puis en
l’exécutant.

Figure 1.2.5

Exercice 6  Niveau 1 – Classe de 5e



Déterminer mentalement les valeurs des
variables  et  après exécution du
programme ci-contre. Justifier.
Contrôler ensuite les résultats en éditant le
programme, puis en l’exécutant

Figure 1.2.6

16
16
1.2 

Exercice 7  Niveau 1 – Classe de 5e



Déterminer mentalement la chaîne de caractères contenue dans la variable
 après exécution du programme Scratch ci-dessous. Justifier.
Contrôler ensuite le résultat en éditant le programme, puis en l’exécutant

Figure 1.2.7

Exercice 8  Niveau 1 – Classe de 5e



Déterminer mentalement le contenu des variables 1 , 2 et  après
exécution du programme Scratch ci-dessous. Justifier.
Contrôler ensuite les résultats en éditant le programme, puis en l’exécutant

Figure 1.2.8

17
17
Chapitre 1 ■ 

Exercice 9  Niveau 1 – Classe de 5e



a) Éditer un programme Scratch dans lequel sera créée une variable  de sorte
qu’en exécutant ce programme,
  prenne d’abord la valeur 8,
 puis la valeur 3,
 et enfin la valeur 2 + .
b) Justifier qu’après exécution du programme, la variable  a pour valeur 26.
Vérifier le résultat en exécutant le programme.

Exercice 10  Niveau 1 – Classe de 5e


a) Éditer un programme Scratch dans lequel seront créées deux variables  et 
de sorte qu’en exécutant ce programme,
  prenne d’abord la valeur 1,
 et  la valeur 3,
 puis  prenne la valeur  + ,
 et enfin  la valeur  − .
b) Justifier qu’après exécution du programme, les variables  et  ont pour
valeurs 4 et 1 respectivement.
Vérifier le résultat en exécutant le programme.

Exercice 11  Niveau 1 – Classe de 4e


a) Éditer un programme Scratch dans lequel seront créées deux variables  et 
de sorte qu’en exécutant ce programme,
  et  prennent d’abord pour valeurs des nombres
entiers aléatoires compris entre 1 et 10,

 puis  prenne la valeur , 
 et enfin  la valeur 2 − 1.

b) Justifier qu’après exécution, la valeur de  est obligatoirement comprise entre


−0,8 et 19.

18
18
1.2 

Exercice 12  Niveau 1 – Classe de 4e


Voici ci-après sur la figure 1.2.9 un programme Scratch dans lequel un nombre a
été caché, et sur la figure 1.2.10 son exécution.
Retrouver le nombre caché.
Indication : Nommer par exemple  le nombre caché. Quelles sont alors, en fonction de
, les valeurs successivement prises par la variable  ?

Figure 1.2.9 Figure 1.2.10

Exercice 13  Niveau 1 – Classe de 4e


Voici ci-après sur la figure 1.2.11 un programme Scratch dans lequel un nombre
a été caché, et sur la figure 1.2.12 son exécution.
Retrouver le nombre caché.
Indication : Nommer par exemple  le nombre caché. Quelles sont alors, en fonction de
, les valeurs successivement prises par la variable  ?

Figure 1.2.11 Figure 1.2.12

19
19
Chapitre 1 ■ 

Exercice 14  Niveau 1 – Classe de 3e


Un même nombre a été caché dans les programmes n°1 et n°2 ci-après (figures
1.2.13 et 1.2.14). Les premières affectations de ces programmes sont donc
identiques.
Compléter le programme n°2 de sorte qu'il produise les mêmes effets que le
programme n°1, c'est-à-dire qu'après exécution des deux programmes, la
variable  ait la même valeur pour l'un et pour l'autre.
Indication : Nommer par exemple  le nombre caché dans les deux programmes. Quelles
sont alors, en fonction de , les valeurs successivement prises par la variable  dans le
programme n°1 ? Développer et réduire l’expression obtenue puis conclure.

Programme n°1 :

Figure 1.2.13

Programme n°2 :

Figure 1.2.14

20
20
1.2 

Exercice 15  Niveau 1 – Classe de 3e


Un même nombre a été caché dans les programmes n°1 et n°2 ci-après (figures
1.2.15 et 1.2.16). Les premières affectations de ces programmes sont donc
identiques.
Compléter le programme n°2 de sorte qu'il produise les mêmes effets que le
programme n°1, c'est-à-dire qu'après exécution des deux programmes, la
variable  ait la même valeur pour l'un et pour l'autre.

Programme n°1 :

Figure 1.2.15

Programme n°2 :

Figure 1.2.16

21
21
Chapitre 1 ■ 

Corrigé
4. Après exécution du programme, la variable  a la valeur 9.
En effet,  prend d'abord la valeur 5, puis  × 2, c’est-à-dire 5 × 2 = 10, et
enfin  − 1, donc 10 − 1 = 9.

5. Après exécution du programme, la variable  a la valeur 6,5.


 
En effet,  commence par prendre la valeur 2, puis 
, c’est-à-dire  = 0,5 et
enfin  + 3 × 2 donc 0,5 + 3 × 2 = 6,5.

6. a) Après exécution du programme, les variables  et  ont respectivement


pour valeurs 6 et 7.
En effet,  prend d'abord la valeur 1, puis  prend la valeur  × 5 c’est-à-dire
5 × 1 = 5. Ensuite,  prend la valeur  +  donc 1 + 5 = 6. Enfin  prend la
valeur  + 2 donc 5 + 2 = 7.

7. Après exécution du programme, la variable  contient la chaîne de


caractères "! ".
En effet, la variable  commence par contenir
la chaîne de caractère "", puis la concaténation
de "" et "" , c’est-à-dire "" et enfin
celle de "" et "! " donc "! ".

Figure 1.2.17

8. Après exécution du programme, les variables 1 et 2 contiennent


respectivement les chaînes de caractères "" et "", et la variable  a
pour valeur 5.
En effet, en exécutant le programme, 1
commence par contenir la chaîne de caractères
"" . La variable 2 contient ensuite le 2e
caractère de "" (donc "" ) puis la
concaténation 2 et 1 , donc de "" avec
"", c’est-à-dire "" et enfin  prend pour
valeur la longueur de la chaîne de caractères
"", donc 5.
Figure 1.2.18

22
22
1.2 

9. a)

Figure 1.2.19

b) Après exécution du programme, la variable  a pour


valeur 26.
En effet,  prend d'abord la valeur 8, puis 3 c’est-à-dire
3 × 8 = 24, et enfin 2 +  donc 2 + 24 = 26.
Figure 1.2.20
10. a)

Figure 1.2.21

b) Après exécution du programme, les variables  et  ont respectivement pour


valeurs 4 et 1.
En effet,  et  prennent d'abord respectivement les
valeurs 1 et 3, puis  prend la valeur  +  c’est-à-
dire 1 + 3 = 4 et enfin  prend la valeur  −  donc
4 − 3 = 1.

Figure 1.2.22

23
23
Chapitre 1 ■ 

11. a)

Figure 1.2.23

b) Après exécution du programme, les variables  et  prennent d’abord pour


valeurs des nombres entiers aléatoires  et  compris entre 1 et 10 , donc

vérifiant 1 ≤  ≤ 10 et 1 ≤  ≤ 10. La variable  prend ensuite la valeur

 
c’est-à-dire , dont la plus petite valeur possible est  = 0,1 et la plus grande
 
possible est  = 10. Enfin  prend la valeur 2 − 1 c’est-à-dire 2 ×  − 1.
 
Or 0,1 ≤  ≤ 10, donc 0,2 ≤ 2 ×  ≤ 20.

On en déduit que 0,2 − 1 ≤ 2 ×  − 1 ≤ 20 − 1, c’est-à-dire

−0,8 ≤ 2 ×  − 1 ≤ 19.
La qu’après exécution, la valeur de  est obligatoirement comprise entre −0,8
et 19.

12. Appelons  le nombre caché. En exécutant le programme, la variable 


prend d'abord la valeur  , puis  + 1,5 c’est-à-dire  + 1,5 et enfin 3 donc
3( + 1,5).
Puisque la valeur de  après exécution est 15, alors 3( + 1,5) = 15.

On a donc  + 1,5 = 
= 5, d’où  = 5 − 1,5 = 3,5.
Le nombre caché est 3,5.

13. Appelons  le nombre caché. En exécutant le programme, la variable 


prend d'abord la valeur , puis 2 c’est-à-dire 2, et enfin  + 3 donc 2 + 3.
Puisque la valeur de  après exécution est −1, alors 2 + 3 = −1.

On a donc 2 = −1 − 3 = −4, d’où  = 
= −2.
Le nombre caché est −2.

24
24
1.2 

14. Appelons  le nombre caché dans les deux programmes.


En exécutant le programme n°1, la variable  prend d’abord la valeur , puis
 + 2 c’est-à-dire  + 2, et enfin ( + 3), donc ( + 2)(  + 2 + 3).
En fin d’exécution, la valeur de  est donc :
( + 2)( + 5) =   + 5 + 2 + 10 =   + 7 + 10
Pour obtenir la même valeur après exécution du programme n°2, la variable 
peut donc prendre lors de sa deuxième affectation la valeur   + 7 + 10,
comme ci-après (figure 1.2.24).

Figure 1.2.24

15. Appelons  le nombre caché dans les deux programmes.


En exécutant le programme n°1, la variable  commence par prendre la valeur
 puis 2 − 1 , c’est-à-dire 2 − 1 . Enfin,  prend la valeur ( + 2) , donc
(2 − 1)(2 − 1 + 2). En fin d’exécution, la valeur de  est donc :
(2 − 1)(2 + 1) = (2) − 1  = 4  − 1
Pour obtenir la même valeur après exécution du programme n°2, la variable 
peut donc prendre lors de sa deuxième affectation la valeur 4  − 1, comme ci-
après (figure 1.2.25).

Figure 1.2.25

25
25
Chapitre 1 ■ 

1.3 Saisie et affichage des données

 Activité de découverte
1) Éditer et exécuter le programme suivant.

Figure 1.3.1
2) Donner le rôle de chaque instruction en insérant des commentaires.
 Pour insérer un commentaire face à une instruction, faire un clic droit sur le bloc
correspondant dans la zone des scripts, sélectionner « ajouter un commentaire », puis
saisir le commentaire à l'intérieur de la bulle.

3) Quel est le rôle du programme ?

Corrigé
1) Exécution du programme :

Figure 1.3.2

26
26
1.3 

2)

Figure 1.3.3

3) Le rôle du programme est de demander à l'utilisateur son prénom, puis


d'afficher le message « Bonjour <prénom> ! »

 À retenir
Dans Scratch, on saisit une donnée en utilisant le
bloc « Capteurs » ci-contre.

La donnée saisie par l’utilisateur est alors stockée dans la variable


é qui se trouve aussi parmi les blocs « Capteurs ».

Pour afficher des données, on utilise un des blocs « Apparence » suivants :

On peut insérer des commentaires face à une instruction en faisant d'abord un


clic droit sur le bloc correspondant dans la zone des scripts.

 Exercices

Exercice 16  Niveau 1 – Classe de 5e


Écrire un programme Scratch demandant un nombre à l'utilisateur puis affichant
le double de ce nombre. Par exemple, si l’utilisateur saisit le nombre 32.4, on
devra obtenir l’affichage « Son double est 64.8 ».

27
27
Chapitre 1 ■ 

Exercice 17  Niveau 1 – Classe de 5e


Écrire un programme Scratch demandant un mot à l'utilisateur puis affichant le
nombre de lettres de ce mot. Par exemple, si l'utilisateur saisit le mot « football »,
on devra alors obtenir l'affichage « Ce mot a 8 lettre(s). ».

Exercice 18  Niveau 2 – Classe de 4 e


L’objectif de cet exercice est d’écrire un programme Scratch demandant à
l'utilisateur un nombre entier naturel de deux chiffres puis affichant ce nombre
à l'envers. Par exemple, si l'utilisateur saisit le nombre 53, on devra obtenir
l'affichage « 35 ».
A – Première méthode : « 100 % mathématique »
1) Soit  un nombre entier naturel de deux chiffres, dont le chiffre des dizaines
est  et le chiffre des unités est .
a) Quel est le reste de la division euclidienne de  par 10 ?

b) Quel est la partie entière de ?

c) Créer trois variables  ,  et  puis déduire des questions précédentes
comment assembler les blocs ci-après (figure 1.3.4) afin d’aboutir à l’objectif
donné.
 Le bloc « plancher de » renvoie la partie entière d’un nombre.

Figure 1.3.4

28
28
1.3 

B – Deuxième méthode : Utilisation de chaînes de caractères


Assembler correctement les blocs ci-dessous afin d’aboutir à l’objectif donné.

Figure 1.3.5

Exercice 19  Niveau 1 – Classe de 5e


Écrire un programme Scratch simulant le lancer d'un dé cubique équilibré puis
affichant le nombre obtenu sous la forme 1, 2, 3, 4, 5 ou 6.

Exercice 20  Niveau 1 – Classe de 5e


Le programme Scratch ci-dessous simule une expérience aléatoire simple à
réaliser physiquement. Laquelle ?

Figure 1.3.6

29
29
Chapitre 1 ■ 

Exercice 21  Niveau 1 – Classe de 4e


a) Quel est le rôle du programme suivant ?

Figure 1.3.7

b) Quel est le rôle du programme suivant ?

Figure 1.3.8
c) Élise dit à Enzo : « J'ai exécuté le deuxième programme avec un nombre que
je ne te donnerai pas ! J'ai obtenu 12. Je vais maintenant exécuter le premier
programme avec ce même nombre. Tu ne peux pas deviner quel sera l'affichage !
». Élise dit-elle vrai ou faux ? Justifier.

Exercice 22  Niveau 1 – Classe de 3e


a) Éditer un programme Scratch dans lequel l’utilisateur devra saisir un nombre
qui sera stocké dans une variable que l’on appellera , qui suivra ensuite la série
d’affections suivantes :   prend la valeur  − 1
  prend la valeur ( + 2)
  prend la valeur  + 1
Terminer le programme par l’affichage de la valeur de  .
b) Exécuter plusieurs fois le programme.
Que peut-on conjecturer sur la valeur affichée après exécution ?
c) Prouver cette conjecture.
Indication : Nommer par exemple  la valeur saisie par l’utilisateur, puis déterminer en
fonction de , la valeur affichée.

30
30
1.3 

Exercice 23  Niveau 1 – Classe de 3 e


a) Éditer le programme Scratch ci-dessous (figure 1.3.9).
b) Exécuter plusieurs fois le programme. Que peut-on conjecturer sur la valeur
affichée après exécution ?
c) Prouver cette conjecture.

Figure 1.3.9

Exercice 24  Niveau 1 – Classe de 3e


Soit  la fonction affine définie par () = 6 + 5.
Utiliser les blocs ci-après (figure 1.3.10) pour créer un programme affichant
l’image par la fonction  d’un nombre saisi par l’utilisateur.

Figure 1.3.10

31
31
Chapitre 1 ■ 

Par exemple, si l’utilisateur saisit 4, on devra obtenir l’affichage �(4) = 29.

Figure 1.3.11

Exercice 25  Niveau 1 – Classe de 5e


Assembler les blocs ci-après (figure 1.3.12) afin d’obtenir un programme
demandant à l'utilisateur une somme d'argent en euro et un pourcentage, puis
affichant le pourcentage de cette somme.
Par exemple, si l'utilisateur saisit 16.80 pour la somme et 20 pour le pourcentage,
on devra obtenir l'affichage « 3.36 € ».

Figure 1.3.12

32
32
1.3 

Exercice 26  Niveau 1 – Classe de 3e


a) Quel est le rôle du programme suivant ? Justifier.

Figure 1.3.13

b) Pour obtenir, après exécution, l’affichage de la quantité saisie diminuée du


pourcentage saisi, il suffit de changer un bloc « Opérateurs » du programme par
un nouveau bloc du même type. De quels blocs s’agit-il ? Justifier.

Exercice 27  Niveau 1 – Classe de 3 e


On souhaite écrire un programme Scratch demandant à l'utilisateur les
longueurs des côtés de l'angle droit d'un triangle rectangle puis affichant la
longueur de son hypoténuse.
a) Justifier que si l'utilisateur saisit 3.9 et 5.2, on devra obtenir l'affichage « 6.5 ».
b) Justifier que si  et  sont les longueurs des côtés de l'angle droit d'un
triangle rectangle, alors la longueur de son hypoténuse est   +   .
c) Assembler les blocs ci-après (figure 1.3.14) afin d’obtenir le programme
souhaité.
 Le bloc « Opérateur » renvoie la racine carrée d’un nombre
positif.

33
33
Chapitre 1 ■ 

Figure 1.3.14
d) Utiliser le programme pour déterminer la longueur de l'hypoténuse d'un
triangle rectangle dont les côtés de l'angle droit mesurent 11 cm et 60 cm.

Exercice 28   Niveau 2 – Classe de 3e


L'objectif de cet exercice est d'écrire un programme Scratch de rendu de
monnaie. Plus précisément, il sera de demandé à l'utilisateur, lors de l’exécution
du programme, de saisir une somme d'argent en euro. Puis on devra obtenir
l'affichage de la « meilleure décomposition » de cette somme avec des pièces
de 1 euro, 20 centimes, 5 centimes et 1 centime. On sous-entend par « meilleure
décomposition », celle utilisant le moins de pièces possible.
1) Exemple et méthode générale
a) Quelle est la meilleure décomposition avec la somme 5,72 € ?
b) Comment procéder pour obtenir la meilleure décomposition d’une somme
d’argent donnée ?
2) Édition du programme
a) Créer une variable  puis éditer le début de programme suivant (figure
1.3.15). Que représente le contenu de la variable  ?

Figure 1.3.15

34
34
1.3 

b) ● Comment obtenir le plus grand nombre de pièces de 1 euro que peut


contenir une somme de  centimes ? Quel est alors le nombre de centimes
restant ?
● Comment obtenir le plus grand nombre de pièces de 20 centimes que peut
contenir une somme de  centimes ? Quel est alors le nombre de centimes
restant ?
c) Poursuivre alors l’édition du programme comme ci-dessous (figure 1.3.16) en
complétant les 4 champs laissés vides.

Figure 1.3.16
d) Terminer l’édition du programme.

Corrigé

16.

Figure 1.3.17

35
35
Chapitre 1 ■ 

17.

Figure 1.3.18

18. A) 1) a) Le reste de la division euclidienne de  par 10 est le chiffre des


unités de , c’est-à-dire .

b) La partie entière de est le chiffre des dizaines de , c’est-à-dire .

c)

Figure 1.3.19

B)

Figure 1.3.20

36
36
1.3 

19.

Figure 1.3.21

20. Le programme affiche la somme des nombres obtenus après lancer de


deux dés équilibrés numérotés de 1 à 6.

21. a) Rôle du programme : Affichage du reste de la division euclidienne par 3


d'un nombre entier naturel de deux chiffres, saisi par l'utilisateur.
b) Rôle du programme : Affichage de la somme des chiffres d'un nombre entier
naturel de deux chiffres, saisi par l'utilisateur.
c) Élise dit faux. En effet, si la somme des chiffres d'un nombre entier est divisible
par 3 alors ce nombre est divisible par 3. Or, avec le nombre saisi par Élise pour
exécuter le deuxième programme, elle a obtenu une somme de 12, qui est
divisible par 3, donc le nombre choisi par Élise est divisible par 3. On en déduit
que le reste de la division euclidienne de ce nombre par 3 est 0. En exécutant le
premier programme avec le même nombre, elle obtiendra l'affichage « 0 ».

22. a)

Figure 1.3.22

b) Il semblerait que la valeur affichée lors de l'exécution du programme soit le


carré du nombre saisi par l'utilisateur.

37
37
Chapitre 1 ■ 

c) Appelons  le nombre saisi par l'utilisateur. La variable  prend alors d’abord


 pour valeur, puis  − 1, c’est-à-dire  − 1, ensuite ( + 2) donc :
( − 1)( − 1 + 2) = ( − 1)( + 1) =  − 1 =  − 1
La variable  prend enfin la valeur  + 1, c’est-à-dire  − 1 + 1 = ².
L’affichage de  donne alors celui de la valeur de ², qui correspond au carré du
nombre saisi par l’utilisateur.

23. b) Il semblerait que la valeur affichée lors de l'exécution du


programme soit le quart du nombre saisi par l'utilisateur.
c) Appelons  le nombre saisi par l'utilisateur. La variable  prend alors d’abord
 
 pour valeur, puis  + 4, c’est-à-dire  + 4, ensuite  donc  .
La variable  prend enfin la valeur  − 1, c’est-à-dire :
+4  4  
−1 = + −1 = +1−1 =
4 4 4 4 4

L’affichage de  donne alors celui de la valeur de  , qui correspond bien au quart
du nombre saisi par l’utilisateur.

24.

Figure 1.3.23

38
38
1.3 

25.

Figure 1.3.24

26. a) Le programme demande à l’utilisateur de saisir une quantité et un


pourcentage puis affiche la quantité augmentée de ce pourcentage.
En effet, après exécution, la quantité et le pourcentage saisis par l’utilisateur
sont respectivement stockés dans les variables  et . On obtient ensuite

l’affichage de  × 1 +  qui correspond bien à la valeur de 

augmentée de  %.
b) Pour obtenir, après exécution, l’affichage de la quantité saisie diminuée du
pourcentage saisi, il suffit de remplacer le bloc par le bloc suivant :


En effet, diminuer de  %, c’est multiplier par 1 − .

La dernière ligne du programme devient alors la suivante :

Figure 1.3.25

27. a) Si l'utilisateur saisit 3.9 et 5.2, les côtés de l'angle droit du triangle
rectangle ont pour longueurs 3,9 et 5,2. Alors d'après le théorème de Pythagore
la longueur  de l'hypoténuse vérifie  = 3,9 + 5,2².

39
39
Chapitre 1 ■ 

On obtient donc  = 42,25. Puisque  ≥ 0, on a alors  = 42,25 = 6,5.


D'où l'affichage « 6.5 ».
b) Si  et  sont les longueurs des côtés de l'angle droit d'un triangle rectangle,
alors d'après le théorème de Pythagore, la longueur  de l'hypoténuse
vérifie  =   +  .
Puisque de plus  ≥ 0, alors  =   +  
c)

Figure 1.3.26

d) En exécutant le programme avec les longueurs 11


et 60 , on obtient l'affichage « Longueur de
l’hypoténuse : 61 ».
La longueur de l'hypoténuse d'un triangle rectangle
dont les côtés de l'angle droit mesurent 11 cm et
60 cm est 61 cm.

Figure 1.3.27
28. 1) a) La meilleure décomposition de la somme 5,72 € est :
● 5 pièces de 1 €,
● 3 pièces de 20 centimes,
● 2 pièces de 5 centimes,
● et 2 pièces de 1 centime.

40
40
1.3 

b) Pour obtenir la meilleure décomposition d’une somme d’argent, on


détermine d’abord le nombre maximum de pièces de 1 € qu’elle peut contenir,
puis avec la somme restante, le nombre maximum de pièces de 20 centimes
qu’elle peut contenir, etc.
2) a) La variable  contient la somme saisie par l’utilisateur, convertie en
centime.
b) ● Le plus grand nombre de pièces de 1 euro que peut contenir une somme de
 centimes est le quotient de la division euclidienne de  par 100. Le nombre
de centimes restant est le reste de cette division euclidienne.
● Le plus grand nombre de pièces de 20 centimes que peut contenir une somme
de  centimes est le quotient de la division euclidienne de  par 20. Le nombre
de centimes restant est le reste de cette division euclidienne.
c) d)

Figure 1.3.28

41
41
Chapitre 1 ■ 

1.4 Stockage des données : les listes


Pour stocker une succession de données dans un programme, on peut utiliser ce
que l’on appelle une liste.

 Activité de découverte
1) Lancer Scratch, sélectionner le menu « Variables », puis cliquer sur « Créer
une liste ». Appeler é le nom de la liste, puis valider avec le bouton
« Ok ».

Figure 1.4.1
2) La liste é apparait alors sur la scène. Y saisir les prénoms « Paul »,
« Jeanne », « Elias » et « Nina », en cliquant sur « + » (figure 1.4.2).

Figure 1.4.2

42
42
1.4 

3) Que va-t-il se passer lors de l’exécution du programme Scratch suivant ?


Vérifier en éditant ce programme.

Figure 1.4.3

4) Créer une nouvelle liste  correspondant aux âges des personnes de la
liste é. Saisir les éléments de  : 12, 14, 12 et 13.
5) Que va-t-il se passer lors de l’exécution du programme suivant ?
Vérifier en éditant le programme.

Figure 1.4.4

43
43
Chapitre 1 ■ 

Corrigé
3) Après exécution du programme, on aura successivement les affichages
« Elias », « Paul » et « Nina ».
5) Après exécution du programme, on aura successivement les affichages :
« Paul a ...» , « 12 ans. » , « Jeanne a ...» , « 14 ans. »,
« Elias a ...» , « 12 ans. » , « Nina a ...» , « 13 ans. ».

 À retenir
Pour créer une liste dans Scratch, on sélectionne le menu « Variables », puis on
clique sur « Créer une liste ».
Après avoir saisi une liste _, on sélectionne le -ième élément de cette
liste avec le bloc « Variables » suivant :

 Exercices

Exercice 29  Niveau 2 – Classe de 4 e


On souhaite écrire un programme simulant le lancer d'un dé équilibré puis
affichant le nombre obtenu sous la forme « un », « deux », « trois », « quatre »,
« cinq » ou « six ».

Figure 1.4.5

a) Créer une liste que l'on nommera .


b) Saisir ses éléments : un, deux, trois, quatre, cinq, six
c) Éditer le programme puis l’exécuter plusieurs fois.

44
44
1.4 

Exercice 30  Niveau 3 – Classe de 3 e


On considère le programme Scratch ci-dessous dans lequel on a créé au
préalable une variable  et une liste  . Ce programme simule une
expérience aléatoire concernant un dé équilibré que l’on lance plusieurs fois.

Figure 1.4.6

Dans ce programme on a utilisé le bloc ci-dessous qui permet d’ajoutée une


donnée à une liste _.

1) a) Le dé est-il cubique ? Comment ses faces sont-elles numérotées ? Justifier.


b) Quel est le nombre d’éléments de la liste  ? Que représentent-ils ?
Combien de fois le dé est-il lancé ?
2) a) Interpréter la valeur affichée après exécution du programme.
b) Quelle est la plus petite valeur affichée possible ?
Quelle est la plus grande valeur affichée possible ?

45
45
Chapitre 1 ■ 

Corrigé

29. a) b)

Figure 1.4.7

c)

Figure 1.4.8

30. 1) a) Le dé n’est pas cubique mais tétraédrique et numéroté de 1 à 4


puisque chaque lancer est simulé par le choix au hasard d’un nombre entier
compris entre 1 et 4.
b) La liste  compte 3 éléments qui représentent les lancers successifs du
dé. Celui-ci est donc lancé 3 fois.
2) a) La valeur affichée après exécution du programme correspond à la somme
des nombres obtenus lors des 3 lancers du dé.
En effet, la variable  prend d’abord la valeur 0 puis est augmentée
successivement des 3 nombres de la liste . Elle contient alors la somme
de ces 3 nombres. La dernière instruction du programme est l’affichage de la
valeur de , c’est-à-dire de la somme des nombres obtenus lors des 3 lancers.
b) La plus petite valeur affichée possible est 1 + 1 + 1 = 3.
La plus grande valeur affichée possible est 4 + 4 + 4 = 12.

46
46
1.5 

1.5 Instructions conditionnelles


 Activité de découverte
On considère le programme Scratch suivant.

Figure 1.5.1

1) Éditer ce programme. Celui-ci utilise le bloc « Contrôle » suivant :

Figure 1.5.2

2) Exécuter plusieurs fois le programme.


3) Donner le rôle de chaque instruction en insérant des commentaires, puis celui
du programme.

47
47
Chapitre 1 ■ 

Corrigé
2) Exemple d’exécution :

Figure 1.5.3
3)

Figure 1.5.4

Rôle du programme : affichage de la parité d'un nombre entier saisi par


l'utilisateur.

48
48
1.5 

 À retenir
Dans Scratch, si l'on souhaite effectuer des instructions
lorsqu'une condition est vraie et en effectuer d'autres
lorsque cette condition est fausse, on utilise le bloc
« contrôle » ci-contre.

Le bloc « contrôle » ci-contre permet d'effectuer des


instructions lorsqu'une condition est vraie, mais n'effectue
aucune autre instruction lorsque cette condition est
fausse.

 Exercices

Exercice 31  Niveau 2 – Classe de 4e


Compléter le programme Scratch ci-dessous.

Figure 1.5.5

49
49
Chapitre 1 ■ 

Exercice 32  Niveau 2 – Classe de 4e


Écrire un programme Scratch demandant une note (sur 20) à l'utilisateur puis
affichant « Tu as la moyenne » ou « Tu n'as pas la moyenne » selon le cas.

Exercice 33  Niveau 2 – Classe de 4e


Écrire un programme Scratch simulant le lancer d'une pièce de monnaie
équilibrée. On devra obtenir l'affichage « Pile » ou « Face ».

Exercice 34  Niveau 2 – Classe de 4e


Écrire un programme Scratch simulant le lancer d'un dé équilibré. On devra
obtenir l'affichage « Six ! » ou « Pas six ! ».

Exercice 35  Niveau 2 – Classe de 4e


On considère le programme Scratch ci-dessous.

Figure 1.5.6
1) Déterminer en justifiant, les valeurs des variables  et  après exécution du
programme.
2) Écrire et exécuter le programme pour vérifier les contenances des variables.

50
50
1.5 

Exercice 36  Niveau 2 – Classe de 4e


On considère le programme Scratch suivant.

Figure 1.5.7

a) Quelle variable a-t-on créé au départ ?


b) Quel est le rôle de ce programme ?
c) Quelle est la probabilité de gagner ? Quelle est celle de perdre ?

Exercice 37  Niveau 2 – Classe de 4e


On considère le programme Scratch suivant.

Figure 1.5.8

51
51
Chapitre 1 ■ 

a) Éditer puis exécuter plusieurs fois ce programme.


b) Dans quel cas obtient-on l'affichage « Ok ! » ? Justifier.
c) En déduire une simplification de ce programme.

Exercice 38  Niveau 2 – Classe de 4e


a) Créer dans Scratch quatre variables , ,  et  puis éditer un programme par
assemblage des blocs suivants (figure 1.5.9) de sorte que lors de son exécution,
il soit demandé à l’utilisateur des nombres entiers , ,  et  (avec  et  non
nuls) puis l’affichage « Les fractions a/b et c/d sont égales » ou « Les fractions
 
a/b et c/d ne sont pas égales » selon que le fractions et sont égales ou non.
 

Figure 1.5.9

b) Exécuter le programme précédent en saisissant successivement les nombres


57, 43, 3021 et 2289.
Que peut-on en déduire ?

52
52
1.5 

Corrigé

31.

Figure 1.5.10

32. On a créé au départ une variable nommée .

Figure 1.5.11

53
53
Chapitre 1 ■ 

33. On a d’abord créé une variable, que l'on a appelé è. Cette variable
prend pour valeur un nombre aléatoire parmi 0 et 1 . Puisque l'on a une
probabilité de 0,5 d'obtenir 1 et la même probabilité d'obtenir 0 , on peut
décider par exemple que 1 correspond à « Pile » et 0 à « Face ».

Figure 1.5.12

34. On a créé au départ une variable nommée .

Figure 1.5.13

35. 1) Après exécution du programme, les variables  et  valent


respectivement 2 et 3 . En effet, en lançant l'exécution, la variable  prend
d’abord la valeur 2 puis  prend la valeur 5. Ensuite, puisque l'on n'a pas  −
 > 0 (car 2 − 5 = −3 et −3 < 0), l'instruction «  prend la valeur  −  »

54
54
1.5 

n'est pas exécutée, tandis que l'instruction «  prend la valeur  −  » est


exécutée. Donc la valeur de la variable  devient 5 − 2 = 3 et celle de la
variable  n'a pas changé.

36. a) Au départ, on a créé la variable .


b) Ce programme simule une expérience aléatoire : un nombre entier compris
entre 5 et 25 est tiré au sort. Si ce nombre est inférieur à 15, c'est gagné, sinon
c'est perdu.
c) Dans cette expérience aléatoire on a :
● 25 − 5 + 1 = 21 issues équiprobables (les nombres entiers de 5 à 25).
● dont 14 − 5 + 1 = 10 cas favorables au gain (les nombres entiers de 5 à 14).

La probabilité de gagner est donc .

   
La probabilité de perdre est alors 1 − = − = .
   

37. b) On obtient l'affichage « Ok ! » si et seulement si le nombre saisi est un


multiple de 10 . En effet, pour obtenir cet affichage, le reste de la division
euclidienne par 2 du nombre saisi devra être 0, c’est-à-dire que ce nombre devra
être divisible par 2 , et de plus, le reste de la division euclidienne par 5 du
nombre saisi devra être 0, c’est-à-dire que ce nombre devra aussi être divisible
par 5. Pour obtenir l’affichage « Ok ! », le nombre saisi devra donc se terminer
par 0 , 2 , 4 , 6 ou 8 , mais aussi se terminer par 0 ou 5 . Il devra donc
obligatoirement se terminer par 0, c’est-à-dire être un multiple de 10.

c) On en déduit le programme simplifié suivant.

Figure 1.5.14

55
55
Chapitre 1 ■ 

 
38. a) Deux fractions et sont égales si et seulement si  ×  =  × 
 
(égalité des produits en croix), d’où le programme Scratch suivant (figure 1.5.15).

Figure 1.5.15

b) En exécutant le programme et en saisissant successivement 57, 43, 3021 et


2289 on obtient l’affichage « Les fractions a/b et c/d ne sont pas égales ».
 
On en déduit que ≠ .
 

56
56
1.6 

1.6 Boucle Pour


 Activité de découverte
On considère le programme Scratch suivant.

Figure 1.6.1

1) Éditer ce programme. Celui-ci utilise le bloc « Contrôle » suivant :

Figure 1.6.2
2) Exécuter le programme. Qu’obtient-on ?
3) Donner le rôle de chaque instruction en insérant des commentaires.

Corrigé
2) En exécutant le programme on obtient l’affichage de la table de multiplication
par 7.

Figure 1.6.3

57
57
Chapitre 1 ■ 

3)

Figure 1.6.4

 À retenir
Dans Scratch, lorsqu'on souhaite effectuer des instructions pour toutes les
valeurs entières d'une variable  allant d'un nombre entier  à un nombre
entier , on utilise l'assemblage de blocs ci-suivant.

Figure 1.6.5

On dit qu'il s'agit d'une boucle « Pour ».


La variable  est appelée compteur de la boucle.

58
58
1.6 

 Exercices

Exercice 39  Niveau 2 – Classe de 4e


Après avoir créé une variable  , utiliser les blocs ci-après (figure 1.6.6) pour
éditer un programme Scratch, permettant d’afficher successivement :
« 0 + 9 = 9 », « 1 + 9 = 10 », « 2 + 9 = 11 », … , « 6 + 9 = 15 »

Figure 1.6.6

Exercice 40  Niveau 2 – Classe de 4e


On considère le programme Scratch
ci-contre.
1) Éditer puis exécuter ce
programme. Quel affichage obtient-
on ?
2) Compléter le tableau suivant, dans
lequel on suit l'évolution des valeurs
prises par les variables  et .

 1 2 3 4 5

3) Quel est le rôle du programme ?


Justifier.
Figure 1.6.7

59
59
Chapitre 1 ■ 

Exercice 41  Niveau 3 – Classe de 3e


Le but de cet exercice est d'écrire un programme Scratch permettant de calculer
la somme 10 + 11 + 12 + … + 99 + 100.
a) Créer deux variables que l'on nommera respectivement  et .
b) Écrire le programme de sorte que  prenne d'abord la valeur 0 puis soit
augmentée de 10, puis de 11, puis de 12, … , ceci jusqu'à 100, dans une boucle
« Pour » de compteur  comme indiqué de manière schématisée sur la figure ci-
dessous.

Figure 1.6.8

c) Exécuter le programme puis donner la somme cherchée.

Exercice 42  Niveau 2 – Classe de 4e


1) Écrire puis exécuter le
programme ci-contre.
Quel affichage obtient-on ?
2) Compléter le tableau suivant,
dans lequel on suit l'évolution des
valeurs prises par les variables 
et .
 1 2 3 4 5 6

3) Quel est le rôle du


programme ? Justifier.

Figure 1.6.9

60
60
1.6 

Exercice 43  Niveau 2 – Classe de 4e



On souhaite écrire un programme Scratch permettant de calculer le produit des
nombres entiers de 5 à 15.
a) Créer deux variables que l'on nommera respectivement  et .
b) Écrire le programme de sorte que  prenne d'abord la valeur 1 puis soit
multiplié par 5, puis par 6, … , ceci jusqu'à 15, dans une boucle « Pour » de
compteur  comme indiqué de manière schématisée sur la figure ci-dessous.

Figure 1.6.10

c) Exécuter le programme puis donner le produit cherché.

Exercice 44  Niveau 3 – Classe de 3e


a) Assembler correctement les blocs Scratch ci-après (figure 1.6.11) afin
d’aboutir à un programme qui, lors de son exécution, affiche la somme des
nombres pairs compris entre 2 et 200.
b) Exécuter ensuite le programme et donner la somme cherchée.

Figure 1.6.11

61
61
Chapitre 1 ■ 

Exercice 45  Niveau 3 – Classe de 3e


a) Créer dans Scratch des variables  et  puis une liste  dont les
éléments sont successivement 2, 3 et 5. Éditer ensuite le programme ci-dessous.

Figure 1.6.12

b) Exécuter le programme. Justifier l’affichage obtenu.

Exercice 46  Niveau 2 – Classe de 4e



a) Lancer Scratch puis créer des variables ,  et , ainsi que la liste 
ci-dessous.

Figure 1.6.13

62
62
1.6 

b) Éditer un programme Scratch en terminant l’assemblage des blocs ci-dessous


(figure 1.6.14), de sorte qu’après exécution, on obtienne l’affichage de la
moyenne des nombres de la liste .

Figure 1.6.14

63
63
Chapitre 1 ■ 

Exercice 47  Niveau 3 – Classe de 3e


a) Lancer Scratch, créer des variables  ,  et  , puis éditer ensuite le
programme Scratch suivant.

Figure 1.6.15

b) Exécuter plusieurs fois le programme et donner son rôle. Justifier.

Exercice 48  Niveau 2 – Classe de 4 e


Le bloc « Contrôle » ci-dessous permet de répéter un certain nombre de fois des
instructions.

Figure 1.6.16

64
64
1.6 

Donner l'affichage obtenu en fonction de la valeur saisie par l'utilisateur après


exécution du programme Scratch ci-dessous. Justifier.

Figure 1.6.17

Exercice 49  Niveau 2 – Classe de 4e


Quelle sera la valeur affichée après exécution du programme Scratch suivant ?
Justifier.

Figure 1.6.18

65
65
Chapitre 1 ■ 

Exercice 50  Niveau 3 – Classe de 3 e


On souhaite écrire un programme dont
le rôle est d'afficher à l'envers un mot
saisi par l'utilisateur. Par exemple en
saisissant « Collège », on devra obtenir
l'affichage « egèlloC ».

Figure 1.6.19

a) Après avoir créé des variables ,  et , éditer le programme Scratch
suivant (figure 1.6.20).
Exécuter ce programme puis expliquer l’affichage obtenu.

1 Figure 1.6.20
b) Modifier une ligne de ce programme afin qu'il réponde au problème.

66
66
1.6 

Exercice 51  Niveau 3 – Classe de 3e


Un nombre premier est un nombre entier naturel ayant exactement deux
diviseurs positifs : 1 et lui-même.
Les nombres premiers sont 2, 3, 5, 7, 11, 13, 17, … (il en existe une infinité).
a) Quels sont les nombres premiers inférieurs à 30 ?
b) On souhaite écrire un programme Scratch permettant de déterminer si un
entier supérieur ou égal à 2 saisi par l’utilisateur est premier ou non.
Pour savoir si un entier  ≥ 2 est premier on peut opérer ainsi :
● Si  est divisible par un nombre entier compris entre 2 et  − 1, alors il n'est
pas premier.
● Sinon il est premier.
Créer des variables  et é puis éditer le programme souhaité par
assemblage des blocs suivants.

Figure 1.6.21

c) Utiliser ce programme pour donner les nombres premiers parmi 97, 151 et
187.

67
67
Chapitre 1 ■ 

Exercice 52   Niveau 3 – Classe de 3 e


Au début d’une année civile, on place dans une banque un capital de 1000 € au
taux de 2 % par an. Cela signifie que chaque année on perçoit comme intérêts
2 % du capital, s'ajoutant ensuite au capital. Autrement dit, le capital augmente
de 2 % par an.
 On rappelle qu'augmenter une quantité de 2 % revient à la multiplier par 1,02.
De plus, on décide que l'on ajoutera chaque année 10 € au capital dès que l'on
aura perçu les intérêts. Dans un an on obtiendra donc un capital de
1,02 × 1000 + 10 = 1030 €. Dans deux ans on obtiendra un capital de
1,02 × 1030 + 10 = 1060,60 €.
Le but de cet exercice est d'écrire un programme permettant de calculer le
montant du capital obtenu dans  années, où  est saisi par l'utilisateur.
a) Dans Scratch, créer des variables  et .
b) Si la variable  contient le capital acquis en 2025, à quoi correspond la
valeur de  × 1,02 + 10 ?
c) En déduire l’édition du programme souhaité en utilisant les blocs ci-dessous.

Figure 1.6.22

d) À l’aide du programme, donner le montant du capital qui sera obtenu dans 10


ans.

68
68
1.6 

Corrigé

39.

Figure 1.6.23

40. 1) On obtient l'affichage « 15 ».


2)
 1 2 3 4 5
 1 3 6 10 15 Figure 1.6.24
3) Le rôle du programme est de calculer la somme 1 + 2 + 3 + 4 + 5.
En effet, en exécutant le programme, la variable  prend d’abord la valeur 0 puis
est augmentée de  pour  = 1, puis  = 2, … , ceci jusqu’à  = 5.

41.

Figure 1.6.25

69
69
Chapitre 1 ■ 

Après exécution on obtient l'affichage « 5005 », d'où :


10 + 11 + 12+. . . +99 + 100 = 5005

Figure 1.6.26

42. 1) On obtient l'affichage « 720 ».


2)
 1 2 3 4 5 6
 1 2 6 24 120 720
Figure 1.6.27
3) Le rôle du programme est de calculer du produit 1 × 2 × 3 × 4 × 5 × 6.
En effet, en exécutant le programme, la variable  prend d’abord la valeur 1 puis
est multipliée par  pour  = 1, puis  = 2, … , ceci jusqu’à  = 6.

43. b)

Figure 1.6.28

c) Après exécution on obtient l'affichage « 54486432000 »


donc 5 × 6 × 7 × 8 × … × 15 = 54 486 432 000

Figure 1.6.29

70
70
1.6 

44. a)

Figure 1.6.30

b) On obtient l'affichage « 10100 » donc la somme des


nombres pairs compris entre 2 et 200 est 10100.

Figure 1.6.31

45. b) On obtient l’affichage « 0.20 ».

Figure 1.6.32
Justification de l’affichage
En exécutant le programme, la variable  prend d’abord la valeur 6, puis dans
une boucle « Pour » de compteur  allant de 1 à 3 :
 
● Lorsque  = 1, la variable  prend la valeur éé    =  = 3.
 
● Puis lorsque  = 2,  prend la valeur éé    =  = 1.
 
● Et enfin lorsque  = 3,  prend la valeur éé    =  = 0,2.
On obtient ensuite l'affichage de la valeur de , c'est-à-dire 0,2.

71
71
Chapitre 1 ■ 

46. b)

Figure 1.6.33

47. b) Si, lors de l’exécution du programme, on saisit par exemple les nombres
4, 10, 9, 20 et 3 , on obtient l’affichage « 9.20 ».
Le programme calcule puis affiche la moyenne des cinq nombres saisis par
l’utilisateur.
En effet, en exécutant le programme, la variable  prend d’abord la valeur 0, puis
dans une boucle « Pour » de compteur  , la variable  est successivement
augmentée des cinq nombres saisis par l’utilisateur. Sa valeur est alors la somme

des nombres saisis. La variable  prend ensuite la valeur qui correspond à la

moyenne de des cinq nombres saisis, valeur qui est enfin affichée.

48. On obtient l'affichage « -2023 » si le nombre saisi par l’utilisateur est


impair et « 2023 » s’il est pair.
En effet, en exécutant le programme, la variable  commence par prendre la
valeur 2023. Puis si  est le nombre saisi, la variable prend  fois de suite la
valeur − , pour ainsi aboutir à la valeur (−1) × 2023 , qui est égal à
−1 × 2023 = −2023 si  est impair et 1 × 2023 = 2023 si  est pair, d’où
l’affichage.

72
72
1.6 

49. Après exécution du programme, on obtiendra l'affichage « 2023 ».


En effet, en exécutant ce programme, les variables  et  commencent par
prendre les valeurs 2023 et −1 respectivement.
Puis  et  prennent respectivement pour valeurs :
● 1 et  + 1 = 2024
● −1 et  − 1 = 2023
● 1 et  + 1 = 2024
● −1 et  − 1 = 2023 20 itérations

● 1 et  + 1 = 2024
● −1 et  − 1 = 2023
La variable  admet au final pour valeur 2023, d’où l’affichage.

50. a) Après exécution du programme, on saisit un mot. On obtient alors


l'affichage du même mot. Par exemple, si on saisit "è", on obtient aussi
l'affichage "è".
Explications : Supposons que l'on saisisse "è"pour la variable .
La variable  commence alors par prendre pour valeur de la chaîne de
caractères vide "", puis dans une boucle « Pour » de compteur  :
● Lorsque  = 1 , la variable  prend pour valeur la concaténation de
 et du 1er caractère de  donc celle de "" et "", c’est-à-dire "".
● Puis lorsque  = 2,  prend pour valeur la concaténation de  et
du 2e caractère de  donc celle de "" et "", c’est-à-dire "".
● Puis lorsque  = 3,  prend pour valeur la concaténation de  et
du 3e caractère de  donc celle de "" et "", c’est-à-dire "".
Etc.
● Enfin lorsque  = 6 (longueur du mot "è"),  prend pour valeur
la concaténation de  et du 6e caractère de  donc celle de "è" et
"", c’est-à-dire "è".
b) Pour répondre au problème posé, il faut changer l'ordre du regroupement
dans l'instruction de la 7e ligne du programme (figure 1.6.34).

Figure 1.6.34

73
73
Chapitre 1 ■ 

En effet, dès lors, si on saisit par exemple "è" , la variable 


commence alors par prendre pour valeur de la chaîne de caractères vide "", puis
dans une boucle « Pour » de compteur  :
● Lorsque  = 1, la variable  prend pour valeur la concaténation du 1er
caractère de  et de  donc celle de "" et "", c’est-à-dire "".
● Lorsque  = 2,  prend pour valeur la concaténation du 2 caractère de
e

 et de  donc celle de "" et "", c’est-à-dire "".


Etc.
● Enfin lorsque  = 6 ,  prend pour valeur la concaténation du 6
e

caractère de  et de  donc celle de "" et "è" , c’est-à-dire


"è".
Le programme modifié est donc le suivant.

Figure 1.6.35

51. a) Les nombres premiers inférieurs à 30 sont :


2, 3, 5, 7, 11, 13, 17, 19, 23, 29

74
74
1.6 

b)

Figure 1.6.36

c) Les nombres 97 et 151 sont premiers tandis que 187 n'est pas premier.

52. b) Si la variable  contient le capital acquis en 2025, la valeur de


 × 1,02 + 10 correspond au capital acquis l’année suivante, c’est-à-dire
en 2026.

75
75
Chapitre 1 ■ 

c)

Figure 1.6.37

d) Le montant du capital obtenu dans 10 ans sera de 1328,49 €.

76
76
1.7 
1.7

1.7 Boucle TantQue


 Activité de découverte
1) Éditer puis exécuter ce programme Scratch suivant. Qu’obtient-on ?

Figure 1.7.1
2) Donner le rôle de chaque instruction en insérant des commentaires.

Corrigé
1) En exécutant le programme, il est demandé à l’utilisateur de saisir la solution
de l’équation 6� + 18 = 0, ceci jusqu’à ce que sa réponse soit correcte.

Figure 1.7.2

77
77
Chapitre 1 ■ 

2)

Figure 1.7.3

 À retenir
Dans Scratch, si l'on souhaite effectuer des instructions tant qu'une condition
n'est pas vraie (donc jusqu'à ce qu'elle soit réalisée), on utilise le bloc
« Contrôle » suivant.

Figure 1.7.4

On dit qu'il s'agit d'une boucle « TantQue ».

 Exercices

Exercice 53  Niveau 1 – Classe de 5 e


a) Quel est le rôle du programme Scratch ci-après (figure 1.7.5) ?

78
78
1.7 
1.7

Figure 1.7.5

b) Déterminer, sans exécuter ce programme, la valeur affichée après exécution.

Exercice 54  Niveau 2 – Classe de 4e



a) Calculer  pour  = 1, puis  = 2 et enfin  = 3.

b) Comment semble se comporter l'écart entre et 1 lorsque  devient de

plus en plus grand ?
c) À l’aide des blocs ci-après (figure 1.7.6), éditer un programme Scratch qui

détermine le plus petit nombre entier naturel  tel que  > 0,97.

Figure 1.7.6

d) Après exécution du programme, donner la valeur de  cherchée.

79
79
Chapitre 1 ■ 

Exercice 55  Niveau 2 – Classe de 4e


On souhaite éditer un programme Scratch demandant à l'utilisateur un pseudo
d'au moins 3 caractères. Celui-ci lui sera redemandé tant qu'il ne sera pas correct.
Puis, on devra obtenir l'affichage « Bonjour <pseudo> ! ».

Voici ci-dessous une exécution possible.

Figure 1.7.7

Pour cela, utiliser les blocs suivants.

Figure 1.7.8

80
80
1.7 
1.7

Exercice 56  Niveau 2 – Classe de 4e


a) Observer et analyser le programme suivant (figure 1.7.9) sans l’éditer, puis
décrire ce l'on obtiendrait après exécution. Justifier.

Figure 1.7.9

b) Toujours sans exécuter le programme, déterminer mentalement l'affichage


obtenu si l'on saisissait le nombre 582.
Même question avec 60, puis avec 99901.

Exercice 57  Niveau 2 – Classe de 3 e


a) Quel est le rôle du programme suivant ?

Figure 1.7.10
b) À l’aide d’une calculatrice, déterminer la valeur affichée lors de l’exécution du
programme.

81
81
Chapitre 1 ■ 

Exercice 58  Niveau 2 – Classe de 4e


a) Quel est le rôle du programme
ci-contre ?
b) Déterminer mentalement la
valeur affichée lors de l’exécution
du programme.

Figure 1.7.11

Exercice 59  Niveau 3 – Classe de 3 e


Il existe un unique nombre entier naturel  tel que  +   = 169400.
Le but de cet exercice est d’écrire un programme Scratch permettant de le
déterminer.
a) Compléter l’algorithme suivant de sorte qu’après exécution, la variable 
contienne la valeur cherchée.
    0
    +   …
     + 1
b) En déduire le programme Scratch permettant de résoudre le problème par
l’assemblage des blocs ci-après.

Figure 1.7.12
c) Exécuter le programme puis conclure.

82
82
1.7 
1.7

Exercice 60  Niveau 3 – Classe de 3e


Les diviseurs positifs communs à 12 et 20 sont 1, 2 et 4. Le plus grand diviseur
commun à ces deux nombres est donc 4. On dit qu’il s’agit du  de 12 et
20 et on peut noter (12; 20) = 4.
Pour tous entiers  et  strictement positifs, on note (; ) le plus grand
diviseur commun à  et . Une propriété, dite d’Euclide, énonce que si  est le
reste de la division euclidienne de  par  alors
(; ) = (; ).

Figure 1.7.13

Il en découle l’algorithme d’Euclide, que l’on va décrire ici pour déterminer le


 de 2016 et 66 : on effectue la division euclidienne de 2016 par 66, on
obtient le reste 36, on effectue alors la division euclidienne de 66 par 36, on
obtient le reste 30, … ceci jusqu'à obtenir un reste nul. Le dernier reste non nul
est le .
Rangé dans un tableau, cela donne comme ci-dessous.

Dividende Diviseur Reste


2016 66 36
66 36 30
36 30 6
30 6 0

On a donc (2016; 66) = 6.


a) Créer dans Scratch des variables ,  et .
Éditer ensuite le programme ci-après (figure 1.7.14) en insérant correctement
les blocs  ,  et  de sorte qu’après exécution on
obtienne l’affichage du  de deux nombres saisis par l’utilisateur.
 Indication : Il s’agit de l’algorithme d’Euclide.

83
83
Chapitre 1 ■ 

Figure 1.7.14

b) Exécuter le programme pour déterminer (2431; 1311).

Exercice 61  Niveau 2 – Classe de 4e


On souhaite éditer un programme Scratch de jeu de hasard dans lequel
l’utilisateur devra deviner un nombre entier compris entre 1 et 100 choisi au
hasard par l'ordinateur.
a) Lancer Scratch et créer une variable .
Éditer un programme qui suit successivement les instructions suivantes :
● La variable  prend pour valeur un nombre entier aléatoire compris
entre 1 et 100.
● Saisie de la réponse de l’utilisateur.
● Tant que la réponse est différente de , afficher qu'il ne s'agit pas du
bon nombre et demander à l’utilisateur de saisir à nouveau sa réponse.
● Une fois le nombre trouvé, afficher le message « Bravo ».

b) Le jeu que l'on vient de programmer n'est pas très agréable car il peut être
très long de deviner le nombre cherché.

84
84
1.7 
1.7

Améliorer ce jeu en insérant, lorsque l'utilisateur n'a pas trouvé le nombre,


l'indication « Trop petit » ou « Trop grand ».
c) Le jeu peut encore être amélioré par l'ajout d'un compteur du nombre d'essais.
Créer une variable que l'on appellera . Puis insérer des instructions
dans le programme de façon à ce que cette variable compte puis affiche en fin
de jeu le nombre d'essais de l’utilisateur.
d) Enfin, améliorer le jeu par l'ajout d'un chronomètre. Pour cela utiliser le bloc
« Capteurs » suivant :

Celui-ci retourne le temps écoulé en secondes. L'initialisation (la mise à zéro) du


chronomètre s'effectue avec le bloc « Capteurs » suivant :

e) Fais tourner le jeu et amuse-toi à battre ton record !

Corrigé

53. a) Rôle du programme Scratch : détermination puis affichage du plus petit


nombre entier naturel  tel que  > 500.
b) 0 = 0 × 0 × 0 = 0 ; 1 = 1 × 1 × 1 = 1 ; 2  = 2 × 2 × 2 = 8
3 = 3 × 3 × 3 = 27 ; 4 = 4 × 4 × 4 = 64 ; 5 = 5 × 5 × 5 = 125
6 = 6 × 6 × 6 = 216 ; 7  = 7 × 7 × 7 = 343 ; 8 = 8 × 8 × 8 = 512
Le plus petit nombre entier naturel  tel que   > 500 est 8.
On obtiendra donc l'affichage « 8 ».

   
54. a) Pour  = 1, on a  =  . Pour  = 2, on a 
= .
 
Pour  = 3, on a = .
 

b) Il semblerait que plus  devient « grand », plus l'écart entre 1 et 
se
rapproche de 0.

85
85
Chapitre 1 ■ 

c)

Figure 1.7.15

d) Après exécution on obtient l'affichage « 33 ». Le plus petit



entier naturel  tel que > 0,97 est donc 33.


Figure 1.7.16
55.

Figure 1.7.17

56. a) Après exécution du programme on obtiendrait d'abord l'affichage d'un


message invitant l'utilisateur à saisir un nombre entier. Puis, tant que le nombre
saisi n'est pas un multiple de 3 supérieur à 99, il serait affiché « Non, pas comme
ça, Recommence ! », demandant à l'utilisateur de saisir à nouveau un nombre

86
86
1.7 
1.7

entier. Dès que le nombre serait un multiple de 3 supérieur à 99, on aurait alors
l'affichage du message « Ok ! ».
b) 582 est supérieur à 99 ; de plus, il est bien divisible par 3 (car la somme de
ses chiffres est 15, qui est un multiple de 3). En saisissant le nombre 582 on
obtiendrait donc l'affichage « Ok ! ».
Avec 60 on obtiendrait « Non, pas comme ça, Recommence ! », puisque ce
nombre n'est pas supérieur à 99.
Avec 99901 on obtiendrait aussi « Non, pas comme ça, Recommence ! »,
puisque 99901 n'est pas divisible par 3 (la somme de ses chiffres est 28, qui
n'est pas un multiple de 3).

57. a) Le rôle du programme est de déterminer le plus petit nombre entier


supérieur à √2023.
b) Puisque √2023 ≈ 44,98, la valeur affichée après exécution est 45.

58. a) Le rôle du programme est de déterminer la plus petite puissance de 2


supérieur à 1000.
b) 2 = 2 ; 2 = 4 ; 2 = 8 ; 2  = 16 ; … ; 2  = 512 ; 2  = 1024
La valeur affichée en exécutant le programme est 1024.

59. a) Algorithme complété :     0


b)     +   ≠ 169400
     + 1

Figure 1.7.18

c) Après exécution, on obtient l'affichage « 55 ».


On a donc  = 55.
Figure 1.7.19

87
87
Chapitre 1 ■ 

60. a)

Figure 1.7.20

b) Après exécution et saisie des nombres 2431 et 1311, on obtient l'affichage


« PGCD : 1 », donc (2431; 1311) = 1.

Figure 1.7.21

88
88
1.7 
1.7

61. a)

Figure 1.7.22

b)

Figure 1.7.23

89
89
Chapitre 1 ■ 

c)

Figure 1.7.24

90
90
1.7 
1.7

d)

Figure 1.7.25

91
91
92
CHAPITRE

Gestion des objets

93
94
2.1 

2.1 Déplacement d’un objet


Nous allons maintenant apprendre à manipuler et à déplacer des objets sur la
scène de Scratch. Les objets sont appelés « lutins » (« sprite » en anglais).
Par défaut, le seul lutin présent sur cette scène est un chat appelé « Sprite1 ».

 Activité de découverte
1) Lancer Scratch, puis cliquer sur l’icône « Choisir un sprite » se trouvant
en bas à droite de l’écran (figure 2.1.1).

Figure 2.1.1
Sélectionner ensuite le lutin « Arrow1 », qui représente une flèche rouge.

Figure 2.1.2

95
95
Chapitre 2 ■ 

2) Sur la scène et dans le menu des lutins (sous la


scène) apparaît le lutin « Arrow1 ». Faire un clic droit
sur le lutin « Sprite1 » puis cliquer sur « supprimer »
(figure 2.1.3).

3) Éditer dans l'aire des scripts le programme suivant


(figure 2.1.4) dans lequel on utilise des blocs
« Mouvement ». Figure 2.1.3

Figure 2.1.4

4) Exécuter ce programme. Que se passe-t-il ? Expliquer le résultat.

Corrigé
4) Après exécution, la flèche parcourt la scène en
rebondissant lorsqu'elle touche le bord.

Figure 2.1.5
Explications :
 L'instruction « aller à : −100 : 50 » place
d'abord le lutin « Arrow1 » au point de
coordonnées (−100 ; 50).

Figure 2.1.6

96
96
2.1 

 Puis ce lutin est orienté suivant un angle de 100°


avec la verticale en suivant le sens des aiguilles
d'une montre.

Figure 2.1.7

 Ensuite, indéfiniment, le lutin avance de 10 pas en rebondissant sur le bord de


la scène lorsqu'il est atteint.

 À retenir
Sur la scène Scratch, les lutins sont repérés par leurs coordonnées, les abscisses
pouvant aller de −240 à 240 et les ordonnées de −180 à 180.

Figure 2.1.8
Parmi les blocs « Mouvement » :

 place le lutin au point de coordonnées (; ).

 oriente le lutin suivant un angle avec la verticale.

 fait avancer le lutin d’un nombre de pas.

 fait rebondir le lutin s'il atteint le bord de la scène.

Pour effectuer indéfiniment un ensemble d'instructions


on utilise le bloc « Contrôle » ci-contre.

Figure 2.1.9

97
97
Chapitre 2 ■ 

 Exercices

Exercice 62  Niveau 1 – Classe de 5 e


a) Cliquer en bas de l’onglet « Code » sur l’icône « Ajouter une extension »
(figure 2.1.10) puis sélectionner l’extension « Stylo » (figure 2.1.11).

Figure 2.1.11

Figure 2.1.10

On vient d’importer dans l’onglet « Code »


les blocs « Stylo » qui sont des outils de
dessin permettant en particulier de tracer
des courbes sur la scène de Scratch.

Figure 2.1.12

98
98
2.1 

b) Éditer et exécuter le
programme ci-contre puis
justifier le résultat obtenu.

c) Écrire maintenant un
nouveau programme Scratch
permettant de tracer un
triangle équilatéral de côté
150.

Figure 2.1.13

Exercice 63  Niveau 2 – Classe de 4e


a) En assemblant les blocs Scratch ci-dessous (figure 2.1.14) et en complétant le
bloc « répéter … fois », créer un programme permettant de tracer un hexagone
régulier. Quelle est la longueur de ses côtés ?

Figure 2.1.14

b) Changer quelques valeurs du programme afin d’obtenir après exécution le


tracé d’un décagone régulier de côté 50.

99
99
Chapitre 2 ■ 

Exercice 64  Niveau 2 – Classe de 4e


a) Lancer Scratch, importer le lutin « Basketball » (un ballon de basket), puis
supprimer le lutin « Sprite1 ».
b) Éditer sans l'exécuter le programme ci-dessous.

Figure 2.1.15

c) Sans exécuter ce programme, dire ce qu'il se passera lorsqu'il sera exécuté.


Vérifier en lançant l'exécution.
d) Le ballon de basket décrit une partie d'une droite représentant une fonction
affine . Donner l'expression de (). Est-ce une fonction affine particulière ?

Exercice 65  Niveau 2 – Classe de 4e


L’objet de cet exercice est la création d’un bloc utilisateur. Celui-ci va permettre
de créer une figure pouvant ensuite être utilisée autant de fois qu’on le souhaite.
a) Lancer Scratch, sélectionner « Mes blocs » dans l’onglet « Code » puis « Créer
un bloc ».

Figure 2.1.16

100
100
2.1 

Nommer  le nouveau bloc puis valider par « OK » (figure 2.1.17).


Vérifier alors la présence du bloc  dans la rubrique « Mes blocs »
(figure 2.1.18). On obtient aussi, dans l’aire des scripts, le bloc é 
(figure 2.1.19).

Figure 2.1.17 Figure 2.1.18 Figure 2.1.19

b) On souhaite que le bloc 


effectue sur la scène le tracé suivant :

Figure 2.1.20

Pour cela, réaliser l’assemblage ci-contre en


complétant les deux champs laissés vides.

Figure 2.1.21

101
101
Chapitre 2 ■ 

c) On souhaite maintenant obtenir à l’écran le tracé de la figure suivante.

Figure 2.1.22

Pour cela, assembler correctement les blocs suivants.

Figure 2.1.23

Corrigé

62. b) Après exécution du programme on obtient sur la


scène le tracé d’un carré.

Figure 2.1.24
En effet, en exécutant le programme, le lutin est placé au centre de la scène,
c’est-à-dire au point de coordonnées (0; 0). Puis la scène est effacée et le stylo
est placé en position d'écriture, donc tout déplacement ensuite effectué en
laissera la trace. C'est ainsi que le lutin tire un trait jusqu'au point de
coordonnées (100; 0) puis jusqu'à celui de coordonnées (100; 100) , puis à
celui de coordonnées (0; 100) et enfin jusqu'à l'origine du repère. La figure
obtenue est alors un carré de côté 100.

102
102
2.1 

c)
Figure obtenue après
exécution du programme :

Figure 2.1.26

Figure 2.1.25

63. a)
Figure obtenue après
exécution du programme :

Figure 2.1.28

Figure 2.1.27
L’hexagone tracé a pour côté 100.

103
103
Chapitre 2 ■ 

b)

Figure 2.1.29

64. c) Le ballon va se déplacer en prenant successivement les coordonnées


(0 ; 0), (1 ; 0,5), (2 ; 1),(3 ; 1,5), (4; 2), … , (199; 99,5) et (200; 100).

Figure 2.1.30
d) () = 0,5
 est une fonction linéaire.

104
104
2.1 

65. b) c)

Figure 2.1.32

Figure 2.1.31

105
105
Chapitre 2 ■ 

2.2 La souris, le clavier


Dans ce paragraphe, nous allons apprendre à gérer les mouvements des lutins
avec le clavier et la souris.

 Activité de découverte
1) Lancer Scratch, puis cliquer
en bas à droite de l’écran, sur
l’icône « Choisir un arrière-
plan » (figure 2.2.1).
Sélectionner ensuite l'arrière-
plan « Blue Sky » (figure 2.2.2).
Observer la scène qui est
maintenant revêtue de cet
arrière-plan.

Figure 2.2.2 Figure 2.2.1

2) Éditer puis exécuter le programme ci-après (figure 2.2.3).


Actionner les flèches de direction du clavier : ← (gauche), → (droite) et ↑ (haut).
Expliquer le résultat obtenu.

Figure 2.2.3

106
106
2.2 

3) Maintenant, supprimer les assemblages de blocs de l'aire des scripts, en les


déplaçant vers l'aire des blocs, puis éditer et exécuter le programme ci-
dessous. Expliquer le résultat.

Figure 2.2.4

Corrigé
2) Après exécution, le lutin se place au point de coordonnées (0 ; −108).
Si l'utilisateur presse la touche ←, le lutin avance de −10 pas, donc il recule de
10 pas, et dit « Je recule ! ». S'il presse la touche →, le lutin avance de 10 pas et
dit « J'avance ! ». Et s'il presse la touche ↑, l'ordonnée du lutin augmente de 80,
et devient donc égale à −108 + 80 = −28 ; puis il dit « Je saute ! » pendant
une seconde ; enfin son ordonnée diminue de 80 pour retrouver sa valeur
initiale de −108. L'effet rendu donne l'impression que le lutin saute.

Figure 2.2.5

107
107
Chapitre 2 ■ 

3) Dès que l'on clique sur le drapeau, cela exécute le programme. Alors,
indéfiniment le lutin suit le pointeur de la souris (« souris x » et « souris y »
correspondant respectivement à l'abscisse et à l'ordonnée du pointeur de la
souris) et si on pointe sur une ordonnée supérieure à −60, il est affiché « J'ai le
vertige », sinon « Là ça va ! ».

Figure 2.2.6

 À retenir
Le bloc « Événements » suivant permet d'effectuer des instructions lorsqu'une
touche est pressée.

Figure 2.2.7

Les blocs « Capteurs » et retournent respectivement


l'abscisse et l'ordonnée du pointeur de la souris.

108
108
2.2 

 Exercices

Exercice 66  Niveau 1 – Classe de 5 e


Le bloc « Événements » suivant permet d'effectuer des instructions lorsqu'un
lutin est cliqué.

Figure 2.2.8

Éditer et exécuter un programme Scratch dans lequel on aura sur la scène un


chien et un canard, et lorsqu'on cliquera sur un de ces animaux, il dira pendant
une seconde qui il est : un chien ou un canard.

Figure 2.2.9

Exercice 67  Niveau 2 – Classe de 4e


Lancer Scratch. Supprimer le lutin « Sprite1 » en sélectionnant « supprimer »
après un clic droit sur ce dernier. Importer ensuite la souris « Mouse1 » de la
bibliothèque des lutins.
Créer ensuite un programme de sorte que l'on puisse déplacer ce lutin en
actionnant les touches de direction du clavier, sans possibilité de sortir de la
scène.

Figure 2.2.10

109
109
Chapitre 2 ■ 

Exercice 68  Niveau 2 – Classe de 4e


Le but de cet exercice est d’éditer un programme Scratch de lecture d’une
partition musicale.
1) a) Importer l’extension « Musique ».

Figure 2.2.12

Figure 2.2.11

On retrouve alors les blocs « Musique »


l’onglet « Code » (figure 2.2.13).
b) Après avoir créé une variable
 , éditer le programme ci-
dessous.

Figure 2.2.13

Figure 2.2.14

110
110
2.2 

c) Créer une liste que l’on nommera  et saisir ses


éléments comme ci-contre (figure 2.2.15).
2) a) Le bloc « Musique » ci-dessous (figure 2.2.16)
permet de jouer une note pendant un certain temps.

Figure 2.2.16 Figure 2.2.15

En cliquant sur l’assemblage de blocs suivant, que va-t-il se passer ? Justifier.

Figure 2.2.17
b) En exécutant le programme ci-dessous, que va-t-il se passer ? Justifier.

Figure 2.2.18

c) Exécuter le programme et reconnaitre le morceau joué.


3) Modifier une ligne du programme de sorte que lors de son exécution, il soit
joué successivement les notes suivantes :
53, 53, 53, 55, 57, 55, 53, 57, 55, 55, 53
Exécuter le programme obtenu et reconnaitre le morceau joué.

111
111
Chapitre 2 ■ 

Corrigé

66. Tout d’abord on supprime le lutin « Sprite1 » et on importe de la


bibliothèque des lutins « Dog1 » et « Duck ».
 On clique sur le lutin « Dog1 » dans l’aire des lutins (figure 2.2.19).

Figure 2.2.19

Dans l'aire des scripts, qui sera donc celle associée au lutin « Dog1 », on insère le
script ci-dessous.

Figure 2.2.20

 De même, après avoir sélectionné le lutin « Duck », on insère le script ci-


dessous dans l'aire des scripts associée à ce lutin.

Figure 2.2.21

112
112
2.2 

67.

Figure 2.22

68. 2) a) En cliquant sur l’assemblage de blocs il sera joué pendant 1 temps la


note 50.
En effet, la valeur de la variable  est 112143112154. Le 3e chiffre de
ce nombre est 2 et le 2e élément de la liste  est 50.
b) En exécutant le programme, il sera joué successivement pendant 1 temps :
● La note correspondant au 1 er élément de  c’est-à-dire 48.
● La note correspondant au 1 er élément de  c’est-à-dire 48.
● La note correspondant au 2 e élément de  c’est-à-dire 50.
● La note correspondant au 1 er élément de  c’est-à-dire 48.
● La note correspondant au 4 e élément de  c’est-à-dire 53.
● La note correspondant au 3 e élément de  c’est-à-dire 52.
● La note correspondant au 1 er élément de  c’est-à-dire 48.
● La note correspondant au 1 er élément de  c’est-à-dire 48.

113
113
Chapitre 2 ■ 

● La note correspondant au 2 e élément de  c’est-à-dire 50.


● La note correspondant au 1 er élément de  c’est-à-dire 48.
● La note correspondant au 5 e élément de  c’est-à-dire 55.
● La note correspondant au 4 e élément de  c’est-à-dire 53.

c) Il est joué le début du morceau « Joyeux anniversaire ».

3)

Figure 2.2.23

Il est joué le début du morceau « Au clair de la lune ».

114
114
2.3 

2.3 Interactions entre objets

 Activité de découverte
Le but de cette activité est d'éditer un programme très basique de jeu de pong,
c'est-à-dire où une balle rebondit sur les côtés de la scène et sur une raquette
que l'utilisateur peut déplacer vers la droite ou la gauche.

Figure 2.3.1

1) Lancer Scratch, importer les lutins « Paddle » et « Ball », puis supprimer le


lutin « Sprite1 ».

Paddle Ball

2) Gestion de la raquette
a) Dans l'aire des lutins, cliquer sur « Paddle ».
b) Réaliser alors dans l'aire des scripts associée à ce lutin l'assemblage des blocs
d'instruction ci-après (figure 2.3.2) de sorte que la raquette puisse être déplacée
par l’utilisateur de droite à gauche en bas de la scène.

115
115
Chapitre 2 ■ 

Figure 2.3.2

3) Gestion de la balle
a) Dans l'aire des lutins, cliquer sur « Ball ».
b) Dans l'aire des scripts (associée à ce lutin)
réaliser l'assemblage ci-contre (figure 2.3.3).
Quel est le rôle de cet ensemble
d'instructions ?
c) On souhaite que lorsque la balle touche la
raquette, elle reparte vers le haut suivant un
angle aléatoire d'au maximum 30° avec la
verticale.

Figure 2.3.3

Figure 2.3.4

116
116
2.3 

Réaliser dans l'aire des


scripts l'assemblage de
blocs ci-contre puis le
compléter par des valeurs.

Figure 2.3.5
d) Insérer le script de la question c) dans celui de la question b) se manière à ce
que la balle se déplace sur la scène en rebondissant lorsque qu'elle touche un
côté mais aussi aléatoirement suivant un angle d'au plus 30° avec la verticale
lorsqu'elle touche la raquette.

4) Envoi d'un message


On souhaite maintenant qu'un son soit émis lorsque la balle touche la raquette.
Pour cela, la balle devra envoyer le message « touché ».
a) La balle …
Dans l'aire des lutins, cliquer sur « Ball ». Déposer le bloc « Événements » suivant
dans l'aire des scripts.

Figure 2.3.6

Créer ensuite le message « touché »


(figures 2.3.7 et 2.3.8).

Figure 2.3.7 Figure 2.3.8

On obtient alors le bloc suivant :

Figure 2.3.9
Où doit-on insérer ce bloc dans le script déjà créé pour le lutin « Ball » ?

117
117
Chapitre 2 ■ 

b) La raquette …
Dans l'aire des lutins, cliquer sur « Paddle » puis créer l'assemblage de blocs
suivant. Donner le rôle de cet ensemble d'instructions.

Figure 2.3.10
5) Démarre le jeu !

Corrigé
2) b)

Figure 2.3.11

3) b) L’instruction « aller à : 0 : 0» place la balle au centre de la scène puis


l’instruction « s'orienter à 10° » l'oriente suivant un angle de 10° par rapport à
la verticale et dans le sens des aiguilles d’une montre. On répète ensuite
indéfiniment « avancer de 10 pas » et « rebondir si le bord est atteint » qui met
perpétuellement la balle en mouvement en rebondissant sur le bord de la scène
à chaque fois qu'elle le touche.

c)

Figure 2.3.12

118
118
2.3 

d)

Figure 2.3.13

3) a) Le bloc « envoyer
à tous é » doit
être inséré dans
l'instruction
conditionnelle « si
touche le Paddle
alors ».

b) Cet ensemble
d'instructions émet un
son lorsque l'objet
« Paddle » reçoit le
message « touché »,
donc lorsque la balle
touche la raquette.

Figure 2.3.14

119
119
Chapitre 2 ■ 

4) Programme final :
 Scripts associés au lutin « Paddle »

Figure 2.3.15

 Script associé au lutin « Ball »

Figure 2.3.16

120
120
2.3 

 À retenir
Dans le script Scratch associé à un lutin :
 On crée et on envoie un message à tous les
lutins avec le bloc « Événements » ci-contre.

 Le bloc « Événements » ci-contre permet de


réaliser des instructions lorsqu’un message
est reçu.

 Le bloc « Capteurs » ci-contre permet de détecter


si le bord de la scène ou un autre lutin a été touché.

Exercice 69  Niveau 3 – Classe de 3 e


Nous allons éditer un jeu en Scratch
dans lequel une pomme sera
présente sur la scène. L'utilisateur
devra déplacer une coccinelle avec
les quatre touches de direction →,
→, ↑ et ↓ afin qu'elle atteigne la
pomme pour la manger. La
coccinelle devra alors dire
« Miam ! » puis la pomme
disparaîtra pour réapparaître sur la
scène à une position aléatoire. Figure 2.3.17

1) Lancer Scratch, importer les lutins « Apple »


et « Beetle », puis supprimer le lutin « Sprite1 ».

Figure 2.3.18

2) Dans l'aire des scripts associée au lutin « Apple », réaliser les instructions de
sorte qu'en exécutant le programme, la pomme apparaisse sur la scène à une
position aléatoire.
3) Se placer dans l'aire des scripts du lutin « Beetle ».
a) Créer les instructions permettant de déplacer la coccinelle avec les touches
de direction →, →, ↑ et ↓.

121
121
Chapitre 2 ■ 

b) En parallèle, créer un script réalisant successivement les actions suivantes :


▪ Orientation de la coccinelle suivant un angle de 90° avec la verticale et dans le
sens des aiguilles d’une montre.
▪ Placement de la coccinelle au point de coordonnées (−170 ; 100).
▪ Indéfiniment, si la coccinelle touche la pomme, elle dit « Miam ! » puis elle
envoie le message « manger ».
4) Terminer le programme par le script associé au lutin « Apple » lui permettant
d'aller à une position aléatoire sur la scène s’il reçoit le message « manger ».

Corrigé

69. 2)

Figure 2.3.19
3) a)

Figure 2.3.20

122
122
2.3 

b)

Figure 2.3.21

4)

Figure 2.3.22
Programme final :

 Scripts associés au lutin « Apple »

Figure 2.3.23

123
123
Chapitre 2 ■ 

 Scripts associés au lutin « Beetle »


Figure 2.3.24

124
124
CHAPITRE

Travaux pratiques

125
126
3.1 

3.1 Simulation d’un sondage

 Le problème
Lors du second tour d'une élection présidentielle, un candidat  a été élu avec
un score de 55 %. Auparavant, on avait réalisé un sondage auprès d'un
échantillon de 200 personnes où seulement 48 % d'entre elles déclaraient
vouloir voter pour ce candidat.
L'objectif de ce TP est de vérifier la cohérence d'un tel résultat de sondage.
1) Combien de personnes ont déclaré vouloir voter pour le candidat  lors du
sondage ?

Nous allons écrire et exécuter un programme simulant un sondage auprès de


200 personnes. Puisque le candidat  a été élu avec un score de 55 %, chaque
personne de l'échantillon a donc une probabilité égale à 0,55 de déclarer vouloir
voter pour ce candidat.
2) a) Définir dans Scratch une variable  dont le rôle sera de compter
le nombre de personnes de l'échantillon souhaitant voter pour le Candidat .
b) Éditer le début de programme suivant. Quel est son rôle ?

Figure 3.1.1
3) a) Quelle est la probabilité pour qu'un nombre entier choisi au hasard entre 0
et 99 soit inférieur à 55 ?
b) Compléter par des valeurs le bout de programme suivant (figure 3.1.2) afin
qu'il modélise « Si une personne déclare vouloir voter pour le candidat  alors
j'augmente la variable  de 1 ».

Figure 3.1.2

127
127
Chapitre 3 ■ 

4) En utilisant les blocs des question 2b et 3b, et en les assemblant correctement


avec les blocs ci-après (figure 3.1.3), à compléter par des valeurs, obtenir un
programme tel qu’après exécution il soit simulé le sondage voulu puis affiché le
score du candidat dans l'échantillon des 200 personnes.

Figure 3.1.3
5) a) Exécuter plusieurs fois le programme jusqu'à obtenir un score inférieur à
50 %.
b) Le sondage effectué auprès de 200 personnes dans lequel le candidat  avait
obtenu un score de 48 % paraît-il incohérent ?

Corrigé
1) 48 % des 200 personnes interrogées ont déclaré vouloir voter pour le
candidat , ce qui représente 0,48 × 200 = 96 personnes.
2) b) Ce début de programme permet d’initialiser la variable  à 0 dès
son exécution.
3) a) Dans le tirage au sort d'un nombre entiers au hasard entre 0 et 99, les 100
issues sont équiprobables. Parmi elles, 55 correspondent à des nombres
inférieurs à 55 (de 0 à 54), la probabilité pour qu'un nombre entier choisi au

hasard entre 0 et 99 soit inférieur à 55 est donc = 0,55.

b)

Figure 3.1.4

128
128
3.1 

4)

Figure 3.1.5

5) a) Après un certain nombre d'essais, on peut par exemple obtenir comme sur
la figure 3.1.6 ci-dessous.

Figure 3.1.6

 Pour information, on peut montrer que sur 20 sondages de ce type on a environ 85 %


de chance d'obtenir au moins un sondage avec un score inférieur à 50 %.

b) Le sondage effectué auprès de 200 personnes dans lequel le candidat � avait


obtenu un score de 48 % ne paraît donc pas incohérent.

129
129
Chapitre 3 ■ 

3.2 Dénombrement
 Le problème
Le nombre 314 est un entier naturel de 3 chiffres dont la somme est 8.
Le but de ce TP est de déterminer combien de nombres ont cette propriété.
1) a) Ouvrir Scratch puis créer une variable .
b) Quels sont tous les entiers naturels de 3 chiffres ?
c) En déduire l’édition en Scratch d’une boucle « Pour » de compteur  prenant
successivement pour valeurs tous les nombres entiers positifs de 3 chiffres.
d) Créer une nouvelle variable  , puis l'initialiser à 0 en début de
programme.
2) a) Insérer dans le programme des instructions permettant de déterminer
combien de nombres entiers naturels ont 3 chiffres dont la somme est 8.
 Indications :  Utiliser le bloc « Opérateurs » .
Par exemple «  2  645 » retourne 4 :

Figure 3.2.1
 Augmenter de 1 la variable  à chaque fois que la somme des chiffres
de  vaut 8.
b) Exécuter le programme puis conclure.

Corrigé
1) b) Les entiers naturels de 3 chiffres sont ceux compris entre 100 et 999.
c)

Figure 3.2.2
d)

Figure 3.2.3

130
130
3.2 

2) a)

Figure 3.2.4

b) Résultats après exécution du programme : 36


Il existe donc exactement 36 nombres entiers naturels de trois chiffres dont la
somme est 8.

Figure 3.2.5

131
131
Chapitre 3 ■ 

3.3 Analyse d’un texte


 Le problème
Le but de ce TP est d’écrire un programme Scratch qui détermine la fréquence,
en pourcentage arrondi à l’unité, d’apparition d’un caractère saisi par l’utilisateur
dans un texte qu’il a lui aussi saisi.
Par exemple, si l’utilisateur saisit «Il a fait beau aujourd’hui !» pour le texte et
«a» pour le caractère, on devra alors obtenir l’affichage « 14 % ».
En effet, le texte a 28 caractères et le caractère «a» y apparait 4 fois.

Sa fréquence d’apparition est donc ≈ 0,143 , c’est-à-dire environ 14,3 % d’où

14 % en arrondissant à l’unité.

Figure 3.3.1

1) a) Dans Scratch, créer des variables , è et .


b) Écrire ensuite un programme de sorte qu’en l’exécutant
 la variable  soit initialisée à 0,
 et que l’utilisateur soit invité à saisir un texte puis un caractère de sorte que
ses deux réponses soient respectivement stockées dans les variables  et
è.

2) Pour compter le nombre d’apparition du caractère saisi dans le texte saisi, on


peut parcourir ce texte, caractère par caractère, en augmentant de 1 la variable
 à chaque fois que l’on rencontre ce caractère saisi.
Créer une variable  puis compléter le programme de la question 1b en
assemblant à la suite correctement les blocs suivants (figure 3.3.2) afin qu’après
exécution, la variable  contienne le nombre apparitions du caractère
saisi dans le texte saisi.

132
132
3.3 

Figure 3.3.2
3) a) Si  est le nombre d’apparition du caractère saisi dans le texte saisi, si  est
sa fréquence en pourcentage, et si  est la longueur du texte saisi (c’est-à-dire
son nombre de caractères), exprimer  en fonction de  et .
b) Créer une variable é puis terminer l’écriture du programme.

Corrigé
1) b)

Figure 3.3.3

133
133
Chapitre 3 ■ 

2)

Figure 3.3.4


3) a)  = 100 × 

134
134
3.3 

b)

Figure 3.3.5

135
135
Chapitre 3 ■ 

3.4 Codage d’un mot


 Le problème
Le but de ce TP est d'écrire un programme Scratch de codage d’un mot, par
une méthode dite de César avec le décalage +.
Par exemple, codons le mot « azerty ». Écrivons tout d'abord l'alphabet en lui
rajoutant 10 lettres de la manière suivante :
abcdefghijklmnopqrstuvwxyzabcdefghij
 « a » est la lettre n°1 de l'alphabet, en décalant de +10, on obtient la lettre
n°11 qui est « k », donc « a » se code en « k » ;
 « z » est la lettre n°26 de l'alphabet, en décalant de +10, on obtient la lettre
n°36 qui est « j », donc « z » se code en « j » ;
 « e » est la lettre n°5 de l'alphabet, en décalant de +10, on obtient la lettre
n°15 qui est « o », donc « e » se code en « o » ;
 Etc.
Au final, « azerty » se code en « kjobdi ».

1) Variables et saisie
a) Dans Scratch, créer des variables , , ,  et .
b) Écrire un début de programme dans lequel la variable  prend pour
valeur la chaîne de caractères "abcdefghijklmnopqrstuvwxyzabcdefghij".
c) Poursuivre l’édition du programme par la saisie d’un mot stocké dans la
variable  puis par l’initialisation de la variable  à la chaîne de caractères
vide, en utilisant le bloc ci-dessous et en laissant vide la valeur prise par .

Figure 3.4.1
2) Le principe algorithmique
Pour obtenir le codage du mot on peut,
 pour chaque caractère du mot saisi ;
 rechercher son rang parmi les 26 premiers caractères de la chaîne de
caractères "abcdefghijklmnopqrstuvwxyzabcdefghij" ;
 noter son rang dans cette chaîne ;
 puis si  est ce rang, ajouter à la variable  le  + 10 ième caractère
de "abcdefghijklmnopqrstuvwxyzabcdefghij".
Au final le mot codé sera alors la valeur de la variable .

136
136
3.4 

a) En suivant ce principe algorithmique, donner les étapes du codage du mot


« roi ».
b) Afin de suivre ce principe, poursuivre l’édition du programme en finissant
d’assembler les blocs ci-dessous et en ajoutant l’ensemble à la suite.

Figure 3.4.2

c) Terminer l’édition du programme pour obtenir au final l’affichage du mot codé.


d) En exécutant le programme, déterminer le codage du mot « bonjour ».

137
137
Chapitre 3 ■ 

Corrigé
1) b)

Figure 3.4.3

c)

Figure 3.4.4

2) a) Pour coder le mot « roi » :


 Le rang du 1er caractère "r" dans  est 18, le 18 + 10 = 28e caractère de
 est "b", donc  prend d’abord la valeur "b".
 Le rang du 1er caractère "o" dans  est 15, le 15 + 10 = 25e caractère de
 est "y", donc  prend ensuite la valeur "by".
 Le rang du 1er caractère «i» dans  est 9, le 9 + 10 = 19e caractère de
 est "s", donc  prend ensuite la valeur "bys".
Le mot « roi » se code donc en le mot « bys ».

138
138
3.4 

b) c)

Figure 3.4.5

d) Lorsqu’on saisit le mot « bonjour » on obtient l’affichage ci-


contre, il se code donc en « lyxtyeb ».

Figure 3.4.6

139
139
Chapitre 3 ■ 

3.5 Calculs de dates


 Le problème
Le but de ce TP d'est d'écrire un programme permettant de déterminer quelle
date correspond au -ième jour de l'année, où  est saisi par l'utilisateur. Nous
considérerons que l'année est non bissextile.
Par exemple, si l'utilisateur saisit 67, alors on devra obtenir l'affichage « 8/3 ».
En effet, le 67e jour de l'année est le 8 mars.

Figure 3.5.1
1) Création d'une liste
Dans le menu « Variables », cliquer sur « Créer une liste ».
La nommer  puis saisir ses 12 éléments :
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
Ces derniers correspondent aux nombres de jours des mois de l'année, de
janvier à décembre.
2) Le principe algorithmique, sur un exemple
Cherchons la date qui correspond au 175e jour de l'année.
a) Pour cela, on soustrait de  = 175 les nombres 31, 28, 31, 30, ... tant que le
résultat obtenu est supérieur au nombre de jour du mois.
Compléter le tableau ci-dessous en suivant ce principe.

Mois 1 2 3 4 5 6 7 8 9 10 11 12
Nombre de jours 31 28 31 30 31 30 31 31 30 31 30 31

Résultat 175 144

b) Quel est le dernier résultat obtenu ?

140
140
3.5 

c) En déduire la date correspondant au 175e jour de l'année.

3) Édition du programme
a) Réaliser les instructions permettant la saisie du nombre de jours puis le
stockage dans une variable que l'on nommera �.
b) À la suite, assembler les blocs ci-dessous de sorte qu'après exécution, la
variable � contienne le numéro du jour de la date cherchée. Par exemple, si
l'utilisateur saisit 175 , alors au départ � prend la valeur 175 , puis après
exécution de l'assemblage des blocs, � devra avoir pour valeur 24.

Figure 3.5.2
c) Terminer l'écriture du programme, puis le tester.

Corrigé
1)

Figure 3.5.3

141
141
Chapitre 3 ■ 

2) a)

Mois 1 2 3 4 5 6 7 8 9 10 11 12
Nombre de jours 31 28 31 30 31 30 31 31 30 31 30 31

Résultat 175 144 116 85 55 24 - - - - - -

b) Le dernier résultat obtenu est 24.


c) La date correspondant au 175e jour de l'année est 24/06 donc le 24 juin.
3) a)

Figure 3.5.4

b)

Figure 3.5.5

142
142
3.6 

c)

Figure 3.5.6

3.6 Tables de conjugaison

 1e partie : conjugaison au futur


Le but de cette première partie d'est d'écrire un programme Scratch permettant
de conjuguer au futur un verbe du premier groupe saisi par l'utilisateur.
1) Le principe algorithmique
À partir d’un verbe du 1er groupe saisi par l'utilisateur, comment peut-on obtenir
la table de conjugaison de ce verbe au futur ?
2) Le programme
a) Créer une variable  puis un programme demandant à l’utilisateur de
saisir un verbe du 1er groupe qui sera ensuite stocké dans .
b) Terminer l’écriture du programme.

143
143
Chapitre 3 ■ 

Corrigé
1) On peut obtenir la table de conjugaison au futur d’un verbe du 1 er groupe saisi
par l’utilisateur en affichant successivement :
● la concaténation de « je (j’) », du verbe et de «ais» ;
● la concaténation de « tu », du verbe et de «as» ;
● la concaténation de « il (elle, on) », du verbe et de «a» ;
● la concaténation de « nous », du verbe et de «ons» ;
● la concaténation de « vous », du verbe et de «ez» ;
● et enfin la concaténation de « ils (elles) », du le verbe et de «ont».

2) a)

Figure 3.6.1
b)

Figure 3.6.2

144
144
3.6 

 2e partie : Conjugaison au présent


Le but de cette partie d'est d'écrire un programme permettant de conjuguer au
présent de l'indicatif un verbe du deuxième groupe saisi par l'utilisateur.
1) a) Parmi les verbes en « ir », quels sont ceux du deuxième groupe ?
b) Parmi les verbes « courir », « finir », « devenir » et « agir », quels sont ceux
du deuxième groupe ?
2) Le principe algorithmique
a) Pour tout verbe du 2e groupe, appelons racine ce verbe privé de sa dernière
lettre, c’est-à-dire « r ». Par exemple, la racine de « finir » est « fini ».
Quelle est la racine de « agir »
b) À partir du verbe du 2e groupe saisi par l'utilisateur, comment peut-on obtenir
la table de conjugaison de ce verbe au présent ?

3) Le programme
a) Dans Scratch, créer une variable  puis un programme demandant à
l’utilisateur de saisir un verbe du 2e groupe qui sera ensuite stocké dans .
b) Créer une variable  puis assembler correctement les blocs ci-dessous
(figure 3.6.3) de sorte qu’après exécution, la variable  ait pour valeur la
racine du verbe saisi.

Figure 3.6.3
c) Terminer l’écriture du programme.

145
145
Chapitre 3 ■ 

Corrigé
1) a) Les verbes du deuxième groupe sont ceux en « ir » avec un participe
présent en « issant » et une première et deuxième personnes du pluriel en
« issons » et « issez ».
b) Parmi les verbes « courir », « finir », « devenir » et « agir », seuls « finir » et
« agir » sont du deuxième groupe.
2) a) La racine de « agir est « agi ».
b) On obtient la table de conjugaison au présent du verbe du 2e groupe saisi par
l’utilisateur en affichant successivement :
● la concaténation de « je (j’) », de la racine du verbe et de «s» ;
● la concaténation de « tu », de la racine du verbe et de «s» ;
● la concaténation de « il (elle, on) », de la racine du verbe et de «t» ;
● la concaténation de « nous », de la racine du verbe et de «ssons» ;
● la concaténation de « vous », de la racine du verbe et de «ssez» ;
● la concaténation de « ils (elles) », de la racine du verbe et de «ssent».

3) a)

Figure 3.6.4
b)

Figure 3.6.5

146
146
3.7 

c)

Figure 3.6.6

3.7 Répertoire téléphonique


 Le problème
Le but de ce TP est d'écrire un programme de répertoire téléphonique
permettant d'obtenir le numéro de téléphone d'une personne par la saisie de

147
147
Chapitre 3 ■ 

son prénom, mais aussi son prénom par la saisie de son numéro de téléphone.
On considère au départ trois personnes avec leurs numéros de téléphone : Paul
(0607080910), Zoé (0622222222) et Madiane (0603030303).
1) Première partie : Obtenir le prénom à partir du numéro
a) Dans Scratch, créer une liste que l’on nommera é dont les éléments
sont successivement les suivants : ● Paul
● 0607080910
● Zoé
● 0622222222
● Madiane
● 0603030303
b) Créer une variable que l'on nommera é puis écrire le début du
programme avec la saisie du prénom par l’utilisateur puis le stockage dans la
variable é.
c) Pour chaque prénom de la liste é , comment obtenir son
numéro associé ?
d) Finir l’édition du programme en assemblant correctement les blocs ci-dessous
de sorte qu’après exécution, il soit recherché le prénom saisi dans la liste
é et affiché le numéro de téléphone associé à ce prénom.

Figure 3.7.1

148
148
3.7 

e) Si l’on souhaite saisir dans la liste é de nouveaux prénoms


accompagnés des numéros de téléphone associés, que faut-il changer dans le
programme afin de le rendre alors à nouveau fonctionnel ?

2) Deuxième partie : obtenir le numéro à partir du prénom


Modifier le programme précédent de manière à obtenir le prénom d'une
personne, à partir de la saisie de son numéro de téléphone.

3) Fusion des deux programmes


a) Créer deux nouveaux blocs que l’on nommera  é et
 éé.

Figure 3.7.2
b) À partir des programmes des questions 1 et 2, créer un unique programme
proposant à l’utilisateur :
● d’obtenir un prénom à partir du numéro de téléphone en saisissant 1,
● ou un numéro de téléphone à partir du prénom en saisissant 2.
Ce programme fera appel aux deux blocs précédemment créés.

Corrigé
1) a)

Figure 3.7.3

149
149
Chapitre 3 ■ 

b)

Figure 3.7.4

c) Pour chaque prénom de la liste é, son numéro de téléphone associé


est l’élément qui suit dans cette liste.
d)

Figure 3.7.5

e) Il faudrait remplacer par l’assemblage de blocs suivant :

Figure 3.7.6

150
150
3.7 

2)

Figure 3.7.7

3)

Figure 3.7.8

151
151
Chapitre 3 ■ 

Figure 3.7.9

Figure 3.7.10

152
152
CHAPITRE

Applications
ludiques

153
154
4.1 

4.1 Jeu de pong


 Nous allons maintenant créer un jeu de pong plus étoffé que celui que l'on a
édité dans l'activité de découverte du paragraphe 2.3.

Plus précisément, on trouvera en plus les fonctionnalités suivantes :


 Présence d'un décor style rue en arrière-plan.
 Affichage d'un message par un personnage demandant à l'utilisateur
d'appuyer sur la touche « espace » pour commencer de jouer.
 Puis disparition du personnage et lancement du jeu dans lequel un bruit est
émis à chaque fois que la balle touche la raquette.

Figure 4.1.2

Figure 4.1.1

Figure 4.1.3

155
155
Chapitre 4 ■ 

 Dès que la balle touche le sol, un son grave est émis, le jeu est arrêté et le
personnage réapparaît pour indiquer que l'utilisateur a perdu en lui précisant
son temps.
1) Lancer Scratch puis cliquer sur l’icône « Choisir un arrière-plan » (figure 4.1.4).
Sélectionner alors « Wall 1 » (figure 4.1.5).

Figure 4.1.5

Figure 4.1.4

2) a) Importer le lutin « Abby » (figure 4.1.6) puis lui associer le script ci-dessous.

Figure 4.1.6

Figure 4.1.7
Quel est le rôle de ce script ?

b) Pour ce même lutin, éditer un script permettant qu'à l'instant où l'utilisateur


aura appuyé sur la touche « espace », il y ait successivement exécution des
instructions suivantes :
 Cacher le personnage.
 Mettre le chronomètre à zéro.
 Envoyer à tous le message « début ».

156
156
4.1 

3) Importer le lutin « Paddle » puis lui associer des scripts permettant :


 de placer la raquette au point de coordonnées (0 ; −165) dès que le
programme est lancé,
 et de déplacer cette raquette de 15 pas de gauche à droite avec les touches
de direction ← et →.
4) a) Importer le lutin « Ball » puis lui associer un script le plaçant, dès que le
programme est exécuté, au point de coordonnées (0; −130), puis l'orientant
suivant l'angle de 10° par rapport à la verticale, dans le sens des aiguilles d'une
montre.
b) Pour ce même lutin, éditer un script permettant qu'au moment où il aura reçu
le message « début », il y ait successivement exécution des instructions
suivantes :
 Tant que l'ordonnée de la balle est supérieure ou égale à −150, elle avance
de 12 pas, en rebondissant si le bord est atteint et en s'orientant
aléatoirement suivant un angle par rapport à la verticale compris entre −30°
et +30° dès que la raquette est touchée.
 Dès que l'ordonnée de la balle est inférieure à −150 , le lutin envoie le
message « perdu ».
c) Insérer dans le script précédent l'envoie du message « touché » dès que la
raquette est touchée.

5) a) Importer l’extension « Musique » (figures 4.1.8 et 4.1.9).

Figure 4.1.9

Figure 4.1.8

157
157
Chapitre 4 ■ 

b) Associer au lutin « Paddle » le script suivant. Quel en sera l'effet ?

Figure 4.1.10

c) À quel lutin faut-il associer le script suivant ? Quel en sera l'effet ?

Figure 4.1.11

6) Démarrer le jeu.

Corrigé
2) a) Le rôle du script est de faire apparaître le personnage dès que le
programme est exécuté, en lui faisant dire « Appuie sur ESPACE pour
commencer ».
b)

Figure 4.1.12

158
158
4.1 

3)

Figure 4.1.13

4) a)

Figure 4.1.14

b)

Figure 4.1.15

159
159
Chapitre 4 ■ 

c)

Figure 4.1.16

5) b) À chaque fois que le lutin « Paddle » reçoit le message « touché », il joue


un bref son de tambour.
c) Il associe le script au lutin « Abby », c'est-à-dire au personnage.
Dès que ce lutin reçoit le message « perdu », il apparaît sur la scène, dit à
l'utilisateur qu'il a perdu en lui précisant son temps, puis deux notes de musique
sont jouées.

160
160
4.1 

 Programme final :

Scripts associés au lutin « Ball »

Figure 4.1.17

161
161
Chapitre 4 ■ 

Scripts associés au lutin « Paddle »

Figure 4.1.18

Scripts associés au lutin « Abby »

Figure 4.1.19

162
162
4.2 

 Un peu d'histoire … Inspiré par le tennis de table, le jeu de pong a été créé
par la société Atari en 1972. Ce jeu vidéo fut le premier à rencontrer un grand
succès populaire.

Figure 4.1.20

4.2 Jeu du tunnel


 Nous allons créer un jeu dont le but est de faire traverser le plus vite possible
un tunnel à une balle avec les touches de direction ←, →, ↓ et ↑ sans qu'elle
ne touche les bords de ce tunnel.
Plus précisément, un personnage devra apparaître au début de la partie
demandant à l'utilisateur d'appuyer sur la touche « espace » (figure 4.2.1). Puis
il disparaîtra et la balle partira vers la droite à une vitesse constante (figure 4.2.2).
Le but sera donc d'atteindre la sortie, en bas à droite. Tant qu'elle n'a pas touché
le bord ou atteint la sortie, la balle ne devra jamais s'arrêter et conserver sa
vitesse constante, on ne pourra que la faire changer de direction avec les
touches de direction. Si le bord du tunnel est touché ou si la sortie est atteinte,
la balle devra s'arrêter et le personnage réapparaître pour indiquer à l'utilisateur
s'il a gagné ou perdu en lui précisant son temps (figures 4.2.3 et 4.2.4).

Figure 4.2.1 Figure 4.2.2

163
163
Chapitre 4 ■ 

Figure 4.2.3 Figure 4.2.4

1) L'arrière-plan et les lutins


a) Ouvrir Scratch puis cliquer sous la scène à droite sur
l'icône « Choisir un arrière-plan » puis sélectionner
« Peindre » (figure 4.2.5).
b) Représenter alors le dessin comme ci-dessous.

Figure 4.2.5

Figure 4.2.6
c) Importer les lutins « Ball » et « Devin » (figure 4.2.7) puis supprimer le lutin
« Sprite1 ».

Figure 4.2.7

164
164
4.2 

2) Le démarrage du jeu
a) Éditer dans l’aire des scripts associée au lutin « Devin » un début de
programme qui, lors de son exécution, place ce lutin au point de coordonnées
(−188; −74) en affichant « Appuie sur ESPACE pour commencer… ».
b) Poursuivre l’édition du programme de sorte que si l’utilisateur appuie sur la
touche ESPACE,
 il soit envoyé à tous les lutins le message « début »,
 le lutin « Devin » se cache,
 et le chronomètre est réinitialisé.
À quel lutin faut-il associer ce script ?
c) Écrire un script associé au lutin « Ball », le plaçant, lors de l’exécution du
programme, au point de coordonnées (−215; 130) en l’orientant avec un angle
de 90° avec la verticale dans le sens des aiguilles d’une montre.

3) Détections et mise en mouvements


a) Pour savoir si la balle touche le bord du tunnel, on utilise le bloc « Capteurs »
suivant.

Figure 4.2.8
Insérer la couleur du bord du tunnel dans la pastille du bloc en cliquant sur
celle-ci, puis sur la pipette, et enfin sur le bord du tunnel.

.
Figure 4.2.9
On obtient alors la couleur du bord du tunnel dans la pastille :

Figure 4.2.10

b) Assembler correctement les blocs ci-après (figure 4.2.11) afin d’obtenir la


mise en mouvement perpétuelle de la balle avec contrôle de la direction par

165
165
Chapitre 4 ■ 

l’utilisateur, ceci jusqu’à ce que le tunnel soit touché par la balle ou que son
abscisse soit supérieure à 215.

Figure 4.2.11
c) Si l’abscisse de la balle est supérieure à 215, la mise en mouvement de la balle
est donc stoppée. À quelle situation cela correspond par rapport au jeu ?

4) Fin du programme
a) Terminer le script du paragraphe 2b de sorte que si la balle touche le tunnel,
il soit alors envoyé le message « perdu », sinon le message « gagné ».
b) Ajouter aux scripts associés au lutin « Devin » ceux permettant d’obtenir
l’affichage précisant au joueur s’il a gagné ou perdu, accompagné de son temps
de jeu en seconde.
c) Lance le programme et amuse-toi à battre ton record !

Corrigé
2) a)

Figure 4.2.12

166
166
4.2 

b) c)

Figure 4.2.14

Figure 4.2.13

Le script est associé au lutin « Devin ».

3) b)

Figure 4.2.15
c) Lorsque l’abscisse de la balle est supérieure à 215, la balle a atteint la sortie
et le joueur a donc gagné.

167
167
Chapitre 4 ■ 

4) Programme final

Scripts associés au lutin « Ball »

Figure 4.2.16

168
168
4.2 

Scripts associés au lutin « Devin »

Figure 4.2.17

169
169
170
CHAPITRE

Annales du brevet
des collèges

171
172
5.1 

5 Exercices des annales du brevet


Exercice 70 (d’après sujet Métropole Antilles – Guyane 30 juin 2022)
Dans cet exercice,  est un nombre strictement supérieur à 3.
On s’intéresse aux deux figures géométriques suivantes :
 Un rectangle dont les côtés ont pour longueurs  − 3 et  + 7.
 Un carré de longueur de côté .
1) Quatre propositions sont écrites ci-dessous. Recopier sur la copie celle qui
correspond à l’aire du carré. On ne demande pas de justifier.
4 4+  2

2) Montrer que l’aire du rectangle est égale à  + 4 − 21.
3) On a écrit le script ci-dessous dans Scratch. On veut que ce programme
renvoie l’aire du rectangle lorsque l’utilisateur a rentré une valeur de 
(strictement supérieure à 3).
Écrire sur la copie les contenus des trois cases vides des lignes 5, 6 et 7, en
précisant les numéros de lignes qui correspondent à vos réponses.

Figure 5.1
4) On a pressé la touche espace puis saisi le nombre 8 . Que renvoie le
programme ?
5) Quel nombre  doit-on choisir pour que l’aire du rectangle soit égale à l’aire
du carré ? Toute trace de recherche, même non aboutie, sera prise en compte.

173
173
Chapitre 5 ■ 

Corrigé
1) L’aire du carré est ².
2) L’aire du rectangle est égale au produit de ses dimensions  + 7 et  − 3
donc :
( + 7)( − 3) =  − 3 + 7 − 7 × 3 =   + 4 − 21
3) Les contenus des trois cases vides des lignes 5, 6 et 7 sont respectivement 4,
−21 et .

Figure 5.2

4) Après avoir pressé la touche espace puis saisi le nombre 8, le programme


renvoie (8 + 7) × (8 − 3) = 15 × 5 = 75.
5) Pour que l’aire du rectangle soit égale à l’aire du carré la valeur de  saisie doit

vérifier  =   + 4 − 21 donc 4 − 21 = 0. Il faut donc saisir  =  = 5,25.

174
174
5.2 

Exercice 71 (d’après sujet Amérique du Sud 16 novembre 2022)


1) Dessiner sur la copie le motif correspondant
au script Scratch ci-contre (figure 5.3), le stylo
étant en position d’écriture. On prendra 1 cm
pour 10 pas.

2) Compléter les informations manquantes du


script ci-dessous (figure 5.4) qui permet
d’obtenir la figure en bas à droite (figure 5.5).

Figure 5.3

Figure 5.5
Figure 5.4

175
175
Chapitre 5 ■ 

Corrigé
1)

Figure 5.6

2)

Figure 5.7

176
176
5.3 

Exercice 72 (d’après sujet Asie 21 juin 2021)


On travaille avec le logiciel Scratch dont voici plusieurs copies d’écran :

 Script principal :

Figure 5.8

177
177
Chapitre 5 ■ 

 Bloc du motif A :

Figure 5.9

Le bloc permet de tracer un triangle.

1) Tracer à main levée l’allure du motif A défini par le bloc « Motif A ».


2) Après avoir cliqué sur le drapeau vert, l’écran affiche :

Figure 5.10
Quel motif est alors affiché à l’écran, le « Motif A » ou le « Motif B » ?
3) On relance le programme. Si la variable 1  prend la valeur 3 ,
calculer la probabilité pour que l’écran affiche le « Motif A ».

178
178
5.3 

Corrigé
1)

Figure 5.11

2) La valeur de la variable 1  est 7, celle de la variable 2  est


3. Puisqu’on n’a pas 7 < 3, alors c’est le motif B qui sera affiché.
3) Supposons que le 1er nombre prenne la valeur 3. Pour obtenir l’affichage du
motif A, la valeur du 2e nombre doit être supérieure à 3 donc égale à 4, 5, 6, 7,
8 , 9 ou 10 . Il y a donc 7 valeurs sur les 10 possibles, qui sont toutes

équiprobables, soit une probabilité de .


179
179
Algorithmique
et programmation Cycle 4
5e • 4e • 3e
avec Scratch

Ce livre
s’adresse en premier lieu
aux élèves de 5e , 4e et 3 e du collège et
traite intégralement le thème « Algorithmique et

 ou�l d’accompagnement
à chacun, quel que soit son niveau, de maîtriser toutes les

Après une présenta�on succincte du logiciel Scratch, on découvrira les
ou�ls algorithmiques de base

ac�vité de découverte, suivie
d’un résumé de ce qu’il faut retenirexercices
travaux
pra�ques

applica�ons ludiques
trouvera aussi des exercices issues des annales du brevet
 en�èrement
corrigés de manière détaillée et expliquée









Ce livre pourra également intéresser les enseignants,
les parents et toute autre personne souhaitant



-:HSMDOA=U]VWU]:

Vous aimerez peut-être aussi