« Introduction générale à la programmation/Tests conditionnels » : différence entre les versions

Contenu supprimé Contenu ajouté
Kaepora (discussion | contributions)
mAucun résumé des modifications
Kaepora (discussion | contributions)
Aucun résumé des modifications
Ligne 3 :
|idfaculté=informatique
|leçon=[[Introduction générale à la programmation]]
|numero=23
|précédent=[[Introduction générale à la programmation/Variables et Affectation|Variables et Affectation]]
|suivant=[[Introduction générale à la programmation/Itérations|Itérations]]
}}
== Les structures de tests ==
 
{{pas fini}}
Touts langages de programmation inclu les '''conditions'''.<br />
Des fautes sont presentes. Je les corrigerai tres prochainement.
C'est un système de "structure de test".
 
== Premier test conditionnel : Si ... Alors ==
 
On souhaite tres souvent que les programmes aient un comportement dynamique, voir interactif, c'est-a-dire que leur execution se fasse en fonction d'evenements intervenant lors de l'execution du programme. Ceci est possible par les tests conditionnels, avec notamment l'instruction simple <code>Si (expression) Alors {suite d'instructions}</code>. Ici <code>expression</code> designe quelque chose que l'on peut evaluer comme etant vrai ou faux. Par exemple, <code>x > 5</code> est vrai si <code>x</code> est egal a <code>10</code>, mais faux si <code>x</code> est egal a <code>3</code>.
 
Illustrons cette instruction par l'exemple suivant
<pre>
Si ''machin''(x => ''truc''5) Alors fait bidule
{
y = 0;
z = 1;
}
</pre>
Nous voyons que les variables <code>y</code> et <code>z</code> prendrons respectivement les valeurs <code>0</code> et <code>1</code> si l'expression <code>x > 5</code> est verifiee. Mais si cette expression n'est justement pas verifiee, que ce passe t-il ici ? Rien... nous voyons ici un premier exemple de non sequentialite du code, puisque les instructions d'affectations <code>y = 0</code> et <code>z = 1</code> seront sautees, et par consequent non executees.
Pour pouvoir executer une suite d'instructions si l'expression <code>x > 5</code> se revele fausse, nous pouvons utiliser le code suivant
<pre>
Si (x > 5) Alors
{
y = 0;
z = 1;
}
Si (x <= 5) Alors
{
y = 5;
z = 7;
}
</pre>
ou le symbole <code><=</code> designe l'operateur "inferieur ou egal". Cependant, un tel code n'est pas tres estetique et efficace : Si l'expression <code>x > 5</code> est fausse alors l'expression <code>x <= 5</code> sera forcement vraie, et reciproquement. Dans ce cas, pourquoi evaluee une expression que l'on sait d'avance vraie ou fausse ? Pour eviter cette maladresse, il existe un test conditionnel un peu plus elabore : le <code>Si ... Alors ... Sinon</code>.
 
== Second test conditionnel : Si ... Alors ... Sinon ==
 
Si vous avez compris la premiere partie de ce chapitre, alors cette partie-la vous semblera enfantine. Le plus simple est peut etre de directement illustrer de test conditionnel <code>Si ... Alors ... Sinon</code> en reprennant l'exemple precedent.
<pre>
Si (x > 5) Alors
{
y = 0;
z = 1;
}
Sinon
{
y = 5;
z = 7;
}
suite du programme...
</pre>
L'execution de ce code est simple : si l'expression <code>x > 5</code> est vraie, alors nous aurons <code>0</code> comme valeur pour <code>y</code> et <code>1</code> pour <code>z</code>, et l'execution du programme rependra a la ligne ou j'ai ecris "suite du programme".
Si au contraire <code>x > 5</code> est faux, alors le programme executera directement les instructions comprisent dans le bloc <code>{...}</code> apres <code>Sinon</code>. Ainsi, sans evaluation d'autres expressions, nous aurons <code>5</code> comme valeur pour <code>y</code> et <code>7</code> pour <code>z</code>.
 
== Operateurs booleens ==
 
Une operateur booleen (du nom du mathematicien [http://http://fr.wikipedia.org/wiki/George_Boole George Boole]) est une operation dont la valeur rendue est soit vraie, soit fausse. Par exemple, dans l'expression <code>x > 5</code>, l'operateur <code>></code> est un operateur booleen. Nous noterons les operateurs booleens de ce cours de la facon suivante :
* <code>></code>, designant l'operateur "superieur a",
* <code>>=</code>, designant l'operateur "superieur ou egal a",
* <code><</code>, designant l'operateur "inferieur a",
* <code><=</code>, designant l'operateur "inferieur ou egal a",
* <code>==</code>, designant l'operateur "egal a", (a ne pas confondre avec un seul <code>=</code> qui est l'instruction d'affectation !),
* <code>!=</code>, designant l'operateur "different de",
* <code>!</code>, designant l'operateur "negation". Par exemple <code>!(x>5)</code> est l'expression "<code>x</code> n'est pas superieur a <code>5</code>",
* <code>&&</code>, designant l'operateur "et". Par exemple <code>(x>5) && (y==2)</code> est l'expression "<code>x</code> est superieur a <code>5</code> ET <code>y</code> est egal a <code>2</code>",
* <code>||</code>, designant l'operateur "ou".
 
Il existe d'autre operateurs booleens, comme par exemple le XOR, c'est-a-dire le "ou" exclusif, mais il n'est utile dans un premier temps de n'apprendre que les operateur ci-dessus.
C'est un des deux moteurs de l'ordinateur.<br />
Après, chaque langage a sa propre structure de test.<br />
 
[[Catégorie:Introduction générale à la programmation]]