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