Un algorithme permet de traduire un problème en une série d’instructions qui peuvent être exécutées par un ordinateur.
Il est utilisé pour résoudre des problèmes spécifiques en appliquant des opérations sur des données d’entrée.
Les algorithmes sont omniprésents dans la programmation, de la simple addition à des tâches complexes comme le tri de données ou la recherche d’informations.
Ils sont essentiels pour automatiser des tâches, optimiser des processus, prendre des décisions basées sur des données, etc.
Algorithme
Analogie avec la cuisine
Un algorithme peut être comparé à une recette de cuisine, où l’on suit des étapes précises pour obtenir un plat final.
Les ingrédients représentent les données d’entrée, tandis que les étapes de la recette correspondent aux instructions algorithmiques.
Tout comme une recette peut être modifiée pour créer des variantes d’un plat, un algorithme peut être ajusté pour résoudre des problèmes similaires.
Algorithme
Eléments d’un algorithme
Des variables stockent des valeurs
Des opérateurs permettant de manipuler ces valeurs
Des conditions permettent de prendre des décisions
Des boucles permettent de répéter des instructions
Algorithme
Exemple d’algorithme
Algorithme pour trouver le maximum dans une liste
ALGORITHME TrouverMax
VARIABLES
liste : Liste de nombres
max : Nombre
DEBUT
max = -infinity
POUR chaque élément x dans liste FAIRE
SI x > max ALORS
max = x
FIN SI
FIN POUR
RETOURNER max
FIN
Programmation
De l’algorithme au programme
Programme informatique
Une traduction d’un algorithme dans un langage de programmation
Possède une syntaxe et une sémantique valides
Est un ensemble d’instructions qu’un ordinateur suit pour réaliser une tâche
Langage de programmation
Un langage de programmation est un système de notations pour écrire des programmes informatiques
Il est décrit en termes de syntaxe et de sémantique (Wikipedia)
Qu’est-ce qu’un programme ?
Exemples de langages de programmation
Python
Langage interprété de haut niveau
Facile à apprendre et à utiliser
Très populaire et largement utilisé pour l’IA
Communauté forte
$\rightarrow$ Langage principal pour ce semestre
Java
Langage compilé de haut niveau
Plus verbeux et rigoureux syntaxiquement
Très présent dans l’industrie
Communauté forte
$\rightarrow$ Étudié au S6
Le choix du langage pertinent dépend de plusieurs facteurs, par exemple, adaptabilité, performance, facilité d’utilisation, communauté, etc.
Qu’est-ce qu’un programme ?
De l’humain à l’ordinateur
Étapes principales
Écriture – Le programmeur écrit le code
Lexing – Le code est transformé en tokens
Parsing – Les tokens sont transformés en arbre syntaxique abstrait
Compilation – L’arbre syntaxique abstrait est transformé en code machine
Exécution – Le code machine est exécuté par l’ordinateur
Qu’est-ce qu’un programme ?
Exemple de programme
Implémentation de l’algorithme précédent en Python
deftrouver_max(liste):
max_val = float('-inf')
for x in liste:
if x > max_val:
max_val = x
return max_val
L’appel de la fonction se fait comme suit :
liste = [3, 5, 2, 8, 1]
max_val = trouver_max(liste)
print("Le maximum est :", max_val)
Récapitulatif de la session
Éléments principaux à retenir
Un algorithme est une solution à un problème spécifique qui prend un ensemble de valeurs en entrée et produit une valeur en résultat
Les algorithmes sont des séries d’opérations sur des variables, des conditions et des boucles
Un programme est une traduction d’un algorithme dans un langage de programmation
Les langages de programmation ont leurs spécificités et déterminent la syntaxe valide des programmes
Un langage de programmation peut être interprété ou compilé