Exercice Conditions

Exercice 1


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


Question 1: Quelles sont les structures conditionnelles que l'on retrouve dans ce pseudo code?

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)

Question 2: Si on a un animal à poil et sans mamelle, est-ce un mammifère selon cet algorithme? Pourquoi?

Oui. On s'arrête à la première instruction, car il a des poils.

Question 3: Si on a un animal à plumes et avec mamelles, est-ce un mammifère selon cet algorithme?

Non. On ne remplit pas la condition "poil", ni la condition "écailles ou pic", on est donc dans le "sinon"

Question 4: Si on a un animal à écailles, sans mamelles et qui n'est pas un monotrème, est-ce un mammifère selon cet algorithme?

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)

Question 5: Le.s.quel.s parmi ces programmes correspondent à l'implémentation du pseudo-code de l'exercice et pourquoi ? :

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.

Exercice 2


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");

}


Question 1: Que fait ce code si une annee est égal à 8 et pourquoi?

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

Question 2: Que fait ce code si une annee est égal à 100 et pourquoi?

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

Question 3: Que fait ce code si une annee est égal à 101 et pourquoi?

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");

Question 4: Modifier ce code pour que les années multiples de 400 soient bissextiles, les années multiples de 100 (mais pas de 400) ne soient pas bissextiles et les années multiple de 4 (mais pas de 100) soit bissextiles, et que toutes les autres ne le soient pas.

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");

}


Exercice 3


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");

}


Question 1: Que fait ce code si une annee est égal à 8 et pourquoi?

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");

Question 2: Que fait ce code si une annee est égal à 100 et pourquoi?

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");

Question 3: Que fait ce code si une annee est égal à 101 et pourquoi?

annee%4==0 est faux

annee%100==0 est faux,donc on exécute le else alert("Année bissextile");

Exercice 4


Question 1: écriver un programme: qui vérifie qu'un mot a un nombre de lettre multiple de 4. Si c'est le cas, afficher "Tout le monde veut devenir un Quatre", sinon, afficher "Un, deux, trois..." en JavaScript


if(mot.length%4==0)

{

alert("Tout le monde veut devenir un Quatre");

}

else {

alert("Un, deux, trois...");

}

Question 2: Completer le programme précédent. Vérifier qu'un mot a un nombre de lettre multiple de 4. Si c'est le cas, afficher "Tout le monde veut devenir un Quatre", sinon s'il y a un nombre de lettres multiple de 2, afficher "Deux", sinon s'il y a un nombre de lettre multiple de 3 afficher "Trois", et sinon afficher "Un" en JavaScript


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");

}


Question 3: Completer le programme de la question 1. Vérifier qu'un mot a un nombre de lettre multiple de 4. Si c'est le cas, afficher "Tout le monde veut devenir un Quatre", sinon : s'il y a un nombre de lettres multiple de 2, afficher "Deux", s'il y a un nombre de lettre multiple de 3 (même si c'est multiple de 2) afficher "Trois", et si c'est ni un multiple de 2 ni de 3, afficher "Un" en JavaScript


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");

}

}