Aller au contenu

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…).
Exemple – Algorithme en langage naturel
Demander un nombre x
Multiplier x par 3
Ajouter 5 au résultat
Afficher le résultat
Cet 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] »…
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 : 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.
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.
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)
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.
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).
Propriété – Correspondance Scratch / Python
ScratchPython
mettre [x] à (5)x = 5
ajouter (1) à [x]x = x + 1
demander … et attendre / réponsex = float(input("Nombre ? "))
dire (x)print(x)
répéter (10) foisfor 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 6random.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)