Introduction à l'Algorithmique
Qu'est-ce qu'un algorithme ?
Un algorithme est une séquence finie et non ambiguë d'instructions qui, une fois exécutées, permettent de résoudre un problème donné ou d'accomplir une tâche spécifique. Imaginez une recette de cuisine : c'est un algorithme pour préparer un plat !
Caractéristiques principales d'un algorithme :
- Fini : Il doit toujours se terminer après un nombre fini d'étapes. Pas de boucles infinies !
- Déterministe : Pour les mêmes entrées, il doit toujours produire les mêmes sorties. Le résultat est prévisible.
- Clair et non ambigu : Chaque instruction doit être comprise sans interprétation possible.
- Efficace : Il doit résoudre le problème en un temps raisonnable et avec des ressources limitées (même si ce n'est pas toujours le plus rapide ou le plus court).
Exemples d'algorithmes du quotidien :
- Suivre un itinéraire GPS.
- Préparer une tasse de café.
- Trier des cartes par ordre croissant.
- Rechercher un mot dans un dictionnaire.
Représentation d'un algorithme
Pour exprimer un algorithme, on peut utiliser différentes méthodes :
- Langage naturel : C'est la manière la plus simple, mais elle peut manquer de précision. Utile pour une première ébauche.
- Exemple : "Pour trouver le plus grand nombre dans une liste, je parcours chaque nombre, et si je trouve un nombre plus grand que le plus grand que j'ai vu jusqu'à présent, je le retiens."
- Pseudo-code : C'est un langage intermédiaire entre le langage naturel et un langage de programmation. Il utilise des structures de contrôle (SI... ALORS, TANT QUE, POUR) mais sans se soucier de la syntaxe exacte d'un langage précis. Il est très utilisé pour concevoir des algorithmes.
- Exemple :
FONCTION trouver_max(liste_nombres) : max_actuel = premier élément de liste_nombres POUR CHAQUE nombre DANS liste_nombres : SI nombre > max_actuel ALORS : max_actuel = nombre RETOURNER max_actuel
- Exemple :
- Organigrammes : Ce sont des représentations graphiques de l'algorithme, utilisant des symboles standards pour les opérations, les décisions, etc. Ils sont moins utilisés en Terminale mais la notion est utile.
- Symboles de base :
- Ovale : Début/Fin
- Parallélogramme : Entrée/Sortie (lecture/affichage)
- Rectangle : Traitement/Opération
- Losange : Décision (condition SI... ALORS)
- Flèches : Sens d'exécution
- Symboles de base :
Variables et types de données
En programmation, une variable est un espace de stockage nommé en mémoire qui peut contenir une valeur. Cette valeur peut changer au cours de l'exécution du programme.
Définition d'une variable : On peut voir une variable comme une boîte étiquetée. L'étiquette est le nom de la variable, et la boîte contient une valeur.
Types de données courants : Le type d'une variable détermine la nature des valeurs qu'elle peut stocker et les opérations que l'on peut effectuer dessus.
- Entier (
int) : Nombres entiers (positifs, négatifs, zéro).- Exemples :
5,-10,0
- Exemples :
- Flottant (
float) : Nombres décimaux (à virgule).- Exemples :
3.14,-0.5,1.0
- Exemples :
- Chaîne de caractères (
str) : Séquences de caractères (texte). Elles sont toujours entourées de guillemets simples ou doubles.- Exemples :
"Bonjour",'Python',"123"(c'est du texte, pas un nombre !)
- Exemples :
- Booléen (
bool) : Représente une valeur de vérité, soitTrue(vrai), soitFalse(faux).- Exemples :
True,False
- Exemples :
Affectation de valeurs :
L'opérateur d'affectation est =. Il permet de donner une valeur à une variable.
age = 18 # age est un entier
taille = 1.75 # taille est un flottant
nom = "Alice" # nom est une chaîne de caractères
est_majeur = True # est_majeur est un booléen
Opérateurs et expressions
Les opérateurs sont des symboles qui réalisent des opérations sur des opérandes (valeurs ou variables). Une expression est une combinaison d'opérateurs et d'opérandes qui produit une valeur.
Opérateurs arithmétiques : Pour les calculs numériques.
| Opérateur | Description | Exemple Python | Résultat |
|---|---|---|---|
+ | Addition | 5 + 3 | 8 |
- | Soustraction | 10 - 4 | 6 |
* | Multiplication | 2 * 6 | 12 |
/ | Division | 15 / 3 | 5.0 |
// | Division entière | 15 // 4 | 3 |
% | Modulo (reste) | 15 % 4 | 3 |
** | Puissance | 2 ** 3 | 8 |
Opérateurs de comparaison : Pour comparer des valeurs. Ils retournent un booléen (True ou False).
| Opérateur | Description | Exemple Python | Résultat |
|---|---|---|---|
<mark> | Égal à | 5 </mark> 5 | True |
!= | Différent de | 5 != 3 | True |
< | Inférieur à | 5 < 3 | False |
> | Supérieur à | 5 > 3 | True |
<= | Inférieur ou égal à | 5 <= 5 | True |
>= | Supérieur ou égal à | 5 >= 3 | True |
Opérateurs logiques : Pour combiner des expressions booléennes.
and(ET) :Truesi toutes les conditions sont vraies.- Exemple :
(age > 18) and (permis == True)
- Exemple :
or(OU) :Truesi au moins une des conditions est vraie.- Exemple :
(jour <mark> "Samedi") or (jour </mark> "Dimanche")
- Exemple :
not(NON) : Inverse la valeur de vérité.- Exemple :
not (est_majeur)(siest_majeurestTrue,not est_majeurestFalse)
- Exemple :


