Algorithmique

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

A3soft