Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Algorithmique - Techniques fondamentales de programmation
  3. Techniques fondamentales de programmation
Extrait - Algorithmique - Techniques fondamentales de programmation Exemples en PHP (nombreux exercices corrigés) - 3e édition (BTS, DUT Informatique)
Extraits du livre
Algorithmique - Techniques fondamentales de programmation Exemples en PHP (nombreux exercices corrigés) - 3e édition (BTS, DUT Informatique)
1 avis
Revenir à la page d'achat du livre

Tests et logique booléenne

Les tests et conditions

1. Principe

Dans le précédent chapitre, vous avez pu vous familiariser avec les expressions mettant en place des opérateurs, qu’ils soient de calcul, de comparaison (l’égalité) ou booléens. Ces opérateurs et expressions trouvent tout leur sens une fois utilisés dans des conditions (qu’on appelle aussi des branchements conditionnels). Une expression évaluée est ou vraie (le résultat est différent de zéro) ou fausse. Suivant ce résultat, l’algorithme va effectuer une action, ou une autre. C’est le principe de la condition.

Grâce aux opérateurs booléens, l’expression peut être composée : plusieurs expressions sont liées entre elles à l’aide d’un opérateur booléen, éventuellement regroupées avec des parenthèses pour en modifier la priorité.

(a=1 OU (b*3=6)) ET c>10 

est une expression tout à fait valable. Celle-ci sera vraie si chacun de ses composants respecte les conditions imposées. Cette expression est vraie si a vaut 1 et c est supérieur à 10 ou si b vaut 2 (2*3=6) et c est supérieur à 10.

Reprenez l’algorithme du précédent chapitre qui calcule les deux résultats possibles d’une équation du second degré. L’énoncé simplifié disait que pour des raisons pratiques seul le cas où l’équation a deux solutions fonctionne. Autrement dit, l’algorithme n’est pas faux dans ce cas de figure, mais il est incomplet. Il manque des conditions pour tester la valeur du déterminant : celui-ci est-il positif, négatif ou nul ? Et dans ces cas, que faire et comment le faire ?

Imaginez un second algorithme permettant de se rendre d’un point A à un point B. Vous n’allez pas le faire ici réellement, car c’est quelque chose de très complexe sur un réseau routier important. De nombreux sites Internet vous proposent d’établir un trajet avec des indications. C’est le résultat qui est intéressant. Les indications sont simples : allez tout droit, tournez à droite au prochain carrefour, faites trois kilomètres et au rond-point prenez la troisième sortie direction B. Dans...

L’algèbre booléen

1. L’origine des tests

Les tests effectués tant en algorithmique qu’en programmation sont des tests logiques, ou plutôt faisant appel à la logique. Le chapitre Les variables et opérateurs a déjà brièvement abordé ce point lorsqu’il a été question des opérateurs booléens. Les opérateurs dits logiques ET, OU et NON sont des représentations de la logique. De quelle logique parle-t-on ?

Fondamentalement, la logique est la même pour tout le monde, bien que évidemment l’interprétation des résultats puisse varier d’un individu à l’autre (en statistique par exemple). La logique est universelle. Monsieur Spock, s’il avait existé, n’aurait pas dit mieux. Mais jusqu’à peu (dans l’échelle de l’humanité) il n’y avait aucun moyen de se la représenter réellement, sous forme de symboles, d’assertions, etc. Il n’y avait aucune représentation formelle de la logique.

Or un ordinateur est logique (même si on peut lui demander des choses illogiques, c’est vous qui le programmez après tout). La logique est même la base de nombreuses applications mathématiques, électroniques, d’intelligence artificielle. 

En informatique, le matériel est électronique et dépend de la logique, les programmes dépendent tant de tests et de calculs faisant appel à la logique et devant fonctionner sur des circuits électroniques. Sans logique, pas d’électronique, ni d’ordinateurs, ni de programmes.

C’est ce qui fait que les opérateurs, conditions et tests ne doivent pas être posés n’importe comment. Il n’y a rien de plus logique qu’un ordinateur, mais aussi rien de plus stupide : il va bêtement (et encore la notion de bêtise lui est inconnue) exécuter exactement ce que vous lui demandez, même si le résultat entraîne une erreur ou est faux et cela du moment que les tests sont bien posés et qu’une réponse logique peut en être déduite. Ainsi :

PROGRAMME STUPIDE 
VAR 
  froid, nu, sortir en Booléen 
DEBUT 
  FroidImages/flechegauche.PNGVRAI 
 ...

Exercices

Exercice 1

Écrire un algorithme qui lira au clavier trois noms communs, et qui dira s’ils sont dans l’ordre alphabétique.

Exercice 2

Écrire, avec des comparaisons, un algorithme qui lira au clavier les heures et les minutes, et qui affichera l’heure qu’il sera une minute plus tard. Par exemple, si l’utilisateur tape 20 puis 33, l’algorithme doit répondre :

« Dans une minute, il sera 20 heure(s) 34 minute(s). »

NB : on suppose que l’utilisateur entre une heure valide.

Exercice 3

Écrire le même algorithme, mais en utilisant deux variables booléennes pour vérifier si les minutes sont égales à 60 et les heures à 24, sans comparaisons dans les SI.

Exercice 4

Écrire un algorithme qui détermine la catégorie sportive d’un utilisateur en fonction de son âge :

18 à 19 ans : junior

20 à 22 ans : espoir

23 à 39 ans : sénior

40 ans et plus : vétéran

Écrire le programme PHP équivalent.

Exercice 5

Une compagnie d’assurance automobile doit appliquer une surprime suivant l’âge, le sexe et le nombre d’années de permis de la personne.

Les hommes de plus de 22 ans payent la surprime.

Les femmes entre 20 et 30 ans payent la surprime.

Les personnes ayant plus de 5 années de permis ne payent pas la surprime.

Écrire un algorithme...