Vous êtes sur la page 1sur 20

Institut Supérieure des Art Multimédias de la Manouba (ISAMM)

Algorithmique et Structure de
01001
Données (Niveau I) 00101
1110
Cours 00101
01100
Profil : Licence Informatique – Première Année 0

01010
00010
01000
11000
. . . . . . . 10 . . .

Elaboré par :
Année universitaire : 2020-2021 Mr. Kamel SMIRI
(Maitre Assistant à l’Institut Supérieure des Art Multimédias de la
Mannouba (ISAMM), Université de la Manouba)
Algorithmique et Structure de Données (ASD I)

Objectifs généraux
- Comprendre les concepts de base de l’algorithmique et de structure de données
- Maîtriser les outils et les techniques algorithmiques
- Utiliser la démarche algorithmique pour résoudre les problèmes informatiques.

Plan matière
Chapitre 1 : Généralité : Algorithmique et Définitions
Chapitre 2 : Les objets simples d’un algorithme
Chapitre 3 : Le schéma séquentiel
Chapitre 4 : Les structures conditionnelles
Chapitre 5 : Les structures de contrôle répétitives
Chapitre 6 : Les types composés : Les chaînes de caractères
Chapitre 7 : Les types composés : Les Tableaux
Chapitre 9 : La Décomposition modulaire : Procédures et Fonctions
Chapitre 10 : La Récursivité
Chapitre 11 : La Notion du Pointeur

A.U. : 2020-2021 Page 2 sur 20


CHAPITRE

1
Généralité : Algorithmique et Définitions

- Se familiariser avec les notions de base


d’algorithmique
Objectifs du chapitre - S’initier avec la démarche algorithmique.
- Connaître les caractéristiques d’un algorithme
Algorithme, démarche, ordinateur, information,

Mots clés du chapitre donnée, problèmes numérique, problèmes non


numériques, programme, compilation, exécution

Volume horaire estimatif 3 Heures


1. Généralités
1.1. Traitement de l’information
1.2. Caractéristique d’un problème informatique
1.3. Quelques exemples de problème
2. Notion d’algorithme
Eléments de contenu 2.1. Historique
2.2.Définitions d’un algorithme
2.3.Dossier algorithmique
2.4.Caractéristiques d’un algorithme
2.5.Les composantes d’un algorithme

A.U. : 2020-2021 Page 3 sur 20


1. Généralités :
1.1. Traitement de l’information :
- L’informatique est le traitement automatique de l’information par l’ordinateur.
- Une information est un élément de connaissance susceptible d’être coder, transmis et traiter.
Toute information est caractérisée par sa structure appelée syntaxe et son sens appelé
sémantique.
- Un ordinateur est une machine qui permet d’effectuer des traitements sur des données à
l’aide d’un programme. Les données (les paramètres du problème, par exemple le nombres
des étudiants du cours algorithmique) ainsi que le programme (calcul de la moyenne) sont
fournis à la machine par l’utilisateur au moyen d’un dispositif de saisie (clavier…). Le
résultat de traitement est requis à la sortie de l’ordinateur (écran, imprimante…).

1.2. Caractéristique d’un problème informatique :


Un ordinateur est démiellé d’intelligence, il ne peut donc résoudre que les problèmes pour
lesquels il existe une résolution algorithmique. C'est-à-dire une recette déterministe. De plus,
même si la recette existe en théorie, pour résoudre tel ou tel problème, encore faut il que
l’énoncé du problème (l’espace des paramètres) et l’ensemble de solution soient de dimension
finie en raison de la limitation en taille de la mémoire de la machine. Enfin, la mise en œuvre
d’un algorithme doit avoir une durée finie. Un problème dont la solution nécessite un temps
infini n’est pas considéré comme résoluble par ordinateur.

1.3. Quelques exemples de problèmes :


L’ordinateur fonctionne en binaire, mais il peut résoudre des problèmes autres que
numériques :
Exemples des problèmes numériques :
P1) Trouver le P.G.C.D. de deux entiers naturels.
P2) Enumérer les N premiers nombres premiers.
P3) Calculer le minimum, le maximum, la moyenne, l’écart type… d’une distribution
numérique.
P4) Calculer les zéros d’un polynôme à coefficients réels, tracer le graphe d’une fonction
numérique.
P5) Inverser une matrice carrée.
Exemples des problèmes non numériques :

4 - 20
P1) Trouver un mot dans un dictionnaire.
P2) Construire un arbre hiérarchique.
P3) Trier une liste des mots.
P4) Enumérer les parcours d’un graphe et trouver le plus court chemin entre deux
sommets donnés.
P5) Filtrer une image.

2. Notion d’algorithme :
2.1. Historique :
C’est vrai qu’aujourd’hui, la notion d’algorithme est très liée avec la machine, mais ces
concepts ont été formalisés depuis longtemps et avant l’apparition de l’ordinateur.
Historiquement, le mot algorithme provient du nom du mathématicien arabe Med IBN MUSA
ALKHAWARIZMI au XIXème siècle dans son ouvrage d’arithmétique : ALMUKTASAR FIL
AL-JABER WAL MUKABALA.

2.2. Définitions d’un algorithme :


Définition 1 :
C’est le résultat d’une démarche logique rien que pour résoudre un problème donné pour
aboutir à un résultat concret.
Définition 2 :
Un algorithme est une suite d’actions que devra effectuer un automate (ordinateur) pour
arriver en un temps fini à un résultat déterminé, que nous définirons par une post-condition.
La suite d’opérations sera composée d’actions élémentaires, ou instructions que nous allons
présenter par la suite.

2.3. Dossier algorithmique (démarche algorithmique) :


La démarche algorithmique de construction d’un programme peut se résumer par cinq étapes
de base :
1) Analyse du problème (formulation): Enoncer clairement et complètement le problème
à résoudre c'est-à-dire formuler le problème et définir ce qui ou quoi et non comment.
Définir les données d’entrée et de sortie (résultat).
Définir la liaison entre les deux (entrée et sortie).
2) Conception (principe générale de résolution):
Expliquer toutes les solutions possibles,

5 - 20
Préciser la meilleure méthode de résolution choisie et justifier la raison de ce choix
(dire pourquoi)
3) Environnement d’un algorithme :
Un algorithme est une suite d’actions manipulant des objets,
Un objet peut être une constante ou une variable,
Une variable est un triplet (identification, classe, type)
• Identification : nom qui permet de la désigner tout au long de l’algorithme,
• Type : est constitué par un ensemble de valeur qui peut prendre la variable et
par des opérations définies sur cet ensemble,
• Classe : on distingue trois classes :
Variable d’entrée (données) : on s’intéresse à leurs états initiaux.
Variable de sortie (résultats) : c’est l’algorithme qui affecte la valeur.
Variable intermédiaire : n’existent que pendant l’exécution.
4) Ecriture de l’algorithme : Structurer ce formalisme à l’aide des schémas de
programme : on obtient alors l’algorithme proprement dit.
5) Traduction de l’algorithme dans un langage de programmation : avant de faire traiter
un algorithme par un ordinateur il faut le traduire dans le seul langage compréhensible
par la machine (langage binaire). Ce passage se fait via un langage de programmation
(de haut niveau) et un programme spécial (compilateur). Les compilateurs sont
capables de convertir un programme écrit dans un langage de haut niveau en code
binaire exécutable par la machine. Une fois compilé, le programme (s’il est
syntaxiquement correct) peut être exécuté plusieurs fois. Le résultat de son exécution
dépend des variables d’entrées fournies. Toute la difficulté de la résolution réside dans
l’étape de la recherche d’un algorithme.

Algorithme
-- (Langage naturel)
--
Programmation
Programme Source
(Langage de haut niveau)
Compilation
Programme Exécutable
(Langage binaire)
Exécution

Résultat

6 - 20
2.4. Caractéristiques d’un algorithme :
Clarté (non ambiguïté): L’algorithme ne doit pas présenter des ambiguïtés (instruction
interprétable de plusieurs manières). En ce sens "tous les exécutants qui ont le même savoir
faire sont équivalents". Ce principe appliqué à l’informatique rend tous les ordinateurs
équivalents de point de vue des algorithmes. Un algorithme est ambigu s’il présente plusieurs
solutions possibles, dont l’interprétation est incertaine.
Déterminisme (non aléatoire) : Pour des données fixes, l’algorithme fourni le même résultat
pour tout le moment de son exécution et quelque soit la machine utilisée solution unique.
Finition : L’algorithme doit se terminer quelle que soit la machine, le temps et la date
d’exécution en un nombre fini d’instructions.
Efficacité : L’algorithme doit effectuer le travail demandé avec le minimum de ressources
(temps, moyens ). En générale, il y a un compromis entre le temps d’exécution et la mémoire.
C'est-à-dire, pour minimiser le temps d’exécution, on occupe plus d’espace mémoire.
Réalisation : Les instructions doivent être réalisables à partir des instructions de base qui sont
donnés comme suit : lire une information – écrire une information – comparer deux
informations – effectuer les opération arithmétiques – répéter plusieurs fois une information.
Exemple : Recherche d’un mot dans un dictionnaire ;
- Méthode 1 : recherche séquentiel du dictionnaire trop long, méthode sans efficacité.
- Méthode 2 : rechercher la zone du dictionnaire contenant tous les mots qui commencent
par la même lettre que le mot recherché temps plus court.
- Méthode 3 : recherche dichotomique, puisque le dictionnaire est ordonné, temps
réduit et méthode efficace.

2.5. Les composantes d’un algorithme :


Le Schéma d’un algorithme peut se présente de la manière suivante :
Nom de l’algorithme, les paramètres donnés et les paramètres résultats
Début
Corps (formés d’une suite ordonnée de schémas de programmes)
Fin
Commentaires (ils sont mis entre accolades)
Remarque : les schémas de programmation sont de 3 types :
- séquentiel
- conditionnel
- itératif

7 - 20
CHAPITRE

2
Les objets simples d’un algorithme

- Définir les différents objets qu’on manipuler dans un


Objectifs du chapitre algorithme ainsi que leurs types et leurs opérations.
Variable, constante, type, expression, entier, réel,
Mots clés du chapitre booléen, caractère, chaîne, énuméré, ordinal, intervalle

Volume horaire estimatif 3 h CI + 3 h TD


1. Introduction
2. Représentation des objets
3. Constantes et variables
3.1. Les constantes
3.2. Les variables
4. Les types simples d'objets
4.1. Le type réel
4.2. Le type booléen
4.3. Le type caractère
4.4. Le type chaîne de caractère
Eléments de contenu 4.5. Le type énuméré
4.6. Le type intervalle
4.7. Le type tableau
5. Les expressions arithmétiques et logiques
5.1. Structure d’une expression
5.2. Evaluation d’une expression
5.3. Quelles sont les expressions valides
5.4. Simplification des expressions booléennes
5.5. Formes d’une expression
6. Conclusion

8 - 20
1. Introduction :
Un algorithme manipule des objets qui représentent des données ou des résultats. Ces objets
peuvent être des constantes ou des variables, de type simple ou de type structuré.

2. Représentation des objets :


Un objet est caractérisé par :
1- Un identificateur : suite des caractères alpha-numérique commençant obligatoirement par une
lettre. Exemples : nbr_etudiants, x, V1 …
2- Sa classe : constante, variable (d’entrée, de sortie, intermédiaire),
3- Son type : exprime le domaine des valeurs possibles et les opérations auxquelles on peut
soumettre l’objet,
4- Rôle : relatif à un algorithme donné.

3. Constantes et variables:
3.1. Les constantes :
Une constante est un objet dont l'état reste inchangé tout le long d'un algorithme. Seul la
consultation est autorisée sur une constante. Une constante est définie par son nom et sa valeur.
Exemple: PI = 3.14; Annee = 2003; e = 2.72;

3.2. Les variables :


Une variable est un objet dont le contenu peut être soit consulté soit modifié par une action tout le
long d'un algorithme. Une variable est définie par son nom, son type et son contenu.

4. Les types simples d'objets :


Types simples

Prédéfinis construit

Ordinal réel chaîne Enuméré Intervalle

Booléen Entier Caractère

9 - 20
Remarque : un type est dit ordinal lorsqu’on peut énumérer ses valeurs. C’est ordonné
existence d’une relation totale ( exemple < ,> …)
Pred( val ) : donne accès au précédent de val
Succ( val ) : donne accès au suivant de val
Rang( val ) : donne le rang du val dans le domaine.

Un type a pour rôle de caractériser l'ensemble des valeurs qui sont manipulées lors de l'exécution.
Un type est parfaitement défini par :
- Son nom,
- L'ensemble des valeurs que peut prendre l'objet,
- Les opérations que l'on peut effectuer sur cet objet.
Les types les plus connus sont désignés par des identificateurs qui sont:
- le type entier;
- le type réel;
- le type booléen;
- le type caractère;
- le type chaîne de caractère.

4.1. Le type entier :


Désigne les valeurs des nombres entiers relatifs. Les valeurs de type entier formant un sous-
ensemble des nombres entiers.
Un entier est représenté par un nombre fixe d'octets (mot machine). C’est pour cette raison que
l'ensemble des entiers dans un ordinateur est compris entre un minimum et un maximum.
Exemple: Nous supposons que les entiers dans une machine sont représentés par un octet avec le
bit le plus à gauche est réservé pour le signe.
On peut représenter 28 entiers.
27 26 25 24 23 22 21 20

Bit de signe
Bit de signe = 0 si entier ≥0 ;
Bit de signe = 1 si entier < 0 ;

10 - 20
Maxent = 27 ;
Minent = -27;
Les opérateurs arithmétiques sur les entiers
Les opérateurs arithmétiques sur les entiers:
- les opérateurs arithmétiques usuels ( +; -; * ;/)
- Div : donne le quotient de la division entière ;
- Mod : donne le reste de la division entière.

4.2. Le type réel :


Désigne les valeurs des réels. Les valeurs de type réel forment un sous-ensemble de l'ensemble
des nombres réels.
Les fonctions arithmétiques standard
Soit X un paramètre de type entier ou réel
Tronc (X) : supprime la partie décimale ;
Arrondi (X) : donne un entier qui est la valeur du réel X arrondie à la plus proche valeur ;
Abs (x) : donne la valeur absolu de X ;
Carré (X) : donne le carré de X ;
Sin (X) : donne le sinus de X ;
Exp (X) : donne l’exponentielle de X ;
Ln (X) : donne le logarithme népérien de X ;
Racine (X) : donne la racine carrée si X > 0 sinon erreur.

4.3. Le type booléen :


Le type booléen ne peut pendre qu’une des 2 valeurs logiques, vrai ou faux, qui sont des
constantes prédéfinies.
Les opérateurs relationnels
Pour comparer deux variables de type logique on utilise seulement = et <> .
Les opérateurs logiques
Negation : Non ;
Conjonction : ET ;
Disjonction : OU ;
Ou exclusif : Ouex.

11 - 20
La table de vérité :
X Y Non (X) X ET Y X OU Y X Oex Y
F F V F F F
F V V F V V
V V F V V F
V F F F V V

4.4. Le type caractère :


Une variable de type caractère contient un et un seul caractère. Les caractères peuvent être des
lettres en majuscule ou en minuscule, des chiffres ou des symboles.
Les Opérateurs relationnels
Comme les valeurs du type caractère sont ordonnées, les opérateurs relationnels y définis.
Exemple : y< z ; 8< 9 ; ?< A.
Les fonctions prédéfinies
Ord (c) : envoie le code ASCII du caractère C ;
CHR (X) : renvoie le caractère dont le code ASCII est X ;
SUCC (C) : renvoie le successeur de C s’il existe ;
PRED (C) : renvoie le prédécesseur de C s’il existe ;
MAJUS (C) : convertie le caractère C en majuscule s’il est possible.

4.5. Le type chaîne de caractère :


Une chaîne de caractère est une succession de n caractères avec n compris entre 0 et 255.
Pour éviter de confondre une chaîne de caractère du nom d’une variable on le met entre deux
apostrophes qui délimitent son début et sa fin et ne seront pas considérés comme faisant patrie
de la chaîne.
Les fonctions et les procédures standard sur la chaîne
CONCAT (ch1, ch2, …, chn) : retourne la concaténation des chaînes ch1, ch2…chn.
LONG (ch) : retourne la longueur en caractère de la chaine.
Sous- chaîne (ch, p, nbc) : retourne une sous chaîne d’une longueur nbc à partir de la position p
dans ch.

12 - 20
POS (ch1, ch2) : retourne la position de la chaîne ch1 dans la chaîne ch2, si ch1 n'est pas dans
ch2, elle retourne 0.
Efface (ch, p, n) : enlève n caractère de la chaîne ch à partir de la position p.
Insère (ch1, ch2, p) : insère la chaîne ch1 dans la chaîne ch2 à partir de la position p.
Convch (n, ch1) : converti un nombre n en chaîne de caractère dans la variable.

4.6. Le type énuméré :


Définit un ensemble ordonné de valeurs désignées par des identificateurs.
Utilisation : définition en extension d’un domaine.
Syntaxe : t_enumere = (val1, val2 … valn)
Exemple : Jours = (lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche)
Meuble = (chaise, table, fauteuil, armoire, lit)
Sexe = (féminin, masculin)
Remarque : on ne peut ni lire ni afficher une variable de type énuméré.
Opérations et fonctions : même fonction que les types ordinaux (pas d’opérations spécifiques)
Exemple : Succ(lundi) = mardi, rang (table) = 2, pred(masculin) = féminin

4.7. Le type intervalle :


On peut définir un intervalle ordonné par 2 valeurs prises dans un type prédéfini ordonné (entier,
réel, énuméré). On se contente d’indiquer les limites, inférieur et supérieur, séparées par deux
points successifs.
Utilisation : sous-ensemble d’un type ordonné (contrôle du domaine des valeurs)
Syntaxe : t_intervalle = val_min .. val_max
Exemple : Indice =1..10 ;
Seconde =0..59 ;
Salon =chaise .. Fauteuil ;
Minuscule = ‘a’ .. ‘z’
Weekend = samedi .. dimanche

4.8. Le type tableau :


Un tableau (ou vecteur) est une structure linéaire qui permet de stocke des données de même
type.

13 - 20
Chacune des cases constituant le tableau est reprise par un indice indiquant la position (rang) de
la donnée.
Déclaration :
Tab : tableau [1..5] d’entier ;
Exemple :
Les moyennes de 8 élèves d’une classe sont stockées dans le tableau de dimension 8 suivant :
Nom du tableau : Moy ;
Moy
13 10 5.5 10 7 18 14.5 9
1 2 3 4 5 6 7 8
Case d’indice 1
contenant la moyenne du premier élève Moy [1]

5. Les expressions arithmétiques et logiques :


5.1. Structure d’une expression :
La structure d’une expression permet de d’évaluer une valeur (typée) à partir d’une combinaison
d’opérateurs (typés) et d’opérandes (typés).
Exemple : 1+2*3 , NON (cond1 ET cond2) , (x<4) ET (x>sin(y))
Parité des opérateurs et syntaxe :
- Un seul opérande opérateur unaire : exemple : -6 , Non cond
- Deux opérandes opérateur binaire : exemple : 1+6 , Non cond1 ET cond2
Profil des opérateurs : Nom – type et place des opérandes type résultat
Exemples : Inverse d’une expression Non - : booléen booléen
Egalité de deux nombres - = - : nombre x nombre booléen

5.2. Evaluation d’une expression :


Une expression est évaluée de gauche à droite.
Ordre prédéfini de priorité des opérateurs (4 niveaux de priorité)
Priorité + Priorité 1 : ˆ , - (unaire) , + (unaire) , Non (évaluer de droite à gauche)
Priorité 2 : * , / , div , mod , et
Priorité 3 : + , - , ou
Priorité - Priorité 4 : opérateurs relationnels < , > , = , <> , >=, <= …

14 - 20
Exemples : 1+2*3 = 7 et non pas 9
Remarque : on peut utilisé un parenthèse explicite pour forcer une priorité.
Exemples : 1+2*3 = 7 , 1+(2*3) = 7 , (1+2)*3 = 9

5.3. Quelles sont les expressions valides :


Etude des cartes syntaxiques
Exemple : -4 * sin(y) / z – x * (z-1) correcte
Sin(y)z incorrecte
5.4. Simplification des expressions booléennes :
Soient P, Q et R trois variables booléennes :
1) Commutativité : P ET Q = Q ET P P OU Q = Q OU P
2) Associativité : P ET (Q ET R) = ( P ET Q) ET R P OU (Q OU R) = ( P OU Q) OU R
3) Distributivité : P ET (Q OU R ) = (P ET Q) OU (P ET R)
P OU (Q ET R ) = (P OU Q) ET (P OU R)
4) Loi de Morgan : NON (P ET Q) = NON P OU NON Q
NON (P OU Q) = NON P ET NON Q
5) Loi de négation : NON (NON P) = P
6) Loi de milieu exclu : P OU (NON P) = VRAI
7) Loi de contradiction : P ET (NON P) = FAUX
8) Lois de simplification de ET et OU :
P OU P = P P ET P = P
P OU FAUX = P P ET FAUX = FAUX
P OU VRAI = P P ET VRAI = P
APPLICATION :
Montrer que : 1) P OU (P ET Q) = P
2) P ET (P OU Q) = P

5.5. Formes d’une expression :


Une expression peut être représentée sous trois formes différentes :
a- Forme in-fixée ( forme usuelle) : op_unaire - exemple : - 2
- op_binaire - exemple : 3 + 2
b- Forme post-fixée : opérateur après opérandes

15 - 20
Règle : Commencer par prenthéser (respecter les priorités d’opérateurs) et puis mettre à chaque
‘)’l’opérateur le plus proche.
Exemples : forme in-fixée forme post-fixée
x+y xy+
x+y*z xyz*+
(x + y) * z xy+z*
(x +y) * (z + t) xy+zt+*

c- Forme pré-fixée : opérateur avant opérandes


Exemples : forme in-fixée forme pré-fixée
x+y +xy
x+y*z +x*yz
(x + y) * z *+xy z
(x +y) * (z + t) *+xy+zt

6. Conclusion :

16 - 20
CHAPITRE

3
Le schéma séquentiel

- Comprendre les différentes composantes des


Objectifs du chapitre instructions simples (lecture, écriture et affectation)

Mots clés du chapitre Affectation, lecture, écriture

Volume horaire estimatif 3 Heures

1. Instructions élémentaires
1.1. Affectation
2.2. Instruction d’entrée : Lecture
Eléments de contenu 3.3. Instruction de sortie : écriture/affichage
4.4. Exercice d’application
2. Schéma séquentiel

17 - 20
1. Instructions élémentaires :
1.1. Affectation :
L’instruction la plus élémentaire est l’affectation notée  qui permet d’initialiser une variable ou
d’en changer la valeur.
Syntaxe : id_variable  expression
Remarques : 1) La variable affectée et l’expression doivent être de types compatibles.
2) L’expression à droite de la flèche doit être complètement évaluée puis affectée
à la variable située à gauche.
3) Une variable est représentée par une case mémoire (un ou plusieurs cellules)
susceptible de renfermer une vaeur.
Exemples : A, B ,D : entier ;
C : booléen ;
lettre : caractère ;
A5;
B2;
A B C D lettre
AA–B; 53 2 vrai 79 79
CA>B;
lettre  ‘N’ ; Code ASCII de ‘N’
D  ord(lettre) ;

1.2. Instruction d’entrée : Lecture


Lire (V), permet de demander à l’utilisateur une valeur de la variable V. La source de lecture est
par défaut le clavier ou toute autre source d’Entrée/Sortie.
Syntaxe : Lire (var1, var2, … varn) ; équivalent à lire (var1) ;
lire (var2) ;
lire (var2) ;
…….
lire (varn) ;
Lecture versus affectation :
Lire (A , B) ; A5;
VS B2;
AA–B; AA–B;
Le résultat dépend des valeurs Initialisation fixe toujours le
entrées par l’utilisateur même résultat
18 - 20
L’instruction lire (A) correspond aux opérations suivantes :
- Attendre : le programme est interrompu en attente d’une valeur saisie par l’utilisateur.
- Accepter : saisie de la valeur
- Affecter : la valeur entrée par l’utilisateur est attribuée à la variable

1.3. Instruction de sortie : écriture/affichage :


Les sorties regroupent toutes les opérations d’affichage ou d’écriture des données. La destination
d’écriture est par défaut l’écran, elle pourra être aussi les autres organes de sortie.
Syntaxe : Ecrire(var1, var2, … varn) ; équivalent à ecrire (var1) ;
ecrire (var2) ;
ecrire (var2) ;
…….
ecrire (varn) ;
Exemples :
- Affichage d’un commentaire ou message ; le message à afficher doit être mis entre
guillemets : Ecrire (‘‘Bonjour’’) ;
- Affichage du contenu d’une variable :
X 474
Ecrire (X) ; (affiche 474)
Ecrire (‘‘X’’) ; (affiche X)
Affichage mixte : Ecrire (‘‘ la valeur de X est : ‘‘, X) ; {affiche : la valeur de X est : 474}

1.4. Exercice d’application :


Soient trois variables numériques saisie à partir de l’entrée standard (clavier), écrire un
algorithme qui permet de faire leur permutation et affiche le résultat.
Analyse : - entrées : A, B , C entiers
- sortie : A, B, C dont le contenu et le résultat d’une permutation à droite
- rôle : échanger les valeurs entre trois variables.
Principe 1 : utiliser une variable intermédiaire.

A B C Aux

19 - 20
Principe 2 : faire la somme de toutes les variables puis chercher le complémentaire de chacune
dans la somme.
Environnement 1 : A, B, C : entier ; {VE/S à échanger les valeur}
Aux : entier ; {VI pour sauvegarder la valeur de A avant de l’écraser}
ALGORITHME echange3 (A, B, C A, B, C)
Début
Lire (A, B, C);
Ecrire (‘‘les valeurs de A, B et C avant l’échange sont : ‘‘ , A, B, C) ;
Aux  A; Ce traitement est équivalent à
A  A + B + C;
A  B;
BA–B–C;
B  C; CA–B–C;
AA–B–C;
C  Aux;
Ecrire (‘‘les nouvelles valeurs de A, B et C après l’échange sont : ‘‘ , A, B, C) ;
Fin

2. Schéma séquentiel :
Un traitement est dit séquentiel si l’exécution se fait dans l’ordre naturel. Les instructions
d’affectation, de lecture et d’écriture sont s’exécute d’une manière séquentielle c'est-à-dire ils
n’influencent pas sur le séquencement du programme. Dans les chapitres qui suivent, nous allons
voir les instructions de contrôle et d’itération répétitive qui change l’ordre d’exécution des
instructions dans un programme.

20 - 20