SUPTECH SANTE
École Supérieure de Génie Biomédical et des Techniques de Santé.
Algorithmique
Semestre 1
Pr. MAHA REZZAI
[email protected] Année universitaire: 2023- 2024
Qu’est ce qu’un algorithme?
✓ Il faut savoir que les algorithmes sont présents partout: dans les
ordinateurs, les smartphones, les voitures, la machine à laver,
etc.
✓ A l’apparition de l’informatique et la fabrication des ordinateurs,
l’humain ne traite plus les problèmes d’une façon manuelle, ils
sont traités d’une façon automatique (ordinateurs).
✓ L’ordinateur doit d’abord identifier les instructions et les actions
à réaliser.
Il faut écrire un algorithme
Qu’est ce qu’un algorithme?
✓ Un algorithme, est une suite d'opérations élémentaires, dites
instructions, qui une fois exécutée correctement, conduit à un
résultat donné.
✓ Vous exécutez toujours des algorithmes dans votre vie quotidienne:
• Quand vous faites vos courses au marché;
• Quand vous montrez un chemin à un touriste;
• Quand vous exécutez une recette de cuisine.
Vous créez et exécutez toujours des algorithmes
Langage de Programmation
✓ Pour résoudre un problème informatique, on crée souvent un
programme pour le résoudre.
✓ Pour créer ce programme, on a recours au:
Langage de programmation
(C,C++,JAVA,Python,Java Script, etc…)
Langage de Programmation
✓ Malgré qu’il existe de nombreux langages de programmation, ils
partagent tous le même point commun « la logique ».
La logique de la programmation est tout simplement
l’algorithme
Qu’est ce qu’un algorithme?
✓ Un algorithme est indépendant des langages de programmation.
✓ Il n’est pas destiné à être exécuté par la machine.
✓ Il constitue une ébauche/ schéma détaillé d’un futur programme.
✓ Il peut être représenté sous forme de:
▪ Organigramme: représentation graphique avec des symboles
(carrés, losanges, etc.)
▪ Pseudo-code: représentation textuelle. Il est plus utilisé car il est
plus proche de la structure d’un vrai programme.
Qu’est ce qu’un algorithme?
✓ Exemple:
Ecrire un algorithme qui calcule la division de deux nombre A et B
Qu’est ce qu’un algorithme?
✓ Exemple:
Qu’est ce qu’un algorithme?
✓ Exemple:
Résumé
✓ L'algorithmique est l'étude des algorithmes.
✓ Un algorithme est indépendant de tout langage de
programmation informatique.
✓ Il s'agit d'une suite logique d'opérations (appelées instructions)
qui, exécutées correctement, donnent le résultat attendu.
✓ Un algorithme peut s'écrire sous forme de pseudo-code ou
organigramme.
Objectif du cours
✓ Découvrir les bases de l’algorithmique (variables, opérateurs,
structures conditionnelle et itératives, chaine de caractères,
tableaux,….)
✓ Apprendre á écrire des algorithmes fonctionnels et optimisés.
ALGORITHMIQUE
Les variables et les types
12
Variables /Types de variables
✓ Une variable est une entité dont la valeur peut changer, d’où le nom de
« Variable ».
✓ On peut imaginer que les variables sont des boites qui ont toutes des noms
uniques.
✓ Le contenu de la boite contient tout simplement la valeur de la variable.
✓ En réalité, les boites (variables) sont des cases mémoires.
✓ Avant de manipuler une variable, il faut définir son type.
✓ Le type représente la taille et les caractéristiques de la boite.
Variables /Types de variables
Règles á retenir
✓ Une variable doit être déclarée avant d’être utilisée.
✓ Elle est caractérisée par :
• Un nom (Identifiant),
• Un type qui indique l’ensemble des valeurs que peut prendre la
variable (entier, réel, booléen, caractère, chaîne de caractères, …),
• Une valeur.
Variables /Types de variables
✓ Le nom de la variable (l’identifiant) doit commencer par un caractère
alphabétique.
✓ Conseil
Pour la lisibilité du code, on choisit des noms significatifs qui décrivent les
données manipulées.
✓ Exemples:
Var123
NoteEtudiant
Prenom
numero_de_telephone
Variables /Types de variables
✓ Les entiers sont des nombres qui s’expriment sans virgule.
✓ Ils peuvent être positifs ou négatifs.
✓ Les réels sont des nombres qui s’expriment avec une virgule (virgule flottante).
✓ Les booléens représentent un type qui n’accepte que l’une des deux valeurs
« vrai » ou « faux », soit 1 ou 0.
✓ Type caractère représente les lettres majuscules, minuscules, chiffres,
symboles,..
Exemples : ’A’, ’b’, ’1’, ’?’
✓ Les chaines de caractères représentent une suite de caractères.
✓ Il s’agit tout simplement d’un texte.
Exemples: " " , " Nom, Prénom", "code postale: 1000"
Déclaration des variables
✓ Rappel: toute variable utilisée dans un programme doit faire l’objet
d’une déclaration au préalable.
✓ En pseudo-code, la déclaration de variables est effectuée de la
manière suivante :
Variables liste d'identificateurs : type
✓ Exemple:
Variables i, j, k : entier
x, y : réel
OK: booléen
Ch1, ch2 : chaîne de caractères
Constante
✓ Une constante est une variable dont la valeur ne change pas au cours de
l'exécution du programme, elle peut être un nombre, un caractère, ou une
chaine de caractères.
✓ Par convention, les noms de constantes sont en majuscules.
✓ En pseudo-code:
Constante identificateur=valeur : type
✓ Une constante doit toujours recevoir une valeur dès sa déclaration.
✓ Exemple
Pour calculer la surface des cercles, la valeur de pi est une constante mais le rayon
est une variable.
Constante PI=3.14 : réel
Déclaration des variables
Algorithme Nom_de_l_algo
Variables
variable1, variable2 : type
variable3, variable4 :type
Début
LISTE DES INSTRUCTIONS
Fin
Résumé
✓ Dans un algorithme (ou programme informatique), les variables servent à
stocker des données (ou valeurs).
✓ Avant d'utiliser une variable au sein d'un algorithme on doit définir son
type qui peut être entier, réel, booléen ou chaîne de caractères.
✓ L'identifiant de la variable peut être composé de caractères alphabétiques,
numériques et doit commencer par un caractères alphabétique
Les opérateurs
✓ Les opérateurs sont des symboles qui permettent d’effectuer des
opérations.
✓ Exemple:
L’addition et la soustraction sont des opérations.
Elles sont représentées par les operateurs + et -
Les types d’opérateurs
✓ Opérateurs d’assignation/ d’affectation.
✓ Opérateurs de calcul / arithmétiques.
✓ Opérateurs de comparaison.
✓ Opérateurs logiques.
Opérateurs d’affectation
✓ L’affectation consiste à attribuer une valeur à une variable (c’est-
à-dire remplir ou modifier le contenu d'une zone mémoire).
✓ En pseudo-code, l'affectation est notée par le signe ←
Var← e : attribue la valeur de e à la variable Var
o e peut être une valeur, une autre variable ou une expression
o Var et e doivent être de même type
o l’affectation ne modifie que ce qui est à gauche de la flèche
✓ Exemples i ←1 j ←i k ←i+j
x ←10.3 OK ←FAUX ch1 ←"SMI"
ch2 ←ch1 x ←4 x ←j
(avec i, j, k : entier; x :réel; ok :booléen; ch1,ch2 :chaine de caractères)
Opérateurs d’affectation
Opérateurs d’affectation
✓ Exercice 1:
Donnez les valeurs des variables A, B et C après exécution des instructions
suivantes:
Variables
A, B, C: Entier
Début
A←7
B ← 17
A←B
B ← A+5 C ← A + B C ← B – A
Fin
Opérateurs d’affectation
✓ Exercice 2:
Donnez les valeurs des variables A et B après exécution des instructions
suivantes:
Variables A, B : Entier
Début
A←6
B←2
A←B
B←A
Fin
Les deux dernières instructions permettent-elles d’échanger les valeurs de A et
B?
Opérateurs d’affectation
✓ Exercice 3:
Écrire un algorithme permettant d’échanger les valeurs de deux
variables A et B ?
Réponse :
on utilise une variable auxiliaire C et on écrit les instructions suivantes :
C←A, A←B, B← C,
Opérateurs arithmétiques
+ Addition
- Soustraction
* Produit
/ Division
% Modulo (reste de la division)
div Division entière (retourne le résultat sous forme entière)
^ Puissance (2 ^ 3 vaut 8)
Opérateurs arithmétiques
✓ Exercice:
Donnez les valeurs des variables A, B et C après exécution des instructions
suivantes:
Variables A, B, C : Entier
Début
A ← 10
B←2
C ← A+B
C ←A / B
C ← A%B
Fin
Opérateurs arithmétiques
✓ Exercice:
Donnez La valeur de la variable A après exécution des instructions suivantes:
Variables A: Entier
Début
A ← 10
A ← A+1
A ← 10+2*5-1
A ←10+2*(5-1)
Fin
Opérateurs arithmétiques
Remarque
✓ On ne peut pas additionner un entier et un caractère.
✓ La signification d’un opérateur peut changer en fonction du type
des opérandes:
l’opérateur + avec des entiers effectue l’addition➔ 3+6 vaut 9
l’opérateur + avec des chaînes de caractères effectue la
concaténation ➔ "bonjour" + " tout le monde" vaut "bonjour tout
le monde"
Opérateurs de comparaison
= Egalité des valeurs
< Strictement inférieur
> Strictement supérieur
<= Inférieur ou égal
>= Supérieur ou égal
<> Diffèrent
Opérateurs logiques
✓ Les opérateurs logiques quand à eux permettent d’exécuter les
opérations logiques sur des variables ou expressions booléenne.
✓ Les opérateurs logiques utilisés en algorithmique sont:
ET (&&), OU (||) et NON (!)
✓ Exemple: A ←10 B ←2
A>B ET A<20 (VRAI)
Opérateurs logiques
Résumé
✓ Les opérateurs dans un algorithme sont des symboles qui permettent
d'effectuer des opérations.
✓ En algorithmique, il y a les opérateurs d'assignation (ou d'affectation), les
opérateurs de calcul (ou arithmétiques), les opérateurs de comparaison et les
opérateurs logiques.
✓ Les opérateurs utilisés dans les langages de programmation informatiques sont
presque les mêmes quelque soit le langage.
✓ L'affectation (ou assignation) permet d'assigner (affecter) une valeur à une
variable.
Lecture et écriture
✓ Il s’agit d’un algorithme qui exécute une
opération d’addition.
✓ Cet algorithme ne sert pas à grand-
chose, car on connait très bien que la
valeur de C est toujours 30.
✓ Un programme informatique est
vraiment utile quand il peut interagir et
dialoguer avec l’utilisateur.
✓ Un Utilisateur c’est la personne qui
exécute le programme, il ne s’agit pas
forcément du programmeur.
Lecture et écriture
✓ Cette interaction est traduite de la façon suivante:
o Le programme affiche des messages à l’écran pour que
l’utilisateur puisse les lire.
o L’utilisateur soumet au programme des données qu’il a saisi,
afin de les traiter.
✓ Un algorithme prend en charge ces deux fonctions: la lecture et
l’écriture.
Lecture et écriture
✓ Supposons maintenant qu’on veut améliorer l’algorithme qu’on
vient de voir ➔ L’utilisateur doit saisir la valeur de A et B .
✓ Dans ce cas la valeur de C changera en fonction des entrées de
l’utilisateur.
✓ Première étape consiste à demander à l’utilisateur de fournir les
données nécessaires à l’exécution de l’opération souhaitée.
Lecture et écriture
✓ Les instructions de lecture et d'écriture permettent à la machine de
communiquer avec l'utilisateur.
✓ L'écriture permet d'afficher des message à l'écran.
✓ En pseudo-code, on note: écrire (liste d’expressions).
✓ La machine affiche les valeurs des expressions décrite dans la liste.
✓ Ces instructions peuvent être des variables ayant des valeurs, des nombres ou
des commentaires sous forme de chaines de caractères.
✓ Exemple: Ecrire (‘veuillez entrer un nombre entier:’)
Lecture et écriture
✓ La lecture permet d'entrer des donnés à partir du clavier.
✓ Une fois la valeur demandée est soumise au programme celui-ci doit la
récupérer => on fait appel à la fonction lire:
✓ En pseudo-code, on note: lire (var).
✓ La machine met la valeur entrée au clavier dans la zone mémoire
nommée var.
Lecture et écriture
Remarque
1. Avant de lire une variable, il est fortement conseillé d’écrire des messages à
l’écran, afin de prévenir l’utilisateur de ce qu’il doit saisir.
2. Pour évaluer une variable, c’est-à-dire pour la remplacer par sa valeur lors de
l’affichage, il faut toujours la mettre en dehors des simples quotes.
Ecrire(C) // Le programme va afficher la valeur affectée à la variable C,
ecrire (‘C’) // Le programme va afficher la lettre C,
Lecture et écriture
✓ Exercice
Quel résultat produit l’algorithme suivant ?
Lecture et écriture
✓ Exercice
1. Ecrire un algorithme qui calcule la somme de quatre nombres du type entier entrés
au clavier:
• En se servant de 5 variables (mémorisation des valeurs entrées)
• En se servant de 2 variables (perte des valeurs entrées)
2. Ecrire un algorithme qui demande deux nombres à l’utilisateur, puis qui calcule et
affiche le produit de ces deux nombres.
Résumé
✓ La lecture et l'écriture rendent un algorithme (ou programme informatique)
interactif.
✓ En algorithmique, on utilise les fonctions Lire() et Ecrire() qui permettent cette
interaction.
✓ Lire() récupère les entrées de l'utilisateur (au clavier).
✓ Ecrire() affiche des messages à l'écran.
✓ Ces deux fonctions implémentent l'interaction homme-machine dans un
algorithme.
Chaines de caractères
✓ Une chaine de caractère est un texte.
✓ Il s’agit d’une suite de caractères qui peuvent représenter des entités
comme: prénom, adresse email, citation, etc.
✓ En pseudo-code, on note:
Variables MaVariable: Chaine de caractères
Ou
Variables MaVariable: Chaine
Chaines de caractères
Exemple
✓ Ecrire un algorithme qui demande à l’utilisateur de saisir son nom et
son prénom.
✓ Affiche à l’écran le nom complet de celui-ci.
Chaines de caractères
✓ Solution
Chaines de caractères
Exemple
✓ Nous désirons maintenant d’ajouter une troisième variable à
l’exemple précèdent, nommée ‘nom-complet’.
✓ Son rôle est d’acceuillir le résultat de concaténation du nom et
prénom avec l’espace du milieu.
✓ Indication: Utilisation de l’opérateur de concaténation de chaines de
caractères : &
✓ Cet operateur est valable aussi en dehors de la fonction Ecrire.
Chaines de caractères
✓ Solution
Chaines de caractères
✓ Remarque : En langage de programmation, il existe une multitude de
fonction qui traite et manipule les chaines de caractères.
✓ En algorithmique, on aura besoin que de la fonction longueur(), qui
permet de calculer le nombre de caractères présents dans une chaine
spécifiée entre ses parenthèses.
longueur(‘bonjour') ------ renvoie la valeur7
✓ Ecrire un algorithme qui calcule et retourne la taille d’une chaine
de caractère saisie par l’utilisateur.
Chaines de caractères
✓ Solution
Résumé
✓ Une chaîne de caractères est un type de variable qui peut
représenter des entités.
✓ On peut concaténer les chaînes de caractères à l'aide de l'opérateur
de concaténation &.
✓ Pour connaitre la taille d'une chaine de caractères on utilise la
fonction longueur().
Structures de contrôle
✓ Les structures de contrôle décrivent l’enchaînement des instructions.
✓ Les structures de contrôle englobent:
o Les structures séquentielles
o Les structures conditionnelle
o Les structures itératives
Structures conditionnelles
Exemple
Une personne au volant de sa voiture, quand elle arrive à un carrefour
à feux, trois possibilités sont envisageables:
Structures conditionnelles
Le feu est vert
Le conducteur continue à rouler
Le feu est rouge
Le conducteur s’arrête
Le feu est orange
Selon la situation, le conducteur peut soit s’arrêter ou continuer
à rouler
Structures conditionnelles
Exemple (suite)
✓ Dans ce cas le conducteur doit exécuter un algorithme qui traite ces
différents cas de figures.
✓ On parle d’un traitement conditionnel dont le résultat change en
fonction de la condition qui est vrai.
Structures conditionnelles
✓ En algorithmique, on peut aussi remplacer le terme CONDITION par
PREDICAT.
✓ En pseudo-code, on écrit:
Structures conditionnelles
✓ Le mot clé SI permet d’énoncer la condition.
✓ Cette condition sera évaluée pour juger si elle est vraie ou non.
✓ Si elle est vraie, alors on exécute le Traitement 1, en d’autre terme :
l’ensemble des instructions prévues dans ce cas.
✓ Sinon, c’est-à-dire la condition n’est pas vraie, alors on exécute le
Traitement 2.
✓ On met fin à la structure conditionnelle à l’aide du mot clé FinSi.
Structures conditionnelles
Notion de PRÉDICAT
✓ Un prédicat est un énoncé ou proposition qui peut être vrai ou faux
✓ Exemple :
o (10 < 15) est un prédicat vrai
o (10 < 3) est un prédicat faux
Structures conditionnelles
Evaluation d'une expression logique
✓ Une condition est une expression de type logique.
✓ Deux valeurs possibles VRAI et FAUX.
✓ Revoir les tables de vérité.
Résumé
✓ Les conditions (ou structures conditionnelles connues sous le nom
si-sinon-finsi ).
✓ Certaines instructions ne s'exécutent que si des conditions sont
satisfaites.
✓ Les conditions peuvent être imbriquées à l'instar du reste des
structures de contrôles.
Structures conditionnelles à choix multiples
✓ Structures conditionnelles à choix multiples Selon ou Cas (ou
structures sélectives connues sous Switch case.
✓ Elle sélectionne entre plusieurs choix à la fois, et non entre deux
choix alternatifs.
✓ Représentation simplifiée des conditions imbriquées (Si –sinon si…).
Structures conditionnelles à choix multiples
✓ En pseudo-code, on écrit:
Structures conditionnelles à choix multiples
✓ Le Sélecteur représente généralement une variable.
✓ Cette variable peut avoir plusieurs valeurs.
✓ Selon la valeur qui lui est attribuée, un traitement diffèrent s‘en suit.
✓ Si aucune des valeurs n’est attribuée au Sélecteur, le bloc ‘Sinon’ est
exécuté.
Structures conditionnelles à choix multiples
✓ Exemple:
Ecrire un algorithme qui permet de représenter les chiffres de 1 à 5
sous forme de mots.
Pour le chiffre 1 on affichera le mot ‘Un’, etc.
En utilisant le Si imbriqué et les structures à choix multiples.
Structures conditionnelles à choix multiples
Structures conditionnelles à choix multiples
Structures conditionnelles à choix multiples
Remarque
✓ On peut écrire la structure selon de différentes manières.
Résumé
✓ Les structures conditionnelles à choix multiples Selon ou Cas (ou
structures sélectives connues sous switch case) servent à:
o Remplacer les structures conditionnelles imbriquées,
o Simplifier l'écriture des instructions.
✓ Les structures sélectives permettent de vérifier le cas qui est vrai et
exécuter le traitement qui lui est associé.