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

Une page de Wikiversité, la communauté pédagogique libre.
Contenu supprimé Contenu ajouté
Kaepora (discussion | contributions)
Aucun résumé des modifications
Kaepora (discussion | contributions)
mAucun résumé des modifications
Ligne 7 : Ligne 7 :
|suivant=[[Introduction générale à la programmation/Itérations|Itérations]]
|suivant=[[Introduction générale à la programmation/Itérations|Itérations]]
}}
}}

{{pas fini}}
Des fautes sont presentes. Je les corrigerai tres prochainement.


== Premier test conditionnel : Si ... Alors ==
== 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>.
On souhaite très souvent que les programmes aient un comportement dynamique, voir interactif, c'est-à-dire que leur exécution se fasse en fonction d'évènements intervenant lors de l'exécution du programme. Ceci est possible par les tests conditionnels, notamment avec l'instruction simple <code>Si (expression) Alors {suite d'instructions}</code>. Ici <code>expression</code> désigne quelque chose que l'on peut évaluer comme étant vrai ou faux. Par exemple, <code>x > 5</code> est vrai si <code>x</code> est égal à <code>10</code>, mais faux si <code>x</code> est égal à <code>3</code>.


Illustrons cette instruction par l'exemple suivant
Illustrons cette instruction par l'exemple suivant
Ligne 23 : Ligne 20 :
}
}
</pre>
</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.
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 vérifiée. Mais si cette expression n'est justement pas vérifiée, que ce passe t-il ici ? Rien... nous voyons ici un premier exemple de non-séquentialité du code, puisque les instructions d'affectations <code>y = 0</code> et <code>z = 1</code> seront sautées, et par conséquent non exécutées.
Pour pouvoir executer une suite d'instructions si l'expression <code>x > 5</code> se revele fausse, nous pouvons utiliser le code suivant
Pour pouvoir exécuter une suite d'instructions si l'expression <code>x > 5</code> se révèle fausse, nous pouvons utiliser le code suivant
<pre>
<pre>
Si (x > 5) Alors
Si (x > 5) Alors
Ligne 37 : Ligne 34 :
}
}
</pre>
</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>.
le symbole <code><=</code> désigne l'opérateur "inférieur ou égal". Cependant, un tel code n'est pas très esthétique et efficace : Si l'expression <code>x > 5</code> est fausse alors l'expression <code>x <= 5</code> sera forcement vraie, et réciproquement. Dans ce cas, pourquoi évaluer une expression que l'on sait d'avance vraie ou fausse ? Pour éviter cette maladresse, il existe un test conditionnel un peu plus élaboré : le <code>Si ... Alors ... Sinon</code>.


== Second test conditionnel : Si ... Alors ... Sinon ==
== 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.
Si vous avez compris la première partie de ce chapitre, alors cette partie-la vous semblera enfantine. Le plus simple est peut être de directement illustrer le test conditionnel <code>Si ... Alors ... Sinon</code> en reprenant l'exemple précèdent.
<pre>
<pre>
Si (x > 5) Alors
Si (x > 5) Alors
Ligne 48 : Ligne 45 :
z = 1;
z = 1;
}
}
Sinon
Sinon
{
{
y = 5;
y = 5;
Ligne 55 : Ligne 52 :
suite du programme...
suite du programme...
</pre>
</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".
L'exécution 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'exécution du programme rependra à la ligne j'ai écris "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>.
Si au contraire <code>x > 5</code> est faux, alors le programme exécutera directement les instructions comprises dans le bloc <code>{...}</code> après <code>Sinon</code>. Ainsi, sans évaluation d'autres expressions, nous aurons <code>5</code> comme valeur pour <code>y</code> et <code>7</code> pour <code>z</code>.


== Operateurs booleens ==
== Opérateurs booléens ==


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 :
Une opérateur booléen (du nom du mathématicien [http://http://fr.wikipedia.org/wiki/George_Boole George Boole]) est une opération dont la valeur rendue est soit vraie, soit fausse. Par exemple, dans l'expression <code>x > 5</code>, l'opérateur <code>></code> est un opérateur booléen. Nous noterons les opérateurs booléens de ce cours de la façon suivante :
* <code>></code>, designant l'operateur "superieur a",
* <code>></code>, désignant l'opérateur "supérieur à",
* <code>>=</code>, designant l'operateur "superieur ou egal a",
* <code>>=</code>, désignant l'opérateur "supérieur ou égal à",
* <code><</code>, designant l'operateur "inferieur a",
* <code><</code>, désignant l'opérateur "inférieur à",
* <code><=</code>, designant l'operateur "inferieur ou egal a",
* <code><=</code>, désignant l'opérateur "inférieur ou égal à",
* <code>==</code>, designant l'operateur "egal a", (a ne pas confondre avec un seul <code>=</code> qui est l'instruction d'affectation !),
* <code>==</code>, désignant l'opérateur "égal à", (à ne pas confondre avec un seul <code>=</code> qui est l'instruction d'affectation !),
* <code>!=</code>, designant l'operateur "different de",
* <code>!=</code>, désignant l'opérateur "diffèrent 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>, désignant l'opérateur "négation". Par exemple <code>!(x>5)</code> est l'expression "<code>x</code> n'est pas supérieur à <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>, désignant l'opérateur "et". Par exemple <code>(x>5) && (y==2)</code> est l'expression "<code>x</code> est supérieur à <code>5</code> ET <code>y</code> est égal à <code>2</code>",
* <code>||</code>, designant l'operateur "ou".
* <code>||</code>, désignant l'opérateur "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.
Il existe d'autre opérateurs booléens, 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 opérateur ci-dessus.


[[Catégorie:Introduction générale à la programmation]]
[[Catégorie:Introduction générale à la programmation]]

Version du 19 mai 2007 à 11:05

Début de la boite de navigation du chapitre
Conditions
Icône de la faculté
Chapitre no {{{numéro}}}
Leçon : Introduction générale à la programmation
Chap. préc. :Variables et Affectation
Chap. suiv. :Itérations
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Introduction générale à la programmation : Conditions
Introduction générale à la programmation/Tests conditionnels
 », n'a pu être restituée correctement ci-dessus.

Premier test conditionnel : Si ... Alors

On souhaite très souvent que les programmes aient un comportement dynamique, voir interactif, c'est-à-dire que leur exécution se fasse en fonction d'évènements intervenant lors de l'exécution du programme. Ceci est possible par les tests conditionnels, notamment avec l'instruction simple Si (expression) Alors {suite d'instructions}. Ici expression désigne quelque chose que l'on peut évaluer comme étant vrai ou faux. Par exemple, x > 5 est vrai si x est égal à 10, mais faux si x est égal à 3.

Illustrons cette instruction par l'exemple suivant

Si (x > 5) Alors
  {
    y = 0;
    z = 1;
  }

Nous voyons que les variables y et z prendrons respectivement les valeurs 0 et 1 si l'expression x > 5 est vérifiée. Mais si cette expression n'est justement pas vérifiée, que ce passe t-il ici ? Rien... nous voyons ici un premier exemple de non-séquentialité du code, puisque les instructions d'affectations y = 0 et z = 1 seront sautées, et par conséquent non exécutées. Pour pouvoir exécuter une suite d'instructions si l'expression x > 5 se révèle fausse, nous pouvons utiliser le code suivant

Si (x > 5) Alors
  {
    y = 0;
    z = 1;
  }
Si (x <= 5) Alors
  {
    y = 5;
    z = 7;
  }

où le symbole <= désigne l'opérateur "inférieur ou égal". Cependant, un tel code n'est pas très esthétique et efficace : Si l'expression x > 5 est fausse alors l'expression x <= 5 sera forcement vraie, et réciproquement. Dans ce cas, pourquoi évaluer une expression que l'on sait d'avance vraie ou fausse ? Pour éviter cette maladresse, il existe un test conditionnel un peu plus élaboré : le Si ... Alors ... Sinon.

Second test conditionnel : Si ... Alors ... Sinon

Si vous avez compris la première partie de ce chapitre, alors cette partie-la vous semblera enfantine. Le plus simple est peut être de directement illustrer le test conditionnel Si ... Alors ... Sinon en reprenant l'exemple précèdent.

Si (x > 5) Alors
  {
    y = 0;
    z = 1;
  }
Sinon
  {
    y = 5;
    z = 7;
  }
suite du programme...

L'exécution de ce code est simple : si l'expression x > 5 est vraie, alors nous aurons 0 comme valeur pour y et 1 pour z, et l'exécution du programme rependra à la ligne où j'ai écris "suite du programme". Si au contraire x > 5 est faux, alors le programme exécutera directement les instructions comprises dans le bloc {...} après Sinon. Ainsi, sans évaluation d'autres expressions, nous aurons 5 comme valeur pour y et 7 pour z.

Opérateurs booléens

Une opérateur booléen (du nom du mathématicien George Boole) est une opération dont la valeur rendue est soit vraie, soit fausse. Par exemple, dans l'expression x > 5, l'opérateur > est un opérateur booléen. Nous noterons les opérateurs booléens de ce cours de la façon suivante :

  • >, désignant l'opérateur "supérieur à",
  • >=, désignant l'opérateur "supérieur ou égal à",
  • <, désignant l'opérateur "inférieur à",
  • <=, désignant l'opérateur "inférieur ou égal à",
  • ==, désignant l'opérateur "égal à", (à ne pas confondre avec un seul = qui est l'instruction d'affectation !),
  • !=, désignant l'opérateur "diffèrent de",
  • !, désignant l'opérateur "négation". Par exemple !(x>5) est l'expression "x n'est pas supérieur à 5",
  • &&, désignant l'opérateur "et". Par exemple (x>5) && (y==2) est l'expression "x est supérieur à 5 ET y est égal à 2",
  • ||, désignant l'opérateur "ou".

Il existe d'autre opérateurs booléens, 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 opérateur ci-dessus.