La programmation
Le principe de la programmation
La programmation informatique consiste à donner à un ordinateur une suite d'instructions afin qu'il réalise une tâche. Ces instructions forment un programme.
L'ordinateur exécute les instructions qui lui sont fournies, mais il ne détermine pas lui-même la méthode à employer pour résoudre un problème. Le programmeur doit donc définir précisément les opérations à effectuer et leur ordre.
Analyser le problème
La création d'un programme commence par l'analyse du problème. Le résultat attendu est défini, ainsi que les informations nécessaires pour l'obtenir et les traitements à effectuer.
Un programme qui calcule une moyenne doit par exemple recevoir plusieurs notes, additionner leurs valeurs, déterminer leur nombre puis diviser la somme obtenue par ce nombre. Cette réflexion permet de définir la solution avant d'écrire le code.
Construire l'algorithme
La solution est ensuite organisée sous la forme d'un algorithme. Il décrit les différentes étapes nécessaires pour résoudre le problème dans un ordre logique, sans dépendre d'un langage de programmation particulier.
L'algorithme permet de vérifier le fonctionnement de la solution avant de la traduire en code. Il peut être décrit avec des phrases simples, un pseudo-code ou un schéma.
Les éléments communs aux programmes
Les langages de programmation possèdent des syntaxes différentes, mais ils utilisent généralement les mêmes principes fondamentaux pour construire les algorithmes et les programmes.
- Variable : mémorise une information qui peut être utilisée ou modifiée pendant l'exécution du programme. Une variable age peut par exemple contenir la valeur 15.
- Condition : permet de choisir une action selon qu'une situation est vraie ou fausse. Une condition peut par exemple vérifier si age >= 18.
- Boucle : permet de répéter des instructions. Une boucle peut par exemple parcourir successivement tous les éléments d'une liste.
- Fonction : regroupe des instructions réalisant une tâche précise afin de pouvoir les réutiliser. Une fonction peut par exemple calculer l'aire d'un rectangle à partir de sa longueur et de sa largeur.
- Objet : regroupe des données et des actions associées lorsque le langage et la méthode de programmation utilisent la programmation orientée objet.
Écrire le programme
L'algorithme est ensuite traduit dans un langage de programmation. Le choix du langage dépend notamment du type de programme à réaliser.
Le programmeur écrit alors le code source en respectant la syntaxe du langage. Par exemple, l'algorithme qui vérifie si une personne est majeure peut être traduit en instructions permettant de demander son âge, de conserver cette valeur dans une variable, de la comparer à 18 et d'afficher le résultat.
Le code source doit ensuite être transformé en instructions exécutables par le processeur. Selon le langage utilisé, cette transformation est notamment réalisée par un compilateur ou un interpréteur.
Tester le programme
Une fois le programme écrit, il doit être testé. Plusieurs valeurs et situations sont utilisées afin de vérifier que le résultat correspond à ce qui était prévu.
Pour un programme qui détermine si une personne est majeure, il faut par exemple tester un âge inférieur à 18, un âge égal à 18 et un âge supérieur à 18. Des valeurs inattendues peuvent également être testées afin de vérifier que le programme les traite correctement.
Corriger les erreurs
Les tests peuvent révéler des erreurs appelées bugs. Le débogage consiste à rechercher leur origine, à modifier le programme puis à effectuer de nouveaux tests.
Une erreur peut provenir d'une instruction incorrecte, d'un mauvais calcul, d'une condition mal définie ou d'une situation qui n'avait pas été prévue. Les corrections sont donc suivies de nouveaux tests afin de vérifier le fonctionnement du programme.
Améliorer le programme
Lorsque le programme fonctionne correctement, il peut encore être amélioré. Le code peut être réorganisé, les traitements peuvent être optimisés et de nouvelles fonctionnalités peuvent être ajoutées.
Cette démarche se répète pendant toute la durée de vie d'un logiciel. Une nouvelle fonctionnalité peut nécessiter une modification de l'algorithme, du code et des tests.
La programmation repose ainsi sur une démarche progressive : comprendre le problème, construire une solution, écrire le code, tester, corriger et améliorer. Les langages changent, mais cette méthode et les principaux éléments utilisés pour programmer restent largement communs.
- Les langages informatiques
- Les algorithmes
- Les variables
- Les conditions
- Les bases de données
- Les formulaires
- Les boucles
- Les fonctions
- Les objets
- La programmation par blocs
- La création d'un programme simple
Les algorithmes
Avant d'écrire un programme informatique, il faut déterminer précisément la manière de résoudre le problème. Cette réflexion consiste à définir une suite d'instructions à effectuer dans un ordre déterminé. Cette méthode s'appelle un algorithme.
Un algorithme décrit donc comment réaliser une tâche ou résoudre un problème. Il ne dépend pas d'un langage de programmation particulier. Un même algorithme peut ensuite être traduit en Python, en C++, en Java ou dans un autre langage.
L'algorithme se situe ainsi avant le programme. L'algorithme décrit la méthode à suivre, tandis que le programme traduit cette méthode dans un langage que l'ordinateur peut ensuite traiter et exécuter.
Les algorithmes dans la vie courante
Les algorithmes ne sont pas propres à l'informatique. Une recette de cuisine décrit par exemple une succession d'actions à réaliser pour obtenir un plat. Une notice de montage indique également une série d'étapes à suivre dans un ordre précis.
Une méthode permettant de poser une multiplication, les instructions pour utiliser une machine ou les règles permettant de déplacer une pièce dans un jeu peuvent également être considérées comme des algorithmes. Dans chacun de ces cas, une procédure permet d'obtenir un résultat à partir d'une série d'actions.
Les qualités d'un algorithme
Un algorithme doit être clair et précis. Chaque instruction doit avoir une signification suffisamment précise pour éviter les interprétations différentes.
Un algorithme doit également prévoir les différentes situations pouvant se présenter. Une instruction comme « préparer le résultat » est trop vague, tandis qu'une suite d'étapes indiquant exactement les calculs à effectuer est exploitable.
Un algorithme doit enfin aboutir à un résultat après un nombre fini d'étapes. Une procédure qui recommence indéfiniment sans raison constitue une boucle infinie et ne permet pas d'obtenir le résultat attendu.
La séquence d'instructions
La structure la plus simple d'un algorithme est la séquence. Les instructions sont exécutées les unes après les autres dans l'ordre où elles sont écrites.
Pour calculer le périmètre d'un rectangle, l'algorithme peut par exemple demander successivement la longueur, demander la largeur, additionner les deux valeurs, multiplier le résultat par deux puis afficher le périmètre.
L'ordre des instructions est important. Une opération effectuée trop tôt ou trop tard peut produire un résultat incorrect.
Les variables
Une variable permet de conserver une information pendant l'exécution d'un algorithme. Elle possède un nom et contient une valeur qui peut évoluer au cours du traitement.
Une variable appelée longueur peut par exemple contenir la valeur 5, tandis qu'une variable appelée largeur peut contenir la valeur 3. Une troisième variable peut ensuite conserver le résultat du calcul du périmètre.
Les variables peuvent contenir différents types d'informations, notamment des nombres, des textes ou des valeurs indiquant qu'une condition est vraie ou fausse.
Les conditions
Une condition permet à l'algorithme de choisir une action en fonction d'une situation. Le traitement dépend alors du résultat d'un test.
Un algorithme peut par exemple contenir l'instruction : « si la température dépasse 20 °C, ouvrir la fenêtre ; sinon, laisser la fenêtre fermée ». Deux actions différentes sont ainsi prévues selon la valeur de la température.
Les conditions permettent donc à un algorithme de prendre des décisions au cours de son exécution.
Les boucles
Une boucle permet de répéter plusieurs fois une même série d'instructions. Elle évite de devoir écrire séparément chaque répétition.
Pour afficher les nombres de 1 à 100, un algorithme peut utiliser une variable qui commence à 1, afficher sa valeur, l'augmenter de 1 puis recommencer jusqu'à atteindre 100.
Une boucle peut être contrôlée par un nombre de répétitions, par une condition ou par l'arrivée d'un événement particulier. Elle permet notamment de traiter efficacement de grandes quantités de données.
Un exemple complet
Le calcul d'une moyenne permet de réunir plusieurs de ces éléments. L'algorithme doit d'abord recevoir les différentes notes, additionner leurs valeurs, compter leur nombre puis diviser la somme par le nombre de notes.
Une variable peut conserver la somme des notes et une autre leur nombre. Une boucle permet d'ajouter chaque note à la somme. Une fois toutes les notes traitées, le calcul de la moyenne peut être effectué et le résultat affiché.
Le même algorithme peut ensuite être traduit dans différents langages de programmation. La méthode de résolution reste identique, même si la manière d'écrire les instructions change selon le langage.
Les algorithmes en informatique
Les algorithmes sont utilisés dans de nombreux domaines de l'informatique. Ils permettent notamment de trier des données, rechercher une information, compresser un fichier, calculer un itinéraire, traiter une image ou analyser des données.
Un GPS utilise par exemple des algorithmes pour déterminer un itinéraire à partir du réseau routier. Un moteur de recherche utilise des algorithmes pour organiser et retrouver les informations correspondant à une recherche.
Les systèmes de recommandation utilisent également des algorithmes pour sélectionner des contenus susceptibles de correspondre aux habitudes d'un utilisateur. D'autres algorithmes permettent de reconnaître des objets dans une image, de détecter des anomalies ou de commander un robot.
L'efficacité d'un algorithme
Deux algorithmes peuvent résoudre le même problème tout en demandant des quantités différentes de temps et de mémoire. L'efficacité d'un algorithme devient particulièrement importante lorsque le nombre de données à traiter augmente.
Un algorithme efficace permet d'obtenir un résultat avec moins d'opérations et moins de ressources. Le choix d'un algorithme adapté peut donc rendre un programme beaucoup plus rapide, même lorsque le matériel reste identique.
L'étude des algorithmes constitue ainsi une base essentielle de l'informatique. Elle permet de transformer un problème en une méthode précise, puis de traduire cette méthode en programme.