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