Considérons le pseudo-code suivant:
Si un animal à des poils, alors c'est un mammifère.
Sinon, s'il a des écailles ou des pics :
s'il a des mamelles, c'est un mammifère
sinon, si c'est monotrème, c'est un mammifère
Sinon ce n'est pas un mammifère
Deux réponses autorisées:
1) un Si-Sinon Si -Sinon et un Si-Sinon (If-Else if- Else et If-Else)
2) un Si-Sinon Si et un Si-Sinon (If-Else if et If-Else)
Oui. On s'arrête à la première instruction, car il a des poils.
Non. On ne remplit pas la condition "poil", ni la condition "écailles ou pic", on est donc dans le "sinon"
Non. On ne remplit pas la condition "poil",on remplit la condition "écailles ou pic". Dans ce bloc, on ne remplit pas la condition "mamelles", ni la condition "monotrème". On n'est donc jamais un mammifère (selon la programmation finale, on sera pas un mammifère, ou on sera indéfini)
Programme 1:
mammifere=false;
if (poils==true)
{
mammifere=true;
}
else if (ecailles==true || pics==true)
{
if (mamelles==true)
{mammifere=true;}
else if (monotreme==true)
{mammifere=true;}
}
else {
mammifere=false;
}
Programme 2:
if (poils==true)
{
mammifere=true;
}
else if (ecailles==true || pics==true)
{
if (mamelles==true)
{mammifere=true;}
else
{mammifere=true;}
}
else if (monotreme==true){
mammifere=false;
}
Programme 3:
if (poils)
{
mammifere=true;
}
else if (ecailles || pics)
{
if (mamelles)
{mammifere=true;}
else if (monotreme)
{mammifere=true;}
}
else {
mammifere=false;
}
Pour la correction: cliquer sur la ligne juste après:
Programme 1 fonctionne.
Programme 2 non: on a interverti le else et le else-if
Programme 3 fonctionne.
Considérons le programme suivant:
if (annee%4==0)
{
alert("Année bissextile");
}
else if (annee%100==0)
{
alert("Année non bissextile");
}
else {
alert("Année non bissextile");
}
annee%4==0 est vrai, donc on exécute alert("Année bissextile"); et on ne va PAS verifier le else if ni le else
annee%4==0 est vrai, donc on exécute alert("Année bissextile"); et on ne va PAS verifier le else if ni le else
annee%4==0 est faux, donc on verifie le else if annee%100==0 est faux,donc on exécute le else alert("Année non bissextile");
Voici des exemple de résultat:
année 400 -> bissextile
année 100 -> NON bissextile
année 4 -> bissextile
année 8 -> bissextile
année 540 -> bissextile
année 541 -> NON bissextile
année 900 -> NON bissextile
année 2000 -> bissextile
année 2002 -> NON bissextile
année 2004 -> bissextile
Pour la correction: cliquer sur la ligne juste après:
if (annee%400==0)
{
alert("Année bissextile");
}
else if (annee%100==0)
{
alert("Année non bissextile");
}
if (annee%4==0)
{
alert("Année bissextile");
}
else {
alert("Année non bissextile");
}
Considérons le programme suivant:
if (annee%4==0)
{
alert("Année bissextile");
}
if (annee%100==0)
{
alert("Année non bissextile");
}
else {
alert("Année bissextile");
}
annee%4==0 est vrai, donc on exécute alert("Année bissextile");
annee%100==0 est faux, donc on va dans le else et on exécute alert("Année bissextile");
annee%4==0 est vrai, donc on exécute alert("Année bissextile");
annee%100==0 est vrai, donc on exécute alert("Année non bissextile");
annee%4==0 est faux
annee%100==0 est faux,donc on exécute le else alert("Année bissextile");
if(mot.length%4==0)
{
alert("Tout le monde veut devenir un Quatre");
}
else {
alert("Un, deux, trois...");
}
Exemples:
un mot à 4 lettres -> "Tout le monde veut devenir un Quatre"
un mot à 12 lettres -> "Tout le monde veut devenir un Quatre"
un mot à 9 lettres -> "Trois"
un mot à 18 lettres -> "Deux"
un mot à 6 lettres -> "Deux"
un mot à 10 lettres -> "Deux"
un mot à 7 lettres -> "Un"
un mot à 5 lettres -> "Un"
Pour la correction: cliquer sur la ligne juste après:
if(mot.length%4==0) //si multiple de 4
{
alert("Tout le monde veut devenir un Quatre");
}
else if (mot.length%2==0) //sinon si multiple de 2
{
alert("Deux");
}
else if (mot.length%3==0) //sinon si multiple de 3
{
alert("Trois");
}
else //dans tous les autres cas
{
alert("Un");
}
Exemples:
un mot à 4 lettres -> "Tout le monde veut devenir un Quatre"
un mot à 12 lettres -> "Tout le monde veut devenir un Quatre"
un mot à 9 lettres -> "Trois"
un mot à 18 lettres -> "Deux" "Trois"
un mot à 6 lettres -> "Deux" "Trois"
un mot à 10 lettres -> "Deux"
un mot à 7 lettres -> "Un"
un mot à 5 lettres -> "Un"
Pour une des corrections possibles: cliquer sur la ligne juste après:
if(mot.length%4==0) //si multiple de 4
{
alert("Tout le monde veut devenir un Quatre");
}
else { //sinon
if (mot.length%2==0) //si multiple de 2
{
alert("Deux");
}
if (mot.length%3==0) //si multiple de 3
{
alert("Trois");
}else if (mot.length%2!=0) //sinon (=si pas multiple de 3) si pas multiple de 2 non plus
{
alert("Un");
}
}