Académique Documents
Professionnel Documents
Culture Documents
08/12/21 M.HAMLICH 1
ALGORITHMIQUE
PLAN:
1) Langages informatiques
2) Objectifs d’un algorithmique
3) Représentation d’un algorithme
Organigramme
Pseudo code
4) Catégories d’instructions
Variables
Affectation
Opérateurs
Les instructions d'entrées-sorties: lecture et écriture
Exemples d’applications
5) Méthode de construction d’un algorithme
08/12/21 M.HAMLICH 2
1) Langages informatiques
Un langage informatique est un outil permettant de
donner des ordres (instructions) à la machine
A chaque instruction correspond une action du processeur
08/12/21 M.HAMLICH 3
Langage machine
Langage binaire: l’information est exprimée et manipulée sous
forme d’une suite de bits
Le code ASCII (American Standard Code for Information Interchange) donne les
correspondances entre les caractères alphanumériques et leurs
représentation binaire, Ex. A= 01000001, ?=00111111
08/12/21 M.HAMLICH
Langages haut niveau
Intérêts multiples pour le haut niveau:
proche du langage humain «anglais» (compréhensible)
permet une plus grande portabilité (indépendant du matériel)
Manipulation de données et d’expressions complexes (réels,
objets, a*b/c, …)
Nécessité d’un traducteur (compilateur/interpréteur),
exécution plus ou moins lente selon le traducteur
08/12/21 M.HAMLICH 5
Compilateur/interpréteur
Compilateur: traduire le programme entier une fois pour toutes
Compilateur exécution
exemple.c exemple
fichier source fichier exécutable
+ plus rapide à l’exécution
+ sécurité du code source
- il faut recompiler à chaque modification
08/12/21 M.HAMLICH 6
Langages de programmation:
Deux types de langages:
Langages procéduraux : sont à base de procédures. Une procédure
est une portion de programme écrit en langage de haut niveau qui
accomplit une tâche spécifique nécessaire au programme.
Langages orientés objets : sont des langages non procéduraux
dans lesquels les éléments du programme sont considérés comme
des objets qui peuvent s'échanger des messages.
08/12/21 M.HAMLICH 7
Principaux Langages de programmation:
Blaise PASCAL, Langage compilé et structuré,
mathématicien et inventeur dérivé d'ALGOL. c'est un
Pascal de la première machine à langage de développement
calculer 1971 standard pour les micro-
ordinateurs.
C'est une version améliorée Langage de programmation
du langage de programmation structuré et compilé, très
C B du Bell Laboratory, créé en largement employé car ses
1972 programmes peuvent
facilement se transférer d'un
type d'ordinateur à un autre.
08/12/21 M.HAMLICH
Etapes de réalisation d’un programme
Enoncé du problème
Spécification
Cahier des charges
Analyse
Algorithme
Traduction en langage
Programme source
Compilation
Programme exécutable
Tests et modifications
Version finale et résultats
08/12/21 M.HAMLICH 9
2) Objectifs d’un algorithme
Un algorithme est une description complète et détaillée des actions à
effectuer et de leur séquencement pour arriver à un résultat donné
08/12/21 M.HAMLICH 10
3) Représentation d’un algorithme
Historiquement, deux façons pour représenter un algorithme:
L’Organigramme: représentation graphique avec des symboles
(carrés, losanges, etc.)
offre une vue d’ensemble de l’algorithme
08/12/21 M.HAMLICH 11
Début
exemple :
Couper l’alimentation
électrique
organigramme
Vérifier l’état du fusible
Fin
08/12/21 M.HAMLICH 12
La représentation algorithmique consiste en une succession chronologiques d’étapes lesquelles
sont présentées au moyen de symboles dits normalisés dont voici les principaux :
Symbole de liaison :
ces flèches indiquent le sens de lecture de l’algorithme et
définissent le lien existant entre les différentes étapes
successives.
Symbole de renvoi :
permet de remplacer des flèches de liaison.
08/12/21 M.HAMLICH 13
Structures linéaires
Début
Début
Tache A
Faire tache A
Faire tache C
Tache C
Fin
Fin
08/12/21 M.HAMLICH 14
Structures linéaires : exercice 1
Variables :
V : ventilateur
EV : électrovanne de mise en
circulation de l’eau
CH : chauffage
1, marche
Début action :
Faire, ventilateur
marche
Faire, électrovanne Fin
marche
Faire, chauffage marche
Fin actions
Fin algorithme
Correction
08/12/21 M.HAMLICH 15
Structures alternatives
Si condition
Fin
08/12/21 M.HAMLICH 17
Structures alternatives : exercice 2
Structure alternative
complète
Si….Alors…Si non…
Fin Si Début
Début algorithme : Tri de sacs
Variables :
MS, masse du sac
Ref : 50kg
Début actions
Peser le sacMS
Si MS=Ref
Alors aiguiller vers
zone1
Si non aiguiller vers
Fin
zone2
Fin Si
Fin actions
Fin algorithme
Correction
08/12/21 M.HAMLICH 18
Structures alternatives
vrai faux
condition
Début
Si condition
Tache A
Alors Faire tache A
Fin
08/12/21 M.HAMLICH 20
Structures alternatives : exercice 3
Structure alternative
réduite Si….Alors…Fin Si
Début
Début algorithme : Ouverture
de la porte d’un garage
Variables :
PV, présence de la bonne
voiture
1,vrai
Début actions
Décoder PV
Si PV=1
Alors ouvrir la porte
Fin Si Fin
Fin actions
Fin algorithme
Correction
08/12/21 M.HAMLICH 21
Structures répétitives
Exemple n°1
Répéter Tache A
Faire tache A
08/12/21 M.HAMLICH 23
Structures répétitives : exercice 4
Structure répétitive
Répéter…Jusqu’à…
Variables :
n, niveau d’eau dans la cuve
Ref : NH niveau haut
EV : électrovanne (0fermé,
1ouvert)
Début actions
Répéter
Mesurer n
EV=1
Jusqu’à N=NH
EV=0 Fin
Fin actions
Fin algorithme
Correction
08/12/21 M.HAMLICH 24
Structures répétitives
Exemple n°2
Faire tache A
faux vrai
condition
08/12/21 M.HAMLICH 26
Structures répétitives : exercice 5
Structure répétitive
Tant que…Faire…Fin Tant
que Début
Début algorithme : Chauffage
d’un four
Variables :
t : température du four en °C
Ref : 500°C consigne de
température
Chauffage : 1
marche,
0 arrêt
Début actions
Mesurer t
Tant que t<500°C
Chauffage=1
Fin Tant que
Chauffage=0
Fin
Fin actions
Fin algorithme
Correction
08/12/21 M.HAMLICH 27
Structures répétitives
Début Index=Val.Initial
e
Pour index de valeur initiale à valeur finale
Index= non
Faire tache A Val.finale
?
Fin
oui Tache A
Particularité : le nombre de répétition des actions
est connu. Décrémenter
Val.Initiale
Remarque: la valeur initiale peut être incrémenter
Fin
pour atteindre une valeur finale
08/12/21
M.HAMLICH 29
Structures répétitives : exercice 6
Structure répétitive
Pour…de…à…Faire…Fin Début
Pour
Début algorithme :
Conditionnement de bouteilles
Variables :
V :nombre de bouteilles à conditionnées (V=6)
Début actions
Pour V de 0 à 6
Faire Contrôler
Fin Pour
Fin actions
Fin algorithme
Fin
Correction
08/12/21 M.HAMLICH 30
4) Les catégories d’instructions
les ordinateurs, ne sont fondamentalement capables
de comprendre que quatre catégories d'ordres (en
programmation, on n'emploiera pas le terme d'ordre,
mais plutôt celui d'instructions). Ces quatre familles
d'instructions sont :
Les variables et leurs affectation
la lecture / écriture
les tests
les boucles
08/12/21 M.HAMLICH 32
Notion de variable
Dans les langages de programmation une variable sert à stocker la
valeur d’une donnée
08/12/21 M.HAMLICH 33
Choix des identificateurs (1)
Le choix des noms de variables est soumis à quelques règles qui
varient selon le langage, mais en général:
Un nom doit commencer par une lettre alphabétique
exemple valide: A1 exemple invalide: 1A
doit être différent des mots réservés du langage (par exemple en Java:
Java
int, float, else, switch, case, default, for, main, return, …)
08/12/21 M.HAMLICH 35
Types des variables
Le type d’une variable détermine l’ensemble des valeurs qu’elle peut
prendre, les types offerts par la plus part des langages sont:
Type numérique (entier ou réel)
Byte (codé sur 1octet): de 0 à 255
Entier court (codé sur 2 octets) : -32 768 à 32 767
Entier long (codé sur 4 ou 8 octets)
Réel simple précision (codé sur 4 octets)
Réel double précision (codé sur 8 octets)
08/12/21 M.HAMLICH 36
Déclaration des variables
Rappel: toute variable utilisée dans un programme doit avoir fait
l’objet d’une déclaration préalable
En pseudo-code, on va adopter la forme suivante pour la
déclaration de variables
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
Remarque: pour le type numérique on va se limiter aux entiers et
réels sans considérer les sous types
08/12/21 M.HAMLICH 37
L’instruction d’affectation
l’affectation consiste à attribuer une valeur à une variable (ça consiste
en fait à remplir où à modifier le contenu d'une zone mémoire)
En pseudo-code, l'affectation se note avec le signe ←
Var← e : attribue la valeur de e à la variable Var
- e peut être une valeur, une autre variable ou une expression
- Var et e doivent être de même type ou de types compatibles
- l’affectation ne modifie que ce qui est à gauche de la flèche
Ex valides: i ←1 j ←i k ←i+j
x ←10.3 OK ←FAUX ch1 ←"SMI"
ch2 ←ch1 x ←4 x ←j
(voir la déclaration des variables dans le transparent précédent)
non valides: i ←10.3 OK ←"SMI" j ←x
08/12/21 M.HAMLICH 38
Quelques remarques
Beaucoup de langages de programmation (C/C++, Java, …) utilisent le
signe égal = pour l’affectation ←. Attention aux confusions:
l'affectation n'est pas commutative : A=B est différente de B=A
l'affectation est différente d'une équation mathématique :
08/12/21 M.HAMLICH 39
Exercices simples sur l'affectation (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←3
B←7
A←B
B ← A+5
C←A+B
C←B–A
Fin
08/12/21 M.HAMLICH 40
Exercices simples sur l'affectation (2)
Donnez les valeurs des variables A et B après exécution des
instructions suivantes ?
Variables A, B : Entier
Début
A←1
B←2
A←B
B←A
Fin
08/12/21 M.HAMLICH 41
Exercices simples sur l'affectation (3)
Ecrire un algorithme permettant d’échanger les
valeurs de deux variables A et B
08/12/21 M.HAMLICH 42
Expressions et opérateurs
Une expression peut être une valeur, une variable ou une opération constituée de
variables reliées par des opérateurs
exemples: 1, b, a*2, a+ 3*b-c, …
L'évaluation de l'expression fournit une valeur unique qui est le résultat de l'opération
08/12/21 M.HAMLICH 43
Priorité des opérateurs
Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de
priorité est le suivant (du plus prioritaire au moins prioritaire) :
^ : (élévation à la puissance)
* , / (multiplication, division)
% (modulo)
+ , - (addition, soustraction)
08/12/21 M.HAMLICH 44
Les instructions d'entrées-sorties: lecture et écriture (1)
Les instructions de lecture et d'écriture permettent à la machine de
communiquer avec l'utilisateur
La lecture permet d'entrer des donnés à partir du clavier
08/12/21 M.HAMLICH 45
Les instructions d'entrées-
sorties: lecture et écriture
L'écriture permet d'afficher des résultats à l'écran (ou de les écrire
dans un fichier)
08/12/21 M.HAMLICH 46
Exemple (lecture et écriture)
Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis
qui calcule et affiche le double de ce nombre
Algorithme Calcul_double
variables A, B : entier
Début
écrire("entrer la valeur de A ")
lire(A)
B ← 2*A
écrire("le double de ", A, "est :", B)
Fin
08/12/21 M.HAMLICH 47
Exercice (lecture et écriture)
Ecrire un algorithme qui vous demande de saisir votre nom puis
votre prénom et qui affiche ensuite votre nom complet
Algorithme AffichageNomComplet
variables Nom, Prenom, Nom_Complet : chaîne de caractères
Début
écrire("entrez votre nom")
lire(Nom)
écrire("entrez votre prénom")
lire(Prenom)
Nom_Complet ← Nom & Prenom
écrire("Votre nom complet est : ", Nom_Complet)
Fin
08/12/21 M.HAMLICH 48
Exercice (respect des règles)
Chacun de ces quatre algorithmes contient une erreur. Laquelle?
Algorithme1 Algorithme2
Variables Variables
Quantité : entier X, Y, Z : réel
Prix_unit : réel Début
Début Lire (X, Y, Z)
Lire (Quantité, Prix_unit) Z :=X-Y
Prix_total := Quantité * Prix_unit Écrire (Z)
Écrire (Prix_total) Fin
Fin
Algorithme3 Algorithme4
Variables Variables
A1, A2: entier X : réel
A3 : réel Début
Début Lire (X)
Lire (A1, A2) X := X-1
A2 := A1 * A3 X :=Pi * X
Écrire (A2) Écrire (X)
Fin Fin
08/12/21 M.HAMLICH
5) Méthode de construction d’un algorithme simple
Exemple :
08/12/21 M.HAMLICH 50
Méthode de construction d’un
algorithme simple
Méthodologie a suivre :
constantes : Pi = 3.14159
Variables : Rayon, Surface
Types : Rayon, Surface : réel
Expressions et affectation : Surface := Pi * (Rayon)2
Structures conditionnelles et les boucles : ------
Opérations d’entrée-sortie : Lire (Rayon),
Écrire (Surface)
08/12/21 M.HAMLICH 51
Méthode de construction d’un
algorithme simple
Algorithme Programme C
Calcul_Aire #include <stdio.h>
Constantes #include <math.h>
Pi = 3,14159 #include <conio.h>
Variables #define PI 3.14159
Rayon, Surface : réels main()
Début {
lire (Rayon) float rayon, surface;
Surface := Pi * (Rayon)2 scanf ("%f", &rayon);
écrire (Surface) surface =PI*pow (rayon,2);
Fin printf ("%f\n",surface);
getch();
}
08/12/21 M.HAMLICH