Initiation à la programmation en Basic – ETAPE 8 : Tests conditionnels

Jusqu’à maintenant, notre programme exécute toutes les instructions les unes après les autres. Lors de l’étape précédente, nous avons vu qu’à l’aide de boucles, le programme peut réitérer l’exécution de certaines instructions. Lors de la présente étape d’initiation à FreeBasic, nous allons aborder les tests conditionnels. Nous en profiterons pour introduire cette notion dans différents langages afin de démontrer la relative portabilité des programmes d’un langage à l’autre.

Un test conditionnel permet de n’exécuter une instruction ou ensemble d’instructions que si une ou plusieurs conditions sont remplies.

Condition simple : SI condition réalisée ALORS action

Les tests conditionnels sont une structure de programmation courante, facile à programmer qui se traduit ainsi en Basic : IF condition réalisée THEN action.

Exemple :

If age>=18 Then Print "Le sujet est majeur"

L’action PRINT “Le sujet est majeur” ne sera exécutée que si le contenu de la variable age est supérieur ou égal à 18.

Le test conditionnel repose sur une comparaison. C’est la réalisation ou non de la condition qui conditionne l’action à exécuter.

Expression de la comparaison :

La condition utilise une variable (dans l’exemple précédent la variable age), des opérateurs de comparaison (ici : >=) et des nombres et du texte. La notion de variable a déjà été introduite.

Les opérateurs de comparaison utilisés pour exprimer la condition sont pour une bonne part repris du monde des mathématiques :

  • < (inférieur à),
  • > (supérieur à),
  • <> (différent de),
  • = (égal à),
  • <= (inférieur ou égal à),
  • >= (supérieur ou égal à),
  • NOT (non)

Expression de conditions multicritères :

Le précédent exemple ne comprenait qu’un seul critère. La condition peut comprendre plusieurs critères. Chaque critère est lié au précédent par un opérateur AND (et), OR (ou), XOR (ou exclusif).

Exemple :

If (age>=18) AND (age<=30) Then… : Si l’âge est compris entre 18 et 30 ans (bornes comprises) alors…

If (age=30) OR (age=45) Then… : Si l’âge est égal à 18 ans ou à 45 alors…

Attention aux conditions impossibles : par exemple, pour reprendre l’exemple précédent, la condition : If (age=30) AND (age=45) Then… est irréalisable puisque la variable (ou un être humain normalement constitué d’ailleurs) ne peut simultanément prendre les valeurs 30 et 45.

Il est parfaitement possible d’imbriquer des conditions et de définir les priorités entre elles à l’aide de parenthèses. Dans ce cas, le régime des priorités répond aux mêmes règles qu’en mathématiques. A noter, chaque parenthèse ouverte doit être refermée…

Exemple :

If ((typeclient="Grand Compte") And ((CA>1000000) And (CA<5000000))) Or ((typeclient="PME") And ((CA>10000) And (CA<50000))) Then TauxRemise = 0.10

Si le client est un grand compte et que son chiffre d’affaires est compris entre 1 et 5 millions ou s’il s’agit d’une PME et que son CA est compris entre 10 et 50 K€ alors le taux de remise appliqué est de 10 %.

Et sinon ?

Pour l’instant, nous avons programmé l’action à réalisé si la condition est remplie (Then). Mais quid si l’action n’est pas remplie ? L’instruction Else permettra l’exécution d’action si la condition n’est pas remplie.

Exemple :

If age>=18 Then Print "Le sujet est majeur" Else Print "Le sujet est mineur"

Normalement, si vous avez bien suivi le cours, vous avez tout compris…

Tests conditionnels imbriqués :

La réalité des choses (et quelquefois la perversité du programmeur, poète à sa manière) conduit le programmeur à imbriquer des tests.

Ces tests seront effectués jusqu’à ce qu’une condition ne soit pas remplie ; dans ce cas le programme sort de la séquence de tests et continue son exécution.

La structure de programmation est la suivante :

If condition Then If… Then Else… : SI ALORS SINON SI ALORS SINON…

Le programmeur peut laisser libre cours à son imagination…

Et dans d’autres langage ?

La structure de programmation est “relativement” semblable d’un langage à l’autre.

Basic :

If age>=18 Then Etat="Majeur" Else Etat="Mineur"

VBA :

If age>=18 Then Etat="Majeur" Else Etat="Mineur"

(EndIf clôturera la structure conditionnelle si le test est présenté sur plusieurs lignes)

DELPHI :

If age>=18 Then Etat:='Majeur' Else Etat='Mineur';

PHP :

if($age >= 18):

$etat="Majeur";

else:

$etat="Mineur";

endif;

Calcul d’emprunt : ajout d’une ligne d’intitulé de colonne

Pour reprendre l’exemple qui nous sert de fil conducteur depuis le début de cette initiation à FreeBasic, nous allons ajouter un test conditionnel qui ajoutera à chaque période de douze mois (douze échéances) un intitulé de colonne “Capital restant – Intérêts – Capital remboursé – Capital restant” :

if (i+11) mod 12=0 then

print "Capital restant - Intérêts - Capital remboursé - Capital restant"

end if

Explication :

if (i+11) mod 12=0 : signifie Si le reste de la division (i+11)/12 est nul Alors… (le reste de la division est nul lorsque l’échéance en cours (i) est la première d’une période de 12 mois…

Comme d’habitude, le code-source du programme de calcul d’emprunt est téléchargeable ci-après.

Approfondir le sujet : Initiation au langage Basic (série d’articles)

Share Button
Initiation à freeBasic (étape 8) : tests conditionnels
2 KiB
776 téléchargements
Détails...
The following two tabs change content below.
Après seize années passées en cabinet d’expertise-comptable et de commissariat aux comptes (où j’ai exercé comme expert-comptable et chef de mission audit), j’ai pris le poste de directeur comptable d’un groupe de distribution automobile en novembre 2014. Au cours de ma carrière, j’ai acquis une expérience significative en audit et en exploitation des systèmes d’information (analyse de données, automatisation des tâches, programmation informatique) au service de la production des comptes annuels et consolidés. C’est cette expérience personnelle et ma passion pour l’informatique que je partage sur ce blog. Mon CV / Réalisations personnelles et projets informatiques / Ma collection / Me contacter

6 commentaires

  1. Pingback: EXCEL et VBA : Manipuler des plages de cellules dans des variables tableaux | Audit & Systèmes d'Information

  2. Bonsoir Monsieur,

    Je vous remercie sincèrement parce que grâce à votre cours, c’est maintenant je comprends mes problèmes quand je fait mon programmation.

    Bien cordialement,

    NGUYEN Nhu Phuong

  3. Pingback: Analyse de données : interroger une base de données avec une requête SQL – Audit & Systèmes d'Information

  4. Pingback: Les opérateurs de comparaison – Audit & Systèmes d'Information

  5. Pingback: Algèbre de Boole (ou arithmétique booléenne) - Audit & Systèmes d'Information

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.