Vous êtes sur la page 1sur 24

Techniques et langage de programmation

structurée
Ce module est comporte deux matière, La 1ere concerne la Technique de programmation
structurée (ou Algorithmique) ou on va voir comment convertir un problème en un
ensemble d’instruction dites algorithme écrite en langage très proche au langage humain
(Pseudo-langage). La 2eme est relative au Langage de programmation structuré, ou on va traduire
algorithme en un langage compréhensible par la machine dit Langage de programmation.
Il bien évidement plusieurs langages de programmation. Notre établissement est bien
intéressé au langage C, pour plusieurs raison, car il est très proche de langage humain
académique et très répandu. Et il est la base de plusieurs produit dans la marché. Et la
compréhension et la manipulation de langage C offre une souplesse au stagiaire de
s’adapter facilement avec d’autres langages de programmation.

Première Partie :
Analyse de besoins en ce qui a trait au développement
de l'application
Dans cette partie nous allons mètre l’action la notion de résolution de problèmes par ordinateur.
En développant le principe [Entrée de données – Traitement - Sortie des résultats]. Nous
allons aussi être capable de :

1. Comprendre l'utilité d'un algorithme.

2. Connaître les différents types de représentation existants : pseudo-code, organigramme,


etc.

3. Connaître les notions de base de l'algèbre de Boole.

L'utilité d'un algorithme.

Algorithme du surnom latin Algorismi du mathématicien Arabe Al Khwarizmi.

1. Définition:

Un algorithme est une suite d’actions précises et finies qui doivent être exécutées sur
un ensemble de données dans un ordre bien déterminé en vue de la résolution d’un
problème.
2. Objectifs:

 Un algorithme sert à transmettre un savoir faire.

 Il décrit les étapes à suivre pour réaliser un travail.


 Il permet d'expliciter clairement les idées de solution d'un problème
indépendamment d'un langage de programmation.

 L'utilisateur d'un algorithme n'aura qu'à suivre toutes les instructions, dans l'ordre
pour arriver au résultat que doit donner l'algorithme.
Chapitre 1 : Les différents types de
représentation existants : pseudo-code,
organigramme
1. Introduction
Une approche intéressante en matière de représentation est l’ordinogramme qui permet,
dans un format graphique, de proposer une vue des opérations exécutées par l’ordinateur.

Il est possible de ne faire apparaître qu’une vue partielle des opérations en fonction de
l’intérêt que cette présentation de la logique d’exécution présente.

Cette présentation ne dispense pas de l’écriture du programme sous forme d’un pseudo
code qui elle se voudra plus exhaustive.

2. La prise de décision
La prise décision est l'élément clé de l'algorithme. Elle permet en effet de choisir quelle
opération on doit effectuer en fonction de la valeur d'un paramètre. En général, ce choix
s'effectue selon l'évaluation d'une expression logique à laquelle on peut répondre par OUI ou
NON ou par VRAI ou FAUX.

Par exemple on peut vouloir effectuer un certain type d'opérations si un paramètre est positif
et une autre série d'opération si un paramètre est négatif.

Dans ce cas l'algorithme prendra la forme suivante :

Prise de décision

On appelle cette représentation graphique un organigramme


3. La répétition
Des opérations comme le calcul itératif, la sommation, le décompte d'entités, la recherche
d'entités impliquent toutes les notions de répétition.

À partir du moment où il faut répéter, il faut choisir un point de départ pour démarrer le
processus de répétition. Cette étape s'appelle l'initialisation et comme nous le verrons dans
ce qui suit, c'est une étape essentielle. Le cas le plus simple de répétition peut être
représenté comme suit :

Cette répétition est évidemment sans fin car rien n'est spécifié pour arrêter le retour vers le
haut dans l'algorithme.

Pour corriger la situation, nous devons introduire la notion de prise de décision dans la
répétition, à savoir doit-on continuer oui ou non. L'algorithme précédent devient donc :

Définition du nombre
de répétition N et du
compteur d'itérations i

Instructions à répéter

Incrémentation du
compteur

Décision de continuer
ou non
Dans ce cas, nous prenons la décision d'arrêter ou de continuer en comparant la valeur de i
à une valeur maximum N. La valeur de i est initialisée à 1 et la valeur N à 10.

A chaque répétition la valeur de i est augmentée de 1 (i = i+1), si bien que plus on répète
plus i augmente. La valeur de i nous sert donc à compter les répétitions et nous appelons i
un compteur.

Cet algorithme constitue la base de tout système itératif pour lequel nous connaissons le
nombre de répétitions à effectuer. Cependant, au niveau des opérations à répéter, rien ne
prouve qu'elles sont modifiées à chaque tour et finalement l'algorithme précédent répète
toujours la même chose ce qui est rarement utile.

Pour résoudre ce problème, il faut donc que les opérations à effectuer soient influencées soit
par le compteur d'itérations soit par toute autre valeur provenant d'une itération précédente.
L'exemple qui suit démontre le calcul de la fonction factorielle de 1 à N.

Définition du nombre de répétition


N, du compteur d'itérations i et de
la valeur initiale du factoriel FAC

Produit de la valeur précédente de


FAC par la valeur du compteur i et
mise à jour de la valeur de FAC

Incrémentation du compteur

Décision de continuer ou non

Dans cet exemple, portons un intérêt particulier à la valeur FAC. À chaque répétition, Cette
valeur est modifiée à partir d'elle-même. Cela signifie qu'a la fin des répétitions, FAC a
accumulé l'influence de chaque répétition. FAC est donc un accumulateur qui est utilisé ici pour
accumuler le produit de plusieurs valeurs. Cette notion est aussi utilisée pour accumuler des
sommes.
En terminant, dans certains processus répétitifs, nous ne connaissons pas à l'avance le
nombre de répétitions à faire. La décision d'arrêter ou de continuer sera prise en fonction du
résultat des opérations effectuées de la boucle de répétition.

Dans l’exemple qui suit, le problème consiste à diviser plusieurs fois une valeur par 2 jusqu'à
ce que cette valeur soit plus petite qu'un millième

Initialisation

A devient égal à la moitié de


sa valeur précédente

Décision de continuer ou non

4. Un exemple complet
Dans l’exemple qui suit, l’ordinogramme a été complété et présente l’acquisition des
données en entrée au travers l’opération de lire et les résultats en sortie qui figurent dans
l’opération présenter
.

Il s’agit là d’un exemple complet de représentation, sous forme d’ordinogramme, de


l’algorithme du programme. Ces opérations particulières, de lecture/écriture sont formalisées
sous la forme d’une figure ovale.

Il est important de réfléchir aux données attendues par le programme pour qu’il puisse
s’exécuter correctement. Dans les premiers exemples que nous donnons, ces données
seront acquises soit par l’intermédiaire d’un dialogue utilisateur et de l’opération lire, soit par
affectation directe dans le cadre d’une initialisation d’une variable.

Ces données acquises par le programme sont les données en Entrée (Input).

Les données acquises en entrée par le programme font l’objet d’un traitement qui en modifie
la valeur ou participent au traitement comme facteur de celui-ci. Celles qui seront restituées
à l’utilisateur, correspondant au résultat du programme, sont des données en Sortie (Output).

Certaines données en entrée peuvent être aussi restituées en sortie : on parle alors de
données en Entrée-Sortie (Input-Output ou Both).
Chapitre 2 Rappels sur les fonctions
logiques
1.Introduction
Ce document propose de revenir sur quelques notions fondamentales relatives aux opérations et
fonctions sur des variables logiques.

Le raisonnement logique et les méthodes de résolution de problèmes en informatique s’appuie sur


ces concepts de base.

Nous aborderons donc dans ce document des principes fondamentaux relatifs au sous ensemble des
mathématiques traitant des fonctions logiques dont George Boole, un mathématicien britannique,
durant le milieu du XIXe siècle, proposa un système formel.
L'algèbre booléenne permet d'utiliser des techniques algébriques pour traiter les expressions à deux
valeurs de la logique des propositions. L’algèbre de Boole est aujourd’hui appliqué en informatique
et en électronique.
Ce document présentera des outils utiles à la résolution de problèmes logiques que sont les tables de
vérité. Il est fondamental de maîtriser les bases de la logique pour être en mesure d’exprimer
correctement les conditions nécessaires à l’exécution des instructions dans vos futurs programmes.

2.L’algèbre de Boole
Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la
conception des circuits électroniques. Elle fut utilisée la première fois pour les circuits de
commutation téléphoniques par Claude Shannon.

L'algèbre de Boole des fonctions logiques permet de modéliser des raisonnements logiques, en
exprimant un « état » en fonction de conditions. Par exemple :

Communication = Émetteur ET Récepteur

Communication est « VRAI » Si Émetteur actif ET Récepteur actif (c'est une fonction logique
dépendant des variables Émetteur et Récepteur)

2.1. Ensemble des valeurs de vérité


On appelle B l'ensemble constitué de deux éléments appelés valeurs de vérité {VRAI, FAUX}. Cet
ensemble E sera noté E = {1, 0}

Sur cet ensemble on peut définir deux lois (ou opérations ou foncteurs, abstractions de fonctions),
les lois ET et OU et une transformation appelée le complémentaire, l'inversion ou le contraire.
2.2. La loi ET, dite conjonction
Elle est définie de la manière suivante : a ET b est VRAI si et seulement si a est VRAI et b est VRAI.
Cette loi est aussi notée « . »

2.3. La loi OU, disjonction ou disjonction inclusive


Elle est définie de la manière suivante : a OU b est VRAI si et seulement si a est VRAI ou b est VRAI.
(notons que si a est vrai et que b est vrai aussi, alors a OU b est vrai.) Cette loi est aussi notée « + »

2.4. La loi du contraire, dite négation


Le contraire de "a" est VRAI si et seulement si a est FAUX. Le contraire de a est noté non-a ou

2.5. Propriétés
2.5.1. Associativité
Comme avec les opérations habituelles, certaines parenthèses sont inutiles:

(a + b) + c = a + (b + c) = a + b + c

(a.b).c = a.(b.c) = a.b.c

2.5.2. Commutativité
L'ordre est sans importance.

a+b=b+a

a.b = b.a

2.5.3. Distributivité
Comme avec les opérations habituelles, il est possible de distribuer :

a.(b + c) = a.b + a.c

Attention : comportement différent par rapport aux opérateurs + et * habituels :

a + (b.c) = (a + b).(a + c)

2.5.4. Elément Neutre


a+0=a

a.1 = a

2.5.5. Absorption
a + a.b = a

a.(a + b) = a

structurées
2.5.6. Simplification
a+ .b = a + b

a.( + b) = a.b

2.5.7. Priorité des opérateurs


Les opérations logiques sont soumises aux mêmes règles que les opérations algébriques classiques.
La fonction ET (multiplication logique) est ainsi prioritaire par rapport à la fonction OU (somme
logique). On peut, pour s'aider, placer des parenthèses dans les opérations.

Exemple :

Soient les valeurs suivantes :

a = 0;b = 1;c = 1

On cherche a.b + c = ??

Compte tenu de la priorité des opérateurs on calcule d’abord a.b :

a.b = 0.1

0.1 = 0

Puis, on calcule 0 + c :

0+c=c

c=1

Le résultat final est donc:

a.b + c = 1

3.Fonctions logiques & tables de vérité


Mathématiquement, une fonction logique ou opérateur logique est une application de En dans E.

Une table de vérité permet de préciser l'état de la sortie en fonction des états des entrées. Elles vous
aideront dans la résolution des problèmes logiques.

On démontre que toute fonction logique peut se décrire à l'aide des trois opérations de base ET, OU
et Négation soit ., + et -

3.1. Les fonctions logiques fondamentales


Elles sont issues des 3 opérations de bases.
3.1.1. Table de vérité de la négation
Table de vérité
de la négation

0 1

1 0

3.1.2. Table de vérité de la somme (OU)

Table de vérité de la
somme

a b a b

0 0 0

0 1 1

1 0 1

1 1 1

3.1.3. Table de vérité du produit (ET)

Table de vérité du
produit

a b a b

0 0 0

0 1 0

1 0 0

1 1 1

3.2. Les fonctions logiques dérivées


Certaines fonctions logiques dérivées des fonctions logiques fondamentales sont intéressantes et
peuvent faire l’objet d’applications en informatique. On en retiendra deux, le ou exclusif et
l’équivalence.

Document Page
Page 12 / 62
OFPPT @ Technique de programmations
janvier 2013 11
structurées
3.2.1. Le ou exclusif ou fonction exclusive
Le OU étudié jusqu'à présent doit se comprendre de la manière suivante : « l'un ou l'autre ou les
deux ». Il est également appelé « OU inclusif ». Le OU exclusif (ou XOR pour eXclusive OR) s'entend
comme « l'un ou l'autre mais pas les deux ».

Table de vérité de XOR

a b a XOR b

0 0 0

0 1 1

1 0 1

1 1 0

3.2.2. L’équivalence
L'équivalence (notée EQV) est vraie si les deux entrées ont la même valeur et fausse sinon. Elle est
appelée aussi «non-ou exclusif ».

Table de vérité de EQV

a b a EQV b

0 0 1

0 1 0

1 0 0

1 1 1

3.3. Exemple à 3 variables


Prenons l'exemple du téléphone,

Décrocher le téléphone est « VRAI » si on entend la sonnerie ET que l'on décide de répondre OU si
l'on décide d'appeler. On se trouve en présence de 3 variables :

a = "le téléphone sonne"

b = "on décide de répondre"

c = "on a envie d'appeler "

la variable d = "on décroche" est donc fonction logique des 3 précédentes. On écrira que

d = a.b + c
La table de vérité de cette fonction d est alors la suivante :

Table de vérité de on
décroche d

a b c d

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1
Deuxième Partie : L’algorithmiques

Chapitre 3: Algorithme : les opérations


de base
1.Introduction
Il est nécessaire dans un premier temps de prendre conscience de la difficulté que nous avons
d’exprimer la solution à un problème donné de façon complète et non ambiguë.

Dans la situation de résolution d’un problème, deux étapes :


 Qu’avons-nous à faire : QUOI
 Comment allons-nous résoudre le problème : Expression du COMMENT
Deux étapes distinctes, l’analyse précédant toujours la conception.

Nous utiliserons une forme algorithmique pour exprimer le résultat de


notre analyse détaillée.

Définition d’un algorithme :

Suite d’actions que devra effectuer un automate pour arriver, en un temps fini, à
un résultat déterminé à partir d’une situation donnée.
Cette suite d’actions sera composée d’actions élémentaires que nous allons voir
ici.
Par la suite nous utiliserons un pseudo-langage, comportant toutes les structures de base
d'un langage de programmation.

Un programme est une suite d'instructions exécutées par la machine.

Ces instructions peuvent soit s'enchaîner les unes après les autres, on parle alors de
SEQUENCE D'INSTRUCTIONS; ou bien s'exécuter dans certains cas et pas dans d'autres, on
parle alors de STRUCTURE ALTERNATIVE; ou se répéter plusieurs fois, on parle alors de STRUCTURE
REPETITIVE.
2.La déclaration des variables
Un programme exécutable est composé de deux parties :

données

instructions

La partie instructions contient les instructions à exécuter. Nous verrons dans le chapitre suivant
quelles sont les principales instructions distinguées.

La partie donnée contient toutes les variables utilisées par le programme.

Un programme exécutable est chargé dans la mémoire centrale de l'ordinateur, les valeurs que l'on a
affectées aux variables doivent être conservées tout le temps du déroulement du programme.

Par conséquent, il faut que le programme soit capable de réserver la place nécessaire aux variables.

Pour ce faire, les variables doivent être déclarées afin que le compilateur sache quelle place elles
vont occuper.

Les valeurs des variables sont par définition amenées à être modifiées ou tout du moins susceptibles
d’être modifiées. Elles s’opposent en ce sens à des données constantes qui peuvent être utilisées par
le programme et qui conservent donc leur valeur tout au long de l’exécution du programme. Celles-ci
seront désignées sous le terme de Constantes par opposition à Variables.

2.1. Les types


Les variables que l'on utilise dans les programmes ne sont pas toutes de même nature, il y a des
nombres, des caractères, ... On dit que les variables sont typées.

Il est nécessaire de donner un type aux variables. Cela permet d'une part de contrôler leur utilisation
(ex: on ne peut pas diviser un caractère par un entier). D'autre part, le programme connait ainsi la
place qu’il lui faut réserver pour cette variable.

Les langages de programmation offrent à minima les types suivants :

ENTIER : il s'agit des variables destinées à contenir un nombre entier positif ou négatif.

Dans notre langage, on écrira la déclaration des variables de type entier :

ENTIER variable1, variable2, ... ;


Généralement un entier occupe 2 octets, ce qui limite les valeurs de -32768 à +32768.

Cependant cela dépend des machines, des compilateurs, et des langages.


Certains langages distinguent les entiers courts (1 octet), les entiers longs (4 octets) et les entiers
simples (2 octets).

REEL : il s'agit des variables numériques qui ne sont pas des entiers, c'est à dire qui comportent des
décimales et qui sont des valeurs approximatives.

Dans notre langage, la déclaration des variables de type réel est la suivante :

REEL variable1, variable2, ... ;


Les valeurs numériques peuvent recouvrir bien d’autres types (décimal, flottant, …)

CARACTERE : Les variables de type caractère contiennent des caractères alphabétiques ou


numériques (de 0 à 9), mais dans ce cas ils ne sont pas considérés comme étant des nombres et on
ne peut pas faire d'opérations dessus.

Un caractère occupe un octet.

Dans notre langage, une variable de type caractère se déclare ainsi :

CAR variable1 , variable2 , ...;


N.B. : les chaînes de caractères, dans notre langage, sont des tableaux de caractères (voir 1.6.2)

BOOLEEN : Il est souvent nécessaire lorsque l'on écrit un programme d'introduire des variables qui
prennent les valeurs VRAI ou FAUX ou les valeurs OUI ou NON.

Pour cela, il existe un type particulier dont les variables ne peuvent prendre que 2 valeurs : VRAI ou
FAUX.

Dans notre langage, la déclaration s'écrit :

BOOLEEN variable, variable, ... ;

3.La séquence d'instructions


Une instruction est une action que l'ordinateur est capable d'exécuter.

Chaque langage de programmation fournit une liste des instructions qui sont implémentées et que
l'on peut donc utiliser sans les réécrire

Dans notre pseudo-langage, nous aurons une liste minimum d'instructions, nécessaire et suffisante
pour les programmes que nous aurons à écrire. Cette liste est bien entendu moins fournie que celle
que proposerait un langage informatique opérationnel.

3.1. L'affectation
Variable <-- Valeur
Ce qui se lit "variable reçoit valeur" et qui signifie que l'on mémorise la valeur à un endroit nommé
variable.

Document Page
Page 17 / 62
OFPPT @ Technique de programmations
janvier 2013 16
structurées
Par exemple : i <-- 1 Termine <-- VRAI

3.2. Les opérations arithmétiques


Les opérations arithmétiques courantes, addition, soustraction, multiplication et division s'écrivent
ainsi :

variable <--val1 + val2


variable <-- val1 - val2
variable <-- val1 * val2
variable <-- val1 / val2

On doit toujours affecter le résultat d'une opération dans une variable.

3.3. Le dialogue avec l'utilisateur


Pour permettre au programme de dialoguer avec l'utilisateur, c'est à dire d'afficher un résultat à
l'écran et de lire une entrée au clavier, il faut au moins deux instructions une pour lire, l'autre pour
afficher.

Dans le pseudo-langage, elles s'écrivent ainsi :

LIRE Variable
ECRIRE Texte Variable Variable Texte ...

La première lit tous les caractères qui sont saisis au clavier, jusqu'à ce que l'utilisateur appuie sur la
touche entrée, et stocke le résultat dans la variable.

La seconde affiche sur l'écran le ou les textes et la valeur des variables.

ECRIRE "Quel est ton nom ? "


LIRE nom_utilisateur
ECRIRE "Ton nom est : " nom_utilisateur ". Le mien est TOTO"
Exercices 1. Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B : Entier
Début
A←1
B←A+3
A←3
Fin

2. Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ?

Variables A, B, C : Entier
Début
A←5
B←3
C←A+B
A←2
C←B–A
Fin

3. Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?

Variables A, B : Entier
Début
A←5
B←A+4
A←A+1
B←A–4
Fin

4. Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ?

Variables A, B, C : Entier
Début
A←3
B ← 10
C←A+B
B←A+B
A←C
Fin

5. Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?

Variables A, B : Entier
Début
A←5
B←2
A←B
B←A
Fin

Questions : les deux dernières instructions permettent-elles d’échanger les deux valeurs de B et A ? Si
l’on inverse les deux dernières instructions, cela change-t-il quelque chose ?
6. Ecrire un algorithme permettant d’échanger les valeurs de deux variables A et B, et ce quel que soit
leur contenu préalable.

7. On dispose de trois variables A, B et C. Ecrivez un algorithme transférant à B la valeur de A, à C la


valeur de B et à A la valeur de C (toujours quels que soient les contenus préalables de ces variables).

8. Que produit l’algorithme suivant ?

Variables A, B, C : Caractères
Début
A ← “423“
B ← “12”
C←A+B
Fin

9. Que produit l’algorithme suivant ?

Variables A, B : Caractères
Début
A ← “423“
B ← “12”
C←A&B
Fin

Solutions

1.
Après exécution de l’instruction La valeur des variables est :
A←1 A=1 B=?
B←A+3 A=1 B=4
A←3 A=3 B=4

2.
Après exécution de l’instruction La valeur des variables est :
A←5 A=5 B=? C=?
B←3 A=5 B=3 C=?
C←A+B A=5 B=3 C=8
A←2 A=2 B=3 C=8
C←B–A A=2 B=3 C=1

3.
Après exécution de l’instruction La valeur des variables est :
A←5 A=5 B=?
B←A+4 A=5 B=9
A←A+1 A=6 B=9
B←A–4 A=6 B=2

4.
Après exécution de l’instruction La valeur des variables est :
A←3 A=3 B=? C=?
B ← 10 A = 3 B = 10 C = ?
C←A+B A = 3 B = 10 C = 13
B←A+B A = 3 B = 13 C = 13
A←C A = 13 B = 13 C = 13

5.
Après exécution de l’instruction La valeur des variables est :
A←5 A=5 B=?
B←2 A=5 B=2
A←B A=2 B=2
B←A A=2 B=2

Les deux dernières instructions ne permettent donc pas d’échanger les deux valeurs de B et A, puisque
l’une des deux valeurs (celle de A) est ici écrasée.
Si l’on inverse les deux dernières instructions, cela ne changera rien du tout, hormis le fait que cette
fois c’est la valeur de B qui sera écrasée.

6. L’algorithme est :
Début
C←A
A←B
B←C
Fin

On est obligé de passer par une variable dite temporaire (la variable C).

7. L’algorithme est :
Début
D←C
C←B
B←A
A←D
Fin

En fait, quel que soit le nombre de variables, une seule variable temporaire suffit.

8. Il ne peut produire qu’une erreur d’exécution, puisqu’on ne peut pas additionner des caractères.

9. On peut concaténer ces variables. A la fin de l’algorithme, C vaudra donc “42312”.

3. LES INSTRUCTIONS DE LECTURE ET ECRITURE


Considérons le programme suivant :
VARIABLE A : ENTIER
Début
A ← 12 ^ 2
Fin
Il permet de calculer le carré de 12.
Le problème de ce programme, c’est que, si l’on veut calculer le carré d’un autre nombre que 12, il
faut réécrire le programme.
D’autre part, la machine calcule le résultat et l’utilisateur qui fait exécuter ce programme ne saura
jamais que ce résultat correspond au carré de 12.
C’est pour cela qu’il faut introduire des instructions qui permettent le dialogue avec l’utilisateur.
En effet, il existe une instruction qui permet à l’utilisateur de faire entrer des valeurs au clavier pour
qu’elles soient utilisées par le programme. La syntaxe de cette instruction de lecture est :
LIRE NomVariable
Lorsque le programme rencontre une instruction LIRE, l’exécution du programme s’interrompt,
attendant la saisie d’une valeur au clavier.
Dès que l’on frappe sur la touche ENTER, l’exécution reprend.
Une autre instruction permet au programme de communiquer des valeurs à l’utilisateur en les affichant
à l’écran. La syntaxe de cette instruction d’écriture est :
ECRIRE NomVariable
ou de façon générale
ECRIRE Expression

Remarque : Avant de lire une variable, il est fortement conseillé d’écrire des libellés à l’écran, afin de
prévenir l’utilisateur de ce qu’il doit frapper. La même chose pour l’instruction d’écriture.

Exemple :
Variables A, CARRE : Réels
DEBUT
Ecrire ‘Entrez un nombre’
Lire A
CARRE ← A * A
Ecrire ‘Le carré de ce nombre est : ’
Ecrire CARRE
FIN

Exercices
1. Quel résultat produit le programme suivant ?
VARIABLES Val, Double : ENTIERS
Début
Val ← 231
Double ← Val * 2
ECRIRE Val
ECRIRE Double
Fin

2. Ecrire un programme qui demande deux nombres entiers à l’utilisateur, puis qui calcule et affiche
le somme de ces nombres.

3. Ecrire un programme qui lit le prix HT d’un article, le nombre d’articles et le taux de TVA, et qui
fournit le prix total TTC correspondant. Faire en sorte que des libellés apparaissent clairement.

4. Ecrire un programme qui lit une valeur et qui nous calcule l’inverse de cette valeur.

5. Le surveillant général d’un établissement scolaire souhaite qu’on lui écrit un programme qui
calcule, pour chaque élève, la moyenne des notes des cinq matières. Ces matières sont avec leur
coefficient :

MATIERE COEFFICIENT
Math 5
Physique 5
Français 4
Anglais 2
Histoire - Géographie 2

Corrections
1. On verra apparaître à l’écran :

231
462

2. Le programme est :
VARIABLES A, B, SOMME : ENTIERS
Début
ECRIRE ‘Entrez le premier nombre’
Lire A
ECRIRE ‘Entrez le deuxième nombre’
Lire B
SOMME ← A + B
ECRIRE ‘La somme de ces deux nombres est : ’
ECRIRE SOMME
Fin

Remarque : On peut remplacer les deux derniers lignes par :


ECRIRE ‘La somme de ces deux nombres est : ’, SOMME

3. Le programme est :
VARIABLES pht, ttva, pttc : REELS
VARIABLE nb : ENTIER
Début
ECRIRE “Entrez le prix hors taxes :”
LIRE pht
ECRIRE “Entrez le nombre d’articles :”
LIRE nb
ECRIRE “Entrez le taux de TVA :”
LIRE ttva
Pttc ← nb * pht * (1 + ttva)
ECRIRE “Le prix toutes taxes est : ”, ttva
Fin

4. Le programme est :
VARIABLES x, inverse : REELS
Début
ECRIRE “Entrez une valeur :”
LIRE x
inverse ← 1 / x
ECRIRE “L’inverse est : ”, inverse
Fin

5. Le programme est :
VARIABLES mat, phy, ang, fra, hg, moyenne : REELS
Début
LIRE mat
ECRIRE “Entrez la note de physique :”
LIRE phy
ECRIRE “Entrez la note de français :”
LIRE fra
ECRIRE “Entrez la note d’anglais :”
LIRE ang
ECRIRE “Entrez la note d’histoire-Géo :”
LIRE hg
moyenne ← ((mat + phy) * 5 + fra * 4 + (ang
+ hg) * 2) / 18
ECRIRE “La moyenne est : ”, moyenne
Fin

4. LA STRUCTURE ALTERNATIVE
4.1. Les conditions simples
Une condition simple consiste en une comparaison entre deux expressions du même type.
Cette comparaison s'effectue avec des opérateurs de comparaison. Voici la liste de ces opérateurs
accompagnés de leur signification dans le cas des types numérique ou chaîne :

Opérateur Signification Signification


numérique chaîne
= égal à égal à
<> différent différent
< inférieur placé avant dans l'ordre alphabétique
> supérieur placé après dans l'ordre alphabétique
<= inférieur ou égal placé avant dans l'ordre alphabétique ou égal
>= supérieur ou égal placé après dans l'ordre alphabétique ou égal

Pour la comparaison du type chaîne c'est l'ordre alphabétique qu'est utilisé dans le cas où l'on compare
deux lettres majuscules ou minuscules. Mais si l'on compare majuscules et minuscules, il faut savoir
que les majuscules apparaissent avant les minuscules. Ainsi, par exemple : "M" < "m".

4.2. Les conditions complexes


Certains problèmes exigent parfois de formuler des conditions qui ne peuvent pas être exprimées sous
la forme simple vu en dessus. A cet effet, la plupart des langages autorisent des conditions formées de
plusieurs conditions simples reliées entre elles par ce qu'on appelle des opérateurs logiques. Ces
opérateurs sont : ET, OU et NON.
• Pour que la condition complexe,
condition1 ET condition2
soit VRAI, il faut impérativement que la condition1 soit VRAI et que la condition2 soit VRAI.
• Pour que la condition
condition1 OU condition2
soit VRAI, il suffit que condition1 soit VRAI ou condition2 soit VRAI. Il est à noter que cette
condition complexe sera VRAI si condition1 et condition2 sont VRAI.
• Le NON inverse une condition :
NON(condition)
est VRAI si condition est FAUX, et il sera FAUX si condition est VRAI.

Page 24 / 62
D'une manière générale, les opérateurs logiques peuvent porter, non seulement sur des conditions
simples, mais aussi sur des conditions complexes. L'usage de parenthèses permet dans de tels cas de
régler d'éventuels problèmes de priorité. Par exemple, la condition :
(a < 0 ET b > 1) OU (a > 0 ET b > 3)
est VRAI si l'une au moins des conditions entre parenthèses est VRAI.

4.3. La structure alternative


Supposons que nous avons besoin, dans un programme, d'afficher un message précisant que la valeur
d'une variable est positive ou négative. Avec les instructions de base que nous avons vu (celles qui
permettent la manipulation des variables : affectation, lecture, écriture), on ne peut pas. Il faut
introduire une des instructions de structuration du programme (ces instructions servent à préciser
comment doivent s'enchaîner chronologiquement ces instructions de base) qui donne la possibilité
d'effectuer des choix dans le traitement réalisé. Cette instruction s'appelle la structure alternative. Sa
syntaxe est :
SI condition ALORS
bloc 1 d'instructions
SINON
bloc 2 d'instructions
FIN SI
Si la condition mentionnée après SI est VRAI, on exécute le bloc1 d'instructions (ce qui figure après
le mot ALORS); si la condition est fausse, on exécute le bloc2 d'instructions (ce qui figure après le
mot SINON).

Exemple :
SI a > 0 ALORS
ECRIRE ''valeur positive''
SINON
ECRIRE ''valeur négative''
FIN SI
Dans ce programme, on vérifie si la valeur de a est supérieure à 0, on affichera le message ''valeur
positive''. Dans le cas contraire, il sera affiche le message ''valeur négative''.

La structure alternative peut prendre une autre forme possible où l'une des parties du choix est absente.
Elle s'écrit dans ce cas :
SI condition ALORS
bloc d'instructions
FIN SI

Exemple : Dans un programme de calcul du montant d'une facture, on applique une remise de 1% si le
montant dépasse 5000 Dhs. Nous écrirons :
SI montant > 5000 ALORS
montant ← montant * 0.99
FIN SI

4.4. Les structures alternatives imbriquées


Il peut arriver que l'une des parties d'une structure alternative contienne à son tour une structure
alternative. Dans ce cas, on dit qu'on a des structures alternatives imbriquées les unes dans les autres.

Exemple : Ecrire un programme qui donne l’état de l’eau selon sa température.


Variable Temp : Entier
Début
Ecrire “Entrez la température de l’eau :”
Lire Temp
Si Temp =< 0 Alors

Page 25 / 62

Vous aimerez peut-être aussi