Vous êtes sur la page 1sur 73

INSTITUT SUPERIEUR PEDAGOGIQUE D’OICHA

ISP/OICHA

NOTES DE COURS D’ALGORITHMIQUE ET


LOGIQUE DE PROGRAMMATION
Notes de cours et Exercices

Par

KAMBALE KASYANI GUERCHOME


Assistant

Version Septembre 2021


INTRODUCTION

De nos jours, l’informatique a apporté une aide grandissante au


fonctionnement des organisations, à la gestion quotidienne, tactique et
stratégique mais aussi à la prise de décision. L’ordinateur est aujourd’hui
un outil essentiel pour toutes les entités et les administrations, pour tous
les gestionnaires, développeurs et même les employés de bureau.

Pour que ces ordinateurs travaillent, ils doivent avoir des


programmes car sans ces derniers rien ne peut se passer. Les programmes
sont conçus pour différentes taches : Certains comme logiciels de base, et
d’autres comme logiciel de développement et d’applications. Comme nous
nous intéressons plus dans le développement d’application, nous
apprenons dans ce cours la conception des algorithmes et la logique de
programmation.

On s’intéresse à l ’activité de programmation d’un ordinateur


qui permet de résoudre des problèmes d’une façon automatique. On
se place à un niveau conceptuel dans lequel un problème quelconque,
informatique ou non, est caractérisé par un ensemble de données
d’entrée et des résultats attendus. On peut donc représenter ce niveau
d’analyse par le schéma de la figure ci-dessous.

Entrées Traitement Sorties

Ce cours présente les fondamentaux qui doivent nous guider pour


concevoir et exécuter les algorithmes. Nous visons en général l’objectif
d’exposer en douceur la manière de spécifier les algorithmes, certaines
stratégies de conception qui nous serviront tout au long de ce cours, ainsi
que bon nombre des concepts essentiels sous-jacents à l’analyse et
conception des algorithmes.

Cependant, nous avons opté pour la méthode participative qui


jusque-là nous donne des résultats très satisfaisants et nous permet
d’atteindre les objectifs présentés ici-bas. La discipline, l’assiduité, la
régularité et la ponctualité pendant les heures de cours et des travaux
pratiques sont les quatre piliers de notre formation. C’est ainsi que la
présence sera côté à 5%, l’interrogation à 15 %, l’examen à 40 % et les
travaux dirigés à 40 %. Est compté présent, l’Etudiant qui se trouve dans
l’auditoire ou dans la salle de travaux pratiques pendant que l’appel est fait
au début et à la fin du cours.

Il est recommandé aux Etudiants de s’abstenir de la tricherie sous


toutes ses formes. Aucun étudiant ne sera permis de travailler à la place
de l’autre. Il peut à la limite le guider et lui expliquer ce qu’il doit faire.
L’annulation pure et simple du travail fait ou de l’examen est la sanction
réservée à toute fraude, tricherie ou tentative de tricherie.

OBJECTIFS DU COURS

Ce cours a pour but d’expliquer le plus simplement possible les


notions de base, préalables à une bonne programmation et non de former
des programmeurs chevronnés. Concrètement, il vise à initier les étudiants
à la logique de programmation ; c’est-à-dire les initier à établir ou élaborer
un raisonnement schématique d’un programme informatique.

Donc, à la fin de ce cours, l’étudiant qui aura suivi régulièrement et


attentivement le cours devra être capable de :

 Faire la spécification minimale d’un problème à automatiser,

 Représenter un algorithme en utilisant le pseudo code, le


langage de programmation Visual Basic,
 Exécuter un algorithme sur l’ordinateur afin d’apprécier le
résultat.

CONTENU DU COURS

I. Notions Préliminaires

I1. Un programme

I2. Un algorithme

I3. Le langage de programmation

I4. Faut-il être bon en maths pour être bon en programmation ?

I5. L’analyse d’un problème à automatiser

I6. Représentation d’un algorithme

II. Les structures de base d’un programme

II1. Les variables

II2. Les instructions de Lecture et Ecriture des données

II3. L’instruction d’affectation

II4. La séquence

II5. L’alternative

II6. Le choix multiple


III. Les boucles : Structures répétitives

III1. Boucle POUR (ou Boucle FOR)

III2. Boucle TANT QUE (ou Boucle WHILE)

III3. Boucle REPETER JUSQU'A CE QUE (ou DO UNTIL)

IV. Les tableaux


IV1. Notions des tableaux

IV2. Saisir les données dans un tableau

IV3. Afficher les données d’un tableau

IV4. Additionner les données d’un tableau

IV5. Trier les données d’un tableau

V. Les sous programmes : Les fonctions et les procédures

VI. Application des Algorithmes dans le Langage de programmation


Visual Basic

BIBLIOGRAPHIE SELECTIVE
1. GAUDEL Marie-Claude, MARRE Bruno et Bernot Gilles, Précis de
génie logiciel, Ed. Masson, Paris, 1996

2. DEMARCO T, LISTER T., Les hommes de l’ordinateur, Ed. Masson,


Paris, 1991
3. André Grimaumont et all, Algorithmes et langage Pascal, Ed. A. De
Boeck, Bruxelles, 1984

4. Gillis Clavel, Joel Biondi, Introduction à la programmation, Tome II,


Ed. Masson, Paris, 1994.

5. Le site web : www.pise.info/algo/codage.htm


« Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire
arrivent aisément »

Nicolas Boileau
CHAPITRE I :
NOTIONS PRELIMINAIRES
Tout ce que l’ordinateur fait, il le fait à partir d’un programme se
trouvant sur ses mémoires. Considérons un bébé qui nait, il ne connaît
rien. Mais, à l’âge de 4 ans, sa mère lui montre comment on fait la vaisselle
(laver les assiettes). Si on ne l’instruit pas, le bébé va rester ignorant. De
même, l’ordinateur ne connaît rien au départ ; il faut l’instruire à faire
quelque chose.

Supposons que l’ordinateur soit notre bébé et nous voulons


l’apprendre à faire la vaisselle : nous lui dirons par exemple :

a) Tu mets l’eau dans le bassin


b) Tu alignes les assiettes à laver
c) Tu agites ou trempes la brosse dans le savon
d) Tu prends une assiette sale
e) Tu fais passer la brosse sur l’assiette
f) Tu trempes cette assiette dans l’eau du bassin
g) Tu places cette assiette à l’étagère
h) Tu prends une autre assiette et tu reprends les étapes de (c) à (g)
i) Si tu as fini toutes les assiettes sales, alors tu places toutes assiettes
dans l’armoire.

L’ensemble de toutes ces étapes constituent ce qu’on appelle un


programme ou un algorithme.

I.1. Un Programme
Un programme est un ensemble d’instructions données à un
ordinateur pour que ce dernier réalise une tâche donnée.

Programmer un ordinateur c’est lui donner des ordres ou des


instructions qu’il doit exécuter. Ces instructions doivent être bien
ordonnées c'est-à-dire les étapes doivent se succéder en ordre. Si le
programme sera exécuté par un être humain, on peut ne pas détailler les
instructions ou les étapes ; mais, si c’est l’ordinateur qui va exécuter ce
programme, alors, il faut détailler très profondément ce programme. Car
par exemple, l’ordinateur ne connaît pas l’eau, le bassin, la brosse,
l’armoire, l’étagère, … aussi il ne connaît pas là où ils se trouvent. Il faut
donc le lui dire avant tout.
C’est pourquoi, pour l’ordinateur, on pourra changer le
programme en détaillant toute chose autant que possible. Par exemple :

a) Début
b) Tu vas au dépôt
c) Tu prends le bassin
d) Tu sors du dépôt
e) Tu fermes la porte du dépôt
f) Tu vas à la source
g) Tu places le bassin en dessous du robinet
h) Tu ouvres le robinet
i) Tu remplis l’eau dans le bassin
j) Tu fermes le robinet
k) Tu soulèves le bassin rempli d’eau
l) Tu quittes la source
m) Si tu es à la maison, alors, tu déposes le bassin
n) Tu vas au dépôt
o) Tu prends les assiettes sales
p) Tu les fais sortir
q) …

r) Fin
Si nous pouvons détailler très profondément au point de faire
comprendre à un ordinateur, alors on dira que nous avons fait un
algorithme.

En bref : D’une façon technique, un programme peut être défini


comme une suite d’instructions élémentaires qui vont être exécutées dans
l’ordre par le processeur. Pour programmer, il faut donc expliquer actions
par actions ce que l’ordinateur doit faire, dans le bon ordre, sans rien
oublier.

I.2. Un algorithme
D’une façon très simple, nous pouvons dire qu’un algorithme c’est
un programme bien ordonné et bien détaillé. Les mathématiciens disent
qu’un algorithme est un procédé spécial bien ordonné et détaillé pour
résoudre un problème.

Pour que l’ordinateur exécute un programme, il faut que ce


programme lui soit communiqué sous forme d’algorithme c'est-à-dire
ordonné très profondément et détaillé très profondément. Un informaticien
programmeur doit savoir faire des algorithmes. C’est ça la tâche très
passionnante des informaticiens.

Algorithme est une notion mathématique abstraite comme


l’ensemble ou le point par exemple, qui n’a pas une définition stricte, c’est-
à-dire, on ne peut pas le définir à travers les notions plus élémentaires et
plus simples. Actuellement, le mot algorithme signifie la description exacte
d’un processus.

Le mot vient du nom d’un mathématicien arabe du 9 e siècle


MUHAMMED IBN KHAREZIN. Il en existe beaucoup de définitions, à titre
d’exemple, en voici quelques-unes :

 C’est une succession des calculs numériques (Larousse)


 C’est un ensemble de règles opératoires propres à un calcul
(Petit Robert)

 C’est un procédé spécial de résolution d’un certain type de


problèmes (Dictionnaire des mathématiques)

Mais, c’est KNUTH qui, dans « The art of computer programming


» en donne les caractéristiques complètes : un algorithme est un processus
ou un ensemble de règles ayant 5 caractéristiques suivantes :

- Un algorithme doit être fini et doit se terminer après un nombre fini


d’opérations, en d’autres termes, il doit avoir un début et une fin ;

- Un algorithme doit être défini et précis c’est-à-dire chaque instruction


ou règle doit être définie sans ambiguïté ;

- S’il y a des données d’entrée, leur champ d’application doit être


précisé c’est-à-dire leur type de données. Par exemple, des données
nombres entiers, données nombres réels, données type caractère,…

- Un algorithme doit posséder au moins un résultat c’est-à-dire une


donnée de sortie ;

- Un algorithme doit être effectif c’est-à-dire toutes les opérations


doivent pouvoir être effectuées exactement, et dans un temps fini, par un
homme qui utilise les moyens manuels.

Il y a lieu d’ajouter une 6e caractéristique selon laquelle, le


fonctionnement d’un algorithme doit être déterministe c’est-à-dire un
algorithme doit toujours donner les mêmes résultats pour les mêmes
données.

Toutefois, il ne suffit pas de détailler (faire un algorithme) un


problème ; il faut aussi dire à l’ordinateur c'est-à-dire lui communiquer
dans un langage qu’il comprend. C’est pourquoi, nous parlons de langage
de programmation.
I.3. Le langage de programmation

Le deuxième problème qui se pose est celui du langage. Il faut


pouvoir expliquer nos actions ou instructions dans un langage que
l’ordinateur comprend.

L’ordinateur ne peut comprendre que le langage binaire composé de


0 et 1. En effet, le langage utilisé par le processeur, c’est-à-dire les données
telles qu’elles lui parviennent, est appelé le langage machine (c’est une suite
de 0 et 1 appelé encore système binaire). Mais, ce langage machine est très
difficile à manipuler par les humains.

C’est pourquoi, certains programmeurs ont déjà développé ou


inventé des langages de programmation un peu proches du langage
humain. Contrairement, à un langage humain, le langage de
programmation est rigide, fixe, normalisé, de façon à ce que l’ordinateur
puisse contrôler, vérifier, exécuter les phrases de ce langage.

Un langage de programmation peut donc, être défini comme un


système de notation (avec une grammaire spéciale) qui ressemble à un
langage humain mais que l’ordinateur est capable de traduire dans son
langage machine. Cela veut dire que c’est un langage ou un système de
notation composé des mots qui correspondent à des codes binaires. Ainsi,
vous pouvez saisir ce mot et l’ordinateur le traduit en binaire.

Il y a deux manières de réaliser cette traduction : la compilation et


l’interprétation.

• La compilation : toutes les lignes de l’algorithme sont traduites à


la fois et entièrement
• L’interprétation : chaque ligne de l’algorithme est traduite
immédiatement avant de passer à la ligne suivante.

Parmi les langages de programmation les plus populaires, nous


pouvons citer :

Langage Classe Compilé/Inter Domaine


prété d’application

Basic Non structure Interprété Apprentissage

Cobol Structuré Compilé Gestion

Fortran Structuré Compilé Calculs

PL1 Structuré Compilé Industrie

C Structuré Compilé Programmation


système

Pascal Structuré Compilé Enseignement

ADA Structuré Compilé Militaire, aérospatiale

LISP Structuré Interprété et Intelligence artificielle


compile

Visual Basic Orienté objet Interprété ou Interfaces homme


compilé machine

C++ Orienté objet Compilé Industrie

Java Orienté objet Interprété et Industrie – Internet


compilé

I.4. Faut-il être bon en maths pour être bon en programmation ?

Je consacre quelques lignes à cette question, car cette opinion aussi


fortement affirmée que faiblement fondée sert régulièrement d’excuse : «
moi, de toute façon, je suis mauvais(e) en algorithmique, je n’ai jamais rien
pigé aux maths ». Faut-il être « bon en maths » pour expliquer correctement
son chemin à quelqu’un ? Je vous laisse juge. La maîtrise de l’algorithmique
ou de la programmation requiert deux qualités, très complémentaires
d’ailleurs :

 il faut avoir une certaine intuition (une certaine expérience). C’est


là, si l’on y tient, qu’intervient la forme « d’intelligence » requise pour
l’algorithmique. Alors, c’est certain, il y a des gens qui possèdent au
départ davantage cette intuition que les autres. Cependant, et
j’insiste sur ce point, les réflexes, cela s’acquiert. L’intuition n’est
finalement que de l’expérience tellement répétée que le raisonnement,
au départ laborieux (fatigant), finit par devenir « spontané ». Bref, il
faut une dose de patience.

 il faut être méthodique et rigoureux. En effet, chaque fois qu’on


écrit une série d’instructions qu’on croit justes, il faut
systématiquement se mettre mentalement à la place de la machine
qui va les exécuter, armé d'un papier et d'un crayon, afin de vérifier
si le résultat obtenu est bien celui que l’on voulait. Cette opération ne
requiert pas la moindre once (grain ou pluie) d’intelligence. Mais, elle
reste néanmoins indispensable, si l’on ne veut pas écrire à
l’aveuglette.

Et petit à petit, à force de pratique, vous verrez que vous pourrez faire
de plus en plus souvent l’économie de cette dernière étape : l’expérience
fera que vous « verrez » le résultat produit par vos instructions, au fur et
à mesure que vous les écrirez.

Naturellement, cet apprentissage est long, et demande des heures de


travail patient. Aussi, dans un premier temps, évitez de sauter les étapes
: la vérification méthodique, pas à pas, de chacun de vos algorithmes
représente plus de la moitié du travail à accomplir...
et le gage de vos progrès.

I.5. L’analyse d’un problème à automatiser

Avant de faire un algorithme de résolution d’un problème, il faut


d’abord comprendre ce problème. L’expression « comprendre le problème »
est appelé en informatique « analyse du problème » ou « spécification du
problème ».
Pour ce faire, six étapes s’imposent :

a) Préciser le besoin
C’est l’expression du problème à résoudre. Il s’agit du résumé du
désir de l’utilisateur ou du bénéficiaire du programme.

b) Préciser les sorties


Ce sont les résultats. Les résultats sont les informations que le
programme est sensées produire. Au cours de cette phase, le programmeur
doit donc dresser une liste exhaustive de toutes les informations à sortir
conformément aux exigences du problème posé.

c) Préciser les entrées


Au cours de cette étape, le programmeur doit dresser la liste
d’informations disponibles permettant d’obtenir le résultat auquel le
programme doit aboutir. Les informations disponibles sont soit contenues
dans le fichier à lire, soit saisies au clavier.

d) Préciser les pré-conditions


Ce sont les conditions ou les exigences que doivent remplir les
entrées pour produire les bons résultats.

e) Préciser les post conditions


Ce sont les conditions ou les exigences que doivent remplir les
sorties pour s’assurer que le programme exécute ou fonctionne bien.
f) Elaborer le procédé de calcul ou la formule ou traitements
C’est la relation entre les entrées et les sorties. Ces formules peuvent
provenir de la mathématique, de la logique ou du domaine automatisé.
Donc, le procédé de calcul consiste à une expression mathématique ou
logique permettant d’obtenir le résultat.

A cette étape, on verra apparaître des informations qui seront


utilisées comme résultats intermédiaires ou qui interviendront dans les
conditions de calcul. Il faudra pour le fait, prévoir dans l’ordre logique les
calculs et les modalités de calcul de ces différentes informations.

Voici un exemple :

Exercice 1 : Faire un programme permettant d’afficher le quotient de deux


nombres entiers. Travail demandé : Réaliser l’analyse de ce problème.

a) Besoin : Un programme qui affiche le quotient de 2 nombres


b) Sorties : Le quotient
c) Entrée : Le premier nombre et le deuxième nombre
d) Précondition : le premier et le deuxième nombre doivent être des
entiers. Le dividende doit être différent de zéro

e) Post-conditions : le quotient ne doit pas être inférieur à zéro.


f) Procédé de calcul :
Quotient = premier nombre / deuxième nombre
Exercice 2 : Faire un programme qui affiche la mention d’un élève après
délibération. L’on attribue à l’élève deux côtes (côte de math et côte de
français, chaque cours est côté sur 10). On calcule également la côte
moyenne (Additionner les deux côtes et diviser par deux). On donnera la
mention « Echec » si la moyenne est inférieure à 10 et la mention « Succès
» dans le cas contraire.
Travail demandé : Réaliser l’analyse de ce problème.

Exercice 3: Faire un programme qui permet d’afficher le plus grand


(maximum) de deux nombres entiers saisis au clavier. Travail demandé :
Réaliser l’analyse de ce problème.

Exercice 4 : Un secrétariat public facture 10FC les dix premières


photocopies, 9FC les vingt suivantes et 8FC au-delà. Ecrivez un
algorithme qui demande à l’utilisateur le nombre de photocopies
effectuées et qui affiche la facture correspondante. Travail demandé :
Réaliser l’analyse de ce problème.

Exercice 5 : Faire un programme qui affiche le bénéfice ou perte à partir


du prix d’achat et du prix de vente. On donne le prix d’achat et le prix de
vente, puis l’ordinateur affiche le résultat qui peut être un bénéfice ou une
perte. Travail demandé : Réaliser l’analyse de ce problème.

I.6. Représentation d’un algorithme


Nous avons jusqu’ici représenté un algorithme à l’aide d’un langage
naturel. Le langage naturel (le français par exemple) est riche et solide ; et
pour cela, il est convenable pour les relations journalières entre les
personnes mais il n’est pas destiné à décrire un algorithme, à cause de
cette richesse de mots. Si l’algorithme est destiné à être exécuté par un
automate (un ordinateur), il doit être écrit sous forme spéciale accessible
à cet automate.

Il existe plusieurs outils de description (ou de représentation) d’un


algorithme. On peut citer parmi eux le langage structuré ou pseudo-code,
l’ordinogramme, les traces, les langages de programmation, …

1° Le langage structuré ou pseudo-code:


C’est une forme de représentation très simplifiée. Elle consiste à
représenter les instructions par des mots clés ou des verbes d’action
comme par exemple : lire, écrire, faire, aller,…

Ces instructions s’exécutent selon l’ordre d’arrivée. L’avantage de


cette forme est que le passage à un langage de programmation se fait très
rapidement.

2° L’ordinogramme :
C’est une représentation d’un algorithme par un graphe orienté et
dont les différents symboles utilisés correspondent aux caractéristiques
de tout algorithme. Les finalités sont les suivantes : - Visualiser une
succession logique d’opérations et de décisions

- Faire apparaître des incohérences logiques dans un processus


- Aider à l’élaboration d’un processus

- Représenter l’enchaînement des opérations à effectuer à l’aide des


symboles normalisés et les relier entre eux par des flèches, par ordre
chronologique.

- Analyser la logique de construction


- Décrire et représenter l’enchaînement des différentes tâches d’un
processus.

Voici quelques symboles d’un ordinogramme :


a) = Début et fin de programme

b) = Connexions

c)
= Ouverture et fermeture d’un fichier

d) = Operations ou activités du processus (calcul,


e)= Disque magnétique

= Opérations d’entrée ou de sortie


f)

g)= Document imprimé

h) = Préparation ou sous programme

i) ou = Direction ou sens d’exécution

j)
= Test ou point de décision

3° Trace :
La trace d’exécution est un jeu d’essai qui imite l’ordinateur. Il
s’agit d’imaginer ce que fait l’ordinateur à chaque étape d’exécution du
programme. C’est au cours de cette étape que le programmeur essaie
manuellement son programme avant sa traduction, en lui proposant des
valeurs d’entrée et de vérifier la cohérence et l’absence d’erreurs logiques.

4° Le langage de programmation :
Il s’agit de représenter l’algorithme dans un langage que l’ordinateur
comprend. Le programmeur choisit le langage qu’il maitrise bien.

N.B. : Dans ce cours, nous allons beaucoup utiliser le pseudo code et les
ordinogrammes car les langages de programmation seront approfondis
dans les cours de langage de programmation.
CHAPITRE II :
LES STRUCTURES DE BASE D’UN PROGRAMME

Dans un programme ou un algorithme, on trouve


- Les données et

- Les traitements c'est-à-dire les instructions qui manipulent les


données
C’est pourquoi, il existe aussi les structures des données (donc, la
manière de stocker les données) et les structures de traitements (donc, la
manière d’organiser les instructions).

Parmi les structures des données, on peut citer : la variable, le tableau,


l’enregistrement, …

Parmi les structures de traitement, on peut aussi citer : la séquence,


l’alternative, le choix multiple, la boucle, la fonction, la procédure, …

II1. Les variables :

A) Définition :
Dans un programme informatique, on a besoin de stocker
provisoirement des valeurs. Il peut s’agir de données issues du disque dur,
fournies par l’utilisateur (frappées au clavier), ou que sais-je encore. Il peut
aussi s’agir de résultats obtenus par le programme, intermédiaires ou
définitifs.

Une variable est une case mémoire ou une sorte de boîte dans
laquelle on stocke une donnée élémentaire. Il s’agit ici d’une donnée
nécessaire au programme.

b) Rôle d’une variable :


On ne fera pas mille choses avec une variable. Une variable sert tout
simplement à stocker ou garder temporellement une donnée ou
information.

c)Type de données de variables :


Les données manipulées par le programme ne sont pas de même
type. Elles peuvent être des nombres, des textes, des dates, … C’est
pourquoi, une variable doit avoir un type de données qu’elle doit stocker.

Le type de données détermine l’ensemble dans lequel la variable


prend ses valeurs (ensemble des entiers, caractères, …). C’est le domaine
de définition des données que peut prendre la variable concernée.

Le mode ou le type d’une manière générale indique ce qui suit :


 Un ensemble de valeurs : valeurs entières, valeurs réelles, …
 Un ensemble de propriétés que la variable doit satisfaire
 Un ensemble d’opérations que la variable utilise comme opérande.
Nous donnons ici quelques types de données les plus usuels :
- Entier : un objet de ce type peut prendre une valeur entière.
- Réel : un objet de ce type peut prendre une valeur décimale.

- Caractère : est l’ensemble des caractères que le processeur reconnaît


(lettres, chiffres, signes spéciaux, …). Une variable de ce type aura
donc pour valeur, un et un seul caractère. Pour éviter de le confondre
avec le nom d’un objet, nous les encadrons par un couple
d’apostrophes.

- Chaine de caractères : (abréviation : Chaine) tout objet de ce type


peut prendre comme valeur une suite de caractères. La suite peut être
vide.
- Booléen : un objet de ce type prend sa valeur dans l’ensemble (vrai,
faux).
N.B. : Lorsque l’objet (ou une variable) prend qu’une seule valeur dans
tout l’algorithme, on l’appelle constante. Si, au contraire, au cours du
déroulement de l’algorithme l’objet peut changer de valeur, on l’appelle
variable.

Voici comment vous allez représenter certains types de données :

Pseudo code Ordinogramme Visual


Basic
Entier Entier Integer

Réel Réel Double

Caractère Caractère String

Booléen Booléen Boolean

Chaine de Chaine de String


caractères caractères

Cette liste n’est pas exhaustive. Nous allons développer ces notions
dans le cours de langage de programmation.

d) Quelques opérations sur les variables


1° La déclaration d’une variable
Les langages de programmation obligent à déclarer au début toutes
les variables qui seront utilisées par le programme. Toutes les variables
sont décrits en entête de l’algorithme en même temps leurs types de
données, cela permet d’éviter toute ambiguïté sur leur utilisation.

Déclarer une variable c’est lui attribuer un nom et un type de données.


Disons très clairement que « déclarer une variable c’est créer une
variable ».

Le nom d’une variable (donc d’un objet) doit être significatif, ne doit pas
commencer par un nombre ou un signe ou symbole mathématique, ne
doit pas contenir des accents ou l’apostrophe. Il ne pourra pas également
contenir un espacement.

Sur l’ordinateur, la déclaration d’un objet ou d’une variable est


matérialisée par une réservation de l’espace mémoire.

Voici la syntaxe de déclaration :


Avec le Pseudo-Code : Variables NomVariable : Type de Données
Exemple : Variables Age : Entier Avec
ordinogramme : Variables Age : Entier

Avec le langage Visual Basic : DIM NomVariable AS TypeDeDonnées


Exemple : Dim Age as Integer
N.B : La déclaration intervient au début de l’algorithme.
2° L’initialisation d’une variable
L’initialisation d’une variable consiste à lui attribuer la toute
première valeur juste après la déclaration.

Lorsqu’on attribue une autre valeur à une variable, la valeur initiale


est écrasée par la nouvelle.

3° L’affectation d’une variable


L’affectation consiste à attribuer une valeur à une variable.
Voici la syntaxe de l’affectation :
Avec le Pseudo-Code : NomVariable = Valeur
Ou NomVariable ← Valeur
Exemple : Age = 22
Ou Age ← 22
Avec ordinogramme : Age = 22 Ou Age ← 22
Avec le langage Visual Basic : NomVariable = Valeur
Exemple : Age = 22
4° Saisir une variable
Cette opération consiste à prendre une valeur à partir du clavier et
l’affecter immédiatement dans une variable.

Voici la syntaxe de la saisie d’une variable :


Avec le Pseudo-Code : Lire NomVariable
Exemple : Lire Age

Avec ordinogramme : Lire Age

Avec le langage Visual Basic : NomVariable= Console.ReadLine


Exemple : Age=Console.ReadLine
5° Afficher une variable
Cette opération consiste à prendre une valeur à partir de mémoire et
l’imprimer immédiatement à l’écran de l’ordinateur.

Voici la syntaxe de l’affichage d’une variable :


Avec le Pseudo-Code : Ecrire NomVariable
Exemple : Ecrire Age

Avec ordinogramme : Ecrire Age

Avec le langage Visual Basic : Console.Write(NomVariable)


Ou Console.WrileLine(NomVariable) si on veut afficher à la ligne
Exemple : Console.Write(Age)
N.B. : On peut aussi afficher un texte textuellement : dans ce cas il faut
remplacer le mot « NomVariable » par votre texte à afficher. Mais, ce texte
sera entouré des « guillemets » ou les « apostrophes ».

Voici quelques exemples d’affichage d’un texte textuellement :


Avec le Pseudo-Code : Ecrire « Bonjour »

Ecrire « Bonjour »
Avec ordinogramme :
Avec le langage Visual Basic :
Console.WriteLine(« Bonjour »)

Exercice 1 : Faire un programme permettant d’afficher le quotient de deux


nombres entiers. Travail demandé : Ecrire l’algorithme en pseudo code,
en ordinogramme, en langage Visual Basic. Il faut aussi faire les traces.

(a) En Pseudo code


Début
Variables nbreA, nbreB : Entier
Variables R : Réel
Ecrire « Tapez un nombre »
Lire nbreA
Ecrire « Tapez un autre nombre »
Lire nbreB
R = nbreA/nbreB
Ecrire R
Fin

(b) En ordinogramme

Début

Variables nbreA, nbreB : Entier


Variables R : Réel

Lire nbreA, nbreB

R = nbreA/nbreB

Ecrire R

Fin
(c) En Visual Basic

Module Module1
Dim nbrea, nbreb As Integer
Dim r As Double
Sub Main()
Console.WriteLine("Tapez un nombre")
nbrea = Console.ReadLine
Console.WriteLine("Tapez un autre nombre")
nbreb = Console.ReadLine
R = nbrea / nbreb
Console.WriteLine(R)
Console.ReadKey()
End Sub
End Module

Exercice 2 : Faire un programme qui affiche la côte moyenne d’un élève


après délibération. L’on attribue à l’élève deux côtes (côte de math et côte
de français, chaque cours est côté sur 10). On calcule également la côte
moyenne (Additionner les deux côtes et diviser par deux). Travail
demandé : Ecrire l’algorithme en pseudo code, en ordinogramme, en
langage Visual Basic. Il faut aussi faire les traces.

Exercice 3 : Un secrétariat public facture 30FC les photocopies. Ecrivez


un algorithme qui demande à l’utilisateur le nombre de photocopies
effectuées et qui affiche la facture correspondante. Travail demandé :
Ecrire l’algorithme en pseudo code, en ordinogramme, en langage Visual
Basic. Il faut aussi faire les traces.

Exercice 5 : Faire un programme qui affiche le résultat d’une vente. On


donne le prix d’achat et le prix de vente, puis l’ordinateur affiche le
résultat qui peut être un bénéfice ou une perte. Travail demandé : Ecrire
l’algorithme en pseudo code, en ordinogramme, en langage Visual Basic.
Il faut aussi faire les traces.
II2. Les instructions de lecture et écriture des données
1° La lecture des données :
Cette instruction permet de lire les données à partir du clavier pour
les assigner dans leurs variables et de les transférer vers l’unité de
traitement.

Syntaxe : Lire <variable>, <variable>


Exemple: Lire n
Lire x, y, z
Lorsque l’ordinateur, après traduction de l’algorithme en langage de
programmation quelconque, rencontre cette instruction, il s’arrête et
attend que l’utilisateur donne une valeur.

2° L’écriture des données :


Cette instruction est le symétrique de Lire, elle prend les données
de l’ordinateur pour les afficher soit à l’écran ou soit les envoyer vers
l’imprimante.

Syntaxe : Ecrire <variable> ou bien Ecrire « Texte à afficher »


Exemple : Ecrire x
Ecrire « Je réponds au nom de Kambale »
Dans le premier exemple, l’ordinateur va afficher à l’écran le
contenu de la variable x tandis que dans le deuxième exemple, il va afficher
textuellement la phrase qui se trouve entre les guillemets.

II.3. L’instruction d’affectation


Cette instruction assigne à une variable le contenu d’une autre
variable ou bien d’une expression. Les caractéristiques de cette instruction
sont :
• L’affectation écrase la valeur précédente de la variable et la remplace
par la nouvelle valeur assignée.

• La valeur de l’objet à droite du signe (signe d’affectation ← ou =) n’est


pas touchée par l’affectation.

Syntaxe : <Variable> ← <Expression ou Variable> ou bien


<Variable> = <Expression ou Variable>
Exemple : T ← A+B
Exercice1 : Quels résultats seront affichés à la fin de l’exécution de
l’algorithme ci-dessous :

Début
Variables A, B, C, P : Entiers
A=3
B=5
C=A+B
P=C+B A=P-2
B=B+2
Ecrire A, B, C, P
Fin

Voici la liste des opérateurs utilisés pour composer les expressions


arithmétiques et logiques :

1° Les opérateurs arithmétiques : l’addition +, la soustraction -, la


multiplication *, la division /, l’élévation à la puissance **. Les
parenthèses peuvent être utilisées.

2° Les opérateurs relationnels : l’égalité =, inférieur <, inférieur ou égal


<=, supérieur >, supérieur ou égal >=, différent de <>.

3° Les opérateurs logiques : ils relient des expressions logiques ou des


identificateurs de type booléen. On en utilise essentiellement trois, qui
sont par ordre de priorité croissante : OU, ET et NON. Une expression
logique est toujours de type booléen. Il est conseillé de revoir les tables
de vérité des opérateurs logiques.

II.4 La séquence
Une séquence est une suite d’instructions qui s’exécutent les unes
après les autres selon leur ordre d’apparition dans l’algorithme. Lorsque les
instructions sont organisées d’une façon séquentielle, alors l’algorithme
doit être exécuté de haut en bas ligne après ligne, sans rien sauté.

Nos exemples précédents (voir le point II.1.) sont des séquences car
toutes les instructions de l’algorithme s’exécutent en ordre selon leur
apparition.

II.5. L’alternative ou la structure conditionnelle


La structure conditionnelle est encore appelée structure
alternative. Elle correspond au partage du processus calculatoire en deux
sous-ensembles d’opérations dont l’exécution est exclusive.

C’est donc une instruction précisant que le déroulement ne sera


plus séquentiel. Il s’agit de représenter une alternative où, selon le cas,
un bloc d’instructions est exécuté plutôt qu’un autre.

La syntaxe de cette instruction est la suivante :


En Pseudo Code :
Si <expression logique> Alors
<liste d’instruction 1>
Sinon
< liste d’instruction 2>
Finsi
En ordinogramme :

Expression
logique

Liste d’instructions 1 Liste d’instructions 2

En Visual Basic :
If <expression logique> Then
<liste d’instruction 1>
Else
< liste d’instruction 2>
End If

Il est possible que l’une de branche de l’alternative ne comporte


aucune action. La structure correspond alors à un conditionnement.
La syntaxe est alors :
En pseudo code :
Si <expression logique> Alors
<liste d’instructions>
Fin si
En Ordinogramme :

Expression
logique

Liste d’instructions

En Visual Basic :
If <expression logique> Then
<liste d’instructions>
End If

Exercice 1 : Elaborer un algorithme qui permet d’afficher le plus grand


(maximum) de deux nombres entiers x et y saisis au clavier.

Début
Variables x, y, max : entiers
Lire x, y
Si x>y Alors
max=x
Sinon max=y
Fin si
Ecrire max
Fin
Exercice 2 : Faire un algorithme qui permet de calculer et imprimer le
salaire brut, le retenu et le salaire net d’un travailleur connaissant le
nombre de jours prestés et le salaire journalier. Le nom du travailleur, le
nombre de jours prestés et le salaire journalier sont donnés à partir du
clavier. Le taux de retenu est fonction du salaire brut et est donné par le
tableau suivant :

- 2,5% pour le salaire brut inférieur à 50


- 4% pour le salaire supérieur ou égal à 50
Exercice 3 : Elaborer un algorithme qui permet d’afficher le plus grand
(maximum) de trois nombres entiers x, y et z saisis au clavier.

II.6. Le choix multiple


Il peut arriver aussi que l’on soit devant un cas d’une structure à
choix multiples. C’est un cas général de la structure alternative dans
lequel l’expression logique peut conduire à plusieurs choix.

La syntaxe est :
En pseudo code :
SELECTIONNER< variable>
SELON QUE <expression1>
Instruction 1
Ou SELON QUE< expression2>
Instruction2
Ou SELON QUE <expression3>
Instruction3
…………
AILLEURS
Instruction n
Fin SELECTION En
ordinogramme :

Expr Expr Expr …….. Expr


1 2 3 n

Instr Instr Instr …….. Instr


1 2 3 n

En Visual Basic :
Select case <NomVariable>
Case <Expression 1>
Instruction 1
Case <Expression 2>
Instruction 2
Case <Expression 3>
Instruction 3 ….
Case else
Instruction n
End select
Exercice 1 : Faire un algorithme permettant de prendre les décisions de
jury lors d’une délibération des étudiants. L’on saisit au clavier le nom
de l’étudiant, sa promotion, sa côte à l’interrogation (sur 10) et sa côte
à l’examen (sur 10 aussi). L’ordinateur calcule la côte pourcentage et
prend les décisions du jury. Voici ces décisions du jury:

a) Exclusion : côte moyenne entre 1 et 39


b) Ajourné : côte moyenne entre 40 et 49
c) Satisfaction : côte moyenne entre 50 et 69
d) Distinction : côte moyenne entre 70 et79
e) Grande distinction : côte moyenne entre 80 et 89
f) Très grande distinction : côte moyenne entre 90 et 99
NB. Utilisez une variable dans laquelle la décision du jury sera placée.
Exercice 2 : Faire un algorithme permettant de catégoriser les personnes
à partir de leur âge. L’on saisit au clavier le nom de la personne et son
âge (en année). A partir du nombre de l’âge entré, l’ordinateur classe
la personne dans une catégorie. Voici ces catégories :

a) Bébé : âge entre 0 et 1


b) Enfant : âge entre 2 et 12
c) Adolescent : âge entre 13 et 18
d) Adulte : âge entre 19 et 40
e) Vieux : âge entre 41 et plus
NB. Utilisez une variable dans laquelle la catégorie sera placée.
Exercice 3 : Faire un algorithme qui demande à un utilisateur de saisir,
en chiffres, un nombre entier positif inférieur à 10 ; puis, l’ordinateur
affiche ce nombre en toutes lettres.
CHAPITRE III :
LES BOUCLES OU STRUCTURES REPETITIVES

Dans les chapitres précédents, nous n’avons donné qu’un aperçu


général des algorithmes. Cependant, toutes les opérations ne sont pas
organisées de la même manière dans un algorithme. C’est pourquoi dans
ce chapitre, nous parlerons d’une autre structure de traitement ou de
contrôle appelée « boucle » ou « itération » ou encore « structure itérative
».

Une itération ou une boucle est un ensemble d’opérations qui doivent


être répétées toujours dans le même ordre, un nombre fini de fois. Un
traitement qui se répète et ainsi identique parait fastidieux à l’opérateur
humain. C’est pourquoi, on cherche le plus possible à confier ce travail
à un automate. Dans ce cas, il suffit de décrire une seule fois le contenu
de l’itération puis d’indiquer le nombre de répétitions pour que le
processeur puisse effectuer le traitement.

Le nombre d’itérations correspond au nombre de fois que la


boucle est exécutée.

Le problème pratique à résoudre n’est pas de décrire la boucle


mais de conserver le contrôle du nombre d’itérations à effectuer. En effet,
si le nombre de répétitions à effectuer par le processeur est différent du
nombre initialement prévu, le résultat issu de l’algorithme sera erroné,
par conséquent, à chaque boucle est associé un événement dont la
réalisation mettra fin à la boucle. Cet événement est exprimé sous la
forme d’une proposition logique.

Il existe deux formes générales de contrôle de l’itération :


- Les itérations non conditionnelles : la boucle POUR (FOR) -
Les itérations conditionnelles :
a) La boucle TANT QUE (ou WHILE)
b) La boucle REPETER JUSQU’A CE QUE (ou DO UNTIL)
III.1. La boucle POUR (FOR) :
Cette instruction permet d’exécuter plusieurs fois la même série
d’instructions. Dans la syntaxe de cette instruction, il faut préciser les
éléments suivants :

- Le nom de la variable appelée compteur et éventuellement sa valeur


initiale.

- La condition sur la variable compteur pour laquelle la boucle s’arrête.


Cette condition doit tester si la valeur du compteur dépasse une
certaine limite.

- Enfin, une instruction qui incrémente ou qui dincrémente le compteur.

La syntaxe est la suivante :


En pseudo Code :
POUR <compteur> = <valeur de début> A <valeur finale>, <pas>
Liste d’instructions
<compteur> suivant En
Ordinogramme :

Liste d’instructions

Variable = valeur début à valeur finale, pas

En Visual Basic :
For <compteur> = <valeur début> to <valeur finale> Step <Pas>
Liste d’instructions
Next <compteur>

Exemple : Ecrire un algorithme qui demande à l’utilisateur de saisir une


phrase quelconque ; puis l’ordinateur affiche cette phrase 20 fois à l’écran.

Début
Variables i : entier
Début
Variables P : Chaine
i:Entier
Ecrire « Quelle phrase voulez-vous afficher ?
P : Chaine
»
Lire P Lire P
Pour i = 1 à 20, +1
Ecrire P i suivant Ecrire P
i=1 à 20, +1
Fin
Fin

III.2. La boucle TANT QUE (ou WHILE)


Elle représente un autre moyen d'exécuter plusieurs fois la série
d’instructions.

En effet, l’utilisation d’une boucle POUR nécessite de connaître à


l’avance le nombre d’itérations désiré, c’est-à-dire la valeur finale du
compteur. Dans beaucoup de cas, on souhaite répéter une instruction
tant qu’une certaine condition soit remplie alors qu’il est a priori
impossible de savoir à l’avance au bout de combien d’itérations cette
condition cessera d’être satisfaite.

La syntaxe est la suivante :


En Pseudo code :
TANT QUE <condition> FAIRE
Liste d’instructions
Incrémentation
FIN TANT
En ordinogramme :

Condi FAUX
tion

VRAI

Liste d’instructions

En Visual Basic :
While <Condition>
Liste d’instructions
Incrémentation
End While
Exemple : Reprendre l’exercice précédent en utilisant la boucle TANT QUE.

III.3. La boucle REPETER JUSQU'A CE QUE (DO UNTIL) :


Le principe est le même que la boucle précédente. Seulement, ici on
exécute plusieurs fois la même série d’instructions jusqu’à ce qu’une
condition ne soit plus réalisée.

La syntaxe est la suivante :


En pseudo code :
REPETER
Liste d’instructions
JUSQU’A <Condition> En
ordinogramme :

Liste d’instructions

FAUX Condi
tion

VRAI

En Visual Basic :
Do
Liste d’instructions

Loop until <Condition>

Exemple : Reprendre l’exercice précédent en utilisant la boucle JUSQU'A


CE QUE.
CHAPITRE IV :
LES TABLEAUX

V1. Notions des tableaux


Nous avons vu ce qu’est une variable. Elle possède un nom et un
type. Elle contient une valeur. Un tableau possède lui aussi un nom et un
type mais il est destiné à contenir plusieurs valeurs.

Un tableau est une structure de données regroupant une suite de


variables de même type. Chaque valeur du tableau est désignée par le nom
du tableau suivi d’un ou de plusieurs indices mis entre parenthèses.

La syntaxe de déclaration d’un tableau est la suivante :


En pseudo code :
<Nom Tableau> (dimension ou taille) : <Type de données>
Ou bien
<Nom Tableau> [dimension ou taille] : <Type de données> En
Visual Basic :

Dim <NomTableau>(dimension ou Taille) As <Type de données> En


Pascal :

N.B. : La dimension ou taille c’est le nombre de cases du tableau.

Exemple : Déclarons un tableau dans lequel nous allons stocker les jours
de la semaine.

Nous aurons ce qui suit :


En pseudo code : Jour (7) : chaine
En Visual Basic : Dim Jour(7) As String
Cette déclaration permet de réserver en mémoire de l’ordinateur une
zone appelée Jour ayant 7 cases qui vont recevoir des données de type
chaine. Chaque case est référencée ou identifiée par un indice. La première
case reçoit l’indice 0. Ces indices auront donc la forme Jour(0), Jour(1),
Jour(2), … Jour(6).

IV.2. Saisir ou remplir les données dans un tableau


Pour compléter les informations dans le tableau, nous utilisons la
boucle « POUR ». Par exemple, si nous complétons notre tableau Jour(7)
par les jours de la semaine, nous aurons :

Début
Variables i:Entier
Variables Jour(7): Chaine
Pour i=0 à 6, +1
Ecrire « Tapez un jour de la semaine »
Lire Jour(i) i Suivant

Fin

IV.3. Afficher toutes les données d’un tableau

Pour afficher toutes les données se trouvant dans un tableau, nous


utilisons la boucle « POUR ». Par exemple, si nous affichons tout ce que
nous avons saisi dans notre tableau Jour(7), nous aurons :

Début
Variables i:Entier
Variables Jour(7): Chaine
Pour i=0 à 6, +1
Ecrire « Tapez un jour de la semaine »
Lire Jour(i)
i Suivant
Pour i=0 à 6, +1
Ecrire Jour(i) i
Suivant Fin

Le résultat sera : Dimanche Lundi Mardi Mercredi …. Samedi


IV.4. Additionner toutes les données d’un tableau
Pour additionner toutes les données se trouvant dans un tableau,
nous utilisons la boucle « POUR ». Par exemple, si nous additionnons tout
ce que nous avons saisi dans un tableau Cote(20), nous aurons :

Début
Variables Som, i:Entier
Variables Cote(20): Entier
Pour i=0 à 19, +1
Ecrire « Tapez une côte »
Lire Cote(i)

i Suivant

Som = 0
Pour i=0 à 19, +1
Som = Som + Cote(i)

i Suivant

Ecrire « Le total est de », Som


Fin
IV.5. Trier les données d’un tableau
Le problème de tri est fondamental. En gestion, il faut trier les
fichiers souvent très grands. Chaque constructeur vend son système avec
un utilitaire de tri dont les algorithmes sont gardés secrets, car la
performance d’un tri peut intervenir dans les critères de choix d’acquisition
d’un matériel.

Il existe plusieurs méthodes de tris des données dans un tableau.


La plus utilisée et la plus facile est le tri par sélection.

Le tri par sélection consiste en rechercher l’indice du plus grand des


nombres. On permute le nombre correspondant avec le dernier. On
recommence de la même manière jusqu’à (n-1) fois et ainsi de suite.
C’est pourquoi, il faut deux compteurs ou deux boucles imbriquées.

Exemple :
Ecrire un programme qui permet de saisir 20 entiers à partir du clavier
détermine automatiquement l’entier le plus grand.

Désignons par T(20) la liste des entiers à trier.

Début

N,max,x,k: Entier
T(x) : Entier
Max=0
Ecrire « Tapez le nombre»
Lire T(x)
Pour x=0 à 20, +1 Faire

Ecrire « Tapez un nombre »


Lire T(x)

x suivant

Pour k=1 à 20, +1 Faire


Si T(x) > Max alors
Max=T(x)
Sinon

Max=Max

Fin si

NB : Il y a plusieurs algorithmes de traitement des tableaux donc des


algorithmes à réaliser à partir des tableaux :

- La recherche d’un élément dans un tableau


- La multiplication de deux matrices
- Calculer la transposé des matrices
- …
Ces algorithmes se présentent différemment d’un langage de
programmation à un autre. C’est pourquoi, d’habitude, nous les traitons
profondément dans les cours de langages de programmation.
CHAPITRE V :
LES SOUS PROGRAMMES : LES FONCTIONS ET LES PROCEDURES

Dans la programmation interviennent parfois des tâches routières


en rapport avec le traitement, le test, … En vue de simplifier la
programmation, il y a lieu de découper le programme en petits éléments
logiques ou sous-ensembles appelés procédure ou sous programmes ou
encore sous routines qui forment de blocs de nature à rendre plus
performante la programmation et éviter la répétition de mêmes
instructions.

Dans un ordinogramme le symbole du sous-programme est

= Préparation ou sous-programme

NB : Cette notion des procédures ou fonctions sera d’une par illustré


pendant les séances pratiques puis approfondi dans le cours de Langage
de programmation.

Exemple :
On voudrait calculer et imprimer la somme de trois valeurs saisies au
clavier. Faites l’ordinogramme et l’algorithme en langage structuré.

Résolution :
a) Conception :
- Sorties : Calculer et Imprimer la somme

- Entrées : lire à partir du clavier les nombres trois nombres m, n et x.

- Traitement : Somme=m+n+x
Nous constatons que le calcul du nombre de la somme intervient trois
fois dans la formule. Il peut constituer un sous-programme ou une
fonction que nous appelons « sous-programme ».
Désignons par SommeNombres cette fonction calculant la somme de m,n
et x. En désignant par Sm la somme, nous avons ce qui suit :

Sm=m+n+x

b) Algorithme :
L’algorithme ou le programme entier sera ainsi représenté comme suit :

Début

M,n,Sn: entier

SommeNombres (m,n,x) : Fonction

Lire m,n,x
Sn=m+n+x

Ecrire Sn

Fin

En Visual Basic

Function SommeNombres(m As Double, n As Double, x As Double)


As Double
Dim Sn As Double
Sn = m + n + x
Return Sn
End Function
Les sous-programmes, c'est bien, mais dans certains cas, ça ne nous
rend guère service.

Il peut en effet arriver que dans un programme, on ait à réaliser des


tâches répétitives, mais que ces tâches n'aient pas pour rôle de générer
une valeur particulière. Alors, dans ce cas, faute de pouvoir traiter l'affaire
par une fonction, devra-t-on en rester au code répétitif ? Vous vous doutez
bien que non. Heureusement, tout est prévu, il y a une solution. Et celle-
ci consiste à utiliser des sous-programmes.

En fait, les fonctions - que nous avons vues - ne sont qu'un cas
particulier des sous-programmes - : celui où doit être renvoyé vers la
procédure appelante une valeur et une seule. Dans tous les autres cas, il
faut donc avoir recours non à la forme particulière et simplifiée (la fonction),
mais à la forme générale (la procédure).

Parlons donc de ce qui est commun aux procédures et aux


fonctions, mais aussi de ce qui les différencie :

• Alors qu'une fonction se caractérisait par les mots-clés Fonction ... Fin
Fonction, une procédure est identifiée par les mots-clés Procédure ...
Fin Procédure.

• Lorsqu'une fonction était appelée, sa valeur (retournée) était toujours


affectée à une variable. L'appel à une procédure, lui, est au contraire
toujours une instruction autonome. C’est un ordre qui se suffit à lui-
même.

• Toute fonction devait, pour cette raison, comporter l'instruction


"Renvoyer". Pour la même raison, l'instruction "Renvoyer" n'est jamais
utilisée dans une sous-procédure. La fonction est une valeur calculée,
qui renvoie son résultat vers la procédure principale. La procédure,
elle, est un traitement ; elle ne "vaut" rien.
Dans tous les deux cas, une de choses très importantes à
remarquer, c'est que les variables manipulées par la procédure (ou la
fonction) ne sont pas celles qui sont manipulées dans la procédure
appelante (ou procédure principale).

Exercices :
1) Supposons que vous voulez créer un programme qui demande à
l’utilisateur successivement 5 questions différentes (saisir son âge, son
poids, sa taille, son salaire de base et le nombre de ses enfants). A
chaque saisie, l’ordinateur multiplie le nombre saisi par 2 et affiche le
résultat dans la phrase sous la forme suivante : « Courage, tu vas
bientôt atteindre xxx ».

2) Supposons que vous voulez créer un questionnaire de 6 questions


auxquelles on doit répondre par « oui » ou « non ». Mais, vous voulez
contrôler la réponse de l’utilisateur chaque fois après saisie. Si la
réponse saisie est différent de « oui » ou « non » alors un message
d’erreur est affiché et on retourne à la question posée. Le contrôle de la
saisie se fera à l’aide d’une fonction ou sous procédure.

3) Supposons que vous voulez faire une application qui aide à récolter les
côtes obtenues par les étudiants de 4 différentes universités. Après les
avoir récoltées, l’application va aussi les afficher. Dans chacune de
deux premières universités, tu prends 3 étudiants et ailleurs tu prends
5 étudiants.

La saisie de données dans le tableau se fera à l’aide d’une fonction ou


sous procédure ; de même que l’affichage du tableau.

4) Même exercice mais il faudra que les côtes soient arrangées dans
l’ordre croissant. La saisie de données dans le tableau se fera à l’aide
d’une fonction ou sous procédure ; de même que l’affichage du tableau
et le tri de données du tableau.
CHAPITRE VI :
APPLICATION D’UN LANGAGE DE PRGRAMMATION

Dans ce chapitre, nous voulons donner seulement quelques notions


de base sur les langages de programmation algorithmiques ou langages
procéduraux. Ces notions nous permettront d’exécuter certains
algorithmes que nous avons constitués précédemment. Toutefois, ces
notions de langage de programmation seront bien approfondies
ultérieurement dans les cours de langage de programmation ou des cours
de programmation.

VI.1. Installation de Microsoft Visual Studio

L’Environnement de Développement Intégré Visual Studio


comprend plusieurs langages de programmation comme le Vb.Net, le
C++.Net, le C Sharp.Net, … Nous allons utiliser dans ce cours le langage
de programmation VB.Net pour l’exécution sur ordinateur de nos
algorithmes.
Pour Installer, Vous devez avoir le fichier exécutable de Visual
Studio. Pour notre cas, nous disposons d’un fichier image (avec
l’extension .iso). Cependant, nous aurons besoins de l’application Winrar
pour l’ouvrir et lancer la procédure d’installation.
Procédure
 Menu demarrer,
 Tous les programmes,
 Clic sur Winrar,
Ensuite, Faites un double clic sur Ms_Visual_Studio_Professionnel.ISO,
Puis l’extraction commence et après l’écran pareil arrive :
Faites alors un double clic sur Vs_professional.exe pour lancer
l’installation de l’application.

Pour continuer, suivez les instructions en cochant là où il faut cocher


après la lecture des textes qu’on aura à vous présenter.
VI.2. Programmation console et programmation graphique
Actuellement, on peut distinguer deux grandes catégories de
programmes, en se fondant sur leur interface avec l’utilisateur, c'est-à-dire
sur la manière dont se font les échanges entre l’utilisateur et le programme
:

- Les programmes à interface console ;


- Les programmes à interface graphique.
Historiquement, les programmes à interface console sont les plus
anciens. Dans de tels programmes, on fournit des informations à l’écran
sous forme de lignes de texte s’affichant séquentiellement, c'est-à-dire les
une à la suite des autres. Pour fournir des informations au programme,
l’utilisateur frappe des caractères au clavier (généralement un « écho »
apparaît à l’écran).

Entre dans cette catégorie :


- les programmes fonctionnant sur PC sous DOS ou, plus
fréquemment, dans une fenêtre Dos de Windows
- les programmes fonctionnant sous Unix ou Linux et s’exécutant
dans une « fenêtre de commande ».
Avec une interface console, c’est le programmeur qui décide de
l’enchaînement des opérations : l’utilisateur est sollicité au moment voulu
pour fournir les informations demandées qui, en toutes rigueur peuvent
influer sur le déroulement ultérieur du programme. Cette interface n’offre
donc pas à l’utilisateur la sensation d’initiative qu’il trouvera dans une
interface graphique.

Dans les programmes à interface graphique, la communication avec


l’utilisateur se fait par l’intermédiaire des composants tels que les menus
déroulants, les menus surgissant, les barres d’outils ou des boites de
dialogue, ces dernières pouvant renfermer des composants aussi variés que
les boutons poussoirs, les cases à cocher, les boutons radio, les boites de
saisie, les listes déroulantes …

L’utilisateur a l’impression de piloter le programme, qui semble


répondre à n’importe laquelle de ses demandes. On alors de ce cas de «
programmation évènementielle, expression qui traduit bien le fait que le
programme réagit à des évènements provoqués (pour la plupart) par
l’utilisateur.

VI.3. Création d’un projet Console avec Vb.Net


Pour créer un projet Visual Basic .Net :

 Cliquez sur New Project de l’interface Visual Studio après


l’avoir demarré ou menu Fichier si vous etes déjà dans un
autre projet,
 Ensuite l’interface suivante se présente :

Comme vous le constater, nous avons créé une application


console. Et voici l’écran après avoir cliqué sur OK.

VI.4. Programmation événementielle


Le programmeur va dessiner l'interface utilisateur (fenêtre, bouton,
liste..), il va ensuite uniquement écrire les actions à effectuer quand
certains événements se produisent sur cette interface. C'est Visual Basic
qui va entièrement s'occuper de la gestion des événements. Rappelons que
le Framework est un ensemble de classes. Les classes du Framework
permettront de créer des objets de toutes sortes: objet 'chaîne de
caractères', objet 'image', objet 'fichier'.... On travaille sur ses objets en
utilisant leurs propriétés, leurs méthodes.

Il existe des milliers de classes: les plus utilisées sont les classes
'String' (permettant de travailler sur des chaînes de caractères), Math
(permettant d'utiliser des fonctions mathématiques), Forms (permettant
l'usage de formulaires, de fenêtres et donnant accès aux contrôles: boutons,
cases à cocher, listes..). Elles sont communes à tous les langages utilisant
le FrameWork (VB, C#, C....).

Comme le cours n’est qu’une initiation à la programmation, nous


appliquons nos exemple en programmation console pour permettre de
maitriser les algorithmes que nous écrivions sur papier.

VI.5. Structure de base d’un programme Visual Basic

Un projet console en Visual Basic se présente de la manière suivante


une fois crée :

Module Module1

Sub main()

End Sub

End Module
 Le Sub main() c’est la procédure principale dans laquelle vous
écrivez les instructions à exécuter. Elle doit se terminer par End Sub
Comme vous le constater, les variables sont préalablement déclarées à haut
de Le Sub main() juste en bas de la déclaration du module.

VI.7. Quelques structure du Langage Visual Basic


VI.7.1. Introduction
Un programme en Visual basic est composé d’instructions que
l’ordinateur exécute de haut en bas et de gauche à droite. Vous devez avoir
l’environnement Visual studio pour écrire les instructions dans le langage
de programmation Visual basic. A cela, vous devez créer votre projet
(synonyme d’un futur programme).

VI.7.2. Les premières instructions

1° L’instruction DIM : Elle est utilisée pour déclarer les variables.


Syntaxe : DIM < Nom de la Variable > AS < Type de données >

Exemple :

DIM k AS INTEGER
Cette ligne de code crée une variable appelée k dans laquelle il
faudra stocker les entiers courts.

En principe, avant d’utiliser une variable, il faut l’avoir déclarée


préalablement mais, en Basic on peut déclarer une variable au moment de
son utilisation. Moi, je vous recommande de vous habituer à déclarer les
variables au début du programme.

Voici les principaux types de données gérés par Basic :


- Integer : ce sont les entiers cours
- Long : ce sont les entiers longs
- Double : ce sont les réels doubles
- String : ce sont les chaines de caractères.
Exercice : Commentez le programme suivant :
DIM a AS INTEGER

DIM b AS INTEGER

DIM s AS INTEGER
DIM p AS INTEGER DIM
d AS DOUBLE

a=7
b=5

s = a + b p = a * b d = a/b END 2°L’Instruction Console.WriteLine : Elle


permet d’afficher un texte à l’écran ou la valeur d’une variable :
Console.WriteLine("Texte à afficher") ou Console.WriteLine(Nomvariable) si
vous voulez afficher le contenu d’une variable. Cette instruction permet
d’une part de guider l’utilisateur pas des messages significatif et d’autre
part afficher le contenu d’une variable.

3°L’Instruction Console.ReadLine : Elle permet de récupérer une donnée


saisie au clavier dans une variable. Dans la figure ci-dessous vous allez voir
un message qui demande de saisir le coté et le curseur entrain de clignoter.
C’est l’instruction ci-haut qui permet d’obtenir le curseur sur la figure.

4° L’Instruction Console.ReadKey ou Console.ReadLine() : Celles-ci


permettent chacun de figer l’écran. Cela est visible surtout lors de
l’exécution de l’application. Si l’instruction n’est pas inscrite, l’écran
d’exécution se fermera directement.
Exercices :
1) Faire un programme qui demande à un utilisateur de saisir le prix
d’un article et la quantité achetée. A la fin, ce programme pourra
afficher à l’écran le montant à payer.

Résolution
Module Module1
Dim p As Integer
Dim q As Integer
Dim m As Integer
Sub Main()
Console.WriteLine("Tapez ici le prix de l’article")
p = Console.ReadLine
Console.WriteLine("Tapez ici la quantité achetée")
q = Console.ReadLine
m=p*q
Console.WriteLine(m)
Console.ReadKey()
End Sub
End Module
2) Faire un programme qui demande à l’utilisateur de saisir la côte
obtenue au TP, la côte obtenue à l’interrogation et la côte obtenue à
l’examen. A la fin, ce programme pourra afficher à l’écran la côte
totale obtenue.

3) Faire un programme qui permet d’afficher à l’écran la valeur d’un


montant en dollars. L’utilisateur saisit au clavier le montant de franc
à convertir en dollars et l’ordinateur affiche à l’écran l’équivalent de
ce montant en dollars.

VI.1.3. Les structures de contrôle


Maintenant, nous allons apprendre comment faire prendre des
décisions au programme.

A. La condition simple
Il est possible de faire exécuter certaines instructions selon qu’une
condition est vraie ou fausse, un peu comme cette situation de la vie
courante : S’il pleut, alors, je prends mon parapluie, sinon, je ne le prends
pas. Voici, comment faire (syntaxe):

• IF <condition> THEN
<Instructions à exécuter si la condition est vraie>
ELSE
<Instructions à exécuter si la condition est fausse> END
IF

• IF <condition> THEN

<Instructions à exécuter si la condition est vraie>

END IF

Le dernier cas ici, nous voulons dire que le ELSE et les instructions à
exécuter si la condition est fausse sont facultatifs, surtout, si rien ne
sera fait une fois la condition fausse.
Dans la partie « Condition », les opérateurs relationnels (ou de
comparaison) à utiliser sont : =, <, >, <=, >=, <>

On peut créer une condition composée avec les opérateurs AND, OR,
NOT, …
Exemple :
Faire un programme qui demande à l’utilisateur de saisir deux nombres.
Puis, l’ordinateur affiche le maximum de ces deux nombres.

Résolution :
Module Module1
Dim n1, n2, max As Integer
Sub Main()
Console.WriteLine("Entrez le nombre 1")
n1 = Console.ReadLine
Console.WriteLine("Entrez le nombre 1")
n2 = Console.ReadLine
If n1 > n2 Then
max = n1
Else
max = n2
End If
Console.WriteLine("Le Maximum est :" & max)
Console.ReadKey()
End Sub
End Module

B. Le choix multiple
Il est possible et souvent utile de faire exécuter certaines
instructions suivant la valeur d’une variable, un peu comme ceci :

Si le temps :
- est très froid, je prends mon jacket
- est pluvieux, je prends mon parapluie
- sinon, je prends mes habits habituels Voici la syntaxe :

SELECT CASE <variable à comparer>


CASE <valeur 1>
<Instructions à exécuter si variable à comparer est valeur 1>
CASE <valeur 2>
<Instructions à exécuter si variable à comparer est valeur 2>
CASE <valeur 3>
<Instructions à exécuter si variable à comparer est valeur 3>
CASE <valeur n>

<Instructions à exécuter si variable à comparer est valeur n>


CASE ELSE
<Instructions à exécuter si rien n’a été exécuté>
END SELECT
Bien sûr, vous pouvez mettre autant de CASE que vous voulez.
Exemple :
Faire un programme qui classifie les hommes selon leur âge.
Module Module1
Dim age, n2, max As Integer
Sub Main()
Console.WriteLine("Entrez votre âge en années ")
age = Console.ReadLine
Select Case age
Case 0 To 9
Console.WriteLine("Vous etes bébé ")
Case 10 To 20
Console.WriteLine("Vous êtes adolescent")
Case 21 To 40
Console.WriteLine("Vous êtes adulte")
Case Else
Console.WriteLine("Vous êtes vieux")
End Select
Console.ReadKey()
End Sub
End Module
NB : Il est possible de composer des conditions avec plusieurs autres
conditions, en utilisant les signes de comparaison et les opérateurs
logiques (AND, OR, XOR, NOT, …).

C. Les boucles
Maintenant que vous connaissez les bases pour construire un
programme en QuickBasic, nous allons voir des fonctions et des
instructions qui peuvent vous simplifier la vie. Nous allons donc voir une
instruction qui permet d’exécuter plusieurs fois un même bloc
d’instructions.

1° La boucle FOR (POUR) Syntaxe


:

FOR <Compteur = Val. initiale> TO <Val. finale> STEP <pas>


<Instructions à répéter> NEXT
<Compteur>

Tout d’abord, en arrivant au FOR, le programme affecte au compteur la


valeur initiale. Ensuite, il exécute les instructions à répéter, puis quand
il arrive au NEXT, il augmente le compteur de pas, si le compteur est
supérieur à la valeur finale, il continue l’exécution du programme après
Next, sinon, il revient à instructions à répéter.
Exemple :
Module Module1
Dim n As Integer
Dim f As Integer
Dim i As Integer
Sub Main()
Console.WriteLine("Tapez un nombre")
n = Console.ReadLine
f = 1
For i = 1 To n Step 1
f = f * i
Next i
Console.WriteLine(f)
End
Console.ReadKey()
End Sub
End Module
2° La boucle DO WHILE (TANT QUE)
La suite d’instructions est répétée tant que la condition est vraie.
Syntaxe :
WHILE <condition>
<Instructions à répéter>
WEND
Ou bien
DO
<Instructions à répéter>
LOOP WHILE <condition>

3° La boucle DO UNTIL (JUSQU'A CE QUE)


La suite d’instructions est répétée jusqu’à ce que la condition ne soit plus
vraie.

Syntaxe :
DO
<Instructions à répéter>
LOOP UNTIL <condition>
Ou bien
DO UNTIL <condition>
<Instructions à répéter>
LOOP
VI.1.4. Quelques fonctions de manipulation des chaines de
caractères

Nous allons maintenant nous pencher sur les chaines de caractères


(variables qui finissent par $ ou le texte entre « guillemets »). Il existe
beaucoup de fonctions qui permettent de manipuler ces chaines, mais,
nous allons voir seulement celles qui nous intéressent dans ce cours. Il
s’agit des fonctions suivantes :

- LEFT$ : Elle prend les n premières lettres d’une chaine.


La syntaxe est la suivante :
LEFT$ (variableChaine, nombre)
Exemple :

DIM a AS STRING
DIM b AS STRING
a = « Kasereka »
b = LEFT$ (a,4)
Console.WriteLine(a)
Ce programme affichera le mot « Kase »
- RIGHT$ : Elle prend les n dernières lettres d’une chaine.

La syntaxe est la suivante :


RIGHT$ (variableChaine, nombre)
Exemple :

DIM a AS STRING
DIM b AS STRING
a = « Kasereka »
b = RIGHT$ (a,6)
Console.WriteLine(b)

Ce programme affichera le mot « sereka »


- LEN : Elle donne le nombre de caractères d’une chaine.
La syntaxe est la suivante :
LEN (variableChaine) Exemple :

DIM a AS STRING
DIM b AS INTEGER
a = « Kasereka »
b = LEN (a)

Console.WriteLine(a)
Ce programme affichera le nombre 8

VI.1.5. Les procédures et les fonctions


Ce que nous appelons les procédures ou les fonctions s’appellent dans
d’autres contextes des « sous-programmes » ou encore des « sous-
routines ». Ce sont de morceaux de programme écrits séparément pour
subdiviser les développements en sous-ensembles plus simples. Plus un
programme est subdivisé et plus il est facile à appréhender et à faire
évoluer et ceci pour deux raisons :

- Les procédures peuvent être écrites et testées indépendamment du


reste du programme dont la complexité devient sans cela plus que
proportionnelle à la taille

- Les procédures sont écrites une fois pour toute puis peuvent être
réutilisées dans d’autres programmes.
D’une façon technique, nous pouvons dire qu’un sous programme est
un ensemble d’instructions regroupées sous un nom envie de les appeler
dans la suite du programme principale.

On distingue en Visual Basic deux types de sous-programmes : les


procédures (appelées « SUB ») et les fonctions (appelées « FUNCTION »).
La différence entre les deux est minime : une fonction retourne une
valeur tandis qu’une procédure n’en renvoie pas.

Les instructions d’une procédure commencent par le mot SUB suivi du


nom de la procédure et se terminent par le mot END SUB.

Les instructions d’une fonction commencent par le mot FUNCTION


suivi du nom de la fonction et se terminent par le mot END FUNCTION.

Une fonction peut avoir un ou plusieurs arguments. Les arguments ce


sont les valeurs à fournir pour que la procédure ou la fonction réalise sa
tâche. Les arguments sont notés dans les parenthèses. Si la procédure
ou la fonction n’a pas d’arguments alors les parenthèses sont vides.

a) La procédure SUB

Lorsqu'une même suite d’instructions se retrouve en plusieurs


endroits du programme, on s’épargne le fait de devoir la réécrire en les
plaçant dans une procédure à laquelle on donne un nom. Il suffira
d’appeler cette procédure chaque fois que l’exécution de ces
instructions sera nécessaire.

- Création d’une procédure


Pour créer une procédure en Visual Basic, il suffit d’aller dans le
menu Edition et choisir le Nouvelle Sub. Dans la fenêtre qui apparaît
il faut taper le nom de la procédure. Puis, après avoir validé, il
apparaît une fenêtre de saisie de code de la procédure. Si la procédure
nécessite les arguments, alors il faut les ajouter en les déclarant dans
les parenthèses. Si elle n’en a pas, alors laisser les parenthèses vides.

Exemple :
Imaginons une procédure dont le but d’afficher le plus grand
nombre entre deux nombres quelconques. Nous pouvons lui
donner le nom de maxi.

Voici comment nous allons créer cette procédure


SUB maxi (a AS INTEGER, b AS INTEGER)

DIM m AS INTEGER
IF a >b THEN m = a
ELSE m = b

END IF
PRINT m
END SUB

- Appel d’une procédure

Pour appeler une procédure, il suffit de taper son nom.

b) La fonction FUNCTION
Une fonction est une procédure qui a un rôle supplémentaire :
Retourner une valeur à utiliser dans le programme principale.

VI.1.6. Les tableaux


Dans cette partie, nous allons voir ce que sont les tableaux virtuels. Ce
sont des variables qui peuvent contenir plusieurs valeurs, organisées
dans une table. Un programmeur qui maitrise les tableaux virtuels est
capable de créer de très bons programmes. Voici comment les utiliser :

1° Créer et déclarer un tableau :


En Visual Basic, un tableau est créé ou déclaré par l’instruction DIM.
Sa syntaxe est la suivante :

Pour un tableau à double dimension :

DIM <Nom du tableau> (Taille du tableau) AS <Type de données>


Exemple : DIM Tab (3,4) AS INTEGER
3 est le nombre de lignes et 4 le nombre de colonnes.

Pour un tableau à une dimension :

DIM <Nom du tableau> (Taille du tableau) AS <Type de données>


Exemple : DIM Tab (5) AS INTEGER
5 peut représenter le nombre de lignes (dans ce cas le nombre
de colonnes est 1) ou même le nombre de colonnes (dans ce
cas le nombre de lignes est 1).

La taille du tableau peut être dynamique c'est-à-dire la taille est


définie par une variable. Dans ce cas, nous parlons de tableau
dynamique.

Exemple : DIM Tab (n) ou bien DIM Tab (n,m)


Dans ce cas les variables n et m doivent être déclarés préalablement.

2° Entrer les données dans un tableau :


Les cases du tableau sont identifiées par le couple indiquant l’indice
de ligne et l’indice de colonne ; comme par exemple Tab(1,3) pour dire
la case au croisement de la ligne 1 et la colonne 3 ; mais, aussi (dans
le cas d’un tableau à une dimension), on peut dire Tab(2) pour dire la
case 2.

C’est pourquoi, pour entrer les données dans un tableau, nous


utilisons d’habitude la boucle FOR dans laquelle le compteur indique
l’indice ou les indices de cases du tableau.
Exemple pour les tableaux à double dimensions: La boucle sera
imbriquée.

Exemple pour un tableau à une dimension : La boucle ne sera pas


imbriquée.

Module Module1
Dim t(6), M, C As Integer
Sub Main()

M = 0
For C = 1 To 6 Step C + 1
Console.WriteLine("Entrez" & C & "è le nombre")
t(C) = Console.ReadLine

If t(C) > M Then


M = t(C)
Else
M = M
End If
Next
Console.WriteLine("Le Maximum est :" & M)
Console.ReadKey()
End Sub

End Module

3° Accéder aux données d’un tableau :


Pour accéder aux données d’un tableau, nous prenons directement
l’indice de la case concernée. Je peux par exemple faire le produit des
éléments suivants :

A = Tab(2,3) * Tab(2,4)
B = Tab(2) + Tab(5)
N.B.: Les autres notions (les fichiers, les dessins, les intervalles, …)
seront approfondies ultérieurement dans les autres cours de langage de
programmation.
CHAPITRE VII :
TRAVAUX PRATIQUES ET EXERCICES
I. Les variables et leur affectation
1) Les noms de ces variables sont-ils valides ?
Variables Oui/Non Pourquoi ?
Num107
710Ville
Province
Kasereka
Nom
Age
Prix Achat

2) Déterminer les valeurs de A, B et C après l’exécution des instructions


suivantes :
Debut
Variables A, B, C : Entier
A=2
B= 3
C=A+B
A=C+2*B
B=(C+B)^2
C=C/3
Fin

II. La séquence
1) Ecrire un algorithme qui permet de dire (ou afficher) à quelqu’un
combien d’années lui reste-t-il avant d’aller à la retraite. L’utilisateur
donne son âge actuel en année. On suppose qu’on est autorisé d’aller
à la retraite à l’âge de 60 ans
2) On veut ajouter 3 à la côte des étudiants. Ecrire un algorithme qui
demande à un étudiant la côte obtenue à un cours. Puis l’ordinateur
ajoute 3 à cette côte et affiche le résultat obtenu c'est-à-dire la
nouvelle côte. Il faut utiliser une seule variable.
3) On veut multiplier par 2 la côte des étudiants. Ecrire un algorithme
qui demande à un étudiant la côte obtenue à un cours. Puis
l’ordinateur multiplie par 2 cette côte et affiche le résultat obtenu
c'est-à-dire la nouvelle côte. Il faut utiliser une seule variable.
4) On veut soustraire 4 à la côte des étudiants. Ecrire un algorithme
qui demande à un étudiant la côte obtenue à un cours. Puis
l’ordinateur retranche 4 à cette côte et affiche le résultat obtenu c'est-
à-dire la nouvelle côte. Il faut utiliser une seule variable.
5) On veut ajouter un certain nombre à la côte des étudiants. Ecrire un
algorithme qui demande à un étudiant la côte obtenue à un cours et
le nombre qu’il veut qu’on lui ajoute sur cette côte. L’ordinateur doit
afficher le résultat obtenu c'est-à-dire la nouvelle côte. Il faut utiliser
deux variables seulement.
6) On veut multiplier la côte des étudiants par un nombre quelconque.
Ecrire un algorithme qui demande à un étudiant la côte obtenue à
un cours et le nombre par lequel il veut qu’on multiplie cette côte.
L’ordinateur doit afficher le résultat obtenu c'est-à-dire la nouvelle
côte. Il faut utiliser deux variables seulement.
7) On veut retrancher un nombre quelconque à la côte des étudiants.
Ecrire un algorithme qui demande à un étudiant la côte obtenue à
un cours et le nombre qu’il veut soustraire sur cette côte.
L’ordinateur doit afficher le résultat obtenu c'est-à-dire la nouvelle
côte. Il faut utiliser deux variables seulement.
8) Ecrire un algorithme qui permet de dire (ou afficher) à quelqu’un le
montant à recevoir après avoir travaillé un certain nombre de jours.
On donne (ou saisit) le nombre de jours prestés et le salaire
journalier.
9) Ecrire un algorithme qui affiche le résultat de vente (Bénéfice ou
Perte). On donne (ou saisit) le prix d’achat et le prix de vente.
10) Ecrire un algorithme qui demande votre nom puis votre prénom.
Puis, il vous salue. Inspirez-vous de traces suivantes :
Quel est ton Nom ? Lambert
Quel est ton Prénom ? Gérard
Bonjour Gérard Lambert

III. L’alternative et Choix multiples


1) Ecrire un algorithme qui dit (ou affiche) à quelqu’un s’il est « mineur »
ou « adulte ». On donne (ou saisit) l’âge en année et si cet âge est
inférieur à 18 l’ordinateur affiche « mineur » ou « adulte » dans le cas
contraire.
2) Ecrire un algorithme qui dit (ou affiche) à un étudiant s’il a « réussi »
ou « échoué ». On donne (ou saisit) le pourcentage obtenu. Si ce
pourcentage est inférieur à 50 l’ordinateur affiche « Tu as échoué » ou
« Tu as réussi » dans le cas contraire.
3) Ecrire un algorithme qui ajoute 30 au salaire de femmes. On donne
(ou saisit) le montant du salaire de base et le sexe de l’agent.
L’ordinateur affiche le résultat obtenu c'est-à-dire le montant de
salaire à payer. On suppose que l’entreprise comprend les agents
femmes et les agents homme.
4) Ecrire un algorithme qui affiche le plus grand de deux nombres saisis
au clavier
5) Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur.
Ensuite, il l’informe de sa catégorie :
• "Poussin" de 6 à 7 ans
• "Pupille" de 8 à 9 ans
• "Minime" de 10 à 11 ans
• "Cadet" après 12 ans
Peut-on concevoir plusieurs algorithmes équivalents menant à ce résultat
?
6) Création des menus en console. Imaginons un programme qui devine
« qui est quelqu’un ». Voici comment se comporte ce programme :
- Il pose la question « Comment es tu ? » Puis présente les menus
suivants : 1. Fort 2. Moyen 3. Faible
- Si l’on choisit Fort, alors il présente les menus suivants :
1. Soldat 2. Policier 3. Maïmaï
- Si l’on choisit Moyen, alors il présente les menus suivants :
1. Politicien 2. Diplomate 3. Administrateur
- Si l’on choisit Faible, alors il présente les menus suivants :
1. Civil Riche 2. Civil Fonctionnaire 3. Civil Chômeur
- Après le dernier choix, l’ordinateur salue la personne en affichant : «
Bonjour – Tel – »

IV. Les Boucles


1) Ecrire un algorithme qui demande un nombre compris entre 10 et 20,
jusqu’à ce que la réponse convienne. En cas de réponse supérieure à
20, on fera apparaître un message : « Plus petit ! », et inversement, «
Plus grand ! » si le nombre est inférieur à 10.
2) Ecrire un algorithme qui demande un nombre de départ, et qui
ensuite affiche les dix nombres suivants. Par exemple, si l'utilisateur
entre le nombre 17, le programme affichera les nombres de 18 à 27.
3) Ecrire un algorithme qui demande un nombre de départ, et qui
ensuite écrit la table de multiplication de ce nombre, présentée comme
suit (cas où l'utilisateur entre le nombre 7) :
Table de 7 :
7x1=7
7 x 2 = 14
7 x 3 = 21

7 x 10 = 70
4) Ecrire un algorithme qui demande un nombre de départ, et qui calcule
la somme des entiers jusqu’à ce nombre. Par exemple, si l’on entre 5,
le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la
décomposition du calcul.
5) Ecrire un algorithme qui demande un nombre de départ, et qui calcule
sa factorielle.
NB : la factorielle de 8, notée 8 !, vaut
1x2x3x4x5x6x7x8
6) Ecrire un algorithme qui demande successivement 20 nombres à
l’utilisateur, et qui lui dise ensuite quel était le plus grand parmi
ces 20 nombres :
Entrez le nombre numéro 1 : 12
Entrez le nombre numéro 2 : 14 etc.
Entrez le nombre numéro 20 : 6
Le plus grand de ces nombres est : 14
Modifiez ensuite l’algorithme pour que le programme affiche de
surcroît en quelle position avait été saisie ce nombre : C’était le
nombre numéro 2

7) Réécrire l’algorithme précédent, mais cette fois-ci on ne connaît pas


d’avance combien l’utilisateur souhaite saisir de nombres. La saisie
des nombres s’arrête lorsque l’utilisateur entre un zéro.
8) Lire la suite des prix (en euros entiers et terminée par zéro) des
achats d’un client. Calculer la somme qu’il doit, lire la somme qu’il
paye, et simuler la remise de la monnaie en affichant les textes "10
Euros", "5 Euros" et "1 Euro" autant de fois qu’il y a de coupures
de chaque sorte à rendre.

V. Tableaux
1) Que produit l’algorithme suivant ?
Tableau Nb(5) en Entier
Variable i : Entier
Début
Pour i ← 0 à 5
Nb(i) ← i * i i
suivant Pour i
←0à5
Afficher(Nb(i))
i suivant Fin
2) Que produit l’algorithme suivant ?
Tableau N(6) en Entier
Variables i, k en Entier
Début
N(0) ← 1
Pour k ← 1 à 6
N(k) ← N(k-1) + 2
k Suivant Pour i
←0à6
Afficher (N(i))
i suivant
Fin

3) Ecrivez un algorithme permettant à l’utilisateur de saisir un nombre


quelconque de valeurs, qui devront être stockées dans un tableau.
L’utilisateur doit donc commencer par entrer le nombre de valeurs
qu’il compte saisir. Il effectuera ensuite cette saisie. Enfin, une fois
la saisie terminée, le programme affichera le nombre de valeurs
négatives et le nombre de valeurs positives.
4) Ecrivez un algorithme calculant la somme des valeurs d’un tableau
(on suppose que le tableau a été préalablement saisi).
5) Ecrivez un algorithme permettant, toujours sur le même principe, à
l’utilisateur de saisir un nombre déterminé de valeurs. Le
programme, une fois la saisie terminée, renvoie la plus grande valeur
en précisant quelle position elle occupe dans le tableau. On prendra
soin d’effectuer la saisie dans un premier temps, et la recherche de
la plus grande valeur du tableau dans un second temps.
6) Toujours et encore sur le même principe, écrivez un algorithme
permettant, à l’utilisateur de saisir les notes d'une classe. Le
programme, une fois la saisie terminée, renvoie le nombre de ces
notes supérieures à la moyenne de la classe.
7) Ecrivez l'algorithme qui recherche un mot saisi au clavier dans un
dictionnaire. Le dictionnaire est supposé être codé dans un tableau
préalablement rempli et trié.
8) Ecrire l’algorithme :
1. qui permet de saisir un nombre déterminé de ville.
2. qui permet de saisir un certain nombre de ville.
3. qui affiche l’ensemble des villes (du tableau)
4. qui détermine la présence d’une ville donnée en affichant son rang
dans le tableau
5. qui affiche une ville à partir d’un rang du tableau donné

VI. Procédures et fonctions


1) Supposons que vous voulez créer un programme qui demande à
l’utilisateur successivement 5 questions différentes (saisir son âge,
son poids, sa taille, son salaire de base et le nombre de ses enfants).
A chaque saisie, l’ordinateur multiplie le nombre saisi par 2 et affiche
le résultat dans la phrase sous la forme suivante : « Courage, tu vas
bientôt atteindre xxx ».
2) Supposons que vous voulez créer un questionnaire de 6 questions
auxquelles on doit répondre par « oui » ou « non ». Mais, vous voulez
contrôler la réponse de l’utilisateur chaque fois après saisie. Si la
réponse saisie est différent de « oui » ou « non » alors un message
d’erreur est affiché et on retourne à la question posée. Le contrôle de
la saisie se fera à l’aide d’une fonction ou sous procédure.
3) Supposons que vous voulez faire une application qui aide à récolter
les côtes obtenues par les étudiants de 4 différentes universités.
Après les avoir récoltées, l’application va aussi les afficher. Dans
chacune de deux premières universités, tu prends 3 étudiants et
ailleurs tu prends 5 étudiants. La saisie de données dans le tableau
se fera à l’aide d’une fonction ou sous procédure ; de même que
l’affichage du tableau.
4) Même exercice mais il faudra que les côtes soient arrangées dans
l’ordre croissant. La saisie de données dans le tableau se fera à l’aide
d’une fonction ou sous procédure ; de même que l’affichage du
tableau et le tri de données du tableau.

Vous aimerez peut-être aussi