Notes de cours d’Algorithme et Méthode de Programmation Page | 1
INTRODUCTION
D’après le cadre de la modernisation et de la modélisation des
entreprises, la notion de compétitivité est mise pour mieux résoudre un
problème de gestion.
L’informaticien s’inspire de la programmation naturelle et
traditionnelle. D’où, il faut veiller donc au facteur te temps et le lieu. La
programmation naturelle c’est celle que nous réalisons chaque jour. La
personne humaine commence ses activités par dormir et ensuite se
réveillé.
La programmation traditionnelle initiée par le boulier, sablier et
pascal. Il convient aussi de noter que le domaine informatique se
diversifié en sorte l’informatique fait aujourd’hui la partie intégrante de
la majorité des entreprises. Le métier d’un informaticien s’est diversifié
en une multitude de fonctions touchant : les réseaux, le développement
de système informatique, à la sécurité des systèmes informatique comme
réseau…
A certains métiers correspondant les études particulières. Alors
que la carence en informaticien rend la porte d’entrée de certaines
fonctions technique ouverte à tous. La bonne connaissance du cœur de
métier de chaque fonctions peut permettre d’en connaitre spécificités
(qualité, performance, aussi les compétences indispensable.
Il existe 5 types de métiers de l’informatique :
1. Métier de l’exploitation et de la production : ici, toutes les
personnes sont chargées de vérifier le bon fonctionnement des
systèmes informatique et de réseau, d’assister les utilisateurs dans
l’utilisation de nouvelles technologie on les dépanne en cas de
problème.
2. Métier de conception et de développement : qu’il consiste à :
Analyser un besoin
A concevoir des solutions
Modéliser informatiquement et
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 2
Les implantés (transcrit dans un langage informatique, il
s’agit de métier ayant une capacité d’analyser à un esprit
de synthèse et mettant en œuvre les techniques et créativités
3. Métier du conseil et de l’expertise : un métier qui demande un
certain niveau d’expérience afin d’être en mesure d’étudier les
besoins ou les solutions existantes dans une entreprise pour la mise
œuvre d’une nouvelle architecture. Les principaux domaines
d’applications sont les systèmes d’information ou la sécurité
informatique. Chercher les noms des Antivirus leurs usines de
fabrication et leurs actions. Exemple : Avaste, Smadav,
Kapesky…)
4. Métier de la formation et de l’enseignement.
Ce métier permet à un groupe d’individu d’acquérir des
connaissances pratiques et théoriques sur un domaine donné, en vue de
l’évolution de leur pratique professionnelle.
Métier du Marketing : enseignement orienté vers les profils
commerciaux. Ont pour objectif : l’optimisation de la vente de produits
et services, grâce à la définition et la satisfaction de besoin des clients,
la prospection de nouveau clients ainsi que la fidélisation de la clientèle.
Exemple comment découvrir les nouveaux clients.
OBJECTIF GLOBAL : initier les étudiants à bien structurer et écrire le
programme informatique afin de résoudre le problème dans un champ
d’application donné.
OBJECTIFS SPECIFIQUES
Ce cours d’Algorithme vise comme objectif spécifiques :
Primo : Aboutir au résultat souhaité ou satisfaisant par des voies et
moyens mise à notre disposition pour un problème posé ou donné ;
Secundo : Raisonner correctement avec l’esprit de concision et
précision à la place de l’ordinateur ;
Tertio : Donner du travail à l’ordinateur en vue de réaliser vite et
mieux à notre place. Acquérir une connaissance logique des règles
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 3
permettant d’écrire des programmes dans le domaine
informatique.
CHAPITRE I : GENERALITES SUR LES ALGORITHMES
Avec l’informatique il y a possibilité de traiter l’information par lot ou
de façon unitaire. On peut aussi gérer en diffère ou en temps réel.
Aujourd’hui le souci des entrepreneurs s’est focalisé sur l’information
réelle. C’est-à-dire, le manager veut à tout prix connaitre la situation
réelle de toutes les activités de l’entreprise.
L’analyse et la programmation reposent sur les méthodes et technique
appropriées. Elles constituent par ces faits le socle de l’ensemble
d’activité d’ingénierie de projet en informatique aussi elle forme un atout
pour une gestion modernisée et modélisée d’une entreprise qui se veut
compétitive, concurrentes et optimales au regard de ses objectifs du
futurs.
I.1. DEFINITIONS DES CONCEPTS DE BASES
1. ALGORITHME
« Un algorithme » est une suite ordonnée d’instructions écrites sous forme
littéraire (de la littérature) en vue de résoudre un problème.
Algorithme est le résultat d’une démarche logique de résolution d’un
problème pour la mise en œuvre pratique sur ordinateur et afin
d’obtenir des résultats concrets, il faut passer par l’intermédiaire d’un
langage de programmation. Un algorithme décrit une succession
d’opération qui, si elles sont fidèlement exécutées produiront le résultat
désiré.
Un algorithme est une suite d’action que devra effectuer un automate
pour arriver en un temps fini, à un résultat déterminé à partir d’une
situation donnée. La suite d’opération sera composée d’actions
élémentaires appelées instructions.
On distingue deux (2) sortes d’algorithmes :
Algorithme classique (ex. pour dresser la liste de ventes)
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 4
Algorithme de programmation (Structurel) : sont des algorithmes
de base sur la programmation de logiciel ou programme
informatique.
2. ORDINOGRAMME ou LOGIGRAMME
« L’ordinogramme » est une suite ordonnée d’instruction écrite sous forme
symbolique ou schématique en vue de la résolution d’un problème.
L’ordinogramme est la représentation graphique conventionnelle du
raisonnement logique que l’on veut imposer à l’ordinateur en vue de lui
faire exécuter une application déterminée.
Il montre principalement les opérations et décisions nécessaires à
l’exécution complète du processus. En d’autre termes, c’est une
représentation schématisée par des graphiques et conduisant à la
résolution d’un problème. Il montre l’enchainement des opérations ou des
fonctions à réaliser par le moyen du programme destiné à l’ordinateur.
3. PROGRAMMATION
Dans le domaine informatique, la programmation constitue l’ensemble
d’activités qui permettent l’écriture des programmes informatique. C’est
une partie importante de la conception de logiciel.
a. La démarche de la programmation
L’écriture d’un programme n’est qu’une étape dans le processus de
programmation comme le montre le schéma suivant.
Les différentes étapes du processus de programmation :
Problème Spécification algorithmiques
réel Analyse
Algorithme Traduction
Codage
Programme Exécution
Résultat
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 5
b. Commentaire
Il s’agit de fournir la solution à un problème, la première étape consiste
donc à analyser le problème, c’est-à-dire en cerner les limites et le
mettre en forme dans un langage descriptif, on parle généralement
d’analyse pour décrire le processus par lequel le problème est
formalisé. Le langage de description utilisé pour écrire le résultat de
l’analyse est appelé algorithme. L’étape suivante consiste à traduire
l’algorithme dans un langage de programmation spécifique, il s’agit de
la phase de programmation.
Le Langage de programmation est l’intermédiaire entre l’humain et la
machine, il permet d’écrire dans un langage proche de la machine mais
intelligible par humain. Ainsi, étant donné que le langage de
programmation est destiné à l’ordinateur, il doit donc respecter une
syntaxe stricte. Et un algorithme peut toutefois aboutir à plusieurs
programmes.
Le programme est une suite transformé en langage machine lors d’une
étape appelée compilation. La compilation est une phase réalisée par
l’ordinateur lui-même grâce à un autre programme appelé compilateur.
4. INFORMATICIEN
C’est celui qui exerce le métier de l’informatique, la variété des
informaticiens reflète d’une part celle de techniciens informatiques et
d’autre part celle de mode d’organisation du travail informatique. Il
s’illustre dans le cadre de la recherche, de la conception de système, de
la production, de la gestion et de la maintenance. Ces activités peuvent
concerner les domaines matériels et/ou le domaine logiciel. C’est un
terme générique.
5. FICHIER
Un fichier informatique est une unité informationnelle physiquement
stockées sur un support de mémoire de masse permanent (disque dur
par exemple). Un fichier a généralement comme attributs : un nom, un
chemin d’accès, une taille mesurée en octets, une date de création et une
de manière modification.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 6
6. LOGICIEL
Un logiciel est un ensemble d’informations relatives à des traitements
effectués automatiquement et rationnellement par un appareil
informatique appelé ordinateur. C’est un ensemble des programmes
informatiques conçus par un spécialiste et qui est mis à la disposition des
utilisateurs afin de bien travailler. C’est l’intelligence de l’ordinateur. On
distingue 3 types de logiciels :
Les logiciels de base (système d’exploitation). Exemples :
Windows, Unix,…
Les logiciels d’applications. Exemples : Word, Excel, Photoshop,…
Les logiciels de développement. Exemple : VB, PHP, JAVA, C++…
7. PSEUDO-CODE
En programmation le pseudo-code est une façon de décrire un
algorithme sans référence à un langage de programmation en
particulier.
8. BASE DE DONNEES
Une base de données est un ensemble structuré de données
enregistrées sur des supports accessibles par l’ordinateur pour
satisfaire simultanément plusieurs utilisateurs de façon sélective et
en un temps opportun.
9. ORDINATEUR
L’ordinateur est une machine électronique programmable capable de
prendre en charge les données en entrée, le traiter, le stocker et restituer
le résultat en sortie.
Les ordinateurs, quels qu’ils soient, ne sont pas 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’instruction). Ces quatre familles d’instructions sont :
L’affectation de variables ;
La lecture et écriture ;
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 7
Les tests,
Les boucles.
CHAPITRE II : LES ALGORITHMES CLASSIQUES ou LOGIQUES
II.1. ORIGINE DE L’ALGORITHME
Le mot algorithme vient du nom mathématique AL-Khwarizmi (latiné au
moyen Age en Algorithmique), qui au IXe siècle écrivit le premier
ouvrage systématique donnant des solutions des aux équations linéaires
et quadratiques.
L’algorithme a pour rôle/but principal de donner des ordres à une
machine appelée ordinateur.
II.2. INTERET DE L’ALGORITHME
Pour faire exécuter une tâche par ordinateur, il faut tout d’abord,
détailler suffisamment les étapes de résolution du problème, pour
qu’elle soit exécutable par l’homme.
Ensuite, transférer la résolution en une suite d’étapes si élémentaire et
simple à exécuter, pouvant être codé en un programme dans un langage
compréhensible par ordinateur. Toute suite d’étapes si élémentaire et
simple à exécuter s’appelle un « ALGORITHME ».
L’algorithme est souvent exprimé avec une notation indépendante de
tout langage de programmation alors qu’un programme est écrit dans
un langage de programmation particulier.
II.3. TECHNIQUE D’APPROCHE DES ORDINOGRAMMES ET ALGO
CLASSIQUES
II.3.1. LES ORDINOGRAMMES
L’ordinateur étant une machine surpassant de loin l’homme quant à la
rapidité et la précision des opérations qui lui sont confiées. Mais, malgré
toutes ses qualités, il n’est qu’une machine et n’a pas la faculté de
raisonnement qu’il doit suivre pour mener à bien le problème qu’on lui
confie.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 8
Pour aider à expliquer chacun des pas de son raisonnement, pour
pouvoir dégager clairement la logique d’un problème, on a recours à
une représentation imagée de cette logique : l’ordinogramme ou
flowcharting.
« L’ordinogramme » est une suite ordonnée d’instruction écrite sous
forme symbolique ou schématique en vue de la résolution d’un problème.
L’ordinogramme est la représentation graphique conventionnelle du
raisonnement logique que l’on veut imposer à l’ordinateur en vue de lui
faire exécuter une application déterminée.
1. BUTS DE L’ORDINOGRAMME
o Le but principal doit être d’exprimer et de permettre de suivre la
ligne du raisonnement logique.
o Son but accessoire est d’être un lien entre la définition explicite du
problème et les programmes des instructions : autrement dit,
d’aider à transporter dans un programme d’instruction à
l’ordinateur, le raisonnement établi pour réaliser les objectifs
donnés du problème.
2. SYMBOLES
Il existe une série de symboles utilisés lors de l’établissement des
ordinogrammes pour illustrer les processus de traitement des données.
Pour favoriser la normalisation des symboles et simplifier ainsi le
problème des échanges d’information entre les informaticiens, existe un
monographe ou TEMPLATE pour l’établissement des ordinogrammes.
1. SYMBOLES D’ANALYSE 2. SYMBOLES DE PROGRAMMATION
Début ou fin
Carte perforée
Instruction (opération
du traitement)
Trie
Entrée ou sortie (lecture
ou écriture
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 9
Imprimer
Test ou comparaison
Renvoi sur même page
Branchements
3. REGLES DE GRAPHISME
Quelques règles simples doivent être respectées pour tenir un schéma
clair permettant de résoudre un problème.
Les règles sont les suivantes :
1. On commence toujours l’ordinogramme par le symbole de début à
l’intérieur duquel on écrit le mot « DEBUT » ou « START » et on
terminera l’ordinogramme par le même symbole mais avec le
terme « FIN », « STOP » ou « END ».
2. Il faut toujours entrer dans un symbole par le dessus
3. Les lignes de raccordement (branchement) sont verticales ou
horizontales. Utiliser sur les lignes les flèches indiquant le sens du
branchement.
4. Pour chaque symbole, il y a une seule entrée dans la partie
supérieure et une sortie dans la partie intérieure, sauf pour le
symbole de test (comparaison ou décision logique) qui doit avoir
une entrée dans la partie supérieure et deux sorties dans les
parties latérales, ou une latérale et une inférieure portant les
réponses (oui ou non) (vrai ou faux).
5. Dans le symbole de traitement (instruction), on peut y mettre une
ou plusieurs instructions.
II.3.2. LES ALGORITHMES CLASSIQUES
Les algorithmes classiques ce sont les algorithmes utilisés couramment
dans la vie sociale et professionnelle, à titre exemplatif : calendrier
académique, horaire de cours, catalogue, notice, les recettes,
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 10
application de facturation… en pratique nous distinguons 4 quatre
types d’algorithmes classiques :
De création ;
De contrôle ou conformité
De tri et ;
De mise à jour (MAJ)
L’algorithme renvoi toujours à la logique, c’est-à-dire la science de
raisonnement. La partie intelligente de l’ordinateur, le soft, regroupé des
programmes écrits utilisateur et/ou l’informaticien qui recourt à l’analyse
avant de programmer.
L’analyse étant une démarche intellectuelle, consiste à examiner de fond
en comble les résultats à obtenir, les données en entrées, les procédures
ou opération (formules) à utiliser ainsi que structures alternatives et
itératives.
Partant de la définition de l’algorithme, un bon algorithme doit remplir
les conditions suivantes : un algorithme doit donc être :
Lisible : l’algorithme doit-être compréhensible même par un non-
informaticien.
De haut niveau : l’algorithme doit pouvoir traduit en n’importe
quel langage de programmation, il ne doit donc pas faire appel
à des notions techniques relatives à un programme particulier ou
bien à un système d’exploitation donné.
Précis : chaque élément de l’algorithme ne doit pas porter à
confusion, il est donc important de lever toute ambiguïté.
Concis : un algorithme ne doit pas dépasser une page. Si c’est le
cas, il faut décomposer le problème en plusieurs sous-problèmes
structuré : un algorithme doit être composé de différentes parties
facilement identifiables.
La structure générale d’un algorithme comprend essentiellement 3
parties :
Une séquence début algorithme (SAD)
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 11
Une séquence de traitement et enregistrement logique (STEL)
Une séquence fin algorithme (SFA)
Que nous pouvons schématiquement représenter comme suite :
SDA
STEL
SFA
II.3.2.1. ALGORITHMES DE CREATION
Un algorithme de création est un algorithme de la logique qui permet
de créer un fichier c’est-à-dire saisir et enregistrer les données à partir
d’un support de départ. (Registre du personnel, liste de présence…)
l’enregistrement se fait sur un support informatique précis : disque dur,
CD, USB,…
1. ILLUSTRATION
Etant donné que le fipro (fichier produit) sur papier duplicateur
contenant le répertoire de tous les produits commercialisés par ELS. Il
nous est demandé de construire un algorithme permettant de créer un
fichier produit devra contenir tous les enregistrements logique (EL) de
fipro. La structure de données de sortie est la même que celle d’entrée.
Solution :
CP : Code produit (5 CN)
DES : Désignation (20 CAN)
AS : Ancien solde (7 CN)
TE : Total entrée (7 CN)
TS : Total sortie (7 CN)
NS : Nouveau stock (7 CN)
DTE : Date (10 CAN)
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 12
Exercice 1
Soit à concevoir un algorithme de création des étudiants de l’ISP dont la
structure se présente comme suite : N° Matricule, Nom et Postnom, Sexe,
Promotion, Département, Section. En sortie ; le SGADF veut avoir sur
papier imprimé les noms des étudiants en règles de frais académiques.
Déterminer la taille de chaque EL (enregistrement logique) en Kb.
Trouver la taille totale d’entrer et sortie en Mb.
Présentez le format de fichier entrée et sortie.
NB : 1 caractère vaut 1 octet : vaut 1 byte. Et 1 Ko ou Kb vaut 1024
octet ou bytes.
2. MODELE ALGORITHMIQUE
Le programme et algorithme de création sont normalement un
programme à une seule boucle. Son algorithme obéit donc au
logigramme de séquence logique.
Exemple :
CP DESIGNATION PU QTE PT DATE
01 Savon 200 80 120 Le 29/07/2024
02 Ordinateur 100 - - 30/07/2024
a. Structure générale
SDA Début algorithme : Nom du fichier, objectif
variable : déclaration, affectation, initialisation, codage, typage
STEL Boucle, test du fichier (EOF : End of file ?)
test, sinon si, calcul, incrémentation, affichage, Ecriture, branchement
SFA Impression : ecriture (Etats en sortie, initialisation des zones de sorties
Fermeture des fichiers. Fin algo
Quitter/Exit
Ces trois parties constituent la structure détaillée de l’algorithme à une
boucle :
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 13
b. Structure détaillée d’un algorithme de création
SDA Début algorithme
Nom programme : gestion de produit, objectif
Auteur programme : Lepetit
But programme : gérer les produits
Lieu et date programme : Kikwit, le 02/06/2024
variable : CP, PU, QTE, PT, DATE = 0 en Num
DES, en Char
Ouvrir fipro
Lire CP
Tant que Boucle = Vraie
Tester fipro
Si CP <820 alors
STEL Enregistrer CP
DES, PU, QTE, PT, DATE
LISTER « VARIABLE »
INCREMENTER CP = CP+1
RENTRER à lire
Finsi
Fin Boucle
Impression : Variable
Initialiser les zones de sorties
SFA Fermeture Fipro
Fin Algo
Quitter/Exit
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 14
c. Logigramme correspondant à l’algorithme de création
Début
OuvrirFipro
Lire CP
Oui Imprimer variables
EOF ?
Non
Initialiser : CP, QTE, PU, PT, DTE = 0, DEST =" " ;
Non
CP < 820 ?
Oui Fermer Fipro
ENREGISTRER VAR.
Fin
LISTER VAR.
CP = CP +1
3. SYNTHESE
Un algorithme de création c’est donc un algorithme qui ne possède une
seule boucle, où la saisie et l’enregistrement sont des opérations
fondamentales.
II.3.2.2. ALGORITHEME DE CONTROLE OU CONFORMITE
1. FONCTIONS
Les fonctions d’un algorithme de contrôles ou d’un programme de
conformité peuvent se résumer comme suit :
Lire un E.L (enregistrement logique)
Si c’est la fin du fichier (EOF), alors sortir de la boucle et aller à
séquence fin (SFA).
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 15
Sinon, contrôler les contenus de certaines rubriques
d’enregistrement logique (EL) lu pour voir si elles sont conformes
aux valeurs de variables consignées.
En cas d’erreurs imprimé l’EL erroné sur l’’imprimante en le
visualisant à la console (Ecran).
2. CARACTERISTIQUES
Ul algorithme contrôle possède en général :
Une boucle
Trois séquences logiques (SDA, STA et SFA).
Deux fichiers en sortie : un fichier de données validée sur disque
et un fichier d’erreur éventuellement sur imprimante que nous avons
appelé FIER, appelé couramment « première impression ».
3. ILLUSTRATION
Fichier à contrôler
FIPRO 1
Contrôle = correction
UT 01
FIER
Fichier à contrôlé ou
FIPRO 1
validé
Légende :
FIPRO : Fichier produit à contrôler
UT01 : Unités des traitements
FIER : Fichier d’erreurs
FIPRO*1 : Fichier produit corrigé (valide)
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 16
4. LOGIGRAMME DE SEQUENCES LOGIQUES
SDA
STR CLIENT DEL : Dernier Enregistrement
Non
D EL ?
Oui
SFA
5. EXERCICE D’APPLICATION
Soit la structure de FAGENT (fichier agent) actif dont le format en entrer
est le suivant :
N° Nom Post-nom Matricule Grade Fonction
TD :
a. Trouvez le pseudo-code qui permet de visualiser et d’imprimer le
salaire sachant que celui-ci est donné par :
S = (NJP * B) + ALF + PRIME
Dont :
S = Salaire
NJP = Nombre de jours prestés
B = Base
ALFA = Allocation familiale
b. Présentez le logigramme correspondant du pseudo-code :
10. OUVRIR FIAGENT
20. LIRE NJP. T et N°
30. TQ BOUCLE = Vraie
Si n° <= 100 alors
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 17
Enregistrer Sal = (NJP * B) + ALFA + PRIME
Finsi
N° = n°+1
LISTER VARIABLES
RENTRER A 20
FTQ
40. IMPRIMER VAR (N°, Nm, NPN, Sal)
50. INIALISER VAR
60. FERMER FIAGENT
70. FIN ALGO
80. QUITTER
B. Format du fichier en sortie
N° : Numéro (5 CAN)
Nm : Numéro matricule (5 CAN)
NPN : Nom et post nom (30 CAN)
SAL : Salaire (7 CAN)
Taille total = 47 C = 0,045 Kb
N° Nm NPN Sal
TP : Présentez le logigramme
II.3.2.3. ALGORITHME DE TRI
L’ordre de tri : par exemple le dictionnaire qui, généralement commence
par A et fini à Z.
Tri = mettre de l’ordre : taille, chronologique, alphabétique
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 18
1. BUT ET FONCTION
Le tri a pour but de mettre de l’ordre en vue d’organiser le fichier, en
utilisant la valeur d’une rubrique appelée clé de tri.
Notons que le fichier à trier se trouve en entrée et en sortie, nous avons
le fichier trie dans lequel les enregistrements logiques sont en ordre
souhaité, on dit que le fichier est trié.
2. CLE DE TRI
On appel clé de tri, la rubrique dont la valeur est utilisée pour trier un
fichier.
Exemple : En entrée
N° Nom Post-nom Matricule
01 PRISCILLE F L1 LMD
02 CLOVINE F L2 LMD
03 DIEULEVEUT M L3 LMD
N° Nom Post-nom Matricule
02 CLOVINE F L2 LMD
03 DIEULEVEUT M L3 LMD
01 PRISCILLE F L1 LMD
3. SORTES DE TRI
Il existe plusieurs sortes de tris à savoir :
Tri par insertion (méthode de SHELL MEET NEZER)
Tri par fusion
Tri par échange
Tri par extraction
Tri par ventilation
Tri rapide (on applique une technique de divisé pour régner)
I.3.2.4. ALGORITHME DE MISE A JOUR
1. Définition : Un algorithme de mise à jour (MAJ) c’est un algorithme qui
donne la possibilité d’ajouter, de supprimer ou de modifier un
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 19
enregistrement logique ou encore de modifier partiellement ou
totalement la structure même du fichier.
2. TYPES DES MAJ
Les types de mise à jour sont déterminés par rapport à leur fonction ainsi
nous avons :
MAJ : de suppression
MAJ : d’ajoute
MAJ : de modification EL (enregistrement logique)
MAJ : de modification structurelle (Fichier)
3. Exemple de MAJ structurelle
Il s’agit ici l’ajoute rubrique ou un champ seulement.
N° NPN SEXE PROMOTION
02 CLOVINE F L2 LMD
03 DIEULEVEUT M L3 LMD
01 PRISCILLE F L1 LMD
N° NPN SEXE OBSERVATION
02 CLOVINE F
03 DIEULEVEUT M
01 PRISCILLE F
EXERCICE D’APPLICATION
1. Soit le fichier enseignant, on demande :
a. Présentez l’algorithme d’actualisation du second (EL) n°03 en
remplaçant la fonction « recteur » par « DG »
b. Tracez le logigramme correspondant.0
Solution
Debut
N° fonction
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 20
Ouvrir FiEnse
Tant que non fin fichier
Lire N°
Si N°= 03 Alors
Aller à 6
Supprimer fonction « recteur » et remplacer « DG »
Sinon
Afficher « Suppression échouée »
Fin Tant que
Fin Algo
CHAPITRE III : GESTION DES DONNEES, INSTRUCTIONS
ELEMENTAIRES ET STRUCTURES DE CONTROLES
III.1. GESTION DES DONNEES
Lors de la codification de l’algorithme, la RAM va être sectionnée en
petites zones chacune capable de contenir une donnée quelconque
relativement à sa taille ; cette zone est appelée « variable » dans le
jargon informatique.
III.1.1. Définition d’une variable
Une variable est une zone mémoire identifiable dans laquelle on peut
placer une valeur susceptible d’être contenue dans cet espace pendant
l’exécution d’un programme.
Une variable sert à stocker et manipuler les données dans un
programme. Au regard de la définition ci-haut, il apparait clairement
qu’une variable est caractérisée par :
Un identificateur : c’est le nom qu’on attribue à la zone mémoire.
Ce nom doit être unique et ne doit pas être un mot réservé du
langage.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 21
Un type de données : c’est d’abord la taille de la données (un
nombre entier prendra certainement plus d’espace qu’un réel car
Z C R), puis la nature de la donnée (est-ce un texte, un chiffre ou
autre chose).
III.1.1.1. Types de variable
Il existe plusieurs types de variables :
Les variables du type numérique
Les variables du type alphanumérique…
III.2. INSTRUCTION ELEMENTAIRES
Le fonctionnement de l’ordinateur se résume comme suit : les inputs
(entrées) sont les données dont l’ordinateur a besoin pour résoudre un
problème quelconque. Pour réussir cette résoudre, la machine a besoin
de connaitre la procédure de résolution de ce problème. Après
différentes opérations du processeur (traitement), l’ordinateur produit un
résultat. C’est le output.
En générale, on parle des inputs (entrée) lorsqu’un utilisateur saisi des
informations dans un programme et des outputs lorsque la machine
affiche le résultat à l’écran ou l’imprime sur un support d’information.
Quand l’utilisateur fait la saisie, l’ordinateur lit ces informations et on
parle des instructions de lecture. Dans le cas où la machine écrit les
informations à l’écran ou sur un support d’information, on parle
d’instruction d’écriture.
III.2.1. Instructions d’écriture
Cette action permet de communiquer un résultat ou un message sur écran
ou sur imprimante pour l’utilisateur.
Syntaxe
ECRIRE (paramètre1 [[, paramètre2]…])
Pour afficher une information à l’écran, c’est-à-dire demandé à
l’ordinateur d’écrire un résultat à l’écran, nous allons utiliser l’expression
« ECRIRE » qui identifie un objet qui a la capacité d’afficher un texte
sur l’écran de l’ordinateur.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 22
Exemple
ECRIRE (" La valeur de 3*2 est égale à ", 3*2)
ECRIRE (" La moyenne est = ", MOY)
III.2.2. Instruction de lecture
L’instruction de lecture va permettre à l’utilisateur de fournir des valeurs
à notre programme. Plus précisément, cette instruction va « chercher »
une valeur sur un périphérique de communication et l’attribue à une
variable.
Syntaxe
LIRE (variable1 [[, variable2,]…])
Remarque :
1. La saisie se fait uniquement dans des variables. Ce sont les cases
(cellules) qui pourront accueillir les données correspondantes.
2. La donnée à introduire doit être de même type que la variable
réceptrice.
III.2.3. L’affectation
C’est l’action de chargé une valeur dans une variable. Cette valeur peut
elle-même être une variable, le résultat d’une expression arithmétique
ou logique ou une constante.
En pseudo-code, l’instruction d’affectation se note avec le signe ←
Syntaxe
Variable1 = variable2 | expression | constante
A ← B se lit " A reçoit B"
Remarque
L’affectation ne vide pas la variable émettrice (à notre droite) de sa
valeur. Par contre, le contenu de la variable réceptrice est écrasé et
remplacé par la nouvelle valeur.
Exercice1 : Ecrire l’algorithme permettant de calculer et d’afficher le
salaire net d’un employé. Sachant que :
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 23
Le salaire net = Salaire brut – valeur de l’impôt – valeur de CNSS
Salaire brut = (salaire de base + Prime de technicité + Prime de
transport + Prime des enfants) * Taux de travail
Taux de travail = nombre de jours travaillés/26
Prime des enfants = Prime d’un enfant * Nombre d’enfants
Valeur de l’Impôt = taux de l’Impôt * Salaire Brut
Valeur de CNSS = Taux de CNSS * Salaire Brut
Taux CNSS = 26,5 %
Taux d’Impôt = 2 %
Travail demandé, faites l’algorithme et l’ordinogramme relatif à cet
énoncé.
RESOLUTION
a. Algorithme du problème :
T_T = 26 ;
P_E = " " ;
SAL_NET = " " ;
SAL_BRUT = " "
SAL_BASE = " "
IMPOT = 26,5 % ;
CNSS = 2 %
N_E = " " ;
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 24
Début
Ecrire (" Entrer le nombre d’enfant") ;
Lire (N_E) ;
Ecrire ("Entrer le salaire brut") ;
Lire (SAL_BRUT) ;
Ecrire (" Entrer le salaire de base") ;
Lire (SAL_BASE) ;
Ecrire ("Entrer la valeur de la CNSS") ;
Lire (CNSS) ;
Ecrire (" Entrer l’IMPOT") ;
Lire (IMPOT) ;
Tant que non fin fichier faire
Lire (Fi_Sal_net) ;
P_E =P_E *N_E
CNSS = (26,5*SAL_BASE)/100
IMPOT = (2*SAL_BASE)/100
SAL_BRUT = (SAL_BASE+P_E+P_T+P_TRANSP)*T_T
SAL_NET = SAL_BRUT-IMPOT-CNSS
Afficher ("Votre salaire net égal à : SAL_NET) ;
Fin Tant que
Fin
III.3. LES OPERATEURS
III.3.1. Les opérateurs arithmétiques
Ce sont les opérateurs permettant d’effectuer des calculs arithmétiques
sur les variables. Les Algorithmes utilisent les signes suivants :
+ Pour additionner
- Pour la soustraction
* Pour la multiplication
/ Pour la division
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 25
III.3.2. Les opérateurs relationnels
Ces opérateurs permettent de tester des propositions. Ils renvoient donc
une valeur booléenne (vraie ou fausse). Les signes suivants sont utilisés :
> Pour le supérieur
< Pour l’inférieur
= Pour l’égalité
>= Pour supérieur ou égal
<= Pour inférieur ou égal
<> Pour le différent de
III.3.3. Les opérateurs logiques
Il s’agit des mots connus par l’Algorithme ou logique de programmation.
AND Pour désigner
NOT Pour désigner N’EST PAS
OR Pour désigner OU
3.1. Type booléen (logique)
Une valeur logique ou booléenne est l’une des deux valeurs "Vrai" ou
"Faux". Elle intervient dans l’évaluation d’une condition. Les opérateurs
sur les variables de types logiques et l’union.
La négation (notée par-non)
Soit A une variable booléenne :
A -A
Vrai Faux
Faux Vrai
L’intersection (notée : ^, et)
Soit A et b : deux variables booléennes :
A B A et B
Vrai Vrai Vrai
Vrai Faux Faux
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 26
Faux Faux Faux
Faux Faux Faux
L’union (notée : v, ou, +)
Soit A ou B : deux variables booléennes :
A B A ou B
Vrai Vrai Vrai
Vrai Faux Vrai
Faux Vrai Vrai
Faux Faux Faux
CHAPITRE IV : LES ALGORITHMES STRUCTURELS
IV.1. LES STRUCTURES DE CONTROLES
Les structures de contrôles servent à contrôler le déroulement de
l’enchaînement des instructions à l’intérieur d’un programme, ces
instructions peuvent être des instructions conditionnelles ou itératives.
Avant de concevoir un programme, nous allons décrire les différents
types de blocs de construction possibles et rappeler les principes de la
programmation structurée. N’importe quel problème informatique peut
être résolu en exécutant une série d’actions dans un ordre spécifique,
une telle procédure est appelée un algorithme.
Lorsque les instructions d’un programme sont exécutées l’une à la suite
de l’autre, dans l’ordre où elles ont été écrites, l’exécution est dite
séquentielle. Certaines instructions permettent au programmeur de
spécifier que la prochaine instruction à exécuter peut être différente de
celle qui est située dans la séquence, ces instructions effectuent un
transfert de contrôle.
Il existe deux types de structures de contrôles en algorithme :
Structure de contrôle de séquence conditionnelle (la séquentialité)
Structure de contrôle de séquence répétitive (boucle).
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 27
IV.1.1. Les structures conditionnelles
Souvent les problèmes nécessitent l’étude de plusieurs situations qui ne
peuvent pas être traitée par les séquences d’actions simples. Puisqu’on
a plusieurs situations, et qu’avant l’exécution, on ne sait pas à quel cas
de figure on aura à exécuter, dans l’algorithme on doit prévoir tous les
cas possibles. Ce sont les structures conditionnelles qui le permettent, en
se basant sur ce qu’on appelle prédicat ou condition.
IV.1.1.1. Structures conditionnelles simples ou complexe
Cette structure permet de tester une condition, mais qui permet
d’exécuter de l’une ou l’autre instruction si la condition est remplie ou
pas.
1. La structure conditionnelle SI
Cette structure utilise 3 éléments :
La condition introduite par SI ;
La clause ALORS (Then),
La clause sinon (ELSE) et FINSI pour certaine structure.
L’instruction conditionnelle est une expression dont la valeur est de type
booléen, c’est-à-dire la valeur peut être vraie ou fausse, 1 ou 0, Oui ou
Non.
Syntaxe
SI (Condition) ALORS
« Suite d’action(s)-1 »
SINON
« Suite d’action(s)-2
FINSI
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 28
Format organigramme
Condition
TRAITEMENT -2 TRAITEMENT -2
FINSI
La <condition> est un prédicat, qui peut être vrai ou faux, selon les
valeurs des paramètres la constituant.
Si la condition est vérifiée (sa valeur est vrai), c’est la <suite
d’actions-1> qui sera exécutée. Ensuite, le système passe à
l’exécution juste après le FINSI.
Dans le cas contraire, lorsque la condition n’est pas vérifiée (valeur
de la condition est fausse), c’est la <suite d’actions-2> qui
s’exécute, en cas où celle-ci existe (facultative). Si elle n’existe pas,
le système passe directement à l’instruction qui suit le FINSI.
Les suites d’action 1 et 2, peuvent être des actions simples ou même
des structures conditionnelles.
Exemple1 :
Lire un nombre réel, et dire s’il est positif ou strictement négatif.
a. Algorithme
VAR A : réel
DEBUT
LIRE (A)
SI A <0 ALORS
ECRIRE (A. "est négatif")
SINON
ECRIRE (A. "est positif")
FI NSI
FIN
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 29
TD : Faites son ordinogramme :
Exemple 2 : Ecrire un algorithme qui permet de calculer le prix total
avec l’accord d’une réduction de 10 % au client si le prix total est
supérieur à 8000Fc, calculer aussi le net à payer. La structure en sortie
est la suivante : DES, PU, QTE, PT, RED, NAP.
Exemple 3 : écrire un algorithme qui permet d’afficher « il passe de
classe », lors que la côte est supérieure ou égale à 50. Au cas contraire,
le programme doit afficher « il reprend l’année ».
Si cote >= 50 alors
Ecrire « il passe de classe »
Sinon écrire « il reprend l’année »
Fsi
IV.1.1.2. Structures conditionnelles complexe (choix multiple)
1. Structure SI…ALORS…SINON SI…ALORS…SINON…FINSI
Cette structure permet de tester plusieurs conditions chacune séparément
et associer une série d’instructions à chaque condition.
Syntaxe :
Si condition1 Alors
Traitement1 ;
Sinon si condition2 Alors
Traitement2 ;
Sinon si condition3 Alors
Traitement3
Sinon
Sinon si condition4
Finsi
Finsi
Finsi
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 30
Exercice 1 : Faite un algorithme capable d’accorder une réduction à tous
les clients selon les critères suivants :
Pour les clients ayant acheté les produits de la catégorie A : pour un
montant de plus de 10.000Fc, une réduction de 10%. Pour un montant
supérieur ou égal à 5.000Fc une réduction de 5%. Sinon une réduction
de 3%. Pour les autres catégories, présenter la structure conditionnelle.
Solution
SDA
10 Ouvrir
STR
20 Tant que non f f
30 Lire Ficlient
40 Si mont>10.000Fc Alors
50 Réd=mont * 10/100
Sinon
60 Si mont>=5000Fc et mont<10000Fc Alors
70 Réd= mont * 3/100
Sinon
80 Réd= 5/100
Finsi
Finsi
SFA
90 Imprimer " liste de clients"
100 Fermer Ficlient
110 Fin
Exercice1 : faites un algorithme permettant de gérer une agence de
location de voiture dont les marques sont les suivantes : Mazda :
15000Fc ; Youndai : 7000Fc ; Peugeot : 20000Fc ; Toyota : 25000Fc.
Chaque montant de la marque vaut une heure par course. Une réduction
de 2.5% est accordée à chaque client dont le nombre d’heure par course
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 31
est supérieur ou égal à 10 heures. 1.5% pour 5 heures au cas contraire
la réduction est de 0.5%. Calculer aussi le net à payer par le client lors
de location du véhicule.
TD : présenter l’algorithme relatif à ce problème.
Exercice2 : Dans un mini supermarché, on a les produits ci-dessous avec
leurs prix respectifs :
Boisson gazeuse : 1550Fc/pièce
Yaourt nature : 2300Fc/pièce
Viande de porc : 5$/Kg
Poissons : 16+1.3$/pièce
Biscuit : 700Fc/pièce
NB : une réduction de 3% est accordée au client qui achète pour plus de
100$ et de 4.5% au client qui achète pour au moins 250$. Ecrivez un
algorithme pour automatiser les calculs des factures.
2. La structure conditionnelle avec SELON
Cette structure conditionnelle est appelée aussi à sélective car elle
sélectionne entre plusieurs choix à la fois, et non entre deux choix
alternatifs (le cas de la structure SI).
Syntaxe
Selon que condition traitement1
Ou que condition traitement2
Ou que condition traitement3
Ou que condition traitement4
Autrement traitement n
Fselon que
La structure SELON évolue le "sélecteur", passe à comparer celui-ci
respectivement avec les valeurs dans les listes. En cas d’égalité avec une
valeur, les actions correspondantes, qui sont devant cette valeur, seront
exécutées.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 32
Exemple : Faites un algorithme qui permet d’afficher la mention de
résultats des étudiants après délibération, selon les critères suivants :
Lorsque le point est supérieur ou égal à 90 : la mention est
égale à la plus grande distinction
Lorsque le point est supérieur ou égal à 80 mais inférieur à
90 : la mention est égale à la grande distinction
Lorsque le point est supérieur ou égal à 70 mais inférieur à
80 : la mention est égale à distinction
Lorsque le point est supérieur ou égal à 50 mais inférieur à
70 : la mention est égale à la satisfaction ;
Au cas contraire, la mention est ajournée.
Solution
Selon que point >= 90 écrire « la plus grande distinction »
Ou que point >= 80 et < 90 écrire « grande distinction »
Ou que point >= 70 et < 80 écrire « distinction »
Ou que point >= 60 et < 70 écrire « satisfaction »
Finselon que
IV.1.2. Les structures itérative, répétitive (boucle)
Nous allons maintenant étudier les structure les plus puissantes de
l’algorithme, à savoir les structures de répétition (ou de boucle) : elles
permettent d’exécuter à plusieurs reprises une série d’instructions.
Par définition, une boucle est un ensemble d’instructions ordonnées et
finies placées dans un même endroit du programme ou d’algorithme et
exécutées de manière répétitive.
L’informatique de gestion est caractérisée par un volume important de
données ayant la même structure. Elle utilise plus cette structure
répétitive. Les éléments qui caractérisent une boucle sont :
Un ensemble d’instructions
Placer un endroit de l’algorithme du programme
Exécution répétitive
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 33
Sous une condition.
Cette structure permet d’exécuter plusieurs fois un traitement. Elle
nécessite à fixation d’une d’arrêt de la boucle. Il y a 3 sortes de boucles
algorithmiques :
La boucle tant que (while en englais)
La boucle pour (for en anglais)
La boucle répétitive (Do while)
1. Boucle tant que
La boucle Tant que (pour While en anglais) tourne tant que l’expression
qu’on lui donne est vraie. Autrement dit, dans cette boucle, les instructions
ne sont exécutées que si la condition est vérifiée.
Syntaxe
Tant que condition faire
Traitement
Fin tant que
Exemple1 : Faite la production d’un listing de paie à partir du Fipaie :
dont nous avons N°, Matricule, Nom, Salaire, Signature en sortie.
Résolution
SDA
Ouvrir Fipaie
N=0
STR
Tant que non fin fichier Faire
Lire mat, nom, salaire
Si mat = « 99 » alors
Exit faire
Finsi
N=N+1
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 34
Ecrire « N, Mat, nom, salaire »
SFA
Fermer fipaie
Fin
2. La boucle répéter
Cette boucle est très similaire à la précédente… si ce n’est que la
condition n’est testée qu’à la fin. Cela signifie que le contenu de la
boucle sera toujours lu au moins une fois.
Syntaxe
Répéter
Traitement
Jusqu’à condition
Exemple1 :
Compteur = 1
Répéter
Ecrire Compteur ; ‘permet d’écrire 1234… 20
Compteur = compteur + 1
Jusqu’à compteur <= 20
FinRépéter
3. La boucle pour
Cette structure est utilisée si le nombre est connu d’avance. Elle contient
un indice de la boucle qui est une valeur entière.
Syntaxe :
Pour variable de … à … Faire
Traitement
Fpour
Remarque
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 35
1. La boucle POUR est utilisée lorsqu’on connaît le nombre de
répétition du <Traitement> d’avance.
Exercice : Ecrire un algorithme qui permet d’afficher tous les nombres
pairs qui existent entre 1 et 10.
Solution
POUR i de 2 à 10 pas 2
Faire
ECRIRE (i)
FINFAIRE
IV.2. LES ALGORITHMES A UNE BOUCLE
2.1. Caractéristique ou propriétés générales
Cet algorithme passe par trois caractères généraux :
Trois structures logiques (SDA, STR, et SFA)
Un ou plusieurs fichiers en entrée ou pas du tout
Un ou plusieurs fichiers en sortie
2.2. SCHEMA
10 SDA
20 STR
30 SFA
2.3. IDENTIFICATION DE MODELE ALGORITHMIQUE (IMA)
Ici deux fichiers à valider : le fichier d’entrer et fichier de sortie.
Exemple :
Soit un algorithme qui calcul le salaire de 150 agents d’une entreprise
agricole de la place dénommé Afrifood. Les informations nécessaires
liées au traitement de cette paie sont fournies ci-dessous.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 36
Solution
a. Fichier d’entrée : Fichier
MATR NPN GR BASE RET NAP
b. En sortie : Etat de paie (listing de paie)
MATR NPN GR BASE RET NAN SIGN
c. IMA
Le fichier Etat de paie est un ensemble des données structurées
hiérarchiquement. Il comprend 2 niveaux à savoir :
1. Etat de paie (EP) : est une structure répétitive ;
2. La seconde possède une structure non répétitive.
1°) Niveau : EP (Etat de paie) 2°) Niveau : Agent
GLE (1 fois) MATR (1 fois)
Agent (+fois) NPN (1 fois)
Tot NAP (1 fois) GR (1 fois)
BASE (1 fois)
RET (1 fois)
NAP (1 fois)
Exercice1
Soit la boulangerie MORIJA spécialisée à la fabrication de pains. Désire
imprimer la liste de clients journaliers dont la structure est la suivante :
nom du client, sexe, adresse, quantité commandée, prix unitaire, prix
total, réduction et le net à payer. Une réduction de 1500Fc est accordée
aux clients dont l’ancienneté égal à 5 ans et être veuve.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 37
Solution
1. Enoncé :
Données d’entrée : nom du client, sexe, adresse
Données de sortie : n°, nom du client, sexe, adresse, quantité
commandée, prix unitaire, prix total, réduction et le net à
payer
Règles de calcul : N=N+1, PT= PU * QTE
2. Format d’entrée et sortie (description)
a. Données de sortie : liste de client
LISTE DES CLIENTS
N° Nom Sexe Adresse Quantité PU PT Réd Nap
b. Données d’entrée
Nom Sexe Adresse Quantité PU PT Réd Nap
c. Identification du modèle algorithme (IMA)
a) Sortie : listecli
Niv1 : listecli Niv2 : client
GLE (1x) N° (1x)
Client (px) nom (1x)
GLT (1x) sexe (1x)
Adr (1x)
Qte (1x)
Pu (1x)
Pt (1x)
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 38
Réd (1x)
Nap (1x)
b) Entrée/Ficli
c) Traitement
Niv : algorithme
SDA (1x)
STR (1x)
SFA (1x)
d. Liste ordonnée des instructions (LOI)
SDA
OuvFicli
N=0
NAP=0
PT=0
Imp«GLE »
STR
Tantque non Fin fichier
Lire Ficli
Si exp= "5 ans"
Si Etmatri ="veuve" alors
Réd=mont-1500Fc
Pt=Qt*Pu
Nap=mont-réd
N=N+1
Finsi
Fin tant que
Imprimer : "nom, sexe, adresse, qte, pu, réd, nap"
Fermer Ficli
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 39
Fin
e. Logigramme
IV.3. ALGORITHME A DEUX BOUCLES
1. Propriété générales
Un algorithme à deux boucles emboité ou imbriqué est un algorithme qui
comprend :
5 séquences logiques dont :
SDA
SBI (Séquence boucle intermédiaire)
STEL
SFBI (Séquence fin boucle intermédiaire)
SFA
1 ou plusieurs fichiers en entrée
1 ou plusieurs fichiers en sortie
2. Schéma de principe
Boucle intermédiaire
10 SDA
20 SBI
30 STEL
40 SFBI
50 SFA
Exemple :
Soit à imprimer la liste des étudiants de l’ISP par promotion et par
département.
TD :
a. Donnez les caractéristiques générales
b. Tracez le schéma de principe
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 40
c. Présentez le modèle hiérarchique
d. Tracez le logigramme
a) Les caractéristiques générales
A= nombre de boucle
B= 1 (constant) et
Y=nombre des séquences logiques
b) Schéma de principe
10 SDD
20 SBP
30 STETUD
40 SFP
50 SFD
c) Modèle hiérarchique (IMA)
Niveau1 Niveau2 Niveau3 etudiants département
Dpart (1fois) Prom (1fois) N° (1fois)
Prom (+fois) Etud (+fois) Matr (1fois)
FDpart (1fois) Prom (1fois) NPN (1fois)
Sexe (1fois)
Mont (1fois)
Obs (1fois)
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 41
CHAPITRE V : ETUDE DE CAS
Enoncé du problème N°1
En votre qualité de programmeur, on vous demande d’écrire le
programme en algorithme permettant d’afficher « a droit à la session
au mois de juillet ». Si l’utilisateur saisie L1 et les nombres de
participation au cours est >30 séances. Dans le cas contraire le
programme doit afficher « vous devriez suivre obligatoirement les cours
de récupération ».
Travail demandé : Construisez l’algorithme et l’ordinogramme.
Enoncé du problème N°2
Ecrire un algorithme et à l’aide de l’instruction sélection, on vous
demande d’écrire cet algorithme permettant d’afficher le nom de pays
à l’aide de code, c’est-à-dire :
Code 0 doit affiché GABON
Code 2 CONGO BRAZAVILLE
Code 4 jusqu’à 7 affiche RDC
Code 9 et 15 affiche KENIA
Et tous les autres codes > 15 affiche code inexistant.
Travail demandé : Construisez l’algorithme
Enoncé du problème N°3
La direction générale d’une entreprise des ventes des vivres frais à
décider d’accorder une gratification de fin d’années, uniquement aux
employés de la DC ou de la DP si et seulement si le CA réalisé dépasse
3.000.000Fc. Elle a fixé les conditions suivantes pour les éventuels
bénéficiaires :
Si on est de la DC ou DP, il faut être L2 ou G3 et avoir une
ancienneté de plus de 2 ans, et être coté E (Elite), TB (Très bien ou
B (Bien) ;
NB : cette gratification sera de 75% de salaire de base.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 42
Travail demandé : construisez l’algorithme et logigramme.
Enoncé du problème N°4
Soit le FIAGENT contenant des informations nécessaires au traitement de
paie des agents d’une institution ; et structuré comme suit :
MATR, NPN, GR, BASE, AFA, RET.
On vous demande de produire l’état de paie qui contiendra les
informations suivantes :
N°, nom, base, net, nap.
Enoncé du problème N°5
Les clients sont repartis en 3 catégories suivant le montant de leurs
commandes :
La première catégorie est constituée par les grossistes ou gros
clients. Ces derniers s’ils commandent plus de 500 articles se voient
une ristourne de 7%. Si non, la ristourne est de 4%.
La deuxième catégorie est constituée par les demi-grossistes ou
clients moyen bénéficie d’une ristourne de 4% s’il commande plus
de 300 articles ; si non, la ristourne est de 2% seulement ;
Enfin, la troisième catégorie est constituée par les plus de 120
articles a une ristourne de 3%.
Travail demandé : Construisez l’algorithme
Enoncé du problème N°6
Soit établir la facture d’un client. Les objets à figurer à l’écran, se
présente comme suit :
Nom client
Code client
Désignation
Quantité
Prix unitaire
Remise
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 43
Montant à payer
NB : une remise de 10% est accordée au client dont le montant est
supérieur ou égal à 100.000Fc et une prime de fidélité accordée aux
clients qui vont acheter la marchandise dont le coût est supérieur à
250.000Fc.
Travail demandé : Construisez l’algorithme
Enoncé du problème N°7
On vous demande de développer un algorithme qui permet de calculer
la facturation dans un magasin. Une réduction de 10% est accordée aux
clients dont la marchandise achetée dépasse ou égal à 25.000Fc. Au
cas contraire vous n’aurez rien comme réduction.
Travail demandé : Construisez l’algorithme et l’ordinogramme.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 44
CHAPITRE VI : INITIATION A LA PROGRAMMATION
VI.1. UN NOUVEAU CONCEPT DE DEVELOPPEMENT
Au cours des 35 dernières années, les concepteurs de matériel
informatique sont passés de machines de la taille d’un hangar à des
ordinateurs portables légers basés sur de minuscules microprocesseurs.
Au cours des mêmes années, les développeurs de logiciels sont passés
de l’écriture de programmes encore plus grands en C et C++. On pourra
parler de progrès (bien que cela soit discutable), mais il est clair que le
monde du logiciel ne progresse pas aussi vite que celui du matériel.
Qu’ont dont les développeurs de matériels que les développeurs de
logiciels n’ont pas ?
La réponse est donnée par les composants. Si les ingénieurs en matériels
électronique devaient partir d’un tas de sable à chaque fois qu’ils
convient un nouveau dispositif, si leur première étape devait toujours
consister à extraire le silicium pour fabriquer des circuits intégrés, ils ne
progressaient pas bien vite. Or, un concepteur de matériel construit
toujours un système à partir de composants préparés, chacun chargé
d’une fonction particulière et fournissant un ensemble de services à
travers des interfaces définies. La tâche des concepteurs de matériels
est considérablement simplifiée par le travail de leurs prédécesseurs.
La réutilisation est aussi une voie vers la création de meilleurs logiciels.
Aujourd’hui encore, les développeurs de logiciels en sont toujours à partir
d’une certaine forme de sable et à suivre les mêmes étapes que les
certaines de leurs programmeurs qui les ont précédés. Le résultat est
souvent excellent, mais il pourrait être amélioré. La création de nouvelles
applications à partir de composants existant, déjà testés, a toutes
chances de produire un code plus fiable. De plus, elle peut se révéler
nettement plus rapide et plus économique, ce qui nr’est pas moins
important.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 45
VI.1.1. Les caractéristiques d’un bon programme
Facteur externes
1.1. Exactitude
Un programme ne peut présenter un intérêt pour le demandeur que dans
la mesure où celui-ci peut l’activer aveuglement, c’est-à-dire qu’il peut
accorder une confiance totale aux résultats d’un programme n’est pas
une conséquence directe de l’existence du programme : il faut que le
programme soit exécuté par une machine de traitement de l’information.
Pour décider de l’exactitude d’un programme, on ne tiendra pas compte
de la phase d’exécution sur l’équipement réel.
Supposons que le demandeur et le programmeur sont d’accord quant à
la définition du problème, l’ensemble des cas données possibles, et la
forme à donner à la représentation des résultats. Un résultat n’est
produit qu’après toute une série d’étape : un algorithme doit être
imaginé ; un programme, basé sur cet algorithme, doit être conçu ; le
programme doit être compilé afin d’obtenir une séquence d’instructions
élémentaires d’une machine d’un type donné ; finalement un exemplaire
de la machine doit prendre en charge l’exécution de la machine doit
prendre en charge l’exécution de la séquence d’instructions
élémentaires. Les deux dernières étapes entrainent l’intervention
d’élément (compilateur, ordinateur de traitement) dont l’exactitude et la
fiabilité ne sont généralement pas sous le contrôle du programmeur.
C’est pourquoi on fait l’hypothèse de l’exactitude du compilateur utilisé
et de la fiabilité de l’ordinateur. En d’autres termes, on considère que le
choix des équipements pour les deux dernières étapes est la
responsabilité du demandeur.
Comment convaincre de l’exactitude d’un programme ?
En acceptant les limites de la nation d’exactitude d’un programme, il
reste à établir comment le programmeur peut convaincre le demandeur
de l’exactitude du programme.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 46
a. Utilisation de tests
Supposons que l’on effectue x activations d’un programme donné et que,
à chaque activation, on change le cas d’application du programme (les
données initiales du cas de problème à résoudre). Supposons que
chaque activation s’en terminée en produisant un résultat et que nous
possédons une méthode qui permet de vérifier que ce résultat est bien
le résultat attendu. Que peut-on conclure d’une telle expérience ?
Deux issues sont possibles :
- Ou bien, certaines activations n’ont pas produit le résultat attendu ;
on peut en conclure que le programme ne possède pas la
caractéristique des données ; en d’autres termes, il est erroné ;
- Ou bien, les x activations ont, toutes sans exception, produit le
résultat attendu ; peut-on en conclure que le programme est
correct ? pas nécessairement.
b. Argumentation
L’argumentation que doit fournir le programmeur est une explication
rigoureuse du raisonnement suivi lors de la conception du programme.
Cette explication doit montrer que le programme couvre correctement
l’ensemble de données possibles.
c. L’Efficacité
L’exactitude d’un programme n’est pas la seule caractéristique qui
compte pour le demandeur. Celui-ci s’intéresse aussi à l’efficacité du
programme. L’efficacité d’un programme est une mesure des ressources
à mettre en œuvre pour produire le résultat attendu du programme. Un
programme sera d’autant plus efficace que la quantité de ressources à
mettre en œuvre sera faible.
1.2. Trois types d’efficacité
Nous considérons 3 types d’efficacité pour un programme donné :
L’efficacité inhérente à l’algorithme ;
L’efficacité dans un contexte technologique ;
L’efficacité spécifique à un équipement.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 47
L’efficacité inhérente à l’algorithme est l’estimation d’un ordre de
grandeur du temps (et l’espace mémoire) requis pour une exécution, en
fonction de la taille des données.
L’efficacité dans un contexte technologique tient compte de
caractéristiques propres à toute une famille d’équipements. Ces
caractéristiques peuvent modifier considérablement la pertinence en
pratique de l’efficacité inhérente à l’algorithme.
Par exemple, de nombreux équipements actuels mettent en œuvre le
concept de mémoire virtuelle. Dans de nombreuses applications, le
programmeur ne peut pas ignorer cette situation.
L’efficacité spécifique à un équipement donné intervient quand on désire
exploiter toutes les possibilités d’amélioration de l’efficacité d’un
programme. Des modifications sont apportées au programme afin de
tenir compte des particularités d’exécution d’une machine donnée.
VI.2. Notions d’informatisation
Informatiser un sous-système ou un domaine quelconque d’activité d’une
entreprise, revient à maitriser le système informationnel du domaine
d’activité concerné et d’écrire ainsi des programmes capables de
manipuler ces informations dans le but de répondre favorablement à
tous les besoins des utilisateurs.
Par définition, l’informatisation peut aussi se définir comme étant c’est
l’installation d’un système de traitement automatique de l’information.
Nous proposons ici quelques pistes synthétiques sur la démarche
d’informatisation.
1. Conduite de Projet
La méthode de conduite de projet d’informatisation a été conçue pour
bien cerner les attentes des utilisateurs. C’est donc une démarche très
utile à mettre en œuvre lors de la mise en place d’une nouvelle fonction,
d’un nouveau service, et donc notamment d’une informatisation.
2. Les phases de la méthode
Repartir les besoins des utilisateurs
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 48
Distinguer entre :
Besoins exprimés
Besoins réels
Besoins reformulés
Analyser les besoins en termes de fonctions d’usage et autres
Fonction d’usage : décrit un besoin à partir de là ou des fonctions
élémentaires auxquelles il doit répondre.
Exemple : s’informer régulièrement sur un sujet. Une fonction s’exprime
le plus souvent par un verbe actif. Il peut être assorti de critères qui sont
autant d’adverbes ou de qualificatifs.
Exemple : transmettre l’information rapide – Recevoir une information
fiable.
Cette phase de l’analyse fonctionnelle est très importante en ce sens
qu’elle permet de lever les ambigüités qui se glissent fréquemment dans
l’expression des besoins. Elle permet ainsi d’éviter de partir sur de
fausses pistes.
Analyse de l’existant
Cette phase permet de dresser l’inventaire de ce qui existe, même si cet
existant est strictement embryonnaire. Une situation n’est jamais
totalement vierge. Elle permet en outre de valider les premières analyse
fonctionnelles réalisées en phase précédente.
Recherche de solution
C’est dans cette phase qu’il est fait appel à l’expertise professionnelle
du conseil.
1.3. Notion sur le Progiciel
Un progiciel ou logiciel d’application standard élaboré sur mesure, est
constitué d’un ensemble des programmes qui manipulent des données
relatives à un domaine d’activité précis.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 49
Exemple :
Dans une entreprise donnée, on peut écrire les progiciels concernant les
problèmes suivants :
Gestion du personnel
Gestion comptable
Gestion du charroi automobile
Gestion de stock, …
Chacun de progiciel spécifié, résolut un problème d’un sous-système de
l’entreprise qui est considéré comme un système.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 50
CONCLUSION
Ce cours sur l’algorithme s’adresse spécialement aux étudiants de
première année de graduat en informatique, et à toute personne
souhaitant une information simple, directe et pratique sur les notions
algorithmiques.
Ce cours comprend outre introduction et la conclusion, six chapitres,
détaillé ci-haut.
Le titulaire du cours, n’a volontairement gardé que les travaux
pratiques, pour permettre aux étudiants une immersion immédiate. De
nombreux exercices sont proposés pour faciliter cette assimilation.
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]
Notes de cours d’Algorithme et Méthode de Programmation Page | 51
BIBLIOGRAPHIE
Notes de cours
MINZONZA D, Cours d’algorithme, G1 IG, ISS
MAPHANA NGUMA, Eléments d’informatique générale, L1
Economie UNIKIN Collection 2012
NSELE Grace, Cours d’algorithme I, G1 IG ISC-KKT, 2018-2019
Elies JEBRIS, Cours d’algorithme
Grace NSELE, Cours de Programmation I, L2 Info-math LMD, ISP-
KKT, 2020-2021
Ouvrages
Rémy Malgouyres, Initiation à l’algorithme et à la programmation
en C, 2ème Edition Dunod Paris, 2011
Thomas Corne, Initiation à l’algorithme, 2ème Edition Dunod Paris,
2001
M, DELEST, Initiation à l’algorithme 2017, Université de
Bordeaux1
E. KANGA Emmanuel, Cours de Génie Logiciel L1 Info, ISC-
GOMBE, 2014-2015
Patrick Bosc, Marc Guyomard et Laurent Miclet, Conception
d’algorithme, 15 février 2016, Ed. sociétés des informaticiens de
France
Christophe DARMANGEAT, Algorithme et programmation,
université paris 7, 2008
ALEXANDRE-MESLE, Algorithme, 2008
Site internet
www.Sos_devoirs_corriges.com
Site internet [Link]
28/04/2022
[Link]ç[Link]
Conçu et réalisé par l’Ingénieur Lepetit MABIDI
[0813226488 – lepetitmabidi@[Link] – MicroTech Books]