Exercice Fonction

Exercice 1


Considérons le code suivant, qui permet d'afficher une ligne d'un certain nombre de cases

let nombre = prompt("Combien de cases?");

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


Question 1: Mettre ce code dans une fonction JavaScript faireUneLigne() . En d'autres termes, faites la déclaration de la fonction faireUneLigne() en Javascript

function faireUneLigne()

{

let nombre = prompt("Combien de cases?");

let ligne1="+";

let ligne2="|";


while(nombre>0)

{

ligne1+="-+";

ligne2+="&nbsp; &nbsp;|";

nombre--

}


let bodyHtml= document.querySelector("body");

bodyHtml.innerHTML= "<p>" + ligne1 + "</p> <p>"+ligne2 + "</p> <p>"+ ligne1 + "</p> ";


}


Question 5: utiliser faireUneLigne afin de faire trois lignes


Solution 1

faireUneLigne( nombre)



Question 2: quelle instruction Javascript vous permet d'utiliser la fonction (appel de la fonction) que vous avez défini à la question 1?

faireUneLigne();


Question 3: Si ce n'est pas déjà le cas, modifier la déclaration de la fonction (code de la question 1) pour avoir en attribut le nombre de cases de la ligne (au lieu d'avoir le prompt dans la déclaration)

function faireUneLigne( nombre)

{

let ligne1="+";

let ligne2="|";


while(nombre>0)

{

ligne1+="-+";

ligne2+="&nbsp; &nbsp;|";

nombre--

}


let bodyHtml= document.querySelector("body");

bodyHtml.innerHTML= "<p>" + ligne1 + "</p> <p>"+ligne2 + "</p> <p>"+ ligne1 + "</p> ";


}


Question 4: Si ce n'est pas déjà le cas, modifier la déclaration de la fonction (code de la question 3) pour renvoyer la valeur de la ligne à afficher (au lieu de modifier bodyHtml.innerHTML)

function faireUneLigne( nombre)

{

let ligne1="+";

let ligne2="|";


while(nombre>0)

{

ligne1+="-+";

ligne2+="&nbsp; &nbsp;|";

nombre--

}


return ("<p>" + ligne1 + "</p> <p>"+ ligne2 + "</p> <p>"+ ligne1 + "</p> ");


}


Question 5: utiliser faireUneLigne (appel) afin de faire trois lignes de la longeur demandé par l'utilisateur via un prompt.

ex: l'utilisateur entre 4 dans un prompt, et 3 lignes de 4 cases sont renvoyées:

+-+-+-+-+

| | | | |

+-+-+-+-+

+-+-+-+-+

| | | | |

+-+-+-+-+

+-+-+-+-+

| | | | |

+-+-+-+-+



L'utilisateur entre 2 dans un prompt, et 3 lignes de 2 cases sont renvoyées:

+-+-+

| | |

+-+-+

+-+-+

| | |

+-+-+

+-+-+

| | |

+-+-+


cliquer sur la ligne ci-dessous pour la correction:


Solution 1: concatener la même ligne trois fois (récupérée dans une variable via le return)

let uneLigne= faireUneLigne( prompt("Combien de cases?"));

ligneFinale= uneLigne+uneLigne+uneLigne;



Solution 2: concatener trois fois lignes de même taille (récupérée dans une variable via le return)

let nombreCases= prompt("Combien de cases?"));

ligneFinale= faireUneLigne(nombreCases)+ faireUneLigne(nombreCases)+ faireUneLigne(nombreCases);



Instructions pour afficher le code dans la page HTML (optionnel):

let bodyHtml= document.querySelector("body");

bodyHtml.innerHTML= ligneFinale;


Question bonus: mettre votre code dans une boucle afin d'effectuer autant de lignes que demandées par l'utilisateur via un prompt (au lieu de trois lignes systématiquement)



Solution: concatener la même ligne autant de fois que demandées

let uneLigne= faireUneLigne( prompt("Combien de cases?"));

let nombreDeLignes=prompt("Combien de lignes?"))

ligneFinale= "";


while (nombreDeLignes>0)

{

ligneFinale+=uneLigne;

nombreDeLignes--;

}


Instructions pour afficher le code dans la page HTML (optionnel):

let bodyHtml= document.querySelector("body");

bodyHtml.innerHTML= ligneFinale;


Exercice 2


Considérons le programme suivant:


function multiplier(nombre1, nombre2)

{

let resultat=nombre1*nombre2;

return resultat;

}



Question 1: Que fait ce code de manière générale?

Il s'agit de la déclaration de la fonction multiplier qui multiplier deux nombres ensemble (nombre1 et nombre2)

Question 2: Cette fonction a-t-elle des attributs? Si oui, lesquels?

Oui: nombre1 et nombre 2

Question 3: Cette fonction a-t-elle une valeur de retour? Si oui, laquelle?

Oui: resultat qui est la multiplication de nombre1 et nombre2

Question 4: Que fait ce code :


function multiplier(nombre1, nombre2)

{

let resultat=nombre1*nombre2;

return resultat;

}


nombre1=3;

nombre2=4;


correction en cliquant sur cette ligne:

Elle ne fait qu'expliquer (déclarer) la fonction multiplier, et affecter la valeur 3 à nombre1 et 4 à nombre2.

La fonction multiplier n'est pas appelée

Question 5: Que fait ce code :

nombre1=3;

nombre2=4;


function multiplier(nombre1, nombre2)

{

let resultat=nombre1*nombre2;

return resultat;

}




correction en cliquant sur cette ligne:

Elle ne fait qu'expliquer (déclarer) la fonction multiplier, et affecter la valeur 3 à nombre1 et 4 à nombre2.

La fonction multiplier() n'est pas appelée.

Question 6: Que fait ce code :

nombre1=3;

nombre2=4;


function multiplier(nombre1, nombre2)

{

let resultat=nombre1*nombre2;

return resultat;

}


multiplier(nombre1, nombre2)



correction en cliquant sur cette ligne:

On explique (déclarer) la fonction multiplier, affecte la valeur 3 à nombre1 et 4 à nombre2, puis on les utilise dans la fonction multiplier().

La fonction multiplier() est appelée.

Question 6: Quelle est la valeur de nombreFinal à la fin?

nombre1=3;

nombre2=4;


function multiplier(nombre1, nombre2)

{

let resultat=nombre1*nombre2;

return resultat;

}


nombreFinal = multiplier(nombre1, nombre2)



correction en cliquant sur cette ligne:

nombreFinal prend la valeur renvoyée par multiplier(nombre1, nombre2) c'est à dire 12

Question 6: Que fait la ligne en gras dans ce code:

nombre1=3;

nombre2=4;


function multiplier(nombre1, nombre2)

{

let resultat=nombre1*nombre2;

return resultat;

}


alert( multiplier( prompt ("Nombre? " ), nombre1 );



correction en cliquant sur cette ligne:

On affiche (alert) la multiplication (multiplier) du nombre entré par l'utilisateur (prompt) et du nombre 3 (nombre1).

Exercice 3


Considérons le programme suivant:


function mesHommages()

{

alert("Mes hommages");

}



Question 1: Que fait ce code de manière générale?

Il s'agit de la déclaration de la fonction mesHommages qui affiche "Mes hommages" dans un alert

Question 2: Cette fonction a-t-elle des attributs? Si oui, lesquels?

non, il n'y a rien entre parenthèses

Question 3: Cette fonction a-t-elle une valeur de retour? Si oui, laquelle?

Non, il n'y a pas de return

Question 4: Est-ce que ce programme affiche quelque chose? Si oui, à quel moment?

Non, car il s'agit d'une déclaraction de fonction. On ne l'appelle jamais, donc on ne l'utilise jamais

Question 5: Modifier le programme pour afficher ou afficher une fois de plus "Mes hommages" en utilisant la fonction

function mesHommages()

{

alert("Mes hommages");

}


mesHommages();

Exercice 4


Considérons le programme suivant:


function nombreAleatoire( maximum)

{

resultat = Math.random() * maximum;

alert(resultat);

}


nombreAleatoire(1),


Question 1: Que fait ce code de manière générale?

Il s'agit deIl s'agit de la déclaration de la fonction qui affiche un nombre aléatoire entre 0 et maximum. Puis on affiche un nombre aléatoire entre 0 et 1 en faisant un appel de la fonction.

Question 2: Cette fonction a-t-elle des attributs? Si oui, lesquels?

Oui: maximum

Question 3: Cette fonction a-t-elle une valeur de retour? Si oui, laquelle?

Non, il n'y a pas de return

Question 4: Est-ce que ce programme affiche quelque chose? Si oui, à quel moment?

Oui, un nombre aléatoire en 0 et 1 quand on appelle la fonction (dernière ligne)

Question 5: Modifier le programme pour afficher un nombre aléatoire entre 0 et 100 en utilisant la fonction

function nombreAleatoire( maximum)

{

resultat = Math.random() * maximum;

alert(resultat);

}


nombreAleatoire(100),


Question 5: Modifier le programme pour que l'effet suivant existe:

si j'écris:

let nombreEntre0et5= nombreAleatoire(5);
alors nombreEntre0et5 contient effectivement un nombre aléatoire entre 0 et 5

function nombreAleatoire( maximum)

{

resultat = Math.random() * maximum;

return resultat;

}


let nombreEntre0et5= nombreAleatoire(5);