Structure d’un algorithme

Pour concevoir un algorithme  on dispose d’instructions et de données car un algorithme

  • Utilise les données  reçues en paramètres ou rangés pendant le déroulement.
  • Modifie les données rangées au préalable par une instruction.
  • Range temporairement des données pour utilisation ultérieure par une instruction

Il commence toujours par le nom de l’algorithme et se termine obligatoirement par le mot ‘Fin’.
Entre les deux se trouvent toutes les instructions de l’algorithme nécessaires à sa résolution.
L’ordre des instructions se déroule en séquence pour de instructions simples ou dans un ordre différent pour des instructions conditionnelles ou itératives

En algorithmique comme en programmation une donnée ou élément d’information est une entité identifiée par un nom et qui contient une valeur associée à un type.

  • Élément d ‘information: Il contient temporairement, pendant le déroulement de l’algorithme une valeur. Une instruction particulière, appelée affectation ou assignation permet d’attribuer une valeur à un élément d’information.
  • Valeur : Il s’agit là d’un nombre, code, date ou chaîne de caractères, que l’on associe donc au nom de l’élément d’information.
  • Type: il définit la nature des valeurs que peut prendre un élément d’information ainsi que les opérateurs qui peuvent lui être appliqués. En Schema un élément d’information a pour type Entier, Reel, Bool ou Texte

Par exemple, l’élément d’information nommé longueur a pour valeur, le  chiffre  3 dont le type est Entier.

Structure de base d’un algorithme écrit en Schema

NomAlgorithme 
   ...
   Instrutions
   ...
Fin

Afficher « Bonjour Steve  » avec le schema welcome

welcome 
   Afficher Bonjour Steve
Fin

Un algorithme peut recevoir des données en entrée que l’on note suivant une liste

NomAlgorithme ListeDeDonnées 
   ...
   Instrutions
   ...
Fin

Afficher « Bonjour Steve » avec le schéma welcome et une liste de données

welcome bonjour Texte, Steve Texte
   Afficher #Bonjour #Steve 
Fin

Un algorithme peut retourner un résultat en spécifiant le symbole <- devant la valeur à retourner et le symbole -> pour indiquer le type de la valeur à retiurner.

welcome bonjour Texte, Steve Texte -> bonjour Texte,Steve Texte
   <- bonjour Steve
Fin

Premiers algorithmes

Écrivons un algorithme Schema nommé welcome qui ne comporte aucune instruction.

welcome
Fin

Ajoutons une instruction pour afficher le message “Bienvenue en algorithmique »

welcome
    Afficher Bienvenue en algorithmique
Fin

Afficher est l’instruction du langage Schema qui permet d’afficher un texte

La traduction en langage de programmation Swift transforme l’algorithme en une fonction dont le mot réservé est func. L’instruction Afficher devient print avec en paramètre une chaine de caractères. Les accolades marque le début et la fin du la fonction.

func welcome() {
   print("Bienvenue en algorithmique")
}

La traduction en Python transforme l’algorithme en une fonction dont le mot réservé est def. L’instruction Afficher devient print avec en paramètre une chaine de caractères.
Le symbole réservé : marque le début des instructions du programme. Il n’existe pas de symbole de Fin de programme en Python.
L’indentation du code est utilisée pour marquer le début et la fin d’un bloc d’instructions.

def welcome():
    print("Bienvenue en algorithmique")

La traduction en Julia transforme l’algorithme en une fonction dont le mot réservé est function. L’instruction Afficher devient println avec en paramètre une chaine de caractères. Le symbole de fin de programme est end

function welcome()
   println("Bienvenue en algorithmique")
end

Les commentaires

Les commentaires sont très importants lors de la rédaction d’un algorithme. Ils décrivent ce qui se passe afin qu’une personne qui le consulte n’ait pas de difficultés à comprendre sa logique.
Si nous avons des commentaires qui s’étendent sur plusieurs lignes, une façon de le faire est d’utiliser dièse (#) au début de chaque ligne.

welcome
    # Premier algo pour afficher le
    # texte Bienvenue en algorithmique
    Afficher Bienvenue en algorithmique
Fin

Une autre forme de commentaire

welcome
  — 
    Premier algo pour afficher le
    texte Bienvenue en algorithmique
  —
    Afficher Bienvenue en algorithmique
Fin

Algorithme qui retourne un résultat

Un algorithme peut retourner un résultat en spécifiant le symbole <- devant la valeur à retourner et le symbole -> pour indiquer le type de la valeur à retourner.

Schema

welcome bonjour Texte, Steve Texte -> bonjour Texte, Steve Texte
   <- bonjour Steve
Fin
dix -> Entier
    <- 10
Fin

Swift

func welcome (_ bonjour: String,_ Steve: String) -> (bonjour: Texte,Steve: Texte){
    return (bonjour,Steve)
}
func dix() -> Int {
    return 10
}

Python

def dix(): 
    return 10

est équivalent à (noter l’indication du type de la valeur retournée)

def dix() -> int:
    return 10

Liste d’arguments

Un algorithme peut définir des donnée à prendre en compte par l’algorithme. Ces données sont consignées dans ce que l’on appelle une liste de paramètres. La liste de paramètres précise, pour chaque paramètre, son nom et son type ainsi que le type de le valeur à renvoyer dénoté par le symbole  ->

Schema

Une liste de paramètres formée de couples argument-type séparés par une virgule. Le symbole # de l’instruction Afficher permet d’afficher le contenu de l’élément d’information message de la liste de paramètres.

welcome message Texte 
    Afficher message
}

welcome nom Texte, message Texte
    Afficher message #message
Fin

welcome message Texte -> Texte 
    <- message 
Fin 

Swift

func welcome(_ message: String) {
    print("message")
}

func welcome(_ nom: String,_ message: String) {
    print("message \(message)")
}

func welcome(_ message: String) -> String {
    return message
}

Python

def welcome(message): 
    print (message)
def welcome(message,nom):
    print( message, nom)
def welcome(message) -> str:
    return message

Note: Python & Julia

L’indentation consiste en l’ajout de tabulations ou d’espaces dans le texte d’un algorithme pour une meilleure lecture et compréhension du texte. L’indentation est synonyme de décalage.

L’une des particularités de Python est son utilisation imposée de l’espace pour l’indentation afin de mettre en évidence les blocs de code. Toutes les instructions avec la même distance vers la droite appartiennent au même bloc de code. Si un bloc doit être imbriqué plus profondément, il est simplement mis en retrait plus à droite. L’indentation est primordiale avec Python car elle sert à déterminer les blocs qui constituent le code

Julia est un langage de programmation créé spécifiquement pour la science des données, l’algèbre linéaire complexe, l’exploration de données. Julia est destiné à combler les lacunes de Python souvent utilisé pour le calcul scientifique et le traitement des données. Julia est un langage plus fonctionnel dans le domaine de la Data Science et offre une syntaxe plus épurée que celle de Python.

Environnement de développement

Les algorithmes de ce site sont traduits dans le langage Swift, Julia et parfois Python. Ils ont été testés avec l’environnement de développement Xcode pour Swift et Visual Code pour Julia et  Python

copyright A rchitectures A pplicatives A vancées A3-Soft

A3soft