Considérons le pseudo-code suivant:
Les critères d'un mammifère sont: [présence de poils, présence de pics d'écailles ET des mamelles, monotrème ]
Tant qu'il y a encore des critères:
Si le critère est respecté, alors d'animal est un mammifère
1) Une boucle (tant qu'il y a des critères)
2) Une condition Si-alors
Ou, car le premier critère est respectée: il a des poils.
Non:
Présence de poils n'est pas vrai
présence de pics d'écailles ET des mamelles n'est pas vrai
monotrème n'est pas vrai.
Non.
Présence de poils n'est pas vrai
présence de pics d'écailles ET des mamelles n'est pas vrai
monotrème n'est pas vrai.
Programme 1:
mammifere=false;
criteres=
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:
//Instanciation de compteur + efface le texte de la page
compteur=Number(prompt("Combien?"));
let bodyHtmlEfface= document.querySelector("body");
bodyHtmlEfface.innerHTML=""; //efface le cord de la page web
if (isNaN(compteur))
{
let bodyHtml= document.querySelector("body");
bodyHtml.innerHTML=bodyHtml.innerHTML+ "<p> Compteur n'est pas un nombre (NaN). Entrer un nombre s'il vous plait </p>";
}
else
{
while (compteur >0)
{
let bodyHtml= document.querySelector("body");
bodyHtml.innerHTML=bodyHtml.innerHTML+ "<p> Bonjour "+ compteur + "</p>";
compteur--;
}
}
Il efface le texte d'une page web (tout ce qui est dans le body) et il inscrit "Compteur n'est pas un nombre (NaN). Entrer un nombre s'il vous plait " si l'utilisateur n'a pas entré un nombre. Si l'utilisateur à rentrer un nombre, il affiche à chaque ligne "Bonjour" suivi d'un nombre qui vaut moins un à chaque ligne
si compteur est supérieur à 0
Il affiche une page web qui dit
Bonjour 1
(code html dans les balises body: <p> Bonjour 1 </p> )
Il affiche une page web qui dit
Bonjour 2
Bonjour 1
(code html dans les balises body: <p> Bonjour 2 </p> <p> Bonjour 1 </p> )
Il affiche une page web qui dit
Compteur n'est pas un nombre (NaN). Entrer un nombre s'il vous plait
(code html dans les balises body: <p> Compteur n'est pas un nombre (NaN). Entrer un nombre s'il vous plait </p>" )
(demande "Combien" et modifier la page)
Il faut rajouter une boucle "autour" :
while (true)
{
compteur=Number(prompt("Combien?"));
let bodyHtmlEfface= document.querySelector("body");
bodyHtmlEfface.innerHTML=""; //efface le cord de la page web
if (isNaN(compteur))
{
let bodyHtml= document.querySelector("body");
bodyHtml.innerHTML=bodyHtml.innerHTML+ "<p> Compteur n'est pas un nombre (NaN). Entrer un nombre s'il vous plait </p>";
}
else
{
while (compteur >0)
{
let bodyHtml= document.querySelector("body");
bodyHtml.innerHTML=bodyHtml.innerHTML+ "<p> Bonjour "+ compteur + "</p>";
compteur--;
}
}
}
(demande "Combien" et modifier la page)
Il faut rajouter une boucle "autour" :
function codeExercice6()
{
compteur=Number(prompt("Combien?"));
let bodyHtmlEfface= document.querySelector("body");
bodyHtmlEfface.innerHTML=""; //efface le cord de la page web
if (isNaN(compteur))
{
let bodyHtml= document.querySelector("body");
bodyHtml.innerHTML=bodyHtml.innerHTML+ "<p> Compteur n'est pas un nombre (NaN). Entrer un nombre s'il vous plait </p>";
}
else
{
while (compteur >0)
{
let bodyHtml= document.querySelector("body");
bodyHtml.innerHTML=bodyHtml.innerHTML+ "<p> Bonjour "+ compteur + "</p>";
compteur--;
}
}
}
while (true)
{
codeExercice6();
}
L'idée de l'exercice est de faire un tableau avec les caractères + - |
Par exemple:
1 fois : -+
2 fois : -+-+
3 fois : -+-+-+
10 fois : -+-+-+-+-+-+-+
nombre = nombre de fois
Tant que nombre est supérieur à 0
concaténer une fois de plus -+
soustraire 1 à nombre
nombre = nombre de fois
Faire autant de fois que nombre:
concaténer une fois de plus -+
On peut également utiliser une variable supplémentaire pour stocker la chaine de caractère qui sert à concaténer les -+
nombre = nombre de fois
ligne = une chaine de caractères
Tant que nombre est supérieur à 0
ajouter -+ à la suite de ligne
soustraire 1 à nombre
nombre = nombre de fois
ligne = une chaine de caractères
Faire autant de fois que nombre:
ajouter -+ à la suite de ligne
L'utilisateur peut entrer un chiffre ou vous pouvez simplement modifier la variable dans le code source.
let nombre = prompt("Taille de la ligne");
let ligne="";
while(nombre>0)
{
ligne+="-+";
nombre--
}
alert(ligne);
let nombre = 8;
let ligne="";
while(nombre>0)
{
ligne+="-+";
nombre--
}
let bodyHtml= document.querySelector("body");
bodyHtml.innerHTML=ligne;
Par exemple:
1 fois : +-+
2 fois : +-+-+
3 fois : +-+-+-+
10 fois : +-+-+-+-+-+-+-+
nombre = nombre de fois
commencer par un +
Tant que nombre est supérieur à 0
concaténer une fois de plus -+
soustraire 1 à nombre
nombre = nombre de fois
commencer par un +
Faire autant de fois que nombre:
concaténer une fois de plus -+
On peut également utiliser une variable supplémentaire pour stocker la chaine de caractère qui sert à concaténer les -+
nombre = nombre de fois
ligne = une chaine de caractères égale au caractère +
Tant que nombre est supérieur à 0
ajouter -+ à la suite de ligne
soustraire 1 à nombre
nombre = nombre de fois
ligne = une chaine de caractères égale au caractère +
Faire autant de fois que nombre:
ajouter -+ à la suite de ligne
L'utilisateur peut entrer un chiffre ou vous pouvez simplement modifier la variable dans le code source.
let nombre = prompt("Taille de la ligne");
let ligne="+";
while(nombre>0)
{
ligne+="-+";
nombre--
}
alert(ligne);
let nombre = 8;
let ligne="+";
while(nombre>0)
{
ligne+="-+";
nombre--
}
let bodyHtml= document.querySelector("body");
bodyHtml.innerHTML=ligne;
Par exemple:
1 fois : | |
2 fois : | | |
3 fois : | | | |
10 fois : | | | | | | | | |
Il suffit de replace le caractère - par espace, et + par |
Par exemple:
1 fois :
+-+
| |
+-+
2 fois :
+-+-+
| | |
+-+-+
3 fois :
+-+-+-+
| | | |
+-+-+-+
10 fois :
+-+-+-+-+-+-+-+
| | | | | | | | |
+-+-+-+-+-+-+-+
appuyer sur la ligne pour afficher la solution:
let nombre = prompt("Taille de la ligne");
let ligne="+";
let compteurBoucle=nombre;
while(compteurBoucle>0)
{
ligne+="-+";
compteurBoucle--
}
ligne+="\n|"; //retour à la ligne et première barre de la ligne suivante
compteurBoucle=nombre; //remettre le compteure à zéro
while(compteurBoucle>0)
{
ligne+=" |";
compteurBoucle--
}
ligne+="\n+"; //retour à la ligne et première croix de la ligne suivante
compteurBoucle=nombre; //remettre le compteure à zéro
while(compteurBoucle>0)
{
ligne+="-+";
compteurBoucle--
}
alert(ligne);
let nombre = 8;
let ligne1="+";
let ligne2="|";
while(nombre>0)
{
ligne1+="-+";
ligne2+=" |";
nombre--
}
let bodyHtml= document.querySelector("body");
bodyHtml.innerHTML= "<p>" + ligne1 + "</p> <p>"+ligne2 + "</p> <p>"+ ligne1 + "</p> ";
let nombre = 8;
let ligne1="+";
let ligne2="|";
while(nombre>0)
{
ligne1+="-+";
ligne2+=" |";
nombre--
}
let bodyHtml= document.querySelector("body");
bodyHtml.innerHTML= "<p>" + ligne1 + "</p> <p>"+ligne2 + "</p> <p>"+ ligne1 + "</p> ";