Auris Solutions : Cabinet de Conseil en Stratégie Numérique

Cours d’algorithmique – Programmation en Turbo Pascal – III) Les instructions conditionnelles

(c) Ph. RISCours d’algorithmique by Ph. RIS est mis à disposition selon les termes de la licence Creative Commons Paternité – Pas d’Utilisation Commerciale – Pas de Modification 3.0 Unported.

III. Les instructions conditionnelles

Il arrive très souvent que suivant la valeur prise par une variable, on veuille effectuer tel ou tel type de traitement. Ce choix peut être fait par l’instruction conditionnelle :

SI … ALORS … SINON … ou en PASCAL IF … THEN … ELSE

Règle d’indentation numéro 2 : les actions dans un test SI ALORS SINON doivent pouvoir être clairement séparées. Aussi, on met le THEN et le ELSE au même niveau et les actions correspondantes décalées à droite :

IF (test)

THEN

action_test_positif ;

ELSE

action_test_négatif ;

S’il y a plus d’une instruction par action, alors il faut utiliser les BEGIN/END :

IF (test)

THEN

BEGIN

actions_test_positif ;

END

ELSE

BEGIN

actions_test_négatif ;

END

III. 1. Exemple

Program division ;

Uses crt ;

var

diviseur, dividende : real ;

begin

writeln (‘dividende : ‘) ; readln(dividende) ;

writeln (‘diviseur : ‘) ; readln(diviseur) ;

if (diviseur0.0)

then writeln (‘Résultat = ‘,dividende/diviseur)

else

begin

writeln (‘Attention’) ;

writeln (‘Le diviseur est nul’) ;

end ;

end.

III.1.a. Exercice 1

Dire si les expressions suivantes sont vraies ou fausses :

– VRAI AND VRAI AND FAUX

– VRAI AND VRAI OR FAUX

– VRAI AND FAUX OR VRAI

– (VRAI AND FAUX) OR VRAI

– (VRAI ORFAUX) AND (FAUX AND (VRAI OR VRAI))

III.1.b. Exercice 2

On considère l’expression suivante :

If (NOTE)
NOTE étant une variable contenant un entier, et ABSENCE une variable contenant VRAI ou FAUX (booléenne).

Quel est le résultat de cette équation dans les cas suivants :

NOTE=5, ABSENCE=FAUX

NOTE=10, ABSENCE=FAUX

NOTE=10, ABSENCE=VRAI

NOTE=12, ABSENCE=FAUX

Écrire un petit programme vérifiant les résultats.

III.1.c. Exercice 3

On considère l’expression suivante :

(NOTE15) OR ABSENCE

NOTE1, NOTE2, NOTE3, étant des variables contenant un nombre, et ABSENCE contenant VRAI ou FAUX.

Quel est le résultat de cette équation dans les cas suivants :

NOTE1=5, NOTE2=8, NOTE3=15, ABSENCE=FAUX

NOTE1=10, NOTE2=17, NOTE3=0, ABSENCE=VRAI

NOTE1=12, NOTE2=7, NOTE3=10, ABSENCE=FAUX

NOTE1=5, NOTE2=17, NOTE3=0, ABSENCE=VRAI

NOTE1=12, NOTE2=2, NOTE3=10, ABSENCE=VRAI

III.1.d. Exercice 4

Écrire un programme qui demande le sexe de l’utilisateur et affiche Madame ou Monsieur après avoir demandé son nom.

III.1.e. Exercice 4

Reprendre ce programme et demander si l’utilisateur est marié pour afficher Madame, Mademoiselle ou Monsieur.

III.1.f. Exercice 6

Ecrire un programme qui demande deux nombres et qui les affiche dans un ordre croissant.

III.1.g. Exercice 7

Écrire un programme qui demande trois nombres et qui les affiche dans un ordre croissant.

III.1.1h. Exercice 8

Écrire un programme qui lit les variables suivantes : PRODUIT (nom d’un produit), QUANTITE (nombre d’article de ce produit), TVA, PRIX, PRIX_TTC.

a) Donner un test permettant d’afficher les produits ayant une TVA entre 10% et 20%.

b) Donner un test permettant d’afficher les produits ayant un prix supérieur à 1000 et dont la TVA est comprise entre 15% et 25%.

c) Donner un test permettant d’afficher les produits ayant un prix TTC inférieur à PRIX+10 et dont la TVA est comprise entre 15% et 25%.

Écrire le programme correspondant.

III.2. La structure case

La structure CASE est une généralisation du IF THEN ELSE dans le sens où elle permet d’avoir plus d’une alternative à un test du moment où ces alternatives sont données. Par exemple :

case variable of

1, 2, 5 :    writeln (‘1 3 ou 5’) ;

6..10 :      writeln (‘entre 6 et 10’) ;

11, 12 :

begin

writeln(’11 ou 12′) ;

end ;

writeln(‘erreur’) ;

else :

end ;

La variable et les valeurs proposées dans les différents cas doivent être du même type.

Règle d’indentation numéro 3 : à chaque case correspond son end. Ils doivent donc être indentés au même niveau. Pour plus de clarté, il faut décaler les différentes alternatives vers la droite.

III.3. Exercices

III.3.a. Exercice 1

Ecrire un programme qui lit un entier au clavier. En se servant des bornes de l’intervalle de définition des entiers, afficher avec des IF THEN ELSE si l’entier est positif, négatif ou nul.

III.3.b Exercice 2

Récrire ce même programme avec un case.

III.3.c. Exercice 3

Un informaticien veut écrire un programme de message électronique. Pour cela, il invente un programme qui demande au début du programme, un numéro d’identification à l’utilisateur. il écrit les messages suivants selon la valeur de la variable :

1                     ‘Bonjour cher ami, je suis en voyage et je rentre jeudi’

2                     ‘Salut M’man, les crêpes étaient très bonnes’

3                     ‘Chou-chou, tu as encore laissé la lumière allumée’

4                     ‘Un saucisson à l’ail et deux jambons’

5                     ‘Fou B5-C4’

6                     ‘Vendredi soir 20h30’

Autres             ‘Vous n’êtes pas un utilisateur autorisé’

Écrire un programme pouvant réaliser ces affichages avec :

1) des SI ALORS SINON

2) une structure CASE

On souhaite pouvoir faire la différence entre les utilisateurs autorisés et les autres. Pour cela, on définit la variable AUTORISE. Quel est le type le plus approprié pour celle-ci ? Modifier le programme pour pouvoir mettre à jour cette variable et selon la valeur de celle-ci, afficher en sortie le message :

‘Au revoir et à la prochaine’ ou

‘Vous n’êtes pas un utilisateur autorisé, que je ne vous y reprenne plus !’

Aucun commentaire jusqu'à présent.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *


_____________


Avant d'être uberisé,
apprenez à décoder les

17 règles de l'économie numérique


Catégories

Nous respectons la RGPD