L’algorithmique est l’étude des règles et techniques impliquées dans la conception d’algorithmes. Elle repose sur des propositions admises comme élémentaires sur lesquelles on peut construire un algorithme. Ces propositions vont structurer les connaissances algorithmiques et les asseoir sur des notions essentielles, stables pour nous permettent de construire tous les algorithmes appelés à être exécutés sur une machine.
L’algorithmique est à la base de l’informatique, c’est l’art de découper un problème complexe en tâches élémentaires, c’est une suite d’actions, qui une fois exécutée correctement, conduit à un résultat donné. Pour bien fonctionner, un algorithme doit donc contenir uniquement des instructions compréhensibles par celui qui devra l’exécuter.
On appelle algorithme la méthode, la façon systématique de procéder pour faire quelque chose, c’est une suite finie et non ambiguë d’actions permettant de résoudre un problème.
Pourquoi apprendre l’algorithmique
- Acquérir de bons réflexes face à un problème à résoudre.
- Spécifier un problème précisément et a priori
- Exprimer et décrire un algorithme
- Apprendre les bonnes pratiques pour commencer la programmation
Le langage algorithmique Schema
Pour représenter les étapes nécessaires à la résolution d’un problème devant être exécuté sur un calculateur, on utilisera le langage algoritmique. Schema est un langage algorithmique formel interprétable ou compilable pouvant être traduit de façon systématique sans modifications dans un langage de programmation. Il a été conçu pour écrire des algorithmes dont la syntaxe, la grammaire et le vocabulaire ne font pas référence à un langage de programmation particulier.
Ci-après en aperçu en d’un algorithme Schema et ses traductions en Swift, Julia et Python, de calcul de la factorielle d’un nombre entier, sous une forme impérative( les instructions sont exécutées en séquence ) et récursive ( pour exécuter les instructionss, un algorithme récursif s’appelle lui-même).
Schema algorithme
factorielle n Entier -> Entier
resultat <- 1
nombre <- n
nombre > 1
resultat <- resultat * nombre
nombre <- nombre - 1
Fin
<- resultat
Fin
Fonction Swift
func factorielle (_ n: Int) -> Int { var resultat = 1 var nombre = n while nombre > 1 { resultat = resultat * nombre nombre = nombre - 1 } return resultat }
Fonction Julia
function factorielle(n) resultat = 1 nombre = n while nombre >1 resultat = resultat * nombre nombre = nombre - 1 end return resultat end
Fonction Python
def factorielle (n): resultat = 1 while n > 1 : resultat *= n n -= 1 return resultat
Processus de création d’un programme
Il se résume en 3 étapes:
- Conception de l’algorithme avec un langage algorithmique
- Traduction dans le langage de programmation choisi, manuellement ou à l’aide d’un traducteur
- Revue et optimisation du programme généré en tenant compte des spécificités du langage de programmation.
En Résumé
Le langage algorithmique Schema permet de décrire un algorithme comme une étape préalable à l’écriture d’un programme informatique. Il décrit le résultat de l’analyse d’un problème (énoncé en français) dans un langage formel.
Le langage algorithmique Schéma proposé permet la génération rigoureuse du code Swift d’un schéma d’algorithme à l’aide d’un traducteur écrit en langage Swift
copyright A rchitectures A pplicatives A vancées A3-Soft