Computing">
[Go to site: main page, start]

0% ont trouvé ce document utile (0 vote)
14 vues33 pages

Introduction à l'Algorithme et Structures

Le document présente un cours sur les algorithmes à l'Université Chouaib Doukkali, couvrant les concepts fondamentaux, la structure d'un algorithme, et les types de données. Il aborde également la conception d'algorithmes, les instructions de programmation, et les opérations sur les tableaux. Enfin, il inclut des exercices pratiques pour renforcer les compétences des étudiants en informatique de gestion.

Transféré par

alirayanessabri
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
14 vues33 pages

Introduction à l'Algorithme et Structures

Le document présente un cours sur les algorithmes à l'Université Chouaib Doukkali, couvrant les concepts fondamentaux, la structure d'un algorithme, et les types de données. Il aborde également la conception d'algorithmes, les instructions de programmation, et les opérations sur les tableaux. Enfin, il inclut des exercices pratiques pour renforcer les compétences des étudiants en informatique de gestion.

Transféré par

alirayanessabri
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

UNIVERSITÉ CHOUAAIB DOUKKALI-EL JADIDA Année Universitaire : 2018/2019

École Nationale de Commerce et de Gestion

FILIÈRE : Tronc Commun


MODULES : Instruments Quantitatifs I & II
MATIÈRES : Informatique de Base & Informatique de gestion I

–– 1ère Année — —
Semestres 1

ALGORITHME

Pr. M. EL HAMZAOUI
& F. BENSALAH
// Université Chouaib Doukkali – EL Jadida // // ENCG-J // //Algorithme//

TABLES DES MATIERES


Avant propos ………………………………………………………………………………. 01

PARTIE 1 : GENERALITES ET STRUCTURE D’UN ALGORITHME 02

Chapitre 1 : NOTIONS ET DEFINITIONS UTILES …..……………………………… 03

I- Notion d’information ……………………………………..…………………………… 03


II- Classes d’information …………..……………………….……………………………. 03
III- Structure d’un ordinateur ……………………………….……………………………. 04
IV- Compilation et interprétation de programmes ……………………………………….. 05

Chapitre 2 : CONCEPTION D’UN ALGORITHME ………….………………………. 06

I- Définitions d’Algorithme………………………………………………………………. 06
II- Structure générale d’un Algorithme ……………………………………………...…... 06
III. Déclaration des objets ………………………………………………………………... 08
III.1. Constantes ……..……………………………………………………………... 08
III.2. Variables ……..…………………………………………………………..……. 08
a. Type Entier ………………………………………………………………….. 09
b. Type Réel …………………………………………………………..……….. 09
c. Type Chaîne de caractères ………………………………………………...… 09
d. Type Caractère ……………………………………………………………… 10
e. Type Booléen ………………...……………………………………………… 10
III.3. Tableaux ……….……………………………………………………………... 10
III.4. Procédures et fonctions ……….……………………………………………… 11
IV. Manipulation des objets ……….……………………………………………………... 12
IV.1. Instructions de dialogue Homme-Machine ………..………………………….. 12
IV.2. Instruction d’affectation …………..…………………………………………... 15
IV.3. Instructions à structure alternative …………………………………………….. 16
a. Conditions …………..……………………………….….…………………... 16
b. Opérateurs ……………..………………………….….……………………... 16
b.1. Opérateurs arithmétiques …………….………….…………………….. 16
b.2. Opérateurs de comparaison …….……………………………………… 16
b.3. Opérateurs logiques …………………..…..…………………………… 17
c. Instruction Si ………………...……………………………………………... 17
d. Instruction Suivant Cas ………..…………………………………………... 19
IV.4. Instructions à structure répétitive ………………………………………………. 20
a. Instruction Tant que ………………………………...……………………….. 21
b. Instruction Faire jusqu’à …………………………..….……………………... 23
c. Instruction Pour ………...……………………………………………………. 24

Pr. M. El Hamzaoui & F. BENSALAH #i# Année Universitaire : 2020-2021


// Université Chouaib Doukkali – EL Jadida // // ENCG-J // //Algorithme//

PARTIE 2 : TABLEAUX, FONCTIONS ET PROCEDURES 25

Chapitre 3 : TABLEAUX ……………………………………………………………… 26

I- Définition ……………………………………………………………………………… 26
II- Tableau à une dimension …………………………………………………………….. 26
II.1. Problème simple ………………………………………………………………… 26
II.2. Opérations sur les tableaux ..…………………………………………………… 27
a- Somme des éléments de deux tableaux ………………………………………… 27
b- Maximum, minimum et la moyenne des éléments d’un tableau ……………….. 28
c- Fusion de deux tableaux ……………………………………………………….. 29
d- Tri d’un tableau …………………...……………………………………………. 30
d.1. Tri par échange ………….…………………………………………………. 31
d.2. Tri par insertion ……….…………………………………………………... 32
e- Recherche Dichotomique ……………………………………………………….. 33
III- Tableau à deux dimensions…………………………………………………………… 34
III.1. Lecture et l’affichage d’une matrice …………………………………………….. 34
III.2. Opérations sur les matrices ……………………………………………………… 35
a- Somme de deux matrices ………………..……………………………………… 35
b- Produit de deux matrices ……..………………………………………………… 36

Chapitre 4 : PROCEDURES ET FONCTIONS ……..………………………………… 38

I. Problème et besoins …..………………………………………………………………… 38


II. Procédures ………...…………………………………………………………………… 39
III. Fonctions ……...………………………………………………………………………. 42

Partie 3 : Enoncés des exercices 44

I- Déclaration des objets et les instructions de dialogue homme machine ….…………… 45


II- Affectation ……………………………………………………………………………. 45
III- Instructions Si et cas Suivant Cas ………………………………………………….. 45
IV- Instructions à structure répétitive ……………………………………………………. 46
V- Tableaux ……………………...………………………………………………………. 48
VI- Procédures et fonctions ……………………………………………………………… 49

Pr. M. El Hamzaoui & F. BENSALAH # ii # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Avant propos

Certains voient, à tort, dans l'ordinateur une machine pensante et intelligente,


capable de résoudre bien des problèmes. En fait, celui-ci ne serait capable de rien si
quelqu'un (le programmeur en l'occurrence) ne lui avait fourni la liste des actions à
exécuter. Cette description doit être faite de manière non ambiguë car il ne faut pas
s'attendre à la moindre interprétation des ordres fournis. Ils seront exécutés de
manière purement mécanique.

De plus, les opérations élémentaires que peut exécuter un ordinateur sont en


nombre restreint et doivent être communiquées de façon précise dans un langage qu'il
comprendra. Le problème principal de l'utilisateur est donc de lui décrire la suite des
actions élémentaires permettant d'obtenir, à partir des données fournies, les résultats
escomptés. Cette description doit être précise, envisager le moindre détail et prévoir
les diverses possibilités de données.

Cette marche à suivre porte le nom d'algorithme dont l'Encyclopaedia Universalis


donne la définition suivante:

" Un algorithme est une suite finie de règles à appliquer dans un ordre déterminé à un nombre fini de
données pour arriver, en un nombre fini d'étapes, à un certain résultat, et cela indépendamment des
données. "

Le mot algorithme provient du nom d'un célèbre mathématicien arabe de la


première moitié du IXe siècle: Muhammad ibn Musa al Khwarizmi.

Le rôle de l'algorithme est fondamental. En effet, sans algorithme, il n'y aurait


pas de programme (qui n'est jamais que sa traduction dans un langage compréhensible
par l'ordinateur). De plus, les algorithmes sont fondamentaux en un autre sens: ils sont
indépendants à la fois de l'ordinateur qui les exécute, des langages dans lequel ils sont
énoncés et traduits.

@ Référence : [Link]

Pr. M. El Hamzaoui & F. BENSALAH # 1/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

PARTIE 1 : Généralités et Structure d’un algorithme

Chapitre 1 :
NOTIONS ET DEFINITIONS UTILES
Chapitre 2 :
CONCEPTION D’UN ALGORITHME

Pr. M. El Hamzaoui & F. BENSALAH # 2/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Chapitre 1 :
NOTIONS ET DEFINITIONS UTILES

I- Notion d’information :
- Définition :
Une information est tout renseignement (ou toute donnée) permettant d’augmenter notre niveau de
connaissance sur un sujet bien déterminé. Cet aspect n’est pas mesurable, par conséquent on est obligé
de chercher à définir son aspect quantitatif :

Information = «Sujet + Propriétés + Valeurs»

- Exemple :

Un étudiant de l’ENCG-J est identifié, par exemple, par les propriétés suivantes dont chacune
possède une et une seule valeur :

Sujet Propriétés Valeurs

Nom Moutale
Prénom Othmane
Etudiant CNE …………………..
Niveau Première année – S1
Adresse …………………..
Age 17
etc. ..

- Remarque: les propriétés associées à un sujet dépendent de l’application pour laquelle elles sont
destinées. Par conséquent leur nombre est fini.

II- Classes d’information :

Les informations utilisées par les programmeurs sont réparties en plusieurs classes. Dans ce cours,
nous nous intéresserons seulement aux trois classes suivantes :
1°- Donnée :
§ Définition : On appelle donnée toute information obtenue sans calcul.

§ Exemple :
- La quantité achetée et le prix unitaire d’un produit.
- Le nom et le prénom d’un étudiant.
- La date d’embauche d’un employer.
2°- Sortie :
§ Définition : On appelle sortie toute information obtenue à partir de l’application d’une règle
sur des données.

§ Exemple :
- Le montant à payer est une sortie :

Prix unitaire (PU)


Application des règles Montant à payer
Quantité commandée
Pr. M. El Hamzaoui & F. BENSALAH # 3/49 # Année Universitaire : 2020-2021
//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

3°- Instruction :
§ Définition : On appelle instruction toute information qu’on doit appliquer sur les données
pour avoir les sorties.

III- Structure d’un ordinateur :

Comme nous l’avons vu dans la partie architecture des ordinateurs de l’élément de module
informatique de base, un ordinateur est composé d’un certain nombre de composantes matérielles et
logicielles. Dans cette section, nous présentons quelques concepts qui apparaissent intéressants et
indispensables pour un programmeur.
1°- Ordinateur :

§ Définition : Un ordinateur est une machine électronique qui permet de réaliser les traitements de
l’information à base des algorithmes. C’est à dire qu’il est capable d’exécuter les
instructions de l’algorithme. Par conséquent, il doit être constitué d’un certain nombre
d’unités (unités d’entrée, unités de sortie, unité de traitement etc…..) afin d’assurer cette
exécution.

2°- Unité de traitement :

§ Définition : On appelle unité de traitement ou unité centrale de traitement (UCT) toute unité qui
permet d’exécuter le code des instructions d’un algorithme d’une manière automatique
et à partir des données introduites permet d’avoir les sorties.

3°- Unité d’entrée :

§ Définition : On appelle unité (organe ou périphérique) d’entrée toute unité capable d’assurer la
circulation des informations de l’extérieur (utilisateur) vers l’intérieur de l’unité
centrale.

4°- Unité de sortie :

§ Définition : On appelle unité (organe ou périphérique) de sortie toute unité qui permet de
transmettre à l’extérieur de l’unité centrale les résultats d’un algorithme.

5°- Langage de programmation :

§ Définition : On appelle langage de programmation tout ensemble fini de mots réservés qui
permettent de traduire les instructions de l’algorithme afin de l’exécuter par
l’ordinateur.

§ Exemple : Turbo Pascal, Cobol, Fortran, C, Delphi, Visuel Basic (VB), C++, Java etc.

6°- Mémoire centrale :

§ Définition : On appelle mémoire centrale (ou RAM) tout dispositif matériel capable de stocker à
l’intérieur de l’unité centrale des informations d’une manière spontanée (mémoire
volatile).
N.B : Toute information absente de la mémoire centrale (RAM) est ignorée par le microprocesseur,
étant donné que la RAM ne peut pas conserver les données d’une manière prolongée. Ces
dernières peuvent être stockées, d’une manière permanente, sous forme de fichiers sur une
unité de stockage convenable (mémoires de masse).

Pr. M. El Hamzaoui & F. BENSALAH # 4/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

7°- Langage assembleur :

§ Définition : Le langage Assembleur est un langage qui utilise des instructions sous forme
symbolique (ADD, MOVE, etc.). L’assembleur est lié au microprocesseur, puisque
c’est le seul langage que le microprocesseur comprend.

8°-Langage évolué :

§ Définition : Un langage évolué est un langage de programmation qui permet de traduire les
instructions d’un algorithme à l’aide d’un ensemble de mots réservés et de règles.
Pour obtenir un nouvel ensemble d’instructions non exécutables directement par
l’ordinateur on parle de programme source.

IV- Compilation et interprétation de programmes :

Etant donné qu’un programme source n’est pas exécutable directement, on a besoin de le traduire à
son tour en langage binaire (langage machine). Pour cela on a besoin d’un compilateur.

a- Définition :

On appelle compilateur tout programme spécial qui permet d’avoir un programme exécutable à partir
d’un programme source. Le programme ainsi obtenu est appelé programme Objet.

b- Différentes phases de construction d’un programme :

Pour informatiser un problème et le rendre également exploitable à travers une machine, ce dernier
doit parcourir différentes étapes importantes. Chaque étape est caractérisée par ses propres règles de
traitement, sa logique et sa position précise :

Enoncé non précis : Problème informel


Spécification
Niveau
Enoncé précis : Problème formel
utilisateur
Analyse
Algorithme
Programmation
Langage de programmation : Pascal, ..
Compilation
Niveau
Exécutable du programme
Machine
Exécution
Résultat

Pr. M. El Hamzaoui & F. BENSALAH # 5/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Chapitre 2 :
CONCEPTION D’UN ALGORITHME

I- Définitions d’Algorithme :

Le concept d’algorithme a plusieurs définitions qui gravitent toutes autour d’une même idée. Nous
présentons ci-après deux de ces définitions :
- Définition 1 :

C’est un pseudo-langage qui a été conçu pour résoudre les problèmes et applications sans aucune
contrainte due aux langages de programmation et aux spécificités de la machine. Ce pseudo-langage
sera ensuite traduit et codé dans le langage de programmation désiré.

- Définition 2 :

Un algorithme est une procédure de calcul qui est non ambiguë, déterministe, finie (durée d’exécution
finie) et exprimée en termes d’instructions élémentaires exécutables. Il permet également d’avoir les
sorties une fois qu’il est appliqué sur les données.

II- Structure générale d’un Algorithme :

Avant de commencer la structure générale d’un algorithme, il nous parait très important d’essayer de
comprendre premièrement, à travers un exemple simple, le concept d’algorithme.
- Problème :
Supposons que notre problème consiste à informatiser la solution mathématique d’une équation du 1er
degré de la forme ax+b=0 (a et b sont deux valeurs quelconques). Si nous demandons à n personnes de
nous proposer chacune une équation du 1er degrè à résoudre, nous pourrons obtenir ainsi n paires (a,b)
différentes. Notre objectif est de donner pour chaque paire (a,b) la solution correspondante.

- Solution :
Pour ne pas reprendre chaque fois la même procédure de calcul pour déterminer la solution x de
l’équation ax+b=0, il suffit de trouver un moyen qui reçoit chaque paire (a,b) et la manipule, en
suivant des règles bien déterminées, pour retourner la solution attendue :

Données : Manipulation Sortie :


(a,b) déclarée valeur de x
par le programmeur retournée

En somme, cette procédure représente l’utilité ainsi que le principe d’un algorithme qui est l’analyse et
le traitement des solutions des problèmes, tout en respectant un certain nombre de règles et de
conventions d’analyses bien précises, afin de les informatiser et les rendre automatique sur
l’ordinateur.
En général, un algorithme est constitué de trois parties dont les deux dernières sont très importantes :
1ère partie : Cette partie concerne la présentation de l’objectif de l’algorithme en utilisant le minimum
de mots possible (le plus petit résumé possible de l’objectif de l’algorithme).
ème
2 partie : Cette partie sert à définir les différents objets à manipuler par l’algorithme.
3ème partie : Cette dernière partie est consacrée à la manipulation des objets définis au niveau de la
deuxième partie pour pouvoir dégager les résultats attendus de l’algorithme.

Pr. M. El Hamzaoui & F. BENSALAH # 6/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Si on revient sur notre exemple, la première partie sera consacrée à la présentation du titre de
l’algorithme (par exemple, Equation du premier degré). La deuxième partie sera, quant à elle, réservée
à la déclaration des objets dont nous aurons besoin pour résoudre le problème (a, b et x). Le rôle de
cette déclaration est la spécification de la nature de ces objets (entiers, réels, chaînes etc.). La troisième
et dernière partie aura pour but l’application des instructions nécessaires sur les objets (a,b) pour
obtenir les résultats constituant l’objectif de notre algorithme.
En général, un algorithme a la structure suivante :

- Partie Titre : Présentation de l’objectif de l’algorithme

Déclaration des Objets :


- Constantes
- Partie Déclaration : - Variables (simples et/ou composées)
- Procédures et Fonctions
- Etc…

Manipulation des Objets :


Début
- Partie Manipulation : Actions
Fin

Notes importantes :
Avant de passer à la section suivante de notre cours, il parait important à ce stade de discuter
brièvement la «Relation programmeur-ordinateur» et L’ «Ecriture d’un algorithme».
i- Relation programmeur-ordinateur : cette relation peut être résumée de la manière suivante:
Lors de la conception d’un algorithme, le programmeur doit considérer l’ordinateur une machine de
Von Neumann (Périphériques d’Entrée/Sortie, Mémoires et un processeur reliés par des bus) et
s’intéresser surtout aux mémoires (RAM, disque dur, etc.) et au microprocesseur car les mémoires lui
permettent le stockage des données (objets) dans de l’unité centrale tandis que le microprocesseur lui
assure la manipulation de ces données pour avoir les résultats attendus de son algorithme
(Programme). En résumé, les mémoires ont une relation directe avec la partie déclaration de
l’algorithme et le microprocesseur a une relation avec la partie manipulation.
Cette note confirme ce qu’on a cité dans la section «avant propos» de ce cours :
« A travers l’algorithme, l’homme (le programmeur) explique à l’ordinateur toute la procédure de
l’informatisation des problèmes proposés par les utilisateurs. »
Le programmeur informe donc la machine, au niveau de la partie déclaration de son algorithme, de la
quantité d’espace mémoire dont il aura besoin pour résoudre le problème qu'il désire informatiser. Il
explique par la suite (instruction par instruction) au microprocesseur, au niveau de la partie
manipulation de l’algorithme, la façon dont il doit manipuler les espaces mémoires réservés (objets
stockés au niveau des mémoires) pour retourner les résultats attendus de l’algorithme en question.
ii- Ecriture d’un algorithme : Vu le fait que l’algorithme est un travail manuel effectué par le
programmeur sans aucune contrainte due ni aux langages de programmation et ni aux spécificités de la
machine, il n’y a donc aucune écriture normalisée/standardisée pour les algorithmes.
Lors de la saisie de leurs algorithmes, les programmeurs adoptent par conséquent, sous forme de
conventions, des syntaxes, des règles, etc. où la logique et la validité des analyses et des raisonnements
suivis sont trop exigées. Nous signalons aussi que souvent les programmeurs orientent principalement
les syntaxes et les règles de saisie de leurs algorithmes vers le langage de programmation qu'ils
souhaitent utiliser ensuite pour traduire ces algorithmes.

Pr. M. El Hamzaoui & F. BENSALAH # 7/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Dans notre cas, nous orientons, le long de ce cours, nos syntaxes et règles de saisie vers le langage de
programmation Turbo Pascal que nous emploierons pour la traduction de nos algorithmes sur
l’ordinateur.
III- Déclaration des objets :

- Définition :

Un objet est toute partie identifiable de l’information au cours d’un traitement et est caractérisé par un
nom, un type et une valeur.
L’ensemble des objets manipulés par un algorithme est appelé environnement de cet algorithme.

- Remarques :

1°- Pour un ordinateur on parle des objets élémentaires.


2°- Les objets manipulés par un ordinateur sont : soit des constantes, soit des variables.

III.1. Constante :

- Définition :

Une constante est une référence à une valeur invariante le long de l’algorithme (lors de l’exécution du
programme).

- Syntaxe :
Constant id_Constante = valeur

Le terme id_Constante est l’identifiant de la constante c'est-à-dire c’est le nom que l’on utilise pour
désigner la constante au sein de l’algorithme.
Exemple :
Constante Pi = 3.14
Constante TVA = 0.2

III.2. Variables :

- Définition :

Une variable est une référence (adresse mémoire) où vont être stockées des valeurs variables qui sont
en général de même type. Les différentes valeurs d’une référence appartiennent obligatoirement au
type de données auquel appartient la référence.

- Remarques :

1°- La déclaration des variables est très importante car elle permet de référencer les différentes
variables nécessaires au programme.
2°- L’affectation d’un type à une variable est nécessaire pour contrôler les valeurs et les différentes
opérations possibles sur cette variable ainsi que l’espace nécessaire en mémoire.
3°- L’identifiant (ou nom) d’une variable est une suite de caractères qui permet de l’identifier d’une
manière unique dans un algorithme. Dans la pratique on doit choisir des noms distincts composés
au maximum de 8 caractères, et qui commencent par un caractère alphanumérique.

Pr. M. El Hamzaoui & F. BENSALAH # 8/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

- Types de variables : Il existe différents types de variables. Pour ce cours, nous utilisons le type
Entier, le type Réel, le type Chaîne de caractères, le type caractère et le type
Booléen.

a. Type Entier : C’est l’ensemble des nombres entiers positifs ou négatifs.

La syntaxe de la déclaration d’une variable de type entier est la suivante :

Variable id_variable : Entier

La syntaxe de la déclaration de plusieurs variables de type entier est la suivante :

Variable id_variable1,id_variable2 ….. : Entier

Exemple : dans le cas de l’équation ax + b = 0 les coefficients a et b de l’équation ne peuvent


être que des entiers. Pour les déclarer dans la partie déclaration de l’algorithme. On écrit :
Variable a,b : Entier

b. Type Réel : L’ensemble des nombres réels, c’est à dire de nombres décimaux sans
limitation.

Pour déclarer une variable de type réel, on utilise la syntaxe suivante :

Variable id_variable : Réel

La syntaxe de la déclaration de plusieurs variables de type réel est la suivante :

Variable id_ variable1,id_variable2 ….. : Réel

Exemple : si nous avons besoin dans un algorithme d’une variable de type réel que l’on
nomme par exemple d, la déclaration sera de la façon suivante :

Variable d : Réel

c. Type Chaîne de caractères : C’est une suite de caractères, c’est à dire des combinaisons de
caractères (lettres, chiffres, symboles..).

Pour déclarer une variable de type chaîne de caractères, la syntaxe est :

Variable id_variable : Chaîne de caractères

La syntaxe de la déclaration de plusieurs variables de type chaîne de caractères est :

Variable id_variable1,id_variable2….. : Chaîne de caractères

Pr. M. El Hamzaoui & F. BENSALAH # 9/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Exemple : S’il est nécessaire dans un algorithme d’utiliser une variable de type chaîne de
caractères pour y stocker par exemple la catégorie d’un client d’un service que l’on la nomme
cat, la déclaration sera de la façon suivante :

Variable cat : Chaîne de caractères

d. Type Caractère : C’est une variable qui ne contient qu’un seul caractère (lettres, chiffres,
symboles..). On le considère également un cas particulier de chaînes de
caractères (c’est une chaîne de caractère de taille 1).

Pour déclarer une variable de type caractère, la syntaxe est la suivante:

Variable id_variable : Caractère

La syntaxe de la déclaration de plusieurs variables de type chaîne de caractères est :

Variable id_variable1,id_variable2….. : Caractère

Exemple : S’il est nécessaire dans un algorithme d’utiliser une variable de type caractère pour
mémoriser la réponse confirmative de l’utilisateur (Oui ou Non [O/N] ?), la déclaration devra
similaire à la déclaration suivante :

Variable réponse : Caractère

e. Type Booléen : Il s’agit des objets qui ne peuvent prendre que deux valeurs vrai ou faux.

Pour déclarer une variable de type Booléen, la syntaxe est comme suit :

Variable variable1,variable2….. : Booléen

La syntaxe de la déclaration de plusieurs variables de type chaîne de caractères est :

Variable id_variable1,id_variable2….. : Booléen

Exemple : Pour déclarer, par exemple, dans un algorithme une variable de type booléen pour
prendre des décisions sur l’évolution de notre calcul qu’on nomme décision, la déclaration de
cette variable devrait être de la façon suivante :

Variable décision : Booléen

III.3. Tableaux :

Définition :

Un tableau est une variable composée qui permet de représenter un ensemble de valeurs ayant des
propriétés communes et appartenant toutes au même type. Ces variables sont identifiées par un même
nom mais un numéro de repère (indice) pour chacun. Un tableau peut être d’une ou plusieurs
dimensions.

Pr. M. El Hamzaoui & F. BENSALAH # 10/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

La syntaxe de la déclaration d’un tableau change selon la dimension de ce dernier :

- Tableau à une dimension :

Tab id_Tableau[nombre de valeurs supportées] : Type

- Tableau à plusieurs dimensions :

Tab id_Tableau[nombre de valeurs supportées en dimension 1, nombre de valeurs


supportées en dimension 2,..] : Type

Exemples :

- Exemple 1 : (Tableau à une dimension).


Pour déclarer une variable de type tableau nommée Tab-Salaire permettant de stocker les salaires
de 30 employés, et sachant que les salaires sont de type réel la déclaration sera :

Tab Tab-Salaire[30] : Réel

Remarque : Tab-Salaire[i] désigne le ième élément du tableau si la numérotation commence de


l’indice 1 par exemple. Si, par exemple, le 17ème salaire enregistré vaut 3000.50 l’écriture de cet
élément est la suivante :

Tab-Salaire[17]=3000.50

- Exemple 2 : (Tableau à 2 dimensions).


Pour déclarer une variable de type tableau de deux dimensions (matrice) nommée Lettres
permettant de stocker des caractères alphabétiques (5 lignes, 7 colonnes), et puisque les caractères
alphabétiques sont de type caractère la déclaration sera :

Tab Lettres[5,7] : Car

Remarque : Lettres[i,j] désigne l’élément existant sur l’intersection de la (i)ème ligne et de la (j)ème
colonne . Si, par exemple, le caractère ‘c’ se trouve sur l’intersection de la (2)ème ligne et la (4)ème
colonne, on pourra écrire:
Lettres[2,4]= ‘c’.

III.4. Procédures et fonctions :

Ce sont des sous-programmes auxquels on peut faire référence à l’intérieur d’un programme. Elles
sont conçues pour éviter les répétitions et pour découper des programmes jugés trop longs ce qui
facilite la lisibilité du programme principal. Elles sont caractérisées par des paramètres d’entrée et des
paramètres de sortie.

Remarque : La différence entre une procédure et une fonction, c’est que la deuxième retourne une
seule valeur tandis que la première peut retourner plusieurs valeurs ou aucune.

NB : Les tableaux, les procédures et les fonctions ne font pas l’objet de ce cours. Les aperçus
présentés sur ces derniers sont donnés seulement à titre indicatif.

Pr. M. El Hamzaoui & F. BENSALAH # 11/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

IV. Manipulation des objets :

Définition 1 :

On appelle instruction toute commande élémentaire que l’on doit appliquer sur des objets pour avoir
les sorties.

Définition 2 :

Une action est un événement qui change l’état d’un objet d’un état initial donné à un état final désiré.
Une action a une durée d’exécution finie et un effet privé et bien défini. Chaque action porte sur des
objets sur lesquels elle s’exécute :

Action est une seule instruction ou un groupe d’instructions

La partie manipulation des objets qui existe directement après la partie déclaration doit commencer par
le mot DEBUT et se terminer par le mot FIN :

DEBUT
Instruction 1
Instruction 2
… Action

Instruction n
FIN

La partie manipulation a pour objectif d’utiliser les différents objets déclarés dans la partie déclaration
et leur appliquer des opérations afin de retourner le(s) résultat(s) attendu(s) par le programmeur. Pour
ce fait, il y a différentes instructions, dites actions, à savoir :

ü Instructions de dialogue Homme-Machine ;


ü Instructions d’affectation ;
ü Instructions à structure alternative ;
ü Instructions à structure répétitive.
ü Etc…

IV.1. Instructions de dialogue Homme-Machine :

a. Affichage des informations : Pour faire comprendre qu’il faut afficher des informations à
l’écran, on utilise l’instruction écrire qui obéit à la syntaxe suivante :

Ecrire (Variable,‘‘message’’, ou toute combinaison possible des deux).

Exemple :

- Pour afficher sur l’écran le message Bonjour tout le monde, il suffit d’écrire :
Ecrire(‘‘Bonjour tout le monde’’)
Le système affiche bêtement tout ce qui est entre les quottes sans aucun traitement.

Pr. M. El Hamzaoui & F. BENSALAH # 12/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

En principe, il existe deux sortes d’utilisation de l’instruction écrire :

i- Dialogue (ou conversation question/réponse) : Cette instruction est un moyen pour assurer la
première partie de toute conversation Homme-machine dans le sens machine à Homme. cette
instruction permet, plus exactement, à la machine de poser ses questions à l’homme en lui
donnant la main pour introduire une réponse (valeur, confirmation, etc..) sinon la
communication Homme-Machine reste bloquée et ne débutera jamais.
Par exemple, Pour permettre à l’utilisateur de saisir les valeurs de a et b qu’il a choisies, nous
écrivons :
Ecrire(‘‘Saisissez la valeur de a : ’’)
Ecrire(‘‘Saisissez la valeur de b : ’’)

Le système affiche, sur l’écran, tout ce qui est entre les quottes sans aucun traitement
particulier.
On peut aussi regrouper les deux messages en un seul :

Ecrire(‘‘Saisissez les valeurs de a et b : ’’)

ii- Affichage pur : Dans ce cas, l’instruction écrire est utilisée pour afficher un résultat ou un
message qui n’a pas besoin d’une réponse de la part de l’utilisateur.
Par exemple, si la variable r de type réel est utilisée pour stocker le résultat d’un calcul, pour
l’affichage de ce résultat nous pourrons écrire:
Ecrire(r)

Pour mieux éclaircir notre travail on peut ajouter :

Ecrire(‘‘Le résultat trouvé est :’’,r)

Si par exemple le résultat trouvé est 15.2 et puisque tout ce qui est entre les quottes ne subit
aucun traitement spécial de la part du système, le résultat de cette instruction sera plus
exactement :
Le résultat trouvé est : 15.2
Ici, le système a seulement traité r qui existe à l’extérieur des quottes et l’a remplacé par sa
valeur.

b. Saisie des informations : Pour indiquer dans un algorithme que telle donnée doit être
saisie, on utilise l’instruction lire qui obéit à la syntaxe suivante :

Lire(id_variable)

Lorsqu’il s’agit de la saisie d’un certain nombre de données, on écrit :

Lire(id_variable1, id_variable2,…)

Exemple : Dans notre exemple toujours, pour indiquer à l’algorithme de lire la valeur de a
saisie par l’utilisateur, on écrit juste après le message demandant la valeur de a :
Lire(a)

Pr. M. El Hamzaoui & F. BENSALAH # 13/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Le résultat du message réponse de l’algorithme est :


Ecrire(‘‘Saisissez la valeur de a’’).
Lire(a)

IV.2. Instruction d’affectation :

Il s’agit de l’opération permettant le stockage d’une valeur à un endroit spécifique (variable). Pour
affecter une valeur à une variable, on écrit :

id_variable Ñ Valeur

Cette instruction est lue : la variable id_variable reçoit Valeur.


On peut aussi affecter à une variable le contenu d’une autre variable comme on peut lui affecter le
résultat d’une opération :

id_variable Ñ valeur 1 + valeur 2


id_variable Ñ valeur 3 / valeur 4
id_variable Ñ valeur 4 + id_variable1
Exemple :

Variable A : Entier
Variable X,Y,Z : réel
Variable C1 : Car
Variable S1,S2 : Chaîne de caractères
Variable B,C : Booléen

A Ñ 5 è (A = 5)
A Ñ A-1 è (A = 5 – 1 = 4)
X Ñ 2.5 è (X = 2.5)
Y Ñ X+1 è (Y = 2.5 +1 = 3.5)
Résultats
Z Ñ Z*X è (Z = 3.5 * 2.5 = 8.75)
de
C1 Ñ ‘M’ è (C1 = ‘M’) l’affectation
S1 Ñ ‘Num’ è (S1= ‘Num’)
S2 Ñ ‘12’ + ‘3’ è (S2 = ‘123’)
S1 Ñ S1 + ‘ ’+S2 è (S1 = ‘Num 123’)
B Ñ 1 <> 2 è (B = Vrai)
C Ñ B ET (2 <3) è (C = Vrai ET Vrai = Vrai)

Exercice 1 :
Ecrire un algorithme qui calcule la surface d’un cercle de rayon quelconque :
Surface = p * Rayon2
Solution :

- Discussion :
Pour résoudre ce problème, premièrement nous aurons besoin de la valeur du rayon comme
donnée car sa valeur dépend de l’utilisateur ce qui exige la déclaration d’une variable où on
stockera la valeur du rayon qui est de type réel. Deuxièmement, nous aurons besoin d’une

Pr. M. El Hamzaoui & F. BENSALAH # 14/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

constante pour stocker la valeur de p qu’on appellera Pi et enfin, il est indispensable de


déclarer une variable de type réel où on stockera bien sûr le résultat (la surface).

Entrée : Manipulation Sortie :


La valeur du rayon La Surface calculée

- Algorithme proposé:

Titre : Calcul du rayon d’un cercle

Partie Déclaration :
Constante Pi=3.14
Variable Rayon : Réel
Variable Surface : Réel
Partie Manipulation :
DEBUT
Ecrire(‘‘Saisissez la valeur du rayon : ’’)
Lire(Rayon)
Surface ß Rayon * Rayon * Pi
Ecrire(‘‘La Surface = ’’, Surface)
FIN

Exercice 2 :
Ecrire un algorithme qui calcule la moyenne générale d’un étudiant sachant que celle-ci se calcule de
la manière suivante :
Moyenne = [2 x Note(Physique) + 3 x Note(Maths) + 2 x Note(Français)] / 7

Solution :
- Discussion :
Entrée :
- Note de Physique : NP Sortie :
- Note de Maths : NM Manipulation Moyenne Générale : MG
- Note de Français : NF
- Algorithme proposé :
Titre : Calcul d’une moyenne générale

Partie Déclaration :
Variable NP,NM,NF,MG : Réel

Partie Manipulation :
DEBUT
Ecrire(‘‘Saisissez la note de physique : ’’)
Lire(NP)
Ecrire(‘‘Saisissez la note de Mathématiques : ’’)
Lire(NM)
Ecrire(‘‘Saisissez la note de Français : ’’)
Lire(NF)
MG ß (2 * NP + 3 * NM + 2*NF) / 7
Ecrire(‘‘ La moyenne générale est : MG = ’’, MG)
FIN

Pr. M. El Hamzaoui & F. BENSALAH # 15/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

IV.3. Instructions à structure alternative :

Avant d’avancer dans ce paragraphe, nous devons présenter deux notions essentielles dans chaque
algorithme qui sont : Les conditions et les opérateurs.

a. Condition :

On appelle condition simple toute expression de la forme suivante qui retourne une valeur booléenne :

Opérande1 Opérateur Opérande2

NB : Les opérandes de la condition simple peuvent être des valeurs booléennes ou des variables booléennes
dans le cas d'un opérateur logique et des valeurs numériques, des variables entières ou réelles ou des
expressions de calcul dans le cas d'un opérateur de comparaison, etc.. Lorsqu'il s'agit des conditions
composées, ces opérandes peuvent être des conditions simples, et/ou des conditions composées, etc...
b. Opérateurs :
b.1. Opérateurs arithmétiques :

Opérateur Signification
+ Addition
- Soustraction
* Multiplication
div Division entière
/ Division réelle
% Modulo : le reste de la division de 2 valeurs

Exemple :

Opération arithmétique Résultat


2+6 8
9/2 4.5
9 div 2 4
9%2 1

b.2. Opérateurs de comparaison :

Pour exprimer les conditions, on utilise les opérateurs conditionnels suivants :

Opérateur Signification
= Egal
< Inférieur
> Supérieur
<= Inférieur ou égal
>= Supérieur ou égal
<> différent
Exemple :

Expression Résultat
Var1 = Var2 La variable 1 égale à la variable 2
X <> Y La variable X différente de la variable Y
T< M La variable T est inférieure à la variable M

Pr. M. El Hamzaoui & F. BENSALAH # 16/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

b.3. Opérateurs logiques :

On peut combiner des conditions à l’aide des opérateurs logiques :

Opérateur Signification
ET Et logique
OU Ou logique
NOT Négation logique
XOR Ou Exclusif

Exemple :
Expression Résultat
(4<7) ET (9>0) Vrai
(1<0) OU (1<>1) Faux
NOT(13.4 < 15) Faux

Note : Seuls les opérateurs logiques et les opérateurs de comparaison sont utilisés comme opérateur de
base pour exprimer une condition.

c. Instruction Si :

Pour exprimer le fait que des instructions vont être exécutées dans un cas alors que d’autres
instructions peuvent être exécutées dans l’autre cas, on utilise une structure alternative. Dans le cas où
il n’y a pas de l’alternance, mais seulement la condition, la structure est dite conditionnelle.

Syntaxe :

Si condition alors
Actions 1
[ Sinon
Actions 2] Option Facultative
Finsi

Explication :
La condition va s’évaluer si le résultat est Vrai (condition remplie) les Actions 1 s’exécuteront si le
résultat est Faux (condition non remplie) les Actions 2 s’exécuteront.

Exercice :
Pour compléter l’algorithme précédent qui calcule la moyenne générale d’un étudiant sachant que
celle-ci se calcule de la manière suivante :

Moyenne = [2 x Note(Physique) + 3 x Note(Maths) + 2 x Note(Français)] / 7

On va y ajouter des instructions d’appréciation sur la moyenne, c’est à dire :

Afficher ‘Admis’ si un étudiant a une moyenne générale >=10 et Afficher ‘Ajourné’ dans le cas contraire
(Moyenne générale < 10).

Pr. M. El Hamzaoui & F. BENSALAH # 17/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Solution :

- Algorithme proposé:

Titre : Calcul d’une moyenne générale et affichage de l’appréciation

Partie Déclaration :
Variable NP,NM,NF,MG : Réel

Partie Manipulation :
DEBUT
Ecrire(‘‘Saisissez la note de physique : ’’)
Lire(NP)
Ecrire(‘‘Saisissez la note de Mathématiques : ’’)
Lire(NM)
Ecrire(‘‘Saisissez la note de Français : ’’)
Lire(NF)
MG ß (2 * NP + 3 * NM + 2 * NF) / 7
Si (MG >= 10) alors
Ecrire(‘‘Admis’’)
Sinon
Ecrire(‘‘Ajourné’’)
Finsi
Ecrire(‘‘La moyenne générale est : MG = ’’, MG)
FIN

Exercice 2 :
Ecrire un algorithme qui donne le nombre de jours maximal d’un mois d’une année donnée.

Solution :

- Explication :

Entrée : Manipulation Sortie :


- Le Mois de l’année: M JMax : Nombre de jours
- L’année : A maximal du mois choisi

Remarque : Lors de cet exercice, comme vous pourrez le constater la variable R n’est pas une donnée
initiale (donnée d’entrée), on en a eu seulement besoin lors de la manipulation. Ce type de variables
s’appelle : Variable Intermédiaire.

Pr. M. El Hamzaoui & F. BENSALAH # 18/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

-Algorithme :

Titre : le nombre de jours maximal d’un mois d’une année donnée.


Partie Déclaration :
Variable M,A,R,JMax : Entier
Partie Manipulation :
DEBUT
(‘‘Le nombre de jours maximal
Ecrire(‘‘Donner le Mois (Numérique) :’’)
est : ’’, JMax)
Lire(M)
Ecrire(‘‘Donner L’année :’’)
Lire(A)

Si (M = 2) alors
R ß A%4
Si (R = 0) alors
JMax ß 29
Ecrire(‘‘Le nombre de jours maximal est : ’’, JMax)
Sinon
JMax ß 28
Ecrire(‘‘Le nombre de jours maximal est : ’’, JMax)
Finsi
Sinon
Si (M=1 ou M=3 ou M=5 ou M=7 ou M=8 ou M=10 ou M= 12) alors
JMax ß 31
Ecrire(‘‘Le nombre de jours maximal est : ’’, JMax)
Sinon
Si (M=4 ou M=6 ou M=9 ou M= 11) alors
JMax ß 30
Ecrire(‘‘Le nombre de jours maximal est : ’’, JMax)
Sinon
Ecrire(‘‘Attention : Mois Incorrect ’’)
Finsi
Finsi
Finsi
FIN

d. Instruction Suivant Cas :

L’instruction Suivant cas constitue une structure alternative à la forme en bloc [Si … Alors
…Sinon…] et permet de formuler de manière plus simple le choix du groupe d’instructions.
Syntaxe :
Suivant Cas id_variable Faire
Cas Valeur 1
Actions 1
Cas Valeur 2, Valeur3, Valeur 4
Actions 2
Cas Valeur 5 à Valeur 7
Actions 3
..
..
Sinon Cas
Actions N
Fin Suivant

Pr. M. El Hamzaoui & F. BENSALAH # 19/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Exercice :
Reprenez le même exercice du paragraphe précédent en utilisant l’instruction Suivant Cas.

Solution :
- Algorithme proposé:

Titre : le nombre de jours maximal d’un mois d’une année donnée.

Partie Déclaration :
Variable M,A,R,JMax : Entier

Partie Manipulation :
DEBUT
Ecrire(‘‘Donner le Mois (Numérique) : ’’)
Lire(M)
Ecrire(‘‘Donner L’année : ’’)
Lire(A)

Suivant Cas M Faire


Cas 2
R ß A%4
Si (R = 0) alors
JMax ß 29
Ecrire(‘‘Le nombre de jours maximal est : ’’, JMax)
Sinon
JMax ß 28
Ecrire(‘‘Le nombre de jours maximal est : ’’, JMax)
Finsi
Cas 1, 3, 5, 7, 8, 10 , 12
JMax ß 31
Ecrire(‘‘ Le nombre de jours maximal est : ’’, JMax)
Cas 4, 6, 9, 11
JMax ß 30
Ecrire(‘‘Le nombre de jours maximal est : ’’, JMax)
Sinon Cas
Ecrire(‘‘Attention : Mois Incorrect ’’)
Fin Suivant
FIN

IV.4. Instructions à structure répétitive :

Problème :

Ecrire un algorithme permettant d’afficher 250 fois le message : ‘‘ENCG-J-2008/2009’’.

Solution :

Pour afficher une seule fois ce message, on écrit :

DEBUT
Ecrire(‘‘ENCG-J-2008/2009’’)
FIN

Pr. M. El Hamzaoui & F. BENSALAH # 20/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Pour l’afficher 250 fois nous devons ajouter à cet algorithme 249 fois l’instruction :
Ecrire(‘‘ENCG-J-2008/2009’’)

Ce qui donne :
DEBUT
Ecrire( ‘‘ENCG-J-2008/2009’’) 1
Ecrire( ‘‘ENCG-J-2008/2009’’) 2
.
.
Ecrire( ‘‘ENCG-J-2008/2009’’) 300
FIN

Pour ce type de problèmes, toutes les instructions qu’on vient de voir ne répondent pas bien. Il faut
penser à d’autres instructions qui permettent de répéter facilement une grande séquence d’instructions.
Ce type d’instructions on l’appelle : Instructions à structure répétitive.
a. Instruction Tant que :
On utilise cette instruction pour exécuter des actions tant qu’une condition est réalisée.
Syntaxe :

Tant que Condition Faire


Actions
Fin tant que

Fonctionnement :
On commence par l’évaluation de la condition; si la condition est vraie, on exécute les actions et on
répète l’évaluation de la condition. Si elle est fausse, on sort de la boucle.

Exercice 1:
Ecrire un algorithme permettant d’afficher 250 fois le message : ‘‘ENCG-J-2008/2009’’.

Solution :

Titre : Affichage d’un message un nombre de fois

Partie Déclaration :
Variable i : Entier

Partie Manipulation :
DEBUT
i ß 0
Tant que (i < 250) Faire
Ecrire(‘‘ENCGJ-2008/2009’’)
i ß i+1
Fin tant que
FIN

Pr. M. El Hamzaoui & F. BENSALAH # 21/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Explications :
- Dans cet exercice on a recours à une variable intermédiaire i qui va nous servir pour gérer l’accès à la
boucle ou exactement la gestion du nombre de fois d’accès à la boucle. Toute variable de ce genre on
l’appelle : Compteur.
- La condition de l’accès à la boucle est que le compteur soit inférieur strictement à 300.
- Le compteur est initialisé à la valeur zéro. Ce qui facilite l’accès à la boucle pour la première
tentative d’accès. Une fois qu’on accède à la boucle, le message s’affiche grâce à l’instruction Ecrire.
Puis on applique sur le compteur l’instruction d’affectation :
i Ñ i+1
Cette instruction n’est pas une instruction d’affectation normale, on l’appelle Incrémentation. Son rôle
est de stocker dans la variable i son ancienne valeur (existant à la droite de la flèche) et on y ajoute 1.
Il existe aussi l’instruction de décrémentation qui consiste à enlever chaque fois qu’elle s‘exécute une
valeur fixe de la variable à décrémenter. Généralement cette valeur vaut 1 :
i Ñ i-1
- Lors du premier accès à la boucle i vaut zéro, juste après l’affichage du message ‘Master GL’ i prend
son ancien valeur (0) et lui ajoute 1 pour devenir 1, dans la seconde entrée i égale à 1 mais à la sortie il
deviendra 2 etc. jusqu'à la 300ème entrée à la boucle où i=299 à l’entrée et 300 à la sortie, ce qui ne
réalise pas la condition au prochain essai d’accès à la boucle et comme ça la condition de l’accès à la
boucle est fausse et la boucle est quittée .

Exercice 2 :
On veut calculer le factoriel d’un entier quelconque : N !
Etablir l’algorithme permettant ce calcul.
Solution :
Titre : Factoriel

Partie Déclaration :
Variable N,F, i : Entier

Partie Manipulation :
DEBUT
Ecrire(‘‘Saisir une valeur entière positive :’’)
Lire(N)
F ß 1
Si (N = 0) alors
Ecrire(‘‘Le factoriel = ’’, F)
Sinon
i ß 0
Tant que (i < N) Faire
i ßi+1
F ßF* i
Fin tant que
Ecrire(‘‘Le Factoriel est = ’’, F)
Fin Si
FIN

Pr. M. El Hamzaoui & F. BENSALAH # 22/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

b. Instruction Faire jusqu’à :


On utilise cette instruction pour exécuter des actions jusqu'à ce qu’une condition soit remplie.
Syntaxe :
Faire
Actions
Jusqu’à Condition

Fonctionnement :
On exécute les actions puis on évalue la condition. Si la condition est fausse, on réexécute les actions
sinon, on sort de la boucle.
Remarque :
La différence entre les deux instructions Tant que et faire jusqu’à réside dans le fait que l’instruction
faire jusqu’à sera toujours exécutée au moins une fois.

Exercice 1 :
Ecrire un algorithme, qui, pour N donné, permet la saisie et l’affichage de l’identité de N étudiants :
nom, prénom, âge et filière.
Solution :
Titre : Identités

Partie Déclaration :
Variable N, i,j,Age : Entier
Variable Nom, Prenom, Filiere : Chaîne de caractères

Partie Manipulation :
DEBUT
Ecrire(‘‘Donner le nombre d’étudiants : ’’)
Lire(N)

i ß 0
Faire
i ß i + 1
Ecrire(‘‘Donner le nom et le prénom : ’’)
Lire(Nom,Prenom)
Ecrire(‘‘Donner l’âge et la filière : ’’)
Lire(Age,Filiere)
jusqu’à (i >= N)

j ß 0 //On peut utiliser le même compteur i pour cette deuxième boucle//

Faire
j ß j + 1
Ecrire(‘‘Nom = ’’, Nom,‘‘ et Prénom = ’’, Nom)
Ecrire(‘‘Age = ’’, Age,‘‘ et Filière = ’’, Filiere)
jusqu’à (j >= N)
FIN

Pr. M. El Hamzaoui & F. BENSALAH # 23/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Exercice 2 :
Ecrire un algorithme qui affiche les multiples de 5 inférieurs à 201.
Solution :

Titre : Multiples de 5 inférieurs à 201.

Partie Déclaration :
Variable i : Entier

Partie Manipulation :
DEBUT
i ß 0
Faire
Ecrire(i, ‘‘ est un multiple de 5 ’’)
i ß i + 5
jusqu’à (i > 201)
FIN

c. Instruction Pour :
La spécification de cette instruction c’est qu’elle limite le nombre de fois où doit se répéter la
condition
Syntaxe :
Pour id_variable ç valeur1 à valeur2 [Pas valeur pas] faire
Actions
Fin Pour

Fonctionnement :
On initialise le compteur (id_variable) par la valeur ‘valeur1’ puis on teste la condition. Si la condition
est vraie (id_variable Ñ valeur2), on exécute le bloc d’instruction et on incrémente le compteur par
pas de 1 puis on évalue la condition. Si elle est fausse on sort de la boucle.

Exercice :
Ecrire un algorithme permettant d’afficher les nombres impairs compris entre 15 et 193.
Solution :
Titre : nombres impairs compris entre 15 et 193

Partie Déclaration :
Variable i : Entier

Partie Manipulation :
DEBUT

Pour i ç 15 à 193 faire

Si (i % 2 <> 0) alors
Ecrire(i)
Fin Si
Fin Pour
FIN

Pr. M. El Hamzaoui & F. BENSALAH # 24/49 # Année Universitaire : 2020-2021


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

PARTIE 3

ÉNONCES DES EXERCICES

Pr. M. El Hamzaoui # 44/49 # Année Universitaire : 2017-2018


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

I- Déclaration des objets et instructions de communication homme-machine :

1° - Ecrire un algorithme qui affiche une seule fois le message : ‘ENCG-J 2017/2018’
2° - Ecrire un algorithme qui affiche trois fois le message : ‘ENCG-J 2017/2018’
3° - Ecrire un algorithme qui lit une valeur réelle saisie par l’utilisateur.
4° - Ecrire un algorithme qui lit une valeur entière et une autre réelle saisies par l’utilisateur.
5° - Ecrire un algorithme qui permet de lire une valeur entière, une valeur réelle, une chaîne de
caractères et un caractère saisis par un utilisateur. Cet algorithme doit afficher également toutes
ces valeurs.

II- Affectation :

Exercice 1 : Donner le résultat de chacune des instructions suivantes ainsi que les types des variables
qu’elle utilise.
Instruction 1 : a ß 4
Instruction 2 : b ß 2.5
Instruction 3 : c ß 2*b + 1
Instruction 4 : c ß c + 10
Instruction 5 : e ß ‘‘b’’
Instruction 6 : f ß ‘‘Mes’’
Instruction 7 : f ß f + ‘‘sage’’
Instruction 8 : g ß f + ‘‘ ’’ + ‘‘crypté’’
Instruction 9 : h ß ‘‘Vrai’’
Instruction 10 : i ß ‘‘123’+ ‘‘4’’
Instruction 11 : j ß Faux
Instruction 12 : k ß 2=7
Instruction 13 : y ß (7<>-1) ET (56 >= 100)
Instruction 14 : m ß Not(y) OU (k XOR (2<4))
Instruction 15 : n ß Not(Vrai ET m)

Exercice 2 : Compléter le tableau suivant :


Instruction Résultat après l’exécution de l’instruction
A=ø B=ø C=ø D=ø F=ø
A ß -10
B ß 2*A + 25
C ß ‘A’
D ß ‘A*B’
D ß D + ‘/2’
F ß 5 <> 5
F ß NOT(F ET (1= 0))

Exercice 3 : Ecrire un algorithme qui permet de calculer et afficher la somme, la différence et le


produit de deux entiers quelconques.

Exercice 4 : Sachant le prix unitaire (PU) d’un produit, écrire un algorithme qui calcule le montant à
payer pour une quantité quelconque commandée de ce produit.

III- Instructions à structure alternative :

Exercice 1 : Ecrire un algorithme qui permet de résoudre l’équation : ax + b = 0


Exercice 2 : Ecrire un algorithme qui calcule, dans IR, les racines d’une équation de 2ème degré :
ax 2 + bx + c = 0.

Pr. M. El Hamzaoui # 45/49 # Année Universitaire : 2017-2018


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Exercice 3 : Ecrire un algorithme qui calcule le montant de la facture d’électricité pour les clients
d’une entreprise fournisseuse d’électricité :
- Les clients appartiennent à l’une des deux catégories suivantes : Particulier et Société.
- La consommation est divisée par tranche, chaque tranche ayant un prix :

Catégorie C <= 10 Kw 10 Kw < C <= 40 Kw C > 40 Kw


Prix particulier
2 4 7
(DH/w)
Prix Société C <= 100 Kw C <= 400 Kw C > 400 Kw
(DH/W) 1 3 5

NB : Les valeurs de cette liste ne sont pas les valeurs exactes utilisées par les entreprises fournisseuses d’électricité.
Exercice 4 : Un chef d’entreprise verse une participation aux frais de repas à ses employés limitée à
50%. La participation aux frais de repas est calculée de la manière suivante :
- Si le salaire de l’employé est (< 4000 DHs) un bonus de 15% lui est donné.
- Si (400 DHs< Le salaire < 6000 DHs) un bonus de 10% lui est donné.
- Une participation de 10% est donnée aux employés qui ont plus de 5 ans d’expérience.
- Une participation de 10% est donnée aux employés qui sont mariés en plus de 5% pour chaque
enfant.
Calculer le pourcentage de la participation de l’employé au frais de repas.

Exercice 5 : Ecrire un algorithme qui saisit une date sous la forme (Jour/Mois/Date).

- Vérifier la validité de la date.


- Calculer la date du jour suivant.

Exercice 6 : Le service de prêt d’une bibliothèque suit les règlements suivants :


- Tous les lecteurs de la catégorie A peuvent emprunter des livres pour une durée maximale de 20
jours.
- Les lecteurs de la catégorie B peuvent emprunter des livres pour une durée ne dépassant pas 30 jours.
- Les lecteurs de la catégorie C peuvent emprunter des livres jusqu’à 45 jours.
- Dans tous les cas aucun lecteur ne peut avoir en sa possession plus de 5 livres.
- Les lecteurs versent une participation aux frais de gestion de la bibliothèque traduit d’une valeur de 1
DH par jour et par livre.
Calculer le montant global pour un prix sachant que ce dernier est Majoré de 50 DHs lors d’un prêt.

IV- Instructions à structure répétitive :

Exercice 1 : Ecrire un algorithme qui permet de calculer la somme Sn = 1 + 2 + 3 + …… + n.

Exercice 2 :
a- Ecrire un algorithme permettant d’afficher les nombres impaires inférieurs strictement à 171.
b- Ecrire un algorithme qui permet d’afficher les multiples de 3 compris entre 21 et 90.

Exercice 3 : Ecrire un algorithme qui saisit deux valeurs numériques et affiche leur somme. Le
programme doit s’arrêter dès que l’utilisateur répond à la question ‘‘ Voulez vous continuer’’.

Exercice 4 : Ecrire un algorithme qui saisit deux variables numériques et une opération de la forme :
+ , - , * , / ou %, puis affiche le résultat de l’opération appliquée aux valeurs numériques.
NB : L’algorithme doit s’arrêter dès que l’utilisateur saisit une opération incorrecte ou répond à la
question ‘‘Voulez-vous arrêter le programme’’.

Pr. M. El Hamzaoui # 46/49 # Année Universitaire : 2017-2018


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

Exercice 5 : Quel est le résultat attendu de la boucle «Tant que» dans l’algorithme Sois Prudent1.
Est-il le même que dans l’algorithme Sois Prudent2.

Titre : Sois Prudent1 Titre : Sois Prudent2


Var x,m : Entier Var x,m : Entier
Début Début
m ß 10 m ß 10
x ß m*m*m x ß m*m*m
Tant que(x<10000) faire Tant que(x<10000) faire
m ß m +1 m ß m +1
x ßm*m*m x ßm*m*m
Fin Tant que Ecrire(‘‘m= ’’,m,‘‘ et x = ’’,x)
Ecrire(‘‘m= ’’,m,‘‘ et x = ’’,x) Fin Tant que
Fin Fin

- Reprendre l’algorithme Sois Prudent2 en utilisant l’instruction «Faire jusqu’à».

Exercice 6 : Quel est le nombre de passages dans la boucle de l’algorithme suivant :

Titre : Bouclage
Var y : Entier
Début
yß1
Tant que (sqr(y)<30) faire
y ß y +2
Ecrire(‘‘x = ’’,x)
Fin Tant que
Fin

NB : sqr(x)=x*x

Exercice 7 : Ecrire un algorithme qui calcule le cube d’une valeur numérique saisie au clavier et qui
est comprise entre 0 et une valeur N. Toute valeur saisie en dehors de cette intervalle est considérée
invalide.
L’algorithme doit s’arrêter soit :
- Suite à une saisie de 3 valeurs invalides qui se suivent.
- Suite à une réponse négative à la question ‘‘Voulez vous faire un autre calcul’’

Exercice 8 : Soit l’algorithme «Test» suivant :

Titre : Test
Déclaration :
Var i,N : Entier
Manipulation :
Début
Instruction 1
Instruction 2
Tant que (i<=N) faire
i ß (i*10) +10
Fin Tant que
Ecrire (‘‘i = ’’, i , ‘‘ et N = ’’, N)
Fin

Pr. M. El Hamzaoui # 47/49 # Année Universitaire : 2017-2018


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

1°- Remplir le tableau suivant en simulant les exécutions de l’algorithme «Test» (la trace)
correspondant à chacun des cas mentionnés sur le tableau :
Nombre de fois d’accès à
Cas Instructions Résultat de l’algorithme
la boucle Tant que
instruction 1 : N ß 90
Cas 1 instruction 2 : i ß 0
instruction 1 : N ß 9000
Cas 2 instruction 2 : i ß 2

2°- Supposons que :


-L’instruction 1 vaut N ß 9000
-L’instruction 2 vaut i ß 4
- Question : Quel sera donc le résultat de l’algorithme «Test», si on place l’instruction «Ecrire(‘‘i = ’’,i
,‘‘ et N = ’’,N)» au sein de l’instruction «Tant que» juste après «Tant que (i<=N)» ?

Exercice 9 : Durant un mois N patients sont admis dans une clinique. Chaque patient est hospitalisé
pendant un certain nombre de jours. Il paie 500 DHs par jour d’hospitalisation, de plus s’il est
accompagné pendant la nuit il paiera un supplément de 25%.
Ecrire un algorithme qui calcule la somme encaissée par la clinique à la fin du mois.

Exercice 10 : Ecrire un algorithme Epargne qui permet de calculer le montant de votre épargne à la
banque après cinq ans, si vous déposez un montant initial et sachant que le taux d’intérêt annuel est de
8.25%. L’algorithme permettra également d’afficher au fur et à mesure des calculs, l’épargne
constituée année par année.
- Ecrire l’algorithme Epargne1 permettant de calculer le nombre d’années nécessaire pour doubler son
épargne sachant que le taux d’intérêt annuel est 8.25%.

V- Tableaux :

Exercice 1 : Ecrire un algorithme qui affiche la liste des entiers impairs compris entre 1 et
une valeur N. ce programme doit afficher également le nombre de ces entiers.

Exercice 2 : Ecrire un algorithme qui saisit une série de valeurs réelles et calculer leur
somme, la fin de la saisie est indiquée par la saisie d’une valeur négative.

Exercice 3 : Ecrire un algorithme qui permet d’afficher les nombres premiers d’un tableau
d’entiers de taille maximale 100.

Exercice 4 : Ecrire un algorithme permettant de donner le nombre d’occurrences d’une valeur


numérique entière dans un tableau d’entiers de taille maximale 150.

Exercice 5 : Ecrire un algorithme permettant de calculer la division d’une matrice par une
autre :
Aij / Bij si Bij ¹ 0
Dij =
0 sinon
Exercice 6 : Ecrire un algorithme qui permet de translater les éléments d’une matrice de
caractères par deux positions chacun.

Pr. M. El Hamzaoui # 48/49 # Année Universitaire : 2017-2018


//Université Chouaib Doukkali-El Jadida// // ENCG-J // // Algorithme //

VI- Procédures et fonctions :

Exercice 1 : Ecrire une procédure qui accepte comme argument un entier N puis affiche ce
dernier s’il s’agit d’un nombre premier. En faisant appel à cette procédure, afficher tous les
nombres premiers compris entre 1 et un entier N.

Exercice 2 : Ecrire l’algorithme qui détermine la date du jour suivant pour une date donnée.

Exercice 3 : Ecrire l’algorithme permettant :

- La lecture des éléments de deux Matrices M1 et M2.


- Le calcul du maximum Max1 des éléments de M1.
- Le calcul du maximum Max2 des éléments de M2.
- Le calcul de la moyenne Moy1 des éléments de M1.
- Le calcul de la moyenne Moy1 des éléments de M2.
- Le calcul de la moyenne Moy de Moy1 et Moy2.

Exercice 4 : Refaire l’exercice 9 (calcul de la somme encaissée par une clinique à la fin du mois) de
la partie IV (Instructions à structure répétitive) en utilisant cette fois-ci des fonctions et des procédures
de votre choix

Pr. M. El Hamzaoui # 49/49 # Année Universitaire : 2017-2018

Vous aimerez peut-être aussi