Algorithmique et programmation — cours de 3e
Algorithme et programme, Les briques de Scratch, Fonctions et procédures (blocs personnalisés), Initiation à Python Lecture ≈ 4 min.
1. Algorithme et programme
Définition
Un algorithme est une suite finie d'instructions précises et ordonnées permettant de résoudre un problème ou d'obtenir un résultat.
Un programme est la traduction d'un algorithme dans un langage compréhensible par un ordinateur (Scratch, Python…).
Une instruction est une action élémentaire (avancer, additionner, afficher…).
Un algorithme est une suite finie d'instructions précises et ordonnées permettant de résoudre un problème ou d'obtenir un résultat.
Un programme est la traduction d'un algorithme dans un langage compréhensible par un ordinateur (Scratch, Python…).
Une instruction est une action élémentaire (avancer, additionner, afficher…).
Exemple – Algorithme en langage naturel
Demander un nombre x Multiplier x par 3 Ajouter 5 au résultat Afficher le résultatCet algorithme calcule l'image de x par la fonction f(x) = 3x + 5.
2. Les briques de Scratch
Définition – Événements
Un événement déclenche l'exécution d'un script : « quand le drapeau vert est cliqué », « quand la touche espace est pressée », « quand ce lutin est cliqué », « quand je reçois [message] »…
Un événement déclenche l'exécution d'un script : « quand le drapeau vert est cliqué », « quand la touche espace est pressée », « quand ce lutin est cliqué », « quand je reçois [message] »…
Définition – Variable
Une variable est une « boîte » portant un nom dans laquelle on stocke une valeur (nombre, texte) qui peut changer pendant l'exécution.
Blocs Scratch :
Une variable est une « boîte » portant un nom dans laquelle on stocke une valeur (nombre, texte) qui peut changer pendant l'exécution.
Blocs Scratch :
mettre [score] à (0), ajouter (1) à [score], (score) (lecture de la valeur).Définition – Boucle
Une boucle permet de répéter plusieurs fois un groupe d'instructions.
–
–
–
Une boucle permet de répéter plusieurs fois un groupe d'instructions.
–
répéter (10) fois : nombre de répétitions connu à l'avance.–
répéter indéfiniment : boucle sans fin (jeux, animations).–
répéter jusqu'à <condition> : on répète tant que la condition est fausse.Définition – Condition (instruction conditionnelle)
Une instruction conditionnelle permet d'exécuter des instructions seulement si une condition est vraie.
–
–
Les conditions sont des booléens (vrai ou faux) :
Une instruction conditionnelle permet d'exécuter des instructions seulement si une condition est vraie.
–
si <condition> alors … –
si <condition> alors … sinon …Les conditions sont des booléens (vrai ou faux) :
<(x) > (5)>, <(x) = (0)>, <touche espace pressée ?>, combinés avec et, ou, non.Exemple – Programme de calcul en Scratch
quand le drapeau vert est cliqué demander [Choisis un nombre] et attendre mettre [x] à (réponse) mettre [résultat] à (((x) * (3)) + (5)) dire (regroupe [Le résultat est ] (résultat))Si l'utilisateur entre 4, le lutin dit « Le résultat est 17 ».
Exemple – Tracer un carré (boucle)
quand le drapeau vert est cliqué
effacer tout
stylo en position d'écriture
répéter (4) fois
avancer de (100)
tourner ↻ de (90) degrés
fin
Pour un polygone régulier à n côtés, on répète n fois « avancer, tourner de 360n degrés ». Pour un triangle équilatéral : répéter 3 fois, tourner de 120°.Exemple résolu – Analyser un script (type brevet)
Ce script cherche le plus petit entier n tel que 1 + 2 + … + n dépasse 20.
quand le drapeau vert est cliqué
mettre [n] à (0)
mettre [somme] à (0)
répéter jusqu'à <(somme) > (20)>
ajouter (1) à [n]
ajouter (n) à [somme]
fin
dire (n)
Déroulement : n = 1, somme = 1 ; n = 2, somme = 3 ; n = 3, somme = 6 ; n = 4, somme = 10 ; n = 5, somme = 15 ; n = 6, somme = 21 > 20, on sort. Le lutin dit 6.Ce script cherche le plus petit entier n tel que 1 + 2 + … + n dépasse 20.
Exemple résolu – Jeu de dé et probabilités
quand le drapeau vert est cliqué
mettre [compteur] à (0)
répéter (1000) fois
mettre [dé] à (nombre aléatoire entre (1) et (6))
si <(dé) = (6)> alors
ajouter (1) à [compteur]
fin
fin
dire ((compteur) / (1000))
Ce programme simule 1 000 lancers de dé et affiche la fréquence d'apparition du 6. On obtient une valeur proche de 16 ≈ 0,167 (lien avec le chapitre 8).3. Fonctions et procédures (blocs personnalisés)
Définition
Une procédure (ou bloc personnalisé dans Scratch, fonction en Python) est un groupe d'instructions auquel on donne un nom, pour pouvoir le réutiliser plusieurs fois sans le réécrire. Une procédure peut avoir des paramètres (valeurs d'entrée) : par exemple la longueur du côté d'un carré.
Une fonction peut de plus renvoyer un résultat.
Une procédure (ou bloc personnalisé dans Scratch, fonction en Python) est un groupe d'instructions auquel on donne un nom, pour pouvoir le réutiliser plusieurs fois sans le réécrire. Une procédure peut avoir des paramètres (valeurs d'entrée) : par exemple la longueur du côté d'un carré.
Une fonction peut de plus renvoyer un résultat.
Exemple – Bloc personnalisé « carré » avec paramètre
définir carré (côté)
répéter (4) fois
avancer de (côté)
tourner ↻ de (90) degrés
fin
quand le drapeau vert est cliqué
stylo en position d'écriture
carré (50)
carré (100)
carré (150)
Ce script trace trois carrés emboîtés de côtés 50, 100 et 150.Exemple – Rosace avec deux boucles
définir carré (côté)
répéter (4) fois
avancer de (côté)
tourner ↻ de (90) degrés
fin
quand le drapeau vert est cliqué
répéter (12) fois
carré (80)
tourner ↻ de (30) degrés
fin
12 carrés tournés de 30° chacun (12 × 30 = 360°) forment une rosace : c'est l'utilisation de rotations successives (chapitre 11).4. Initiation à Python
Définition
Python est un langage textuel. Les instructions s'écrivent ligne par ligne ; les blocs (boucles, conditions, fonctions) sont marqués par les deux-points et l'indentation (décalage de 4 espaces).
Python est un langage textuel. Les instructions s'écrivent ligne par ligne ; les blocs (boucles, conditions, fonctions) sont marqués par les deux-points et l'indentation (décalage de 4 espaces).
Propriété – Correspondance Scratch / Python
| Scratch | Python |
|---|---|
| mettre [x] à (5) | x = 5 |
| ajouter (1) à [x] | x = x + 1 |
| demander … et attendre / réponse | x = float(input("Nombre ? ")) |
| dire (x) | print(x) |
| répéter (10) fois | for i in range(10): |
| répéter jusqu'à <condition> | while not condition: |
| si <…> alors … sinon … | if ...: ... else: ... |
| définir bloc (paramètre) | def bloc(parametre): |
| nombre aléatoire entre 1 et 6 | random.randint(1, 6) |
Exemple – Programme de calcul en Python
def f(x):
return 3 * x + 5
n = float(input("Choisis un nombre : "))
print("Le résultat est", f(n))
Exemple – Tester si un nombre est premier
def est_premier(n):
if n < 2:
return False
for d in range(2, n):
if n % d == 0: # % donne le reste de la division
return False
return True
for k in range(1, 30):
if est_premier(k):
print(k)
Ce programme affiche les nombres premiers inférieurs à 30 (lien avec le chapitre 1).Exemple – Simulation de 1 000 lancers de dé
import random
compteur = 0
for i in range(1000):
de = random.randint(1, 6)
if de == 6:
compteur = compteur + 1
print("Fréquence du 6 :", compteur / 1000)