Algorithme 2 - Fiche 1 : À la découverte de " Scratch "

Transcription

Algorithme 2 - Fiche 1 : À la découverte de " Scratch "
Stage ALGORITHMIQUE - Documents élèves - page 1
Algorithme 2de - Fiche 1 : À la découverte de " Scratch "
5°) On a décidé d'améliorer le script précédent en
utilisant le moins de variables possibles.
Ouvrir le logiciel Scratch sur le Bureau.
1°) a) Construire le script
et cliquer
b) Faire calculer 2 + 5×3 ; (2 + 5)×3 ; ( 2 + 5×3 )² ;
.
5 5
;
.
8 3
2°) a) Construire le script ci-dessous et déterminer ce qu'il permet de calculer.
a) Que faut-il placer dans les deux
ème
espaces vides pour que le 2
reste
restitué soit 16 ?
?
?
b) Compléter le script pour faire apparaître
successivement les quatre restes 20 ,
16 , 4 et 0 .
Remplir le tableau de valeurs donné en
annexe.
b) Calculer et restituer le reste de la division de 128 par 36 , puis le quotient entier.
c) Compléter le script ci-contre en utilisant la
commande " répéter " pour faire apparaître
successivement les quatre restes 20 , 16 ,
4 et 0 , puis le PGCD de 128 et 36 .
c) Calculer et restituer le reste de la division de 135 par 24 , puis le quotient entier.
Idem avec 12 524 et 584 .
Remplir le tableau de valeurs donné en
annexe.
?
3°) a) Calculer et restituer le reste de la division de 128 par 36 .
Puis calculer et restituer le reste de la division de 36 par le reste trouvé
précédemment.
b) Avec un bon vieux stylo et une feuille, écrire en ligne ces deux premières divisions
euclidiennes.
c) En continuant à diviser chaque quotient par son reste, que se passera-t-il ?
d) Continuer les calculs et restitutions de restes jusqu'à obtenir 0 .
e) Restituer alors le PGCD de 128 et 36 .
4°) a) Calculer et restituer le PGCD de 406 et 119 .
?
?
d) Alléger ce script pour ne restituer que le PGCD de 128 et 36 .
e) Ce nouveau script convient-il pour calculer et restituer le PGCD de 57 de 33 , et
celui de 219 de 183 ?
Pour calculer n'importe quel PGCD ?
6°) a) Dans le script précédent,
remplacer la commande
par la commande
?
b) Calculer et restituer le PGCD de 57 et 33 .
c) Calculer et restituer le PGCD de 219 et 183 .
d) Que faire pour que le script restitue chacun des deux PGCD demandés au b) et
au c) ?
Remplir le tableau de valeurs donné en annexe.
b) Ce nouveau script convient-il pour calculer et restituer le PGCD de 57 de 33 , et
celui de 219 de 183 ?
Pour calculer n'importe quel PGCD ?
?
Stage ALGORITHMIQUE - Documents élèves - page 2
Annexe à la Fiche 1 : Tableaux de valeurs à remplir
Tableau de valeurs des variables pour la question 5°) b)
Valeur
de a
128
128
Valeur
de b
Tableau de valeurs des variables pour la question 5°) c)
Valeur
de a
Valeur
de r
Valeur
de b
Valeur
de r
Valeur
de a
Valeur
de b
Valeur
de r
Valeur
de a
Valeur
de b
Valeur
de r
36
Répétition n°1
Répétition n°2
Répétition n°3
Tableau de valeurs des variables pour la question 6°) a)
a
r=...
b
r
0 donc
a
b
r
r=.............
a
b
r
r=.............
a
b
r
r=.............
Stage ALGORITHMIQUE - Documents élèves - page 3
Algorithme 2de - Fiche 2 : Exercices avec " Scratch "
2°) Écrire un script permettant de simuler 20 lancers successifs.
Exercice 1
Définir une variable
Règle du jeu :
contenant le nombre total de lancers gagnants.
Restituer ce nombre pendant 2 secondes, puis la fréquence des lancers gagnants.
On lance deux dés.
On veut faire une somme de 12 .
3°) Augmenter la simulation à 500 lancers successifs.
On continuera à restituer le nombre total de lancers gagnants pendant 2 secondes,
puis la fréquence des lancers gagnants.
Mais on ne fera plus afficher les « Gagné » et les « Perdu ».
1°) a) Écrire un script permettant de simuler ce lancer en faisant afficher la somme.
Utiliser
.
.
b) Peut-on prévoir le nombre de lancers qu'il faut pour obtenir une somme de 12 ?
Exercice 3
2°) On décide de lancer jusqu'à obtenir la somme 12 .
Définir une variable
Placement à intérêts composés
destinée à compter le nombre de
lancers nécessaires.
Un client d'une banque place une somme de 2 000 € à un taux d'intérêt de 3,5 % par an.
1°) Compléter le script ci-contre pour connaître la
somme capitalisée au bout de 12 ans.
?
Compléter le script ci-contre :
?
3°) Adapter le script précédent pour compter le nombre de lancers de 3 dés nécessaires
pour obtenir une somme de 18 .
2°) Transformer le script pour connaître au bout de combien d'années la somme capitalisée
dépassera 3 500 €.
4°) Adapter le script précédent pour compter le nombre de lancers de 4 dés nécessaires
pour obtenir une somme de 24 .
Exercice 4
Exercice 2
Jeu des multiples
Règle du jeu :
1°) Écrire un script permettant de restituer pendant 1 seconde chaque entier de 1 à 30 .
On lance deux dés.
Si la somme des faces est paire, on gagne.
Sinon, on perd.
2°) Transformer le script pour que chaque multiple de 3 soit remplacé par un son (à choisir).
1°) Écrire un script permettant de simuler ce jeu en faisant afficher
ou
.
3°) Transformer le script pour que chaque multiple de 5 soit remplacé par un 2
en conservant le son pour les multiples de 3 .
Attention à l'entier 15 ...
Utiliser
et
.
ème
son, tout
Stage ALGORITHMIQUE - Documents élèves - page 4
Algorithme 2de - Fiche 3 : À la découverte de " Python "
2°) a) Taper, observer et comprendre :
Ouvrir le logiciel Python sur le Bureau.
>>> print("Bonjour !") 
>>> print(a) 
1°) a) Faire calculer par Python 2 + 5×3 ; (2 + 5)×3 .
b) Taper les commandes suivantes, observer et
comprendre ce qui se passe :
>>> print("La valeur de a est ",a) 
>>> nom=input("Comment t'appelles-tu ? ") 
puis répondre avec un nom ou un prénom 
>>> 127//10 
>>> nom 
>>> 127%10 
>>> print("Tu t'appelles ",nom," !") 
Que sont ces deux valeurs pour 127 et 10 ?
>>> 127/10 
« Jusqu'à ce que tu aies 18 ans, tu seras mineur. »
(ou [Ctrl+O] ) ,
Phrase 2 :
>>> int(5/3) 
>>> 5**2 
>>> 2**5 
>>> sqrt(121) 
>>> from math import* 
>>> sqrt(121) 
>>> pi 
>>> cos(pi/3) 
d) Taper, observer et comprendre :
double-cliquer sur le fichier " BONJOUR " .
Une nouvelle fenêtre s'ouvre, contenant un texte (appelé
script ).
Taper sur la touche F5 du clavier, et répondre poliment
à la question posée.
3°) L'objectif est de préparer un petit questionnaire du même
genre à l'attention d'un autre élève de la classe, que nous
appellerons « l'utilisateur » .
a) Ouvrir une nouvelle fenêtre
(ou [Ctrl+N] ) .
File\New Window
>>> a=5 
Tu remarques l'absence des >>> .
Le texte que tu y écriras est inactif :
>>> a+2 
essaie de taper 2+3  .
>>> b=a+2 
>>> b+3 
>>> a=a*2 
>>> a 
>>> m,n=2,1.5 
>>> m+n 
c) Construis un script :
- demandant à un utilisateur deux nombres
entiers de son choix,
- répondant avec la somme et le produit de
ses nombres.
4°) Phrase 1 :
b) Dans le menu File\Open...
>>> 5/3 
c) Taper, observer et comprendre :
b) Construis un script :
- demandant à un utilisateur un nombre entier
de son choix,
- répondant avec le double et le carré de son
nombre.
Efface et tape une série de deux ou trois questions que
Python posera à l'utilisateur et construis des répliques
fonction des réponses.
Inspire-toi du script vu dans le fichier " BONJOUR " .
Sauvegarde ( File\Save ou [Ctrl+S] ) sous le nom
essai01.py , puis tape sur la touche F5 pour le
tester.
Présente-le à un utilisateur de ton choix.
« Tant que tu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ,
tu seras mineur. »
Compléter la phrase 2 pour qu'elle signifie la même
chose que la phrase 1 .
5°) On a retrouvé le script permettant de calculer le
PGCD de 128 et 36 obtenu avec Scratch (voir
document en annexe).
Le traduire en langage courant, puis, en langage
Python.
Le texte en langage courant est appelé algorithme.
Remplir le tableau de valeurs donné en annexe.
6°) Construire un algorithme et un script pour Python :
- demandant à un utilisateur deux nombres
entiers de son choix,
- répondant avec le PGCD de ses nombres.
Stage ALGORITHMIQUE - Documents élèves - page 5
Annexe à la Fiche 3 : Pour la question 5°)
Langage "Scratch"
Langage courant
Tant que
condition,
faire
action
action
jusqu'à r = 0 »
revient à « Tant
que r
condition,
action
action
Fin du Tant que
Attention ! « Répéter
Tant que
Langage "Python"
faire
while condition :
action
action
0 » : les conditions sont contraires...
r
0
r==0
r
0
r!=0
Langage courant
Langage Python
Stage ALGORITHMIQUE - Documents élèves - page 6
Algorithme 2de - Fiche 4 :
Exercices avec " Python "
Exercice 1
Écrire un algorithme qui :
- demande à l’utilisateur une vitesse en km/h ,
- et lui convertit cette vitesse en m/s .
Exercice 2
Un distributeur d'argent dispose de billets de 100 et de 50, de pièces de 10 et de 1.
Écrire l'algorithme qui le nombre maximum de chacun des objets correspondant à une
somme d'argent demandée par l'utilisateur.
Exercice 3
a) Écrire un algorithme qui :
- demande à l’utilisateur une fonction f affine non constante ,
- et lui donne la solution de l'équation f(x) = 0 .
b) Écrire un algorithme qui :
- demande à l’utilisateur une fonction f affine non constante et un nombre k ,
- et lui donne la solution de l'équation f(x) = k .
c) Écrire un algorithme qui :
- demande à l’utilisateur les valeurs de a , b , c et d , avec a
- et lui donne la solution de l'équation ax + b = cx + d .
b,
Exercice 4
a) Écrire un algorithme qui :
- demande à l’utilisateur le numérateur et le dénominateur d'une fraction ,
- et lui donne la forme irréductible de cette fraction.
b) Écrire un algorithme qui :
- demande à l’utilisateur les valeurs de a , b , c et d ,
- et lui donne la forme irréductible de
a c
+ .
b d
Stage ALGORITHMIQUE - Documents élèves - page 7
Algorithme 2de - Fiche 5 : Exercices sur l'instruction SI ... SINON ...
Exercice 1
Exercice 4
a) Écrire un algorithme qui :
- demande à l’utilisateur un nombre non nul,
- et l’informe si ce nombre est positif ou négatif.
On décide d'un code à quatre chiffres.
b) Écrire un algorithme qui :
- demande à l’utilisateur un nombre,
- et l’informe si ce nombre est nul, positif ou
négatif.
Exercice 2
En athlétisme, les coureurs sont répartis suivant les
classes d'âge suivantes :
Eveil : avant 10 ans
Poussin: de 10 à 11 ans
Benjamin: de 12 à 13 ans
Minime: de 14 à 15 ans
Cadet: de 16 à 17 ans
Junior: de 18 à 19 ans
Espoir: de 20 à 22 ans
Senior: de 23 à 39 ans
Vétéran : 40 et plus
a) Écrire un algorithme qui :
- demande à l’utilisateur son âge,
- et l’informe de sa catégorie.
b) Écrire un algorithme qui :
- demande à l’utilisateur son âge,
- et l’informe s'il est ou non Benjamin.
Exercice 3
a) Écrire un algorithme qui :
- demande à l’utilisateur deux nombres différents,
- et lui donne le plus grand des deux.
b) Même exercice avec trois nombres distincts.
c) Même exercice avec quatre nombres distincts.
Écrire un algorithme qui :
- demande à l’utilisateur un nombre à quatre chiffres,
- et lui donne combien de chiffres sont corrects.
Exercice 5
Écrire un algorithme qui :
- demande à l’utilisateur l'heure qu'il est,
- et l’informe de l'heure qu'il sera 5 minutes plus
tard.
Exercice 6
Écrire un algorithme qui :
- demande à l’utilisateur les valeurs de a , b , c
et d ,
- et lui donne la solution de l'équation
ax + b = cx + d , ou l'informe qu'il n'y a pas de
solution, ou l'informe que tous les nombres sont
solutions.
Exercice 7
a) Écrire un algorithme qui :
- demande à l’utilisateur deux nombres,
- et l'informe s'il y a au moins un positif.
b) Écrire un algorithme qui :
- demande à l’utilisateur deux nombres,
- et l'informe s'il y a deux, un ou pas de positif.
Exercice 8
Quatre candidats, A , B, C et D participent à des
élections obéissant à la règle suivante :
•
lorsque l'un des candidats obtient plus de 50%
des suffrages, il est élu dès le
premier tour.
•
en cas de deuxième tour, peuvent participer
uniquement les candidats ayant obtenu au moins
12,5% des voix au premier tour.
Écrire un algorithme qui :
- demande à l’utilisateur le nombre de voix obtenues
par chaque candidat,
er
- et l’informe qui est élu au 1 tour, ou quels
candidats participent au second tour.
Exercice 9
Une compagnie d'assurance automobile propose à ses
clients quatre familles de tarifs identifiables par une
couleur, du moins au plus onéreux : tarifs bleu, vert,
orange et rouge.
Le tarif dépend de la situation du conducteur :
• un conducteur de moins de 25 ans et titulaire
du permis depuis moins de deux ans, se voit
attribuer le tarif rouge, si toutefois il n'a jamais
été responsable d'accident. Sinon, la
compagnie refuse de l'assurer.
• un conducteur de moins de 25 ans et titulaire
du permis depuis plus de deux ans, ou de plus
de 25 ans mais titulaire du permis depuis moins
de deux ans a le droit au tarif orange s'il n'a
jamais provoqué d'accident, au tarif rouge pour
un accident, sinon il est refusé.
• un conducteur de plus de 25 ans titulaire du
permis depuis plus de deux ans bénéficie du
tarif vert s'il n'est à l'origine d'aucun accident et
du tarif orange pour un accident, du tarif rouge
pour deux accidents, et refusé au-delà.
Écrire un algorithme qui :
- demande à l’utilisateur tous les renseignements
nécessaires,
- et l’informe du tarif de son assurance.
Exercice 10
Un utilisateur pense à un nombre entier dans [ 1 ; 100 ] .
Écrire un algorithme qui permet à l'ordinateur de trouver
ce nombre si, à chaque proposition qu'il fait, l'utilisateur
tape P pour un nombre trop grand, M pour un nombre
trop petit et G pour la bonne réponse.
Stage ALGORITHMIQUE - Documents élèves - page 8
Algorithme 2de - Fiche 6 :
Exercices sur l'instruction FOR ...
Exercice 1
Écrire un algorithme qui écrit tous les multiples de 5 jusqu'à 60 .
Exercice 2
On demande à l’utilisateur un entier naturel non nul.
a) Écrire un algorithme qui donne la liste des entiers de 1 à ce nombre.
b) Écrire un algorithme qui donne la liste des carrés de 1 au carré de
ce nombre.
Exercice 3
On connaît les premières conversions ci-dessous :
1 € = 11,30 dhs
2 € = 22,60 dhs
3 € = 33,90 dhs
Écrire un algorithme qui donne la liste des conversions de 1 € à 1 000 € .
Exercice 4
Écrire un algorithme qui donne la liste des entiers de 1 à 100 telle que chaque multiple
de 5 soit suivi de la lettre C et que chaque multiple de 8 soit suivi de la lettre H .
Exercice 5
Il était une fois un empereur hindou, Chiram, qui voulut récompenser l'un
de ses sujets, Seta, pour son invention merveilleuse : le jeu des échecs.
« Comment veux-tu être récompensé ? demanda Chiram.
- Donne-moi 2 grains de blé pour la première case de mon échiquier,
répondit Seta. Puis 4 grains pour la deuxième case, 8 grains pour la
troisième, et encore le double pour la quatrième et ainsi de suite jusqu’à la
soixante-quatrième case.
- Accordé ! répondit Chiram, qui trouvait ridicules ces quelques grains ...
Écrire un algorithme qui affiche :
- le nombre de grains de riz sur chacune des 64 cases de l'échiquier,
- le nombre total de grains,
- la masse de grains en tonnes (prendre 1 g pour un grain de riz).
(Production mondiale actuelle
600 millions de tonnes...)
Stage ALGORITHMIQUE - Documents élèves - page 9
Algorithme 2de - Fiche 7 : Exercices sur les tableaux
Exercice 1
f) Taper, observer, comprendre :
>>> tpair=[t[0],t[2],t[4],t[6],
1°) a) Taper les commandes suivantes, observer et
comprendre ce qui se passe :
>>> semaine=['lu','ma','me','je',
've','sa','di'] 
>>> semaine 
>>> semaine[2] 
>>> semaine[0] 
>>> semaine[1]='mardi' 
>>> semaine 
b) Taper, observer, comprendre :
>>> t=[0,3,6,9,12,15,18,21,24,27] 
>>> t 
t[8],t[10]] 
>>> tpair 
Créer une liste timpair des multiples impairs
de 3 .
Créer une liste tsix des multiples de 6 allant
de 0 à 60 .
Exercice 2
2°) a) Taper, observer, comprendre :
>>> cent=[] 
>>> cent 
Exercice 4
Écrire un algorithme qui :
- demande à l’utilisateur une liste de dix nombres
entiers,
- et lui donne le plus grand de ces nombres.
Exercice 5
Écrire un algorithme qui :
- demande à l’utilisateur une liste de dix nombres
entiers,
- et lui donne la même liste mais classée dans l'ordre
inverse.
Exercice 6
>>> cent 
a) Écrire un algorithme qui :
- demande à l’utilisateur dix nombres entiers,
- et lui donne le nombre de 1 dans sa liste.
>>> t[3]==6 
>>> for i in range (1,8) : 
cent.append(i) 
b) Même exercice mais avec une liste de longueur non
imposée.
>>> t[3]==9 
>>> cent 
>>> t[3] 
>>> t[3]+1 
c) Taper, observer, comprendre :
>>> len(t) 
>>> del(t[9]) 
>>> t 
>>> len(t) 
>>> t.append(27) 
Ajouter 30 à la liste.
d) Taper, observer, comprendre :
>>> for i in range (2,7) : 
print(t[i]) 
Afficher les multiples de 3 allant de 18 à 30 .
e) Taper, observer, comprendre :
>>> for i in range (0,11) : 
if i%4==0 : 
print(t[i]) 
Afficher les multiples de 6 appartenant à cette liste.
>>> cent.append(0) 
b) Créer la liste des entiers de 0 à 100 .
c) Créer une liste tsixbis des multiples de 6
allant de 0 à 60 .
3°) a) Écrire un script créant la liste des carrés des
entiers de 1 à 15 .
b) Écrire un script créant les listes des 10 premiers
multiples des entiers de 2 à 7 :
[0,
[0,
[0,
[0,
[0,
[0,
2,
3,
4,
5,
6,
7,
4, 6, 8, 10, 12, 14, 16, 18, 20]
6, 9, 12, 15, 18, 21, 24, 27, 30]
8, 12, 16, 20, 24, 28, 32, 36, 40]
10, 15, 20, 25, 30, 35, 40, 45, 50]
12, 18, 24, 30, 36, 42, 48, 54, 60]
14, 21, 28, 35, 42, 49, 56, 63, 70]
Exercice 3
Écrire un algorithme qui :
- demande à l’utilisateur successivement dix
nombres entiers,
- et crée une liste tab avec ces dix valeurs.
Exercice 7
Le crible d'Eratosthène consiste à barrer tous les multiples
de 2 auf 2. Puis à recommencer avec le premier entier qui
n'a pas été barré, 3 . Puis à recommencer avec 5 ( 4 a été
barré) et ainsi de suite (voir ci-dessous) :
11
21
2
12
22
3
13
23
4
14
24
5
15
25
6
16
26
7
17
27
8
18
28
9
19
29
10
20
30
31
41
51
61
71
81
91
32
42
52
62
72
82
92
33
43
53
63
73
83
93
34
44
54
64
74
84
94
35
45
55
65
75
85
95
36
46
56
66
76
86
96
37
47
57
67
77
87
97
38
48
58
68
78
88
98
39
49
59
69
79
89
99
40
50
60
70
80
90
100
Les nombres qui restent non barrés après épuisement sont
les nombres premiers.
Écrire un algorithme qui :
- crée une liste des 99 premiers entiers de 2 à 100 ,
- en extrait la liste des nombres premiers inférieurs à 100
.

Documents pareils