Fondamentaux de l'Algorithmique
Qu'est-ce qu'un algorithme ?
Un algorithme est une séquence finie et non ambiguë d'instructions et d'opérations permettant de résoudre un problème ou d'obtenir un résultat donné. Imagine une recette de cuisine : elle contient des étapes précises pour arriver à un plat. Un algorithme, c'est pareil, mais pour un ordinateur.
Key Concepts:
- Définition d'un algorithme : Une suite d'étapes claires pour atteindre un but.
- Séquence d'instructions : Les étapes sont ordonnées et doivent être suivies dans un ordre précis.
- Résolution de problèmes : Le but principal est de trouver une solution à une question posée.
- Exemples concrets :
- Recette de cuisine : Mélanger, cuire, assaisonner...
- Instructions de montage de meubles : Étape 1, Étape 2...
- Calcul de la moyenne de notes : Additionner toutes les notes, diviser par le nombre de notes.
Un bon algorithme doit toujours :
- Être fini : il doit se terminer après un nombre fini d'étapes.
- Être non ambigu : chaque instruction doit être claire et interprétable d'une seule manière.
- Être efficace : il doit résoudre le problème avec le moins de ressources possible (temps, mémoire).
Représentation d'un algorithme
Pour concevoir et communiquer un algorithme, il existe différentes manières de le représenter. Le choix dépend souvent de la complexité de l'algorithme et du public visé.
Key Concepts:
- Langage naturel : Décrire l'algorithme avec des phrases courantes. C'est simple à comprendre pour un humain, mais souvent trop ambigu pour un ordinateur.
- Exemple : "Demander l'âge de la personne. Si l'âge est supérieur ou égal à 18, afficher "Majeur". Sinon, afficher "Mineur"."
- Pseudo-code : Une description de l'algorithme qui ressemble à un langage de programmation mais sans respecter une syntaxe stricte. C'est un bon compromis entre le langage naturel et le code. Il utilise des mots-clés comme
DEBUT,FIN,LIRE,ECRIRE,SI,ALORS,SINON,TANT QUE. C'est la méthode la plus courante en algorithmique.- Exemple :
DEBUT Algorithme MajeurOuMineur LIRE age SI age >= 18 ALORS ECRIRE "Majeur" SINON ECRIRE "Mineur" FIN SI FIN Algorithme
- Exemple :
- Organigrammes (flowcharts) : Des diagrammes graphiques utilisant des symboles standardisés pour représenter les étapes et le flux de contrôle de l'algorithme. Très visuels, ils sont utiles pour les algorithmes plus complexes.
- Symboles courants :
- Ovale : Début/Fin
- Parallélogramme : Entrée/Sortie de données
- Rectangle : Traitement/Opération
- Losange : Décision (condition)
- Flèche : Sens du flux
- Symboles courants :
- Importance de la clarté : Quelle que soit la représentation choisie, l'objectif est de rendre l'algorithme compréhensible par quiconque le lira, et de s'assurer qu'il ne contient aucune ambiguïté.
Variables et types de données
Pour qu'un algorithme puisse manipuler des informations, il a besoin de les stocker temporairement. C'est le rôle des variables.
Key Concepts:
- Définition d'une variable : Une variable est un emplacement nommé en mémoire qui peut stocker une valeur. Cette valeur peut changer (varier) pendant l'exécution de l'algorithme. C'est comme une boîte étiquetée où l'on peut ranger différentes choses.
- Exemple :
age,nom,prixTotal.
- Exemple :
- Types de données : Pour chaque variable, il est important de savoir quel type de données elle va contenir. Cela permet à l'ordinateur de savoir comment interpréter et manipuler cette donnée.
- Entier (Integer) : Nombres entiers (positifs, négatifs ou zéro). Ex: 5, -10, 0, 1000.
- Flottant (Float) : Nombres décimaux, avec une partie fractionnaire. Ex: 3.14, -0.5, 99.99.
- Chaîne de caractères (String) : Séquence de caractères (lettres, chiffres, symboles). Utilisé pour le texte. Ex: "Bonjour", "Python", "123".
- Booléen (Boolean) : Représente une valeur de vérité. Peut être
VRAI(True) ouFAUX(False). Souvent utilisé pour les conditions.
- Déclaration et affectation :
- Déclaration : Créer la variable et lui donner un nom. Dans certains langages, il faut aussi spécifier son type.
- Affectation : Attribuer une valeur à la variable. On utilise souvent le symbole
←ou=en pseudo-code. - Exemple en pseudo-code :
DEBUT DECLARE age : ENTIER // Déclaration de la variable 'age' de type ENTIER age ← 25 // Affectation de la valeur 25 à la variable 'age' DECLARE nom : CHAINE nom ← "Alice" DECLARE estMajeur : BOOLEEN estMajeur ← VRAI FIN
- Portée des variables : C'est l'endroit du programme où une variable est "visible" et peut être utilisée. Nous y reviendrons plus tard avec les fonctions, mais sache que toutes les variables ne sont pas accessibles partout.
Opérateurs et expressions
Les opérateurs sont des symboles qui nous permettent de manipuler des valeurs et des variables pour créer de nouvelles valeurs ou prendre des décisions. Une expression est une combinaison de variables, de valeurs et d'opérateurs qui, une fois évaluée, produit une nouvelle valeur.
Key Concepts:
-
Opérateurs arithmétiques : Pour les calculs mathématiques.
+: Addition (Ex:5 + 3donne8)-: Soustraction (Ex:10 - 4donne6)*: Multiplication (Ex:2 * 6donne12)/: Division (Ex:15 / 3donne5)%: Modulo (reste de la division entière) (Ex:10 % 3donne1)^ou**: Puissance (Ex:2^3ou2**3donne8)
-
Opérateurs de comparaison : Pour comparer des valeurs. Ils renvoient toujours un booléen (
VRAIouFAUX).=ou<mark>: Égal à (Ex:5 </mark> 5donneVRAI,5 == 3donneFAUX)!=ou<>: Différent de (Ex:5 != 3donneVRAI)<: Inférieur à (Ex:5 < 8donneVRAI)>: Supérieur à (Ex:10 > 7donneVRAI)<=: Inférieur ou égal à (Ex:5 <= 5donneVRAI)>=: Supérieur ou égal à (Ex:10 >= 12donneFAUX)
-
Opérateurs logiques : Pour combiner des expressions booléennes.
ET(AND) : VRAI si toutes les conditions sont VRAIES.- Ex:
(age > 18) ET (genre == "homme")
- Ex:
OU(OR) : VRAI si au moins une des conditions est VRAIE.- Ex:
(jour <mark> "samedi") OU (jour </mark> "dimanche")
- Ex:
NON(NOT) : Inverse la valeur de vérité.- Ex:
NON (estConnecte)
- Ex:
-
Priorité des opérateurs : Comme en mathématiques, certains opérateurs sont évalués avant d'autres.
- Parenthèses
() - Puissances
**ou^ - Multiplication
*, Division/, Modulo% - Addition
+, Soustraction- - Opérateurs de comparaison
==,!=,<,>,<=,>= - Opérateurs logiques
NON,ET,OU(dans cet ordre)
Exemple :
5 + 3 * 2donne11(3 * 2 est évalué en premier), alors que(5 + 3) * 2donne16. - Parenthèses


