PasseClasse

Cours de Algorithmique et programmation – Licence 1

Un algorithme est une suite finie et non ambiguë d'instructions qui résout un problème. Ce chapitre introduit les variables, les types de données, l'affectation, les entrées-sorties, la structure conditionnelle (si … alors … sinon) et les boucles (pour, tant que). Chaque notion est écrite en pseudo-code puis en Python, avec la trace d'exécution comme outil de vérification. Les exemples…

5 chapitres · exercices corrigés et quiz dans l'application

Continue sur PasseClasse

Crée ton compte gratuit : 2 premiers chapitres de chaque matière avec exercices corrigés, quiz et tuteur IA.

Commencer gratuitement

Programme : les chapitres

1. Variables et structures de contrôle
Un algorithme est une suite finie et non ambiguë d'instructions qui résout un problème. Ce chapitre introduit les variables, les types de données, l'affectation, les…
2. Fonctions, paramètres et modularité
Une fonction regroupe des instructions sous un nom, avec des paramètres en entrée et une valeur de retour en sortie. Ce chapitre explique comment décomposer un problème en…
3. Tableaux et listes
Un tableau (ou liste) range plusieurs valeurs dans une même variable, repérées par leur indice. Ce chapitre présente la création et le parcours des listes en pseudo-code et en…
4. Complexité des algorithmes et tris
La complexité mesure le nombre d'opérations élémentaires d'un algorithme en fonction de la taille n de ses données. Ce chapitre présente les ordres de grandeur O(1), O(log n),…
5. Récursivité
Une fonction est récursive lorsqu'elle s'appelle elle-même sur un problème plus petit. Ce chapitre présente la structure d'une définition récursive (cas de base et cas général),…

Chapitre à lire gratuitement : Variables et structures de contrôle

1. Algorithme, pseudo-code et programme

Définition : un algorithme est une suite finie d'instructions, exécutables mécaniquement, qui transforme des données d'entrée en un résultat. Il doit être non ambigu, terminer en un nombre fini d'étapes et produire un résultat correct.

Le pseudo-code est une écriture indépendante du langage, utilisée pour concevoir et expliquer. Un programme est la traduction d'un algorithme dans un langage comme Python. Nous écrivons chaque exemple dans les deux notations.

Méthode : avant d'écrire, on précise l'entrée, la sortie et l'idée de la solution ; on teste ensuite sur de petits exemples.

2. Variables, types et affectation

Une variable est un emplacement mémoire désigné par un nom, qui contient une valeur. Types usuels : entier (int), réel (float), booléen (bool), chaîne de caractères (str).

Affectation : en pseudo-code on écrit x ← 5 ; en Python x = 5. Elle évalue le membre de droite puis range le résultat dans la variable. L'instruction x ← x + 1 est donc légitime : elle augmente x de 1.

Opérateurs en Python : + − * / (division réelle), // (quotient entier), % (reste), ** (puissance). Comparaisons : ==, !=, <, <=, >, >=. Opérateurs logiques : and, or, not.

Exemple : 17 // 5 vaut 3, 17 % 5 vaut 2, et 17 == 5 * 3 + 2 est vrai.

Attention : = affecte, == compare. Écrire x = 5 dans une condition est une erreur classique.

3. Entrées-sorties

Pseudo-code : Lire n ; Écrire n.

Python : n = int(input('n = ')) lit un entier ; print(n) affiche.

La fonction input renvoie toujours une chaîne : il faut la convertir avec int ou float avant de calculer.

Exemple : calcul de l'aire d'un rectangle.

Lire L, l

aire ← L × l

Écrire aire

4. Structure conditionnelle

Pseudo-code :

Si condition alors

instructions

Sinon

autres instructions

Fin si

Python :

if condition:

instructions

elif autre_condition:

instructions

else:

instructions

L'indentation fait partie de la syntaxe de Python : elle délimite les blocs.

Exemple : mention selon la moyenne m.

if m >= 16: mention = 'très bien'

elif m >= 14: mention = 'bien'

elif m >= 12: mention = 'assez bien'

elif m >= 10: mention = 'passable'

else: mention = 'ajourné'

Les conditions sont évaluées dans l'ordre ; on place donc le test le plus restrictif en premier.

5. Boucles

Boucle pour (nombre d'itérations connu) :

Pseudo-code : Pour i de 1 à n faire … Fin pour

Python : for i in range(1, n + 1): … (range(1, n + 1) parcourt 1, 2, …, n).

Exemple : somme S = 1 + 2 + … + n.

S = 0

for i in range(1, n + 1):

S = S + i

Pour n = 100, on obtient 5 050, ce qui confirme la formule n(n + 1)/2.

Boucle tant que (nombre d'itérations inconnu) :

Pseudo-code : Tant que condition faire … Fin tant que

Python : while condition: …

La condition est testée avant chaque tour. Si elle ne devient jamais fausse, la boucle ne termine pas : on cherche un variant, quantité entière qui diminue strictement à chaque tour.

Exemple : algorithme d'Euclide pour le PGCD.

while b != 0:

a, b = b, a % b

Pour (252, 105) : (105, 42), puis (42, 21), puis (21, 0). Le PGCD est 21.

6. Trace d'exécution et invariant

La trace consiste à dresser un tableau des valeurs des variables après chaque tour. C'est la méthode de base pour comprendre et déboguer.

Un invariant de boucle est une propriété vraie avant et après chaque tour. Dans le calcul de S, après le tour i, S vaut 1 + 2 + … + i. À la sortie, i = n et S est la somme voulue.

Exemple de terminaison : pour la suite de Collatz (n pair devient n // 2, impair devient 3n + 1), on s'arrête quand n = 1. À partir de 6, il faut 8 étapes ; à partir de 27, il en faut 111. La terminaison est observée mais n'est pas démontrée en général.

7. Bonnes pratiques et pièges

Continue sur PasseClasse

Crée ton compte gratuit : 2 premiers chapitres de chaque matière avec exercices corrigés, quiz et tuteur IA.

Commencer gratuitement