next up previous contents
Next: Equivalences logiques Up: Cours d'Algorithmique Programmation A0 Previous: Factorisation dans une conditionnelle

Eléments de logique propositionnelle


Considérons la conditionnelle suivante:

if a = b  then     A;               (1)
elsif a /= b then  B;
else               C;
end if;


nous aurions pu l'écrire plus simplement par:

if a = b  then  A;                  (2)
else            B;
end if;


Les instructions (1) et (2) sont équivalentes. En effet,


Considérons maintenant l'instruction suivante, avec une condition un peu plus complexe:

if a < b or (a >= b and c = d) then ...    (1)
end if;

nous aurions pu l'écrire plus simplement par:

if a < b or  c = d then ...                (2)
end if;

comment arrivons-nous à cette conclusion?


Raissonnement logique


La logique propositionnelle est une modélisation mathématique du raisonnement. Le raisonnement dans notre premier exemple ne dépend pas du sens que l'on peut donner à a = b ou à a /= b. Tout ce qu'importe est que ces deux expressions sont complémentaires, c.a.d., l'une est vraie lorsque l'autre est fausse et vice-versa. Nous pouvons donc remplacer a = b par p et a /= b par not(p) et obtenir pour (1):

if p  then         A;               (1')
elsif not(p) then  B;
else               C;
end if;

qui du coup semble plus facilement simplifiable. Les symboles p et q sont appelées variables propositionnelles ou logiques, dans ce sens où elles auront l'une des deux valeurs true ou false.

Expressions logiques

Une expression logique (ou booléenne) est formée de variables logiques, des valeurs de vérité et des connecteurs usuels and , or , not auxquels nous ajoutons le connecteur $\equiv$ d'équivalence logique.

Si dans notre deuxieme exemple nous remplaçons a < b par p, a >= b par not(p) et c = d par q, la condition dans (1) devient:

p or ( not(p) and q)

Nous avons déjà montre dans cet exemple, qu'indépendamment des valeurs de p,q, l'équivalence suivante est toujours vraie:

p or ( not(p) and q) $\quad \equiv \quad$ p or q

Dans la partie suivante, nous donnons une liste d'équivalences logiques qui pourront servir à mieux comprendre et formuler les conditions dans nos programmes.




 
next up previous contents
Next: Equivalences logiques Up: Cours d'Algorithmique Programmation A0 Previous: Factorisation dans une conditionnelle
Maria-Viginia Aponte
2001-11-21