République Démocratique du Congo
ENSEIGNEMENT SUPERIEUR ET UNIVERSITAIRE
INSTITUT SUPERIEUR PEDAGOGIQUE D’UVIRA
ISP – UVIRA
BP. 2316 BUJUMBURA
E-mail: [Link]@[Link]
Site internet: [Link]
SECTION DES SCIENCES COMMERCIALES, ADMINISTRATIVES
ET INFORMATIQUE.
DEPARTEMENT D’INFORMATIQUE DE GESTION
Notes du Cours d’Algorithme et Méthodes de
Programmation destiné aux étudiants de BAC+1
Informatique de Gestion.
Dispensé par AMANI MAISHA Sulutani
Chef de Travaux
Année académique 2023-2024
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
PRESENTATION DU COURS (UNITE D’ENSEIGNEMENT)
I. Intitulé de l’Unité : Algorithme et Méthodes de Programmation
II. Promotion : BAC+1IG
III. Crédit : 4 Crédits soit 45H CMI, 10H TD et 5H TP
IV. Enseignant :AMANI MAISHA, Chef de Travaux au Département
d’ Informatique de Gestion à l’ISP-Uvira.
V. Objectifs du Cours :
L’Unité d’Enseignement (UE) « Algorithme et Méthodes de Programmation » en première année
de Licence (LMD) poursuit l’objectif général ci-après : donner aux étudiants débutants en
informatique les éléments essentiels d'une méthodologie qui permet d'analyser un problème,
d'exprimer de manière claire un schéma de résolution de ce problème puis d'évaluer ce schéma
avant de le traduire dans un langage de programmation (langage Pascal, par exemple).
Spécifiquement, le cours permettra à l’étudiant à (de, d’):
- Acquérir et maîtriser les concepts de base d’Algorithme et Méthodes de
Programmation (connaitre le vocabulaire et les principes liés à l’algorithmique, savoir
quand et pourquoi utiliser un algorithme, connaitre des structures de base d’un
algorithme en pseudo-code, savoir utiliser les variables, les expressions mathématiques,
les procédures et les fonctions, savoir utiliser les instructions de lecture, d’affectation et
d’écriture, les boucles, les conditions en [pseudo-code1],…),
- Analyser un problème et proposer une solution algorithmique,
- Donner un schéma de résolution de ce problème,
- Concevoir des algorithmes simples,
- Apprendre à présenter les solutions et formaliser un algorithme puis un programme,
- Apprendre à résoudre des problèmes réels qui surviennent fréquemment dans les
applications informatiques,
Cette Unité d’enseignement mettra en lumière les différentes utilisations des
algorithmes dans la conception et le développement des programmes informatiques.
VI. Plan du Cours ou contenu du cours :
Le contenu du cours est le suivant :
CHAPITRE 1 : NOTIONS GENERALES SUR L’INFORMATIQUE
1
En programmation, le pseudo-code, également appelé LDA (Langage de Description d’Algorithmes) est une façon de
décrire un algorithme en langage presque naturel, sans référence ç un langage de programmation en particulier.
Par Chef de Travaux AMANI MAISHA 1
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
CHAPITRE 2: METHODE INFORMATIQUE DE RESOLUTION D’UN PROBLEME
2.1. Notions
2.2. Exemples introductifs
2.3. Organigramme
2.4. Notion d’actions
2. 4 Algorithme
2.5. Programme
N 2.6. Le langage structuré ou pseudo-code
2.7. Du problème au programme
2.8. Notions sur le compilateur, l’interpréteur et le code source
2.9. Langage algorithmique
Chapitre 3. ENTREES ET SORTIES
[Link] d’écriture
[Link] de lecture
Chapitre 4. LES OPERATEURS
4.1. Operateurs mathématiques (arithmétiques)
4.2. Operateurs relationnels (de comparaison)
4.3. Operateurs logiques
4.4. Priorités des operateurs
4.5. Exercices
Chapitre 5 : LES VARIABLES ET CONSTANTES
5.1. Notions
5.2. Différents types de variables
5.3. Déclaration
5.4. Prise des valeurs (ou affectation des valeurs)
5.5. Opérations sur les variables
5.6. Exercices
Chapitre 6. LES STRUCTURES CONDITIONNELLES OU ALTERNATIVES
6.1. Notions
6.2. Si….alors (if…then)
6.3. Si……alors….sinon ( if…then…else)
6.4. Case….of….end.
6.5. Exercices
Chapitre 7. LES STRUCTURES REPETITIVES OU ITERATIVES (LES BOUCLES)
7.1. Notions
Par Chef de Travaux AMANI MAISHA 2
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
7.2. La Boucle « Pour …. Allant de….A « (FOR….. :=…..TO……DO)
7.3. La boucle « REPETER... TANT QUE... » » (Repeat until
7.4. La Boucle « Tant que….Faire » (WHILE……..DO)
7.5. BREAK…….
7.6. Exercices
Chapitre 8. LES PROCEDURES ET FONCTIONS
8.1. Notions
8.2. Procédures (procédures simple et procédure paramétrée)
8.3. Fonctions
Chapitre 9. LES TABLEAUX
9.1. Notions
9.2. Déclaration
9.3. Accès aux éléments du tableau
9.4. Déclaration d’un type tableau
9.5. Tris et recherches dans un tableau
VII. Méthodologie d’enseignement
L’UE est théorique et pratique avec tableau, craies et explication au TN plus les
interactions des étudiants et pratique sur l’ordinateur. Pour une meilleure acquisition de la matière,
chaque étudiant doit avoir le syllabus en dur ou en électronique et muni de son ordinateur.
L’enseignant utilisera la méthode d’enseignement expo-explicative et démonstrative. On partira des
théories et pratiques pour chaque notion développée afin de bien illuminer la matière.
VIII. Mode d’évaluation
Les évaluations se feront en premier lieu par des travaux dirigés et des travaux
pratiques. L’étudiant brillant aura droit à quelques points de plus pour chaque intervention
pertinente. La présence au cours est obligatoire et chaque présence vaut un (1) point afin de
constituer les travaux journaliers qui prendront 50% et un examen écrit à notes fermées qui prendra
à son tour 50%.
IX. Langue d’enseignement
La langue d’enseignement est le français et peu d’anglais pour certains termes
informatiques.
X. Prérequis
Pour bien comprendre et assimiler cette Unité d’Enseignement, il faut préalablement:
Connaitre et utiliser fréquemment les logiciels bureautiques,
Les systèmes d’exploitation d’un ordinateur,
Avoir un zeste d’expérience en mathématique est un plus.
Par Chef de Travaux AMANI MAISHA 3
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
XI. Références bibliographiques
1) Didier FOURT, Glossaire des termes Informatiques-Informatique Pratique, V8.18/
[Link]
2) Université des Frères Mentouri, Constantine 1 Cours informatique 1
3) CHRISTOPHE DARMANGEAT, cours d’algorithmique, (applications informatiques à la
gestion économique et sociale), UNIVERSITÉ PARIS VII DENIS DIDEROT
4) Dr. ADJOUDJ, Langages de programmation : TURBO PASCAL & MATLAB, Université
Djillali
5) Liabès(UDL), 2010. Patrick Coquillard Audrey Robert, Tutorial de programmation en
langage
6) Pascal, UC, 2002 Edouard Thiel, Algorithmes et programmation en Pascal, Faculté des
Sciences de Luminy, 2004
Par Chef de Travaux AMANI MAISHA 4
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
INTRODUCTION
Informatiser une application, bulletin des points, par exemple, c’est faire réaliser par
l’ordinateur, une tâche qui était réalisée par l’homme. Pour faire exécuter une tâche par l’ordinateur,
il faut tout d’abord, détailler suffisamment les étapes de résolution du problème, pour afin qu’elle
soit exécutable par l’homme. Ensuite, transférer la résolution en suite d’étapes si élémentaire et
simple à exécuter, pouvant être codée en un programme dans un langage compréhensible par
l’ordinateur.
Les algorithmes sont en programmation des outils essentiels pour résoudre des
problèmes et prendre des décisions en informatique. Les développeurs qui maîtrisent
l’algorithmique sont capable d’analyser et de décomposer un problème complexe en tâches plus
simples et de concevoir des solutions efficaces pour résoudre ces problèmes.
Toute suite d’étapes si élémentaire et simple à exécuter s’appelle un « Algorithme ».
L’ensemble des principes, règles et techniques qui permettent d’écrire un Algorithme est appelé
« l’Algorithmique ».
Naturellement, les étapes de résolution d’un problème sont :
1) Comprendre l’énoncé du problème,
2) Décomposer le problème en sous-problèmes plus simple à résoudre,
3) Associer à chaque sous problème, une spécification : les données nécessaires, les
données résultantes, la démarche à suivre pour y arriver au résultat en partant d’un
ensemble de données,
4) Elaboration de l’Algorithme.
Par Chef de Travaux AMANI MAISHA 5
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
CHAPITRE 1 : NOTIONS GENERALES SUR L’INFORMATIQUE
1.1.Définition des concepts clés
1.1.1 Informatique
Contrairement à la plupart des disciplines scientifiques, il n’existe pas d’équivalent
anglais du terme français informatique. Ce terme revêt plutôt deux sens chez les anglophones :
- Electronic Data Processing (traitement électronique de données), met
l’accent sur l’objet manipulé ; il s‘agit du côté pratique ;
- Computer Science (science de l’ordinateur), met en évidence la machine
qui permet la manipulation de l’information. C’est un aspect théorique.
Le mot « Informatique »1 a été proposé officiellement par l’ingénieur français Philippe
DREYFUS en 1962 (normalisé en 1966), Cependant, une controverse relate que le mot «
informatique » a été pour la première fois prononcé par l’ingénieur allemand KARL STEINBUCH
en 1957.
Par ailleurs, En juillet 1968 le mot fût repris dans le discours d'un ministre allemand, M.
STOLTENBERG, sous la forme germanisée « informatik ». De fil en aiguille le mot s'est
rapidement répandu dans plusieurs pays d'Europe : « informática » en Espagne et au Portugal ; «
informatica » en Hollande et en Italie ; « informatik » en Norvège ; « informatika » en Hongrie,
Russie et Slovaquie. Les anglo-saxons et américains préfèrent généralement le terme « computer
science – science des ordinateurs » mais le terme « informatics » est parfois usité en Grande-
Bretagne et certains pays francophones. Par ailleurs, Le terme « informaticien » est donc un terme
générique désignant une personne dont le travail est en grande partie lié à l'informatique.
L’informatique est un mot valise composé de deux concepts: Information et
Automatique. Ainsi donc, l’informatique peut être considérée comme une automatisation de
l'information, ou plus exactement un traitement automatique de l'information. L'information désigne
ici tout ce qui peut être traité par une machine (textes, nombres, images, sons, vidéos...). L'outil
utilisé pour traiter l'information de manière automatique s'appelle un ordinateur.
Selon la définition acceptée par l’Académie Française : « l’informatique est une «
science du traitement rationnel, notamment par machines automatiques, de l'information
considérée comme le support des connaissances humaines et des communications dans les
domaines techniques, économiques et sociaux ».
Selon I.B.M (International Business Machine), « l‘informatique est définie comme étant
l‘ensemble de disciplines techniques et scientifiques spécialement applicables à la conception et à
l‘utilisation des machines de traitement de l‘information et l’ordinateur est l’outil privilégié ».
Par Chef de Travaux AMANI MAISHA 6
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Dans le contexte de ce cours, « l’informatique est la science du stockage, du traitement
et de la transmission de l’information d’une manière automatique ».
Et donc, elle désigne trois concepts : une science, un art et une technique.
Elle est une science quand elle est orientée vers la recherche de la vérité. Ici, elle est
la science renfermant les normes et techniques de traitement de l’information. Ces normes et
techniques sont de règles de jeu qui permettent à l’informatique d’automatiser l’information. Pour
arriver à son objectif ; l‘informatique utilise un outil appelé « l‘ordinateur ».
Elle est une technique dans la mesure où c‘est une application de l’électronique.
Elle est un art parce qu’elle permet à l’esprit humain à se révéler c.à.d. le génie
humain. L'informatique est la science qui permet de traiter automatiquement et rationnellement les
informations à l'aide d'un ordinateur.
1.1.2. Ordinateur
Un ordinateur est un ensemble de circuits électroniques permettant de manipuler des
données sous forme binaire, c'est-à-dire sous forme de bits. Le mot « Ordinateur » provient de la
société IBM France. François Girard, alors responsable du service promotion générale publicité de
l'entreprise IBM France, eut l'idée de consulter son ancien professeur de lettres à Paris, afin de lui
demander de proposer un mot caractérisant le mieux possible ce que l'on appelait vulgairement un «
calculateur » (traduction littérale du mot anglais « computer »). Ainsi, Jacques Perret, agrégé de
lettres, alors professeur de philologie latine à la Sorbonne, proposa le 16 avril 1955 le mot «
Ordinateur » en précisant que le mot « Ordinateur » était un adjectif provenant d‘Emile Littré
(Lexicographe Français du 19ème siècle) signifiant « Dieux mettant de l'ordre dans le monde ».
Ainsi, il expliqua que le concept de « mise en ordre » était tout à fait adapté. L‘ordinateur a été
appelé « outil intelligent », car il augmente notre habileté à exécuter des tâches exigeant l‘activité
mentale. L’ordinateur est une machine électronique qui inclue des dispositifs optiques,
électromécaniques ou électromagnétiques et dont le fonctionnement est guidé par des programmes
réalisés par l’homme :
- Un ordinateur est inerte en l’absence d’alimentation électrique ou de
programme ;
- Son « QI » (quotient intellectuel) est NUL et il est incapable
d’initiative ;
- L’ordinateur est un outil complexe. Il est encore nécessaire d’en
connaître le fonctionnement pour bien l’utiliser.
Par Chef de Travaux AMANI MAISHA 7
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
1.1.3. Algorithme
Le mot algorithme vient du nom du célèbre mathématicien arabe Al Khawarizmi (ABU
JA'FAR M OHAMMED BEN MUSSA AL-KHWARISMI) origine de l’ancienne ville de
KHAWARISM aujourd’hui « KHIVA » située en ex-U.R.S.S. « algorithmique » a été conçu en 1958
par des chercheurs universitaires.
Par définition, un Algorithme est une suite d’instructions ayant pour but de résoudre un
problème donné. Autrement dit, l’Algorithme est suite finie et non ambiguë d’instructions et
d’opérations permettant de résoudre une classe de problèmes. Un algorithme peut comprendre des
procédures et instructions algébriques, arithmétiques, et logiques, et autres. Un algorithme peut être
simple ou compliqué.
Cependant un algorithme doit obtenir une solution en un nombre fini d'étapes. Les
algorithmes sont fondamentaux dans la recherche d'une solution par voie d'ordinateur, parce que
l'on doit donner à un ordinateur une série d'instructions claires pour conduire à une solution dans un
temps raisonnable.
1.1.4. Algorithmique
L’Algorithmique est une étude de la résolution de problèmes par la mise en œuvre de
suites d'opérations élémentaires selon un processus défini aboutissant à une solution. En d’autres
termes, c’est l’étude des algorithmes.
1.1.5. Ordinogramme
Un ordinogramme ou schéma fonctionnel qui présente les différentes fonctions d'un
programme, les unes à la suite des autres en utilisant des symboles graphiques pour visualiser
l'exécution d'un programme. Ce type de graphique permet de représenter, contrôler et commenter
plus facilement les entrées et sorties de données ou les branchements.
1.1.6. Programme
En informatique, un programme est un ensemble d’opérations (instrutions) destinées à
être exécutées par l’ordinateur.
NB : un « bon programme » doit être :
Bien spécifié ;
Clair, donc bien structuré ;
Facile à tester ;
Aisément modifiable (Facile à la maintenance) ;
Robuste (Résistant aux erreurs de l’utilisateur) ;
Correct ;
Efficace.
Par Chef de Travaux AMANI MAISHA 8
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
1.1.7. Programmation
La programmation est l’action et l’effet de programmer. Ce verbe contemple plusieurs
usages, à savoir : idéaliser/concevoir et ordonner les actions qui auront lieu dans la cadre d’un
projet ; la divulgation des parties qui composent un acte ou un spectacle ; une préparation des
machines pour réaliser une certaine tâche à un moment donné ; l’élaboration de programmes pour la
résolution de problèmes au moyen d’ordinateurs,… De nos jours, la notion de programmation est
souvent associée à la programmation en informatique. Il s’agit d’un processus par lequel un
programmateur (ou programmeur) écrit, dans un langage de programmation, le code-source d’un
logiciel. Ce code indique au programme informatique ce qu’il doit faire et comment. La
programmation est réalisée à l’aide des algorithmes. En autres, la programmation, appelée aussi
codage, est l’ensemble des activités qui permettent l’écriture des programmes informatiques. C’est
une étape importante du développement de logiciels.
1.1.8. Langage machine
Le langage machine est codage binaire d'instructions et de données que le processeur
peut exécuter directement. Le langage machine est fondé sur les caractéristiques d'un processeur
particulier. Les autres programmes (formulés dans le code mnémonique d'un assembleur ou dans un
langage de programmation évolué) doivent être traduits par un assembleur ou un compilateur dans
le langage machine du processeur utilisé ou traduits et exécutés par un interpréteur. Le langage que
l’ordinateur comprend vraiment est le langage Binaire (langage machine) constitué par 0 et 1 ( 0 : le
courant ne passe pas et 1 : le courant passe).
1.1.9. Langage de programmation
Langage de programmation est une notation conventionnelle destinée à formuler des
algorithmes et produire des programmes informatiques qui les appliquent. Un langage de
programmation est mise en œuvre par un traducteur automatique : Compilateur ou interpréteur.
1.1.10. Une Information
Une « information » est tout élément de connaissances représentées par des signes et
symboles de manière conventionnelle pour être conservé, traité ou communiqué. En informatique
de gestion, une « information » est la représentation subjective d’un fait, d’une situation, d’un
évènement sous forme conventionnelle qui en assure la permanence et facilite le maniement ainsi
que la transformation. Elle est l‘ensemble de l‘entité, l‘attribut ainsi que les valeurs.
1.1.11. Une donnée
Par contre, Une « donnée » est une unité élémentaire dans le processus de prise de
décision. C'est un renseignement sur un sujet donné. Elle peut être comprise comme un fait, une
notion ou une instruction représentée sous forme conventionnelle convenant à la communication, à
Par Chef de Travaux AMANI MAISHA 9
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
l‘interprétation, ou à un traitement par l‘homme ou par des moyens automatiques. La donnée peut
être écrite ou audible.
Remarque : En informatique, le concept information est compris comme l‘ensemble de données
pouvant être traitées par un système informatique. Autrement dit, c’est la représentation des
informations au moyen d’un ordinateur.
1.2. Structure et fonctionnement d’un ordinateur
La structure de base d'un ordinateur comprend plusieurs éléments essentiels qui
travaillent ensemble pour permettre le fonctionnement du système. Voici une description succincte
des principales composantes de la structure d'un ordinateur :
- Unité centrale de traitement (UCP) : Aussi connue sous le nom de processeur, l'UCP est
le cerveau de l'ordinateur. Il exécute les instructions des programmes et effectue les
opérations de calcul.
- Mémoire vive (RAM) : La RAM est une mémoire temporaire utilisée par l'ordinateur pour
stocker les données et les programmes en cours d'utilisation. Elle permet un accès rapide aux
informations nécessaires au processeur.
- Mémoire de stockage : Cette mémoire, généralement sous forme de disque dur ou de SSD,
sert à stocker de manière permanente les données, les fichiers et les programmes, même
lorsque l'ordinateur est éteint.
- Carte mère : La carte mère est la plateforme principale qui connecte toutes les composantes
matérielles de l'ordinateur, y compris le processeur, la mémoire, les cartes d'extension et
d'autres périphériques.
- Cartes d'extension : Ces cartes, telles que les cartes graphiques ou les cartes réseau,
peuvent être ajoutées à la carte mère pour améliorer les fonctionnalités de l'ordinateur.
- Alimentation électrique : L'alimentation électrique convertit l'électricité de la prise murale
en une forme utilisable par l'ordinateur.
- Périphériques d'entrée/sortie: Les périphériques comme le clavier, la souris, l'écran,
l'imprimante et les dispositifs de stockage externes permettent à l'utilisateur de
communiquer avec l'ordinateur.
- Système d'exploitation (OS) : Le système d'exploitation est un logiciel qui gère les
ressources matérielles et permet l'exécution d'autres programmes. Les exemples incluent
Windows, macOS et Linux.
- Logiciels : Les programmes et applications spécifiques que les utilisateurs exécutent pour
effectuer des tâches spécifiques sur l'ordinateur.
Tout ceci est structuré autour de trois circuits principaux :
Par Chef de Travaux AMANI MAISHA 10
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
- Les entrées/sorties, qui permettent à l'ordinateur de communiquer avec l'extérieur ;
- Une mémoire qui mémorise les données à manipuler ;
- Un processeur, qui manipule l'information et donne un résultat.
1.3. Langage de l’ordinateur
Le langage binaire a été inventé dans les années 1930 et donna le coup d'envoi au
développement des ordinateurs. Les ordinateurs ne peuvent fonctionner qu’avec le système binaire,
c’est-à-dire un système ne fonctionnant qu’avec deux chiffres : 0 et 1. Un chiffre, que ce soit 0 ou
1, est nommé ‘’bit’’ et contient une seule information transcrite en tant que chiffre. Ce mot vient du
terme « Binary Unit », soit « Unité Binaire ». Ainsi, les ordinateurs traitent les informations avec
8 bits qui forment un octet (ou 1 byte). Ils disposent d’une mémoire et effectuent des opérations
logiques. Le langage binaire est utilisé pour tout transport d’information par voie
électronique.
1.3.1. Le binaire en informatique
Lorsque votre processeur, qui est le cerveau du PC, vas traiter les instructions pour
faire tourner vos programmes, il va manipuler des 0 et des 1. De même, tout ce qui est stocké sur
notre ordinateur est stocké sous forme binaire. Donc oui, vos photos, vos vidéos, vos fichiers texte,
tout ce qui est sur votre ordinateur est en réalité représenté en mémoire par une suite de 0 et de 1.
Par Chef de Travaux AMANI MAISHA 11
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
On appelle cela le langage binaire ou en base 2 car il n’y a que 2 possibilités 0 ou 1.
C’est le langage qu’utilise les différents composants de votre ordinateur pour communiquer entre
eux et travailler.
A ce stade, vous allez vous dire que les développeurs sont vraiment des gens perchés
et qui aiment se complexifier la vie. Et bien détrompez-vous, un bon développeur est avant tout
faignant ou plus exactement il cherche à faire des choses simples et efficaces. Le binaire est super
simple et basique, il n’y a que 2 états 1 et 0, vrai ou faux. Les chiffres binaires 0 et 1 sont appelés
bits. Ce mot est la contraction de l’expression anglaise binary digit. Les entiers de 0 à 7 sont les
huit seuls entiers qui peuvent s’écrire en binaire avec trois bits seulement (en complétant par des
bits nuls à gauche si nécessaire). Un octet est un nombre qu’on peut écrire en binaire sur huit bits.
Ce sont les entiers compris entre 0 et 255. Ils sont au nombre de 256. Warning ! Le mot anglais
byte désigne ce qu’en français on nomme octet. Donc byte≠bit.
De plus si on regarde de quoi est constitué un processeur, par exemple, et bien vous
allez voir qu’il est composé de plusieurs Milliards de transistors. Mais un transistor c’est quoi? et
bien pour simplifier c’est une sorte d’interrupteur commandé électriquement. Quand il laisse passer
le courant on dit que cela correspond au 1 alors que si le courant ne passe pas, cela correspond au
0. Il n’y a que deux états possibles ce qui correspond à notre bon vieux binaire.
1.3.2. Binaire et représentation
1) Bits et registres
Un élément qui permet de stocker des 1 et 0, s’appelle un BIT. Mais un BIT seul, n’est
pas très intéressent, on les regroupe donc par paquet: les registres. Un registre de 8 BITs
correspond à un octet. Vous avez surement déjà entendu ce mot car c’est l’unité que l’on utilise
pour la taille des fichiers sur un disque dure par exemple. À cette fin, on utilise couramment des
Par Chef de Travaux AMANI MAISHA 12
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
multiples de l’octet, comme le kilooctet (ko), le mégaoctet (Mo), le gigaoctet (Go) ou le téraoctet
(To).
Le BIT de gauche est le poids fort et celui de droite le poids faible. Finalement c’est
comme avec nos nombre décimaux, comme par exemple 123, ou le 1 est le digit de poids fort et le 3
celui de poids faible.
2) Décimale et binaire
Ok mais comment ça marche le binaire? pour bien comprendre, nous allons revoir un
truc ultra basique mais vous allez voir que ça nous aidera a comprendre le fonctionnement du
binaire. Dans la vie de tous les jours on compte en décimale ou base 10, cela signifie que l’on utilise
10 caractère différents pour représenter nos nombre. C’est clairement lié au fait que l’on a 10
doigts. On utilise donc les caractères 0 à 9 pour écrire nos différents nombre.
Cela vous parait surement logique et naturelle mais après tout, vous connaissez
surement une autre représentation des nombres? Comme par exemple les nombres Romains.
Il se trouve qu’il existe en fait de nombreuses autre représentation des nombre comme
par exemple le binaire (base 2), car ici on utilise uniquement 2 caractères pour représenter les
nombre: 0 et 1
Par Chef de Travaux AMANI MAISHA 13
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
3) Binaire et conversion
Maintenant que nous avons vue comment représenter un nombre sous forme de binaire,
voyons comment faire des conversions dans les deux sens.
4) Convertir un nombre binaire en décimale
Pour convertir un nombre binaire ne décimale, c’est très simple. On prend les
différents BITs que l’on multiplie avec leur poids, puis on en fait la somme. Par exemple pour cet
octet: 10000010.
5) Convertir un nombre décimale en binaire
Pour convertir un nombre décimal en binaire, nous allons également utiliser ce petit
tableau avec les différents poids des Bits. Le principe est simple, imaginez que le nombre à
convertir, correspond à un tas de billes. Le but est alors de remplir les cases du tableau avec les
billes mais attention, il y a des règles :
1. Il faut commencer par le BIT de poids fort et finir par celui de poids faible.
2. Pour remplir une case, il faut mettre exactement le nombre de bille correspondant au
poids du BIT.
Exemple 1 : Convertissons 77 en binaire.
Il s'agit de faire une suite de divisions euclidiennes par 2. Le résultat sera la juxtaposition
des restes. Le schéma ci-dessous explique la méthode :
77 s'écrit donc en base 2: 1001101.
Par Chef de Travaux AMANI MAISHA 14
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Exemple2, le nombre 19, cela donne alors:
6) Codage des caractères en binaire
Le codage des caractères : notre alphabet contient 26 lettres de a à z. En différenciant
les majuscules et minuscules, 52 caractères sont nécessaires, sans compter les lettres accentuées. Il
faut, de plus, 10 chiffres de 0 à 9. On doit compter les caractères des accents, des guillemets, de la
ponctuation, les symboles mathématiques. Mais un clavier comporte aussi des commandes (flèches
d e curseur, tabulation, suppression, etc.). Il y a en tout plus de 100 éléments à coder.
a) Peut-on coder tous ces caractères sur un seul octet ? Pourquoi ? Un code a été créé, le
code ASCII (American Standard Code for Interchange Information). A chaque valeur d'octet
correspond un caractère ou une commande du clavier. En voici un extrait:
Remarque : Le caractère 32 est "l'espace". Les autres cases vides correspondent à des
caractères non représenté.
Nous l’avons dit en introduction que le système binaire trouve son utilité dans tous les domaines
liés à l’informatique et l’électronique. Le langage binaire est utilisé pour tout transport
d’information par voie électronique. Par exemple les lettres de notre alphabet sont codés par nos
ordinateurs en binaire selon les codes ci-dessous :
Par Chef de Travaux AMANI MAISHA 15
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
7) La Base Décimale
Comme c'est le système de représentation naturel pour tout le monde, il nous servira à
poser les bases de la numération. C’est le système de base 10 que nous utilisons tous les jours. Il
comprend dix symboles différents : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.
- Notation - Exemple du nombre 2356 dans ce système.
Par convention nous l’écrirons N=(2356)10. L’indice '10' indique la base dans laquelle le
nombre est écrit. Nous verrons plus tard que cela a son importance. Décomposition du nombre dans
sa base Ce nombre N peut être écrit sous la forme suivante : N = 2.10³ + 3.10² + 5.101 + 6.100 =
2000+300+50+6=2356. Cette méthode de décomposition sera utilisée pour toutes les autres bases
8) Les bases 8 (octal) et 16 (hexadécimal)
Les écritures décimales et binaires des nombres entiers ne sont pas les seules utilisées.
En informatique deux autres bases sont plus ou moins fréquemment employées :
1) la base 8 utilisant les huit chiffres de 0 à 7 ; on parle alors d’écriture octale
des nombres ;
2) la base 16 utilisant les dix chiffres usuels de 0 à 9 et les six premières lettres
de l’alphabet de A à F ; on parle alors d’écriture hexadécimale des nombres.
L’Octal
Déterminons les écritures octales des nombres 47 et 3010. Pour cela il suffit d’écrire
chacun de ces deux nombres comme somme de puissances de 8. Une méthode pour le faire est de
diviser le nombre à écrire par la base autant de fois que nécessaire.
- Pour 47
47 = 8 × 5 + 7
7 = 8 × 0 + 7.
En prenant les restes successifs des divisions qui précèdent,
On trouve 47 = 5 × 8. 1 + 7 × 8 .0.
D’où l’écriture octale de 47 est : 𝟓𝟕𝟖
Par Chef de Travaux AMANI MAISHA 16
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
- Pour 3010
3010 = 8 × 376 + 2
376 = 8 × 47 + 0
47 = 8 × 5 + 7
5 = 8 × 0 + 5.
En prenant les restes successifs des divisions qui précèdent, on trouve 3010 = 5 × 8 3 +
7 × 8 2 + 0 × 8 1 + 2 × 8 0. D’où l’écriture octale de 3010 est 3010 = 57028
47 Hexadécimale
Ce système est moins connu du grand public, mais il est très utilisé comme mode de
représentation d'un nombre. C'est un système de base 16, il comporte donc 16 symboles : 0, 1, 2, 3,
4, 5, 6, 7, 8, 9, A, B, C, D, E et F. Comme nous avions déjà les 10 premiers symboles, il ne nous
fallait que 6 symboles supplémentaires afin de compléter notre jeu. Il a été décidé de prendre les
premières lettres de l'alphabet. Les valeurs des différentes lettres sont : A=10, B=11, C=12, D=13,
E=14 et F=15.
Déterminons les écritures hexadécimales des nombres 47 et 3010. Pour cela il suffit
d’écrire chacun de ces deux nombres comme somme de puissances de 16 avec la technique des
divisions successives :
- Pour 47
En prenant les restes successifs des divisions qui précèdent, on trouve 47 = 2 × 161 + 15
× 160.
D’où l’écriture hexadécimale de 47 en employant le chiffre F pour représenter 15 :
47 = 2F16.
Pour 3010
3010 = 16 × 188 + 2
188 = 16 × 11 + 12
11 = 16 × 0 + 11.
En prenant les restes successifs des divisions qui précèdent, on trouve 3010 = 11 × 162
+ 12 × 161 + 2 × 160. D’où l’écriture hexadécimale de 3010 en utilisant le chiffre B pour 11, et le
chiffre C pour 12 :
3010 = BC216.
Par Chef de Travaux AMANI MAISHA 17
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
NB : Les nombres binaires sont souvent composés d’un nombre de bits. On préféré généralement
les exprimer dans le système octal (b=8) et Hexadécimale (b=16) car la conversion en système
binaire est simple.
Pour quelle raison les informaticiens accordent-ils une attention particulière à ces deux
bases ? Tout simplement parce que 8 = 2 3 et 16 = 2 4 , et comme on l’a vu, tout nombre compris
entre 0 et 7 peut-être écrit en binaire à l’aide de trois bits, et tout entier n’excédant pas 15 a une
écriture binaire sur quatre bits. Cette remarque a pour conséquence que le passage du binaire à
l’octal ou le contraire peut-être obtenu sans calcul arithmétique, et de même pour les conversions
binaire/hexadécimal.
0.3. Quelques unités de mesure de l’Information
En ordre de grandeur, on peut retenir les unités standardisées depuis 1998 par
l’organisme International IEC (International Electrotechnical Comission).
Par Chef de Travaux AMANI MAISHA 18
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Par Chef de Travaux AMANI MAISHA 19
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
CHAPITRE 2: METHODE INFORMATIQUE DE RESOLUTION D’UN
PROBLEME
2.1. Notions
La méthodologie de résolution des problèmes informatiques est un ensemble de
processus utilisés pour résoudre des problèmes liés à l'informatique. Cette méthodologie peut être
divisée en plusieurs étapes clés qui aident les ingénieurs informatiques à comprendre, analyser et
résoudre un problème.
2.1.1. Analyse du problème
C’est l’étape la plus importante car les solutions du problème en dépendent. L’analyse
du problème peut être faite en disséquant les difficultés de façon arborescente. D’une manière
générale, il faut répondre aux questions suivantes :
- Que doit faire l’algorithme ? (il s’agit là de répertorier les résultats escomptés : quelles sont
les entrées et quelle est leur nature?, quelles sont les sorties pour chaque cas des entrées?),
- Quelles sont les informations dont je dispose pour résoudre le problème ?;
Quel type du modèle des données vais-je utiliser (comment modéliser les données d'entrée,
sortie, intermédiaires?, quelles sont les sous-tâches?, exprimer sous-forme d'algorithme la
manière d'obtenir le résultat final à partir des résultats des sous-tâches)
- Quelle méthode de résolution vais-je utiliser compte tenu des informations dont je dispose?
2.1.2. Edition de pseudo code ou Codage
- La saisie du texte de programme se fait tout comme celle d’un texte normal, mais elle doit
respecter les règles de syntaxe et de lexique imposées. Il est conseillé d’aérer suffisamment
le texte afin de faciliter la lecture du programme et la correction des erreurs.
- Traduction en langage de programmation tout en respectant la syntaxe et la lexique
imposées.
2.1.3. Mise au point (Compilation/Exécution) : Passage sur machine avec tests et
correction d'erreurs.
Le texte source tel qu’il vient d’être édité ne peut pas être directement exécuté par la
machine. Il faut donc le convertir dans un code compréhensible par la machine : c’est la
compilation. Il s’agira de vérifier l’orthographe correcte des instructions (vérification lexicale) et
leur bonne syntaxe (vérification syntaxique). Au cours de cette opération, une erreur rencontrée est
signalée par un message. Il faut la corriger avant de continuer l’opération. Le succès d’une
compilation est signalé par une fenêtre d’information qui apparaît à l’écran ; appuyer sur une touche
pour la désactiver.
Par Chef de Travaux AMANI MAISHA 20
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Elle consiste à demander à la machine de suivre les instructions du programme pour
produire les résultats. Cette opération n’est possible qu’après une compilation avec succès.
NB : On répond à une série de questions :
A-t-on bien prévu tous les cas des entrées et sorties ?
Obtient-on dans chaque cas ce que l'on voulait calculer ?
Avons-nous introduit suffisamment d'abstraction dans l'algorithme ?
Notre algorithme est-il compréhensible par quelqu'un d'autre?
2.2. Exemples introductifs
Un exemple de problème qui nous concerne tous (oui, même vous) est celui de la
cuisine : vous êtes dans une cuisine, vous trouvez du riz, comment le cuire ? Voici une marche à
suivre simple :
- remplir une casserole d’eau ;
- y ajouter une pincée de sel ;
- la mettre sur le feu ;
- attendre l’ébullition de l’eau ;
- mettre le riz dans la casserole ;
- le laisser cuire 10 à 15 minutes ;
- égoutter le riz.
J’ai décrit une solution au problème ”il faut faire cuire du riz”, sous forme de concepts
simples. Vous remarquerez qu’il y a pourtant beaucoup de choses implicites : j’ai précisé que vous
étiez au départ en possession du riz, mais il faut aussi une casserole, de l’eau, etc. On peut se
trouver dans des situations spécifiques où tous ces objets ne sont pas disponibles, et il faudra alors
utiliser un autre algorithme (ou commencer par construire une casserole...). Les instructions que j’ai
utilisées sont ”précises”, mais on pourrait préciser moins de choses, ou plus. Comment fait-on pour
remplir une casserole d’eau, plus précisément? Si le cuisinier à qui la recette est destinée ne sait pas
interpréter la ligne ”remplir une casserole d’eau”, il faudra l’expliquer en termes plus simples (en
expliquant comment utiliser le robinet, par exemple). De même, quand vous programmez, le degré
de précision que vous utilisez dépend de nombreux paramètres : le langage que vous utilisez, les
bibliothèques que vous avez à disposition, etc.
2.3. Ordinogramme
Un ordinogramme est une représentation graphique d’un algorithme, il permet de
schématiser graphiquement la solution d’un problème. Un ordinogramme permet de mieux
visualiser la démarche de résolution d’un problème, il est construit à partir d’un formalisme
comprenant cinq simples symboles normalisés qui sont reliés entre eux par des lignes de liaisons,
ces symboles sont :
Par Chef de Travaux AMANI MAISHA 21
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
SYMBOLE DESIGNATION
L’ovale : Il exprime le début ou la fin de l’organigramme
Le parallélogramme :
Il est utilisé pour les opérations d’entrée / sortie (Instruction ou
groupe d’instructions pour lire les données ou écrire les résultats)
Le rectangle :
Il est utilisé pour les opérations ou groupe d’opérations de
traitement (calcul) sur des données.
Le losange :
Il est utilisé pour la vérification d’une condition (un test).
Instruction conditionnelle. La condition est évaluée pour pouvoir
prendre le chemin correspondant.
Cercle de conjonction :
Il est utilisé pour la liaison de plusieurs critères.
Exemple : Ecrire un organigramme qui lit un nombre N non nul et affiche le message: inférieure à
"0" ou supérieur à "0" suivant sa valeur. Voici son ordinogramme :
2.3. Notion d’actions
Une action est effectuée si la condition est vérifiée. Si elle n'est pas vérifiée, une autre
action est effectuée ou, si rien n'est précisé, le programme passe à l'étape suivante. Si condition,
alors traitement 1. Les actions d’un algorithme sont : Affecter, Lire (ou saisir) et Écrire (ou
afficher).
Par Chef de Travaux AMANI MAISHA 22
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
2. 4 Algorithme
2.4.1. Par définition
Un Algorithme est une suite d’instructions ayant pour but de résoudre un problème donné.
Autrement dit, l’Algorithme est suite finie et on ambiguë d’instructions et d’opérations permettant de
résoudre une classe de problèmes. Un algorithme peut comprendre des procédures et instructions
algébriques, arithmétiques, et logiques, et autres. Un algorithme peut être simple ou compliqué.
Simplement, Un algorithme est une suite d’instructions ayant pour but de résoudre un
problème donné.
2.4.2. Les qualités d’un bon algorithme.
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 être 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 (Bref) : un algorithme ne doit pas très long. 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.
NB : La bonne connaissance de l’algorithmique permet d’écrire des algorithmes exacts et efficaces,
or c’est en écrivant des algorithmes corrects, qu’on devient un bon Programmeur. Un algorithme
correct doit donc subit à certains critères qui sont : être fini (achevé après un nombre fini d’actions
élémentaires), être précis (la machine n’a pas à choisir), être effectif (On pourrait le traiter “ à la
main ”) et mentionner les entrées (saisie de données) et les sorties (affichage des résultats)
2.4.3. Caractéristiques d’un algorithme
- Complexité : En combien de temps un algorithme va-t-il atteindre le résultat escompté? •
De quel espace a-t-il besoin?
- Calculabilité: Existe-t-il des tâches pour lesquelles il n'existe aucun algorithme ? Etant
donnée une tâche, peut-on dire s'il existe un algorithme qui la résolve ?
- Correction : Peut-on être sûr qu'un algorithme réponde au problème pour lequel il a été
conçu ?
Remarque :
- Un algorithme n'est donc exécutable directement par aucune machine. Mais il a l'avantage
d'être traduit facilement dans tous les langages de programmation.
Par Chef de Travaux AMANI MAISHA 23
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
- Un algorithme exprime la structure logique d’un programme informatique et de ce fait est
indépendant du langage de programmation utilisé. Par contre, la traduction de l’algorithme
dans un langage particulier dépend du langage choisi.
2.5. Programme
Comme définie ci-haut, un programme est constitué d'une suite d'instructions que la
machine doit exécuter. Un programme informatique est donc une suite d'instruction qui sera
exécutées par une machine. L'ensemble des composants électroniques constituants cette machine
produira un résultat après exécution dans un ordre précis (à l'origine du mot ordinateur).
Celle-ci exécute les instructions au fur et à mesure qu'elle lit le fichier (donc de haut en
bas) jusqu'à ce qu'elle rencontre une instruction (appelée parfois instruction de branchement) qui
lui indique d'aller un endroit précis du programme jusqu'à ce qu'elle arrive à la fin du programme et
celui-ci s'arrête.
Le seul « langage » que l’ordinateur puisse véritablement « comprendre » est donc très
éloigné de ce que nous utilisons nous-mêmes. C’est une longue suite de 0 et de 1 (les « bits »,
binary digit) traités par groupes de 8 (les « octets », byte), 16, 32, ou même 64.
Un programme est au moins structuré en quatre phases (4): conception, mise en œuvre,
test, diffusion et mise à jour.
[Link] langage structuré ou pseudo-code
Le langage structuré ou pseudo-code : pseudo car le code utilisé dans un algorithme
n'est pas rigide. Le pseudo-code représente textuellement l'algorithme.
Exemple d'algorithme :
Les pseudo-codes ont les avantages ci-après :
Par Chef de Travaux AMANI MAISHA 24
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
- Il conserve une bonne lisibilité, même lorsque l’algorithme s’allonge et que sa structure se
complexifie,
- Il est plus adapté pour présenter de l’information textuelle (par exemple, pour écrire des
phrases qu’un ordinateur exécutant l’algorithme écrirait sur l’écran) ;
- La traduction vers un langage de programmation est plus directe, car les langages de
programmation ont globalement la même structure que le pseudo-code ;
- Il est plus adapté de programmes purement informatiques, dédiés aux ordinateurs, mobiles,
web, etc.
[Link] problème au programme
La rédaction d’un algorithme est un exercice de réflexion qui se fait sur papier.
L’élaboration d’un algorithme précède donc l’étape de la programmation, C’est une démarche de
résolution de problème exigeante.
[Link] sur le compilateur, l’interpréteur et le code source
L’ordinateur est une machine bizarre, c’est le moins que l’on puisse dire. On ne peut
s’adresser à lui qu’en lui envoyant des 0 et des 1
2.8.1. Compilateur
Un compilateur est le programme qui se charge de traduire le programme de haut
niveau en langage compréhensible par l’ordinateur. Il existe un compilateur pour chaque langage
de haut niveau. Le compilateur, récupère les instructions écrites en langage de programmation et les
convertit en langage machine.
NB : La Compilation Consiste à Traduire le Programme source (code source) en langage machine.
2.8.2. Interpréteur
Un interpréteur est le programme chargé de traduire les instructions au fur et à mesure
qu’elles se présentent. La façon d'écrire un programme est intimement liée au langage de
programmation. L’interprétation consiste à traduire chaque instruction du programme source, avant
de l’exécuter, à l’aide d’un programme nommé interpréteur.
2.8.3. Code Source
Le code source : est tout simplement le code de votre programme écrit dans un langage
évolué.
NB : Un algorithme ne peut pas être exécuté par un ordinateur. Un programme exprime un
algorithme dans un langage de programmation particulier, ce programme peut être exécuté par un
ordinateur. De plus, un algorithme n'a pas de règles syntaxiques très précises, l'important est de
décrire en français ce qu'il faut faire. Pour le langage algorithmique, on parle de pseudo-code ou
Par Chef de Travaux AMANI MAISHA 25
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
pseudo langage. En revanche, un programme utilise un langage particulier (C, C+, PHP, VBA,
Langage Pascal,…) avec une syntaxe très précise. Une virgule mal placée dans le programme
risque d'entraîner un bug de ce programme.
NB : Pour des raisons didactiques et pédagogiques, les algorithmes seront adaptés dans le langage
Pascal suite à sa facilité pour les débutants en programmation.
2.9. Langage algorithmique
2.9.1. Structure générale d’un algorithme
Un algorithme se compose de trois parties : le nom de l'algorithme (l’en-tête), la
partie déclarative et la partie traitement (le corps du programme). Les actions élémentaires
d'un algorithme sont : Affecter, Lire (ou saisir) et Écrire (ou afficher).
2.9.2. Nom de l'algorithme (l’en-tête)
Cette partie permet tout simplement de donner un nom à notre algorithme. Ce nom
n’influence en rien le bon déroulement de l’algorithme. En générale, il faut donner des noms
parlants à nos algorithmes, ceci pour permettre au lecteur d’avoir une idée de ce que fera
l’algorithme qu’il lira.
2.9.3. La partie déclarative
C’est une liste exhaustive des objets, grandeurs utilisés et manipulés dans le corps de
l’algorithme. Cette liste est placée en début d’algorithme.
2.9.4. Partie traitement (le corps du programme)
Dans cette partie de l’algorithme sont placées les tâches (instructions opérations) à
exécuter par l’algorithme. Cette partie contient toutes les instructions nécessaires à l’exécution du
programme.
Il se structure comme suit :
1) Nom de l'algorithme
2) Partie déclaration : déclaration des variables et des constantes
3) Partie traitement
DEBUT
Actions et conditions
FIN
Exemple : Soit un algorithme effectuant des calculs (net commercial, net financier…) sur une
facture.
Par Chef de Travaux AMANI MAISHA 26
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
2.9.5. Éléments représentatifs du langage algorithmique
On distingue trois familles de mots :
les mots clés ;
les mots instructions ;
les mots délimiteurs.
a) Les mots clés
Les mots clés définissent la structure algorithmique utilisée et en voici quelques
exemples :
SI … ALORS… SINON… : définissent un structure alternative ;
REPETER… JUSQU'A… : définissent une structure itérative.
Un mot clé est toujours suivi :
soit d’une expression conditionnelle écrite entre guillemets ;
soit d’un ou plusieurs mots instructions.
b) Mots instructions
Ce sont des verbes d’action qui caractérisent la nature des opérations à effectuer sur une
ou plusieurs données. Un mot instruction est toujours suivi entre guillemets :
de la désignation de l’objet sur lequel il s’applique comme, par exemple, LIRE «
Capteur S1 » ;
•éventuellement de la description de l’opération à appliquer à l’objet comme, par
exemple, FAIRE « Compteur = Compteur – 1 ».
c) Mots délimiteurs
Les mots délimiteurs fixent :
Par Chef de Travaux AMANI MAISHA 27
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Les bornes d’ENTRÉE et de SORTIE de l’algorithme ;
Les bornes d’ENTRÉE et de SORTIE des différentes structures utilisées dans
l’algorithme si ces bornes ne sont pas définies par la structure elle-même ;
DEBUT et FIN sont les seuls mots délimiteurs et peuvent être suivi éventuellement d’un mot clé
comme, par exemple, FIN SI.
Par Chef de Travaux AMANI MAISHA 28
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Chapitre 3. ENTREES ET SORTIES
3.1. Notions
Un algorithme correspond à un traitement effectué sur des données pour obtenir un
certain résultat. En algorithmiques le mot ‘Entrée est couramment utilisé pour désigner les
données de départ (celles que l’on traite) et le mot « Sortie » pour désigner le résultat du traitement.
3.2. Instructions d’écriture : Écrire (ou afficher)
L'instruction « Écrire » permet d'afficher des valeurs sur un périphérique de sortie, en
général l'écran. Le texte doit être entre apostrophe ou guillemet. Si le texte à afficher contient une
apostrophe, il faut alors la doubler. Les différents noms de variables doivent être séparés par des
virgules.
En langage pascal, cette instruction se traduite par White ou Writeln.
[Link] de lecture : de Lire (ou saisir)
Pour lire (entrer) les variables entrées, l'instruction « Lire » permet à l'utilisateur
d'entrer, par un périphérique d'entrée (en général le clavier), des valeurs pour qu'elles soient
utilisées par l'algorithme. La valeur saisie au clavier sera affectée à une variable. Lire est donc une
instruction d'affectation.
En langage pascal, cette instruction se traduite par Read ou Readln.
NB : Les instructions Lire et Écrire permettent le dialogue entre le programme et l'utilisateur.
Exemple:
Lire ("Entrez le chiffre d'affaires" ; CA)
Écrire ("Le chiffre d'affaires est de :" ; CA)
Avec l'instruction Lire, le message "Entrez le chiffre d'affaires" apparaît à l'écran et
l'utilisateur saisit au clavier la valeur du chiffre d'affaires. Cette valeur est affectée à la variable CA.
Avec l'instruction Écrire, le message "Le chiffre d'affaires est de : " apparaît à l'écran
suivi de la valeur de la variable CA saisie par l'utilisateur.
Exemple2 : Ecrire un programme en Pascal qui affiche la somme de deux nombres. (*la somme de
deux nombres*)
Par Chef de Travaux AMANI MAISHA 29
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Algorithme Programme en Langage Pascal
Algorithme SOMME_DE_DEUX_NOMBRE Program Nombre ;
Variable nombre1, nombre 2, somme : Entier Var nombre1, nombre2, somme : integer ;
Début Begin
Ecrire (« entrez nombre1 ») Writeln (‘entrez nombre1’) ;
Lire (nombre1) Read (nombre1) ;
Ecrire (« entrez nombre2) Writeln (‘entrez nombre2’) ;
Lire (nombre2) Read (nombre) ;
Somme← a +b Somme := a+b ;
Ecrire (« la somme est », somme) Writeln (‘la somme de deux nombres est’,
FIN somme) ;
Readln ;
Readln ;
End.
Exemple3 : Ecrire un programme un algorithme qui demande un nombre à l’utilisateur puis affiche
son double.
Par Chef de Travaux AMANI MAISHA 30
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Chapitre 4. LES OPERATEURS
En programmation et algorithme informatique, un opérateur est une fonction spéciale
dont l’identificateur s’écrit généralement avec des caractères non autorisés pour l’identificateur des
fonctions ordinaires. Il s’agit souvent des équivalents aux opérateurs mathématiques pour un
langage de programmation. Les opérateurs peuvent effectuer des opérations arithmétiques,
booléennes ou agir sur les chaines de caractères. Les algorithmes et les programmes informatiques,
supportent les opérateurs ci-après :
4.1. Operateurs mathématiques (arithmétiques)
Les opérateurs mathématiques sont les suivants :
NB : Pour les opérateurs mathématiques, la priorité est ci-après:
- Opérateurs prioritaires : *, /, DIV et MOD.
- Opérateurs secondaires : + et –
On peut alors utiliser des parenthèses pour enlever l’équivoque.
4.2. Operateurs relationnels (de comparaison)
Opérateurs Signification Exemple
= (signe égal) Égal à A1=B1
> (signe supérieur à) Supérieur à A1>B1
< (signe inférieur à) Inférieur à A1<B1
>= (signe supérieur ou égal à) Supérieur ou égal à A1>=B1
<= (signe inférieur ou égal à) Inférieur ou égal à A1<=B1
<> (signe différent) Différent de A1<>B1
Par Chef de Travaux AMANI MAISHA 31
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
4.3. Operateurs logiques
4.3.1. « Et » « AND » logique des Maths
Pour cet opérateur, toutes les conditions doivent être réunies pour que l’instruction soit exécutée ; si
une seule condition n’est pas réunie l’instruction ne peut pas exécuter. Ceci peut être présenté dans
un tableau de vérité ci-après :
4.3.2. OU: Le «OR» (ou inclusif)
Le « OU » est vrai lors qu’une condition est vérifiée. A +B = vrai lorsque A ou B est
vrai. Dans un tableau de vérité, ceci peut se présenter comme suit :
4.3.3. Le OU: «XO
R» (OU exclusif)
Le résultat est vrai si un et un seul des opérandes est vérifiées ou le résultat est vrai si
les deux opérandes A et B ont des valeurs distinctes. Le « XOR » se diffère de « OR » car il donne
un résultat faux lorsque A et B ont simultanément la valeur vraie.
Dans le tableau de vérité, on peut trouver les résultats ci-après :
4.3.4. Le Non : « Not »
Le « Non » est un opérateur logique de l’algèbre de Boole et exprime un état en
fonction de condition. A un opérande qui peut avoir la valeur vraie ou fausse, il associe un résultat
qui a lui-même la valeur inverse de celle de l’opérande.
4.4. Priorités des operateurs
Les algorithmes utilisent les priorités ci-après pour les opérateurs :
- Niveau 1 : NOT.
- Niveau 2 : *, /, MOD, DIV, AND.
- Niveau 3 : +, -, OR, XOR. –
- Niveau 4 : =, <=, >=, <>.
Par Chef de Travaux AMANI MAISHA 32
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Chapitre 5 : LES VARIABLES ET CONSTANTES
5.1. Notions
Une variable est une place mémoire où est stockée une donnée sous forme d’octets.
L’identificateur de cette variable permet d’avoir accès à ces données sans être obligé de travailler
sur les octets. Les variables peuvent être de différents types, par exemple : entier (INTEGER), réel
(REAL), Booléen (BOOLEAN), caractère (CHAR), chaîne de caractères (STRING) ...
Dans un programme informatique, il est un besoin permanent de conservation provisoire
des valeurs. Ces valeurs peuvent être des données provenant d’un disque dur, fournies par
l’utilisateur (tapées au clavier). D’autres peuvent être des résultats obtenus par un programme
intermédiaire ou définitif. Ces dernières peuvent être de plusieurs types : des nombres, du texte, des
valeurs logiques,… il est important de souligner que lorsqu’il s’agit de stocker les informations,
l’usage des variables est une nécessité.
La variable ressemble à une boîte que le programme repère par une étiquette. Pour
avoir accès au contenu de la boîte, il suffit de la désigner par une étiquette.
Retenons que dans la mémoire vive de l’ordinateur il n’existe pas de boîtes et pas
davantage de vraie étiquette collée dessous. Par contre, il est un emplacement de mémoire repéré
par une adresse binaire. La programmation se fait alors dans un langage compréhensible de la
machine (langage binaire, représenté par des 0 e 1). Des pareils langages portent le nom
d’assembleur et ne sont pas les seuls.
Dans le souci d’allège la tâche délicate au programmeur avec la gestion fastidieuse
de l’emplacement mémoire et leurs adresses ; les langages évolués (ceux-là que tout le monde
emploi) lui donne la facilité d’employer les étiquettes de son choix.
5.2. Différents types de variables
5.2.1. Variables numériques classiques
Il est question des variables destinées à recevoir. Si l’on réserve un octet pour coder un
nombre, le codage se fera sur 28=256 valeurs différentes. Cela peut signifier par exemple les
nombres entiers de 1 à 256 valeurs, ou de 0 à 255, ou de -127 à +128. Si l’on réserve deux octets,
on a droit à 65 536 valeurs ; avec trois octets, 16 777 216, etc. Et là se pose un autre problème : ce
codage doit-il représenter des nombres décimaux ? Des nombres négatifs N ?
Bref, le type de codage (type de variable) choisi par un nombre va déterminer :
- Les valeurs maximales et minimales des nombres pouvant être stockés dans la variable,
- La précision de ces nombres (dans le cas de nombres décimaux). Tous les langages de
programmation, quels qu’ils soient, offrent un bouquet de types numériques dont le détail
Par Chef de Travaux AMANI MAISHA 33
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
est susceptible de varier légèrement d’un langage à l’autre. On retrouve cependant les types
suivants :
Type numérique Place de valeurs Nbre d’octets
Byte (octet) 0 à 255 1
Entier simple -32 768 à 32 767 2
Entier long -2 147 483 648 à 2 147 483 647 4
Réel simple -3,4 x 1038 à -1,4 x 1045 pour les valeurs négatives 6
1,4 x 1045 à 3,4 x 1038 pour les valeurs positives
Réel long 1,79 x 10308 à -4,94 x 10-324 pour les valeurs négatives 8
4,94 x 10-324 à 1,79 x 10308 pour les valeurs positives
Pour éviter tout problème, l’on se demande parfois pourquoi ne pas déclarer toutes les
variables en réel double ? En vertu du principe de l’économie de moyens, un bon algorithme ne
contente pas de « marcher » ; il marche en évitant de gaspiller les ressources de la machine. L’abus
de variables surdimensionnés peut entraîner des ralentissements notables à l’exécution, voire un
plantage pur et simple de l’ordinateur. Alors, autant prendre dès le début des bonnes habitudes
l’hygiène.
En algorithme, toutes les variables numériques se notent nombre (numérique) ;
question d’échapper le problème avec ses sous-type. La déclaration peut se faire comme suit :
Variable b en Numérique ou encore Variables PV, B, PA an Numérique
D’autres langages autorisent d’autres types de variables numériques tels que les types
monétaires et date. Par nécessité, nous pourrions ou pas employer ces derniers dans le cadre du
présent cours.
5.2.2. Type alphanumérique
Appelé aussi le type string ou chaîne, ou encore type caractère ; il sert de stockage des
caractères. Ce type de variable stocke des nombres, de lettres, de signes de ponctuation ou même
des chiffres. Le nombre maximal de caractères pouvant être stockés dans une variable String
dépend du langage utilisé.
Un groupe de caractères stocké dans une variable est donc souvent appelé chaîne de
caractère. En pseudo-code, une chaîne de caractère est toujours entre guillemets. Par exemple,
230 et « 230 » sont différents.
Le premier est un nombre deux cent trente alors que le second est une suite de chiffres
2, 3, 0. Ainsi donc, le premier est numérique et le second une chaîne de caractères.
5.2. 3. Type booléen
Dans ce type sont stockées les valeurs logiques VRAI ou FAUX. Ces valeurs peuvent
aussi se présenter par 0 (FALSE) et 1 (TRUE). Il est important de comprendre que le type booléen
Par Chef de Travaux AMANI MAISHA 34
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
est très économique en terme de place mémoire occupée, puisqu’il suffit simplement d’un bit pour
stocker une information binaire.
Il est vrai que le recours aux variables booléennes est un puissant instrument de
lisibilité des algorithmes : il peut facilite la vie de celui qui écrit l’algorithme, comme celui qui le
relie pour corriger. C’est aussi certain, en algorithme, il y a une question de style : c’est exactement
comme dans le langage courant, il y a plusieurs manières de s’exprimer pour dire sur le fond la
même chose. Cependant, chaque style doit tenir compte des principes fondamentaux de l’algorithme
dans l’élaboration des algorithmes.
5.2.4. Type Réel
Les réels (mot clé Real en Pascal et double ou float en C) permettent de représenter
les nombres réels (parfois appelés flottants en informatique) Il représentant un nombre réel
quelconque exemple :( 1.5, 5.0, -90.125, 1.256, 9.8, -45.0).
5.2.5. Type caractère
Il représente un caractère seul exemple : (‘a’, ’b’, ’ ‘, ’7’, ’/’, ’^’, ‘R’, ‘.’). L’instruction
est « char ».
5.2.6. Chaine de caractères
Il représente un texte de zéro, un ou plusieurs caractères. Le nombre maximal de
caractères pouvant être stockés dans une seule variable string dépend du langage utilisé. Un
caractère sera noté avec une apostrophe simple (exemple 'c') et le string sera notée entre guillemets
doubles (exemple "contenu de la chaine").
5.3. Déclaration
Toutes les variables, constante, procédure,… doivent être préalablement déclarées avant
d'être utilisées dans l’algorithme ou programme, c'est-à-dire qu'on leur affecte un type (voir types
de variables). On peut les déclarer de diverses manières.
5.3.1. Variables
- Au tout début du programme avec la syntaxe : Variable « noms de variables » : type
En Pascal : VAR « nom de la variable »: type ;
- Elles seront alors valables pour le programme dans son intégralité (sous-programmes,
fonctions, procédures...).
Au début d'une procédure avec la syntaxe : Procédure « Nom de procédure » ;
Elles ne seront valables que dans la procédure.
NB : Si la déclaration demande plus d’une variable, ces dernières seront séparées par des virgules.
5.3.2. Constantes
Une constante en programmation est une valeur qui n’est modifiée par aucune
instruction du programme. La déclaration se fait avec le mot réservé CONST :
Par Chef de Travaux AMANI MAISHA 35
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Syntaxe : CONSTANTE < identificateur de la constante> = <valeur constante> ;
En Langage Pascal : CONST Ville = ‘Uvira’ ; Pi = 3.14 ;
5.4. Prise des valeurs (ou affectation des valeurs)
La variable ne peut faire deux ou plusieurs choses. Ce processus se nomme
l’affectation, c’est-à-dire lui attribuer une valeur.
En pseudo-code, l’instruction d’affectation se note avec le signe : ←
Ainsi par exemple : Inetu←20, c’est-à-dire attribuer la valeur 20 à la variable Inetu.
Ceci sous-entend que Inetu est une variable de type numérique.
En Langage Pascal, l’instruction d’affectation est := (deux points et signe égale) ou de
certaines fonction.
5.5. Emploi des variables
Les variables peuvent être utilisées dans de nombreux emplois :
- Pour le stockage temporaire de valeurs ou résultats de calculs,
- Pour des comparaisons dans une structure conditionnelle,
- Pour l'affichage de résultats,
- Pour le dialogue avec l'utilisateur du programme,
- Pour exécuter des boucles...
5.6. Exercices
1) Écrire un algorithme et un programme en Pascal qui affiche la somme de trois nombres
entrés par l’utilisateur.
2) Écrire un algorithme et puis un programme qui affiche le double et le carrée d’un nombre
entré par l’utilisateur.
3) Écrire un algorithme et puis un programme en Pascal qui demande à l’utilisateur un nombre
et affiche sa moitié, son carrée, sa racine carrée.
4) Écrire un algorithme et puis un programme en Pascal qui permet de calculer la TVA et TTC
d’un montant hors taxe. Le programme doit afficher les résultats ci-après : - Montant de la
TVA est :, - et montant toutes taxes comprises est : NB : Le taux d’imposition est de 16%.
5) Écrire un programme en puis un algorithme qui permet de calculer le périmètre et la
surface d’un rectangle.
6) Proposer un code en Pascal qui calcul les sommes disponibles d’un placement après une
capitalisation au taux d’intérêt de 14% au de 1,2 et 3 ans.
Par Chef de Travaux AMANI MAISHA 36
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Chapitre 6. LES STRUCTURES CONDITIONNELLES OU ALTERNATIVES
6.1. Notions
Souvent en programmation les problèmes nécessitent l’étude de plusieurs situations qui
ne peuvent pas être traités par des séquences d’action simples. Puis qu’on a toujours plusieurs
situations et qu’avant l’exécution on ne sait pas quel cas de figure on aura à exécuter, dans un
programme on doit prévoir tous les cas possibles. Ce sont les structures conditionnelles ou
alternatives qui les permettent en se basant sur ce qu’on appelle Condition. Les instructions
conditionnelles choisissent ou annulent l’exécution d’une suite d’ordres selon une condition bien
définie. On en distingue trois types :
6.2. Les structures de contrôle conditionnelle : Si….alors (if…then)
Ce type d’instructions incorpore un bloc d’instructions dont son exécution dépend de la
condition qui lui a été associé. Cette structure a la forme suivante :
Si (Condition) Alors :
Instruction1
Instruction2 …
Instruction N
Fin si
Exemple :
6.3. L’instruction conditionnelle alternative :Si……alors….sinon ( if…then…else)
Ce type d’instructions incorpore deux blocs d’instructions dont un et un seul bloc sera
exécuté, de manière alternative, en fonction de la condition. Cette structure a la forme suivante :
Si (Condition) Alors :
Instruction1 …
Instruction N
Sinon
Instruction1 …
Instruction M
Fin si
Par Chef de Travaux AMANI MAISHA 37
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Exemple : Ecrire un programme en Pascal qui demande un nombre à l’utilisateur et affiche si ce
nombre est inférieur 100 ou supérieur ou égal 100.
Algorithme Programme en Pascal
Algorithme ISP Program ISP;
Variable chiffre en numérique Var chiffre: integer;
Début BEGIN
Ecrire (« entrez un entier ») Write('Entrez un entier pas trop grand : ');
Readln (chiffre) Readln(chiffre) ;
Si chiffre < 100 alors If chiffre < 100 then
Ecrire (chiffre, « est inférieur à cent ») writeln(chiffre, 'est inférieur à cent.')
Sinon else
Ecrire (chiffre, « est supérieur ou égale à cent ») ; writeln(chiffre, 'est supérieur ou égale à cent.');
Fin si END.
Fin
6.4. L’Instruction conditionnelle de choix
L’instruction conditionnelle de choix comporte plusieurs blocs d’instructions dont un et
un seul bloc sera exécuté selon la valeur de la variable employée comme condition. Cette
instruction a la structure suivante :
Selon le cas (Variable) : Variable =
Valeur1 : Instruction (s) Variable = Valeur2
: Instruction (s) … Variable = ValeurN :
Instruction (s)
Sinon
Instruction(s)
Fin selon
Par Chef de Travaux AMANI MAISHA 38
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
6.5. Exercices
1) Ecrire un algorithme qui calcule la valeur absolue d’un nombre réel.
2) Ecrire un algorithme qui détermine si un nombre lu est pair ou impair.
3) Ecrire un algorithme qui résout une équation de 1er degré.
4) Ecrire un algorithme qui résout une équation de 2ème degré.
5) Écrire un algorithme et Programme qui renvoie les résultats ci-après :
- Si le pourcentage est inférieur à 40, mention « NAF »,
- Si le pourcentage entré est inférieur ou égal à 49, mention « Ajourné »,
- Si le pourcentage entré est supérieur à 50 et inférieur à 70, mention « Satisfaction »,
- Si le pourcentage entré est supérieur à 70 et inférieur 80, mention « Distinction »,
- Si le pourcentage entré est supérieur à 80 et inférieur à 90, mention « Grande Distinction »,
- Si le pourcentage entré est supérieur à 90 et inférieur à 100, mention « Plus grande
Distinction »
6) Écrire un programme Pascal intitulé BULLETIN, qui permet de saisir la moyenne annuelle
d'un élève et affiche la décision du conseil de classe, la mention adéquate dans le cas où
l'élève est admis:
- 18 ≤ moy Excellent
- 16 ≤ moy < 18 Très Bien
- 14 ≤ moy < 16 Bien
- 12 ≤ moy < 14 Assez Bien
- 10 ≤ moy < 12 Passable
- Moy < 10 Redouble
7) On se propose de déterminer le PPCM (Plus Petit Commun Multiple) de deux entiers
positifs non nuls M et N.
Par Chef de Travaux AMANI MAISHA 39
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Chapitre 7. LES STRUCTURES REPETITIVES OU ITERATIVES (LES BOUCLES)
7.1. Notions
Les structures de contrôle itératives ou réplétives communément appelées des Boucles
permettent d’exécuter plusieurs fois de suite une ou plusieurs instructions.
Il en existe trois (3) distinctes :
For (Pour),
Repeat (Répéter),
While (Tant que)
7.2. La Boucle « Pour …. Allant de….A « (FOR….. :=…..TO……DO)
La structure Pour permet d’exécuter une instruction, un nombre connu des fois. Cette
boucle est utilisable si on connait le nombre de fois que cette dernière va tourner. Cette instruction
permet d'incrémenter une variable à partir d'une valeur inférieur jusqu'à une valeur supérieur et
d'exécuter une ou des instructions entre chaque incrémentation.
Les valeurs extremum doivent être des entiers (integer) ou des caractères de la table
ASCII (char). De manière plus générale, les bornes doivent être de type intervalle (voir section
Type de variables) c'est-à-dire qu'ils doivent êtres de type entier ou compatibles avec un type
entier. La boucle n'exécute les instructions de son bloc interne que si la valeur inférieure est
effectivement inférieure ou égale à celle de la borne supérieure. Le pas de variation est l'unité et ne
peut pas être changé.
Syntaxe :
Langage Pascal Algorithme (pseudo-code)
For variable := borne inférieur To borne supérieur Do Pour variable ← borne inférieur A borne
instruction supérieur FAIRE
instruction
For variable := borne inférieur To borne supérieur Pour variable ← borne inférieur A borne
Do supérieur
Begin ... commandes ... FAIRE
End; Begin
... commandes ...
End;
Exemple : Faire un programme en Pascal qui fait la somme ainsi que la moyenne de 15 premiers
nombres entiers.
Solution
Par Chef de Travaux AMANI MAISHA 40
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Langage Pascal Algorithme (pseudo-code)
Program ISP6 ; ALGORITHME ISP6 ;
Var i, somme, moyenne: integer; Variables i, somme, moyenne en Entier
BEGIN DEBUT
Somme :=0 ; Somme← 0
For i := 1 To 14 Do Pour i ←1 A 14 FAIRE
Somme :=somme+i ; Somme ← somme+i
Moyenne := somme div 15 ; Moyenne ← somme div 15
writeln ('la somme est’, somme); ECRIRE (« la somme est », somme)
writeln ('la moyenne es’, moyenne); ECRIRE (« la moyenne es », moyenne)
END. FIN
7.3. La boucle « Répéter ……jusqu’à ce que »
Cette boucle effectue les instructions placées entre deux bornes : REPETER
…JUSQU’A CE QUE (repeat et until) et évalue à chaque répétition une condition de type
booléen avant de continuer la boucle pour décider l'arrêt ou la continuité de la répétition. Il y a donc
au moins une fois exécution des instructions. Il est nécessaire qu'au moins une variable intervenant
lors de l'évaluation de fin de boucle soit sujette à modification à l'intérieur de la structure exécutive
interne à la boucle.
Syntaxe :
Langage Pascal Algorithme (pseudo-code)
Repeat ...commandes... Until variable REPETER ...commandes... JUSQU’A CE QUE
condition valeur ;
variable
condition valeur ;
Repeat « Action1 » ; « action2 » ; REPETER « Action1 » ; « action2 »
Until
JUSQU’A CE QUE « condition ».
« condition ».
Exemple : Proposer un programme et un algorithme qui affiche la somme de 15 premiers nombres
avec la boucle Repeat (REPETER).
Par Chef de Travaux AMANI MAISHA 41
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Déroulement
REPETER Entrée dans la boucle
Bloc d’instruction
Langage Pascal Algorithme (pseudo-code)
Program SAM ; ALGORITHME SAM ;
Var i, somme : integer ; Variables i, somme en Entier
BEGIN DEBUT
Somme := 0 ; Somme← 0
i :=0 ; i ←0
REPEAT REPETER
Somme := somme + i ; Somme ← somme+i
i := i+1 ; i ← i+1
Until JUSQU’A CE QUE
i=15 ; i = 15
Writeln (‘la somme est’, somme) ; ECRIRE (« la somme est », somme)
Readln ; FIN
End.
7.4. La Boucle « Tant que….Faire » (WHILE……..DO)
Ce type de boucle, contrairement à la précédente, évalue une condition avant d'exécuter
des instructions (et nom pas l'inverse), c'est-à-dire qu'on peut ne pas entrer dans la structure de
répétition si les conditions ne sont pas favorables. De plus, au moins une variable de l'expression
d'évaluation doit être sujette à modification au sein de la structure de répétition pour qu'on puisse en
sortir.
Par Chef de Travaux AMANI MAISHA 42
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Syntaxe :
Langage Pascal Algorithme (pseudo-code)
While variable condition valeur Do instruction ; Tant que variable condition valeur Faire instruction
;
While variable condition valeur Do Tant que variable condition valeur faire
Begin Début
... Commandes ... ... Commandes ...
End ; Fin;
En ordinogramme
Entrée dans
la boucle
Tant que
Vrai
Conditio
n
Faux
Fin tant que
Suite programmes
Langage Pascal Algorithme (pseudo-code)
Program ISP7 ; ALGORITHME ISP7 ;
Var i, somme : integer ; Variables i, somme en numérique
Begin Début
I :=0 ; I←0
Somme :=0 ; Somme←0
While i < 15 do Tant que i < 15 faire
Begin Début
Somme :=somme+i ; Somme ←somme+i
I :=i+1 ; I ←i+1
End ; fin
Writeln (‘la somme est’, somme) ; Ecrire (‘la somme est’, somme)
Readln ; Fin
End.
Par Chef de Travaux AMANI MAISHA 43
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Conseils d'utilisation :
On utilise un for lorsqu'on sait combien de fois on doit passer dans la boucle.
Pour le while (Tant que), s'assurer qu'il n'y a pas de boucle infinie : l'expression booléenne
doit un jour devenir fausse !
Bien identifier le traitement qui doit être répété.
Vérifier les conditions d'entrée dans la boucle, les premières valeurs des variables.
Vérifier les conditions de sortie de la boucle, les dernières valeurs des variables.
7.6. Exercices
1) Ecrire un algorithme et un programme qui affiche tous les diviseurs d’un nombre lu « N »
2) Ecrire un algorithme et un programme qui affiche les nombres impairs inférieurs à N
3) Ecrire un algorithme qui calcule le factoriel d’un nombre lu
4) Écrire un programme Pascal qui affiche la table de multiplication par 3, pour les entiers de 1
à 10.
5) Écrire un programme Pascal qui calcule et affiche la somme et le produit, des 20 premiers
entiers (de 1 à 20).
6) Écrire un programme et un algorithme qui affiche la table de Pythagore (table de
multiplication) pour les 9 premiers nombres entiers.
7) On se propose de déterminer le PPCM (Plus Petit Commun Multiple) de deux entiers
positifs non nuls M et N en utilisant un code et un algorithme.
8) Proposer un code en Pascal et algorithme qui affiche la table de multiplication par 12
(horizontal et vertical).
9) Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, et qui lui dise
quel était le plus grand parmi ces nombres et la position qu’il a occupé.
Par Chef de Travaux AMANI MAISHA 44
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Chapitre 8. LES PROCEDURES ET FONCTIONS
8.1. Notions
Les termes procédures et fonction désignent tous deux des sous-programmes. Elles
sont de sortes des sous programmes écrits avant le programme principal mais appelés depuis ce
programme principal d’une autre procédure ou même d’une autre fonction. Les procédures et les
fonctions permettent d’insérer des sous blocs d’instructions dans le bloc principal du programme.
Chaque déclaration de procédure ou de fonction est composée d’un entête et puis d’un bloc. Une
procédure est activée par une instruction « Procedure ».
Une fonction est activée par l’évaluation d’une expression contenant l’activation de la fonction. La
fonction se termine par le renvoie d’une valeur à cette expression. Le nom d’une procédure ou
d’une fonction ne doit pas dépasser 127 caractères et ne doit pas contenir d’accent.
8.2. Procédures (procédures simple et procédure paramétrée)
Une procédure est une série d’instructions regroupées sous un nom qui permet
d’effectuer des actions par un simple appel de la procédure dans un programme ou dans un autre
sous-programme. L'appel d'une procédure peut dépendre d'une structure de boucle, de condition, etc
a) Procédure simple
Une procédure peut voir ses variables définies par le programme principal, c'est-à-dire
que ces variables sont valables pour tout le programme et accessible partout dans le programme
principal mais aussi dans les procédures et fonctions qui auront été déclarées après. La déclaration
des variables se fait alors avant la déclaration de la procédure pour qu'elle puisse les utiliser. Car
une procédure déclarée avant les variables ne peut pas connaître leur existence et ne peut donc pas
les utiliser.
La syntaxe est la suivante :
Program nom de programme ;
Var variable : type ;
Procedure nom de procédure ;
Begin
…commandes ...
End;
BEGIN
nom de procédure ;
End.
Par Chef de Travaux AMANI MAISHA 45
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Exemple : Proposer un programme qui demande à l’utilisateur d’entrer 2 nombres
et affiche la somme, le carré du 1er nombre et le double du second en utilisant une procédure
Program Proce1 ;
Var a, b, somme, carree, double : integer ;
Procedure ABS ;
Begin
Somme :=a+b ;
Carree :=a*a ; 𝑙𝑒𝑠 𝑎𝑐𝑡i𝑜𝑛𝑠 𝑑𝑒 𝑙𝑎 𝑝𝑟𝑜𝑐é𝑑𝑢𝑟𝑒
Double :=2*b ;
End ;
BEGIN
Writeln (‘Entrez a’) ;
Read (a) ;
Writeln (‘Entrez b’) ;
Read (b) ;
ABS ; 𝑙′𝑎𝑝𝑝𝑒𝑙𝑑𝑒 𝑙𝑎 𝑝𝑟𝑜𝑐𝑒𝑑𝑢𝑟𝑒 𝑎𝑓i𝑛 q𝑢′i𝑙 𝑎𝑓𝑓i𝑐ℎ𝑒 𝑠𝑒𝑠 𝑎𝑐𝑡i𝑜𝑛s
Writeln(‘la somme est :’, somme) ;
Writeln(‘le carrée est :’, carree) ;
Writeln(‘le double est :’, double) ;
Readln ; readln ;
END.
8.3. Fonction
En programmation, une fonction désigne un sous-programme permettant d’effectuer des opérations
réplétives. Au lieu d’écrire les codes complets au tant de fois que nécessaire on crée une fonction
que l’on appellera pour l’exécuter, ce qui peut aussi alléger le code et le rendre plus lisible.
L’utilisation des fonctions permet de factoriser le code c’est-à-dire d’offrir des procédures
générales partagés par le programme et placées à un endroit précis où l’on pourra le retrouver
facilement pour le modifier ou l’adapter.
En définitive, on appelle une fonction en programmation une partie de code recevant une ou
plusieurs informations à partir desquelles elle retourne une ou plusieurs informations.
Une fonction est appelée à partir du programme principal, d'une procédure ou d'une autre fonction.
Les informations fournies à la fonction sont appelées « arguments ou paramètres » de la
fonction tandis que les informations renvoyées par la fonction sont appelées « résultats».
Par Chef de Travaux AMANI MAISHA 46
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Syntaxes :
Function « nom de fonction » (variable : type ) :
type ;Var « déclaration de variables locales » ;
Begin ... Commandes ...
Nom de fonction := une valeur ;
End ;
Autre syntaxe :
Function « nom de fonction » : type ;
Var « déclaration de variables locales
» ;Begin
... Commandes ...
Nom de fonction := une valeur ;
End ;
Exemple1 : Ecrire un programme en Pascal en utilisant une fonction qui demande deux nombres à
l’utilisateur (le second sera la puissance du premier) en utilisant une fonction.
Program MATIMBU ; Uses crt ;
Function exposant ( i , j : integer ) : integer ; Var i2 , a : integer ;
Begin
i2 := 1 ; For a := 1 To j Do i2 := i2 * i ;
exposant := i2 ; End ;
Var resultat, x, n : integer ; BEGIN
Write ('Entrez un nombre : ') ;
Readln (x) ;
Write('Entrez un exposant : ') ;
Readln (n) ;
resultat := exposant ( x , n ) ;
Writeln ( resultat ) ;
Readln ;
END.
Nota : Contrairement aux procédures, les fonctions renvoient directement un résultat. Elles
sont appelées à partir du programme principal, d'une procédure ou d'une autre fonction.
Par Chef de Travaux AMANI MAISHA 47
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
Chapitre 9. LES TABLEAUX
9.1. Notions
En programmation, les tableaux sont très utilisés pour stocker les données lorsque ces
dernières deviennent surabondantes. Un tableau est une structure de données représentant une
séquence finie d’éléments auxquels on peut accéder efficacement par leur position ou indice dans la
séquence. C’est un type de compteur que l’on retrouve dans un grand nombre de langage de
programmation. Un tableau peut être de dimension supérieur à 1. L'intérêt du tableau est de pouvoir
stocker en mémoire des données que l'on pourra retrouver grâce à d'autres valeurs à l'aide de
boucles, de formules, d'algorithmes. On peut utiliser un tableau afin de représenter l'état d'un
échiquier, le résultat d'une fonction mathématique... Il est possible d'introduire des variables de
presque tous les types au sein d'un tableau : Char, Integer, Real, String, Byte, Record, etc. Un
tableau, tout comme une variable quelconque doit être déclaré dans la partie déclarative du
programme. On doit toujours spécifier le type des variables qui seront introduites dans le tableau.
Imaginons que dans un programme, nous ayons besoin simultanément de 12 valeurs
(par exemple, des notes pour calculer la moyenne). Evidemment la seule solution dont nous
disposons à l’heure actuelle consiste à déclarer douze variables appelées N1, N2, N3,… N12. Mais
cela ne change pas la donne car lors du calcul nous serons amenés :
Moy(N1+N2+N3+N4+N5+N6+N7+N8+N9+N10+N11+N12)/12
S’il s’agit de faire la moyenne de plusieurs valeurs possibles, imaginez-vous de
quelle manière par exemple leur moyenne sera calculée. Et si l’on est dans une situation où l’on ne
peut pas savoir d’avance combien il y aura de valeur à traiter, là on est carrément cuits.
C’est pourquoi la programmation nous permet de rassembler toutes ces variables
en une seule, au sein de laquelle chaque valeur sera désignée par un numéro. Cela donnerait donc
quelque chose du genre « Note1 », « Note2 »,… « Note N ». C’est largement plus pratique.
9.2. Définition
Un ensemble de valeurs portant le même nom de variable et repérée par un nombre,
s’appelle un tableau ou encore une variable indicée. Le nombre qui, au sein d’un tableau, sert à
repérer chaque valeur s’appelle l’indice. Chaque fois que l’on doit désigner un élément du tableau,
on fait figurer le nom du tableau suivi de l’indice de l’élément entre parenthèse.
9.3. Déclaration
La déclaration de tableau passe par les syntaxes ci-après :
Pseudo code ( algorithme) Programme en Pascal
Variable Nom_Tab : Tableau [ Var Nom_Tab : Array[ MinDim..MaxDim] of type ;
MinDim..MaxDim] type
Par Chef de Travaux AMANI MAISHA 48
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
- La ligne commence par Var, il faudra donc déclarer le tableau en même
temps lesautres variables.
- Nom_Tab : représente un identificateur. Il doit respecter les règles énumérées
précédemment pour les variables.
- Array : permet de créer un tableau,
- MinDim : définit la dimension inférieure,
- MaxDim : définit la dimension supérieure,
- Type : définit le type du tableau : il peut être du type string, boolean, integer,…
Note : les valeurs MinDim et MaxDim doivent être des Integer ou des Char (c'est-à-dire de type
énuméré). Avec MinDim inférieur à MaxDim. L'un ou les deux peuvent êtres négatifs. Le type des
variables qui seront mises dans le tableau devra être celui-là : type.
Remarque : il ne peut y avoir qu'un seul type de variable au sein d'un tableau.
Exemple:
Var Tab1 : Array[ 1..10] of real ;
variable Tabl5: tableau [ 1 A 10] en Entier ( en pseudocode)
On peut créer des tableaux des différents types de valeurs : entier, réel, caractère ou
booléen. Mais on ne peut pas faire un mixage de types différents de valeurs au sein d’un même
tableau. L’énorme avantage des tableaux, c’est qu’on va pouvoir les traiter en faisant des boucles.
9.3. Accès aux éléments du tableau
Pour accéder à une valeur du tableau il suffit d’écrire : Nom du Tableau [indice].
L’indice peut être n’importe quel e expression mathématique de type énumérable cohérent avec
celui de la déclaration. Le tableau est en fait un ensemble de cases où sont stocker les valeurs
de variables de type « nom de type ». Chaque case est repérée par un indice et possède une
valeur qui lui est propre.
Le processus de lecture et d’affichage des variables autres que le tableau se fait par des
instructions simples de lecture et d’écriture de ces variables. Par contre, ce processus est différent
pour le tableau.
Exemple : Var Tab1 : Array : [1..10] of integer ;
Avec cette instruction, l’ordinateur créé un tableau d’une dimension avec 10 cases.
Pour lire, procéder au calcul et afficher les données contenues dans un tableau,
l’usage des boucles s’avère indispensable et surtout la boucle Pour … Suivant est la plus
importante.
Par Chef de Travaux AMANI MAISHA 49
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
---------------------
Pour i0 à 11
Ecrire « Les éléments du tableau sont : »,
Note(i)
I suivant
---------------------
Indice 1 2 3 4 5 6 7 8 9 10
100 125 10 25 68 50 70 14 9 18
Indiquez l’instruction permettant de repérer l’information se trouvant à l’indice 5.
Tab1[5]
Exemple : Soit un tableau nommé Note de 12 valeurs entières. Ecrire un bloc d’instruction d’un
algorithme qui vous permet de demander à l’utilisateur d’entrer ces valeurs et les afficher après.
9.4. Déclaration d’un type tableau
Si l’on manipule souvent un même type de tableau, il est fastidieux (fatiguant)
d’écrire à chaque fois la même déclaration de variable. Pour simplifier et clarifier cette déclaration
il est possible de créer un type tableau et d’assigner en suite ce type aux variable tableau
correspondantes.
La syntaxe est la suivante :
Type
Nouveautype1=array [liste d’intervalles] of nom de type1 ;
Nouveautype2=array [liste d’intervalles] of nom de type2 ;
Var Nom_tab1, Nom_tab2 ; Nouveautype1 ;
Nom ab3, nouveautype2 ;
Exemple : Soit un tableau nommé Note de 12 valeurs entières. Ecrire un bloc d’instruction d’un
algorithme qui vous permet de demander à l’utilisateur d’entrer ces valeurs et les afficher après.
Par Chef de Travaux AMANI MAISHA 50
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
ALGORITHME PASCAL
algorithme AMANI program AMANI;
const N=10 uses crt;
type Tab = tableau[1..10] de entier const N=10;
var T : Tab type Tab = array[1..10] of integer;
moy : réel var T:Tab; moy:real;
i,somme : entier i,somme:integer;
début begin
écrire ("Entrer les éléments du tableau:") clrscr;
pour i=1 à N faire writeln ('Entrer les elements du tableau:');
lire(T[i]); for i:=1 to N do
finPour readln(T[i]);
somme ← 0; somme:=0;
pour i=1 to N faire for i:=1 to N do
somme ← somme+T[i] somme:=somme+T[i];
finPour moy:=somme/N;
moy ← somme/N; writeln('La somme =', somme);
écrire("La somme = ", somme) writeln('La moyenne =', moy:2:2);
écrire("La moyenne = ", moy) readkey;
end.
9.5. Tris et recherches dans un tableau
a) TRI d’un Tableau
Le tri est un traitement informatique utilisé très souvent notamment dans des bases
données. Il s’agit de classer les informations de même type selon l’ordre donné. Il existe de
nombreuses méthodes de tri.
En programmation, l’algorithme de TRI est en informatique ou en
mathématiques, un algorithme qui permet d’organiser une collection d’objets selon une relation
d’ordre déterminé. Les objets à trier sont des éléments d’un ensemble muni d’un ordre total. Il est
par exemple fréquent de trier des entiers selon la relation d’ordre usuel e « est inférieur ou égal
à ».
Il existe plusieurs type de TRI : Tri à bulles, Tri par sélection,
Tri par insertion, Trirapide,…Mais pour le cours et faute de temps, on présentera 2
seulement
Par Chef de Travaux AMANI MAISHA 51
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
On peut créer des tableaux des différents types de valeurs : entier, réel, caractère ou
booléen. Mais on ne peut pas faire un mixage de types différents de valeurs au sein d’un même
tableau. L’énorme avantage des tableaux, c’est qu’on va pouvoir les traiter en faisant des boucles.
NB: Les autres notions sur les manipulations des tableaux, vous les verrez probablement en Bac2
dans les cours Algorithmique.
EXERCICES
1) Ecrire un algorithme et un programme qui déclare et remplisse un tableau de 10 valeurs
numériques et calcule la somme et la moyenne.
2) Ecrire un algorithme qui déclare et remplisse un tableau contenant les lettres de votre nom.
3) Que produit l’algorithme suivant :
CONCLUSION
Cette Unité d’Enseignement (UE) avait comme objectif principal de donner aux
étudiants débutants en informatique les éléments essentiels d'une méthodologie qui permet
d'analyser un problème, d'exprimer de manière claire un schéma de résolution de ce problème puis
d'évaluer ce schéma avant de le traduire dans un algorithme et langage de programmation
(langage Pascal, par exemple).
Les algorithmes sont en programmation des outils essentiels pour résoudre des
problèmes et prendre des décisions en informatique. Les développeurs qui maîtrisent
Par Chef de Travaux AMANI MAISHA 52
Cours d’Algorithme et Méthodes de Programmation pour les étudiants de BAC+1 Informatique de Gestion, ISP-Uvira, 2023-2024
l’algorithmique sont capable d’analyser et de décomposer un problème complexe en tâches plus
simples et de concevoir des solutions efficaces pour résoudre ces problèmes.
Toute suite d’étapes si élémentaire et simple à exécuter s’appelle un « Algorithme ».
L’ensemble des principes, règles et techniques qui permettent d’écrire un Algorithme est appelé
« l’Algorithmique ».
La bonne connaissance de l’algorithmique permet d’écrire des algorithmes exacts et
efficaces, or c’est en écrivant des algorithmes corrects, qu’on devient un bon Programmeur. Un
algorithme correct doit donc subit à certains critères qui sont : être fini (achevé après un nombre fini
d’actions élémentaires), être précis (la machine n’a pas à choisir), être effectif (On pourrait le traiter
“ à la main ”) et mentionner les entrées (saisie de données) et les sorties (affichage des résultats)
Merci pour nous avoir suivi !!
Que Dieu vous bénisse abondamment !!
Par Chef de Travaux AMANI MAISHA 53