Exercice JavaScript
Exercice JavaScript
Exercice JavaScript
Écrivez un script qui affiche le message "Hello World !" sur la page.
Nombre aléatoire
Écrivez un script qui va générer un nombre aléatoire. Vous devrez trouver ce nombre. Pour chaque
essai, le script vous dira si le nombre à trouver est plus grand ou plus petit. Lorsque le nombre est
trouvé, le script vous dira en combien de coups.
Calculateur de salaire
Calculer le salaire d'une personne sur base de son salaire brut en décomptant les frais suivants:
Il est possible de recevoir des réductions sur les impôts sur le revenu sous certaines conditions :
SOLUTION
Calculateur de salaire
Énoncé
Calculer le salaire d'une personne sur base de son salaire brut en décomptant les frais suivants:
Il est possible de recevoir des réductions sur les impôts sur le revenu sous certaines conditions :
function ElementWriter() {
this.Tag = function (idTag, value) {
var tag = document.getElementById(idTag);
if (tag !== null) {
tag.innerHTML = value;
}
};
this.TagCurrency = function (idTag, value) {
this.Tag(idTag, value.formatMoney(2, ',', ' ') + '$');
};
}
function salaryCalculator() {
var incomeTaxRate = 0.18;
var employmentInsuranceRate = 0.07;
var canadaPensionPlanRate = 0.05;
var additionBonusValue = 100;
var additionAllowanceValue = 150;
this.grossSalary;
this.additionBonus;
this.additionAllowance;
this.gender;
this.dependents;
this.getAdditions = function () {
var additions = 0;
if (this.additionBonus === true) {
additions += additionBonusValue;
}
if (this.additionAllowance === true) {
additions += additionAllowanceValue;
}
return additions;
};
this.getCanadaPensionPlan = function () {
return this.grossSalary * canadaPensionPlanRate;
};
this.getEmploymentInsurance = function () {
return this.grossSalary * employmentInsuranceRate;
};
this.getFinalSalary = function () {
return this.grossSalary - this.getCanadaPensionPlan() - this.getEmploymentInsurance() -
this.getIncomeTax() + this.getAdditions();
};
this.getIncomeTax = function () {
var relevantIncomeTaxRate = incomeTaxRate;
if (this.gender === 'F') {
relevantIncomeTaxRate -= 0.02;
}
if (this.dependents === 3) {
relevantIncomeTaxRate -= 0.01;
} else if (this.dependents > 3) {
relevantIncomeTaxRate -= 0.02;
}
return this.grossSalary * relevantIncomeTaxRate;
};
}
function computeSalary() {
var reader = new ElementReader();
var writer = new ElementWriter();
var salCalc = new salaryCalculator();
salCalc.grossSalary = reader.InputInt('grossSalary');
salCalc.additionBonus = reader.InputCheckbox('additionBonus');
salCalc.additionAllowance = reader.InputCheckbox('additionAllowance');
salCalc.gender = reader.Select('gender');
salCalc.dependents = reader.InputInt('dependents');
writer.TagCurrency('incomeTaxResult', salCalc.getIncomeTax());
writer.TagCurrency('employmentInsuranceResult', salCalc.getEmploymentInsurance());
writer.TagCurrency('canadaPensionPlanResult', salCalc.getCanadaPensionPlan());
writer.TagCurrency('additionsResult', salCalc.getAdditions());
writer.TagCurrency('finalSalaryResult', salCalc.getFinalSalary());
}
function resetAll() {
var writer = new ElementWriter();
var results = ['incomeTaxResult', 'employmentInsuranceResult', 'canadaPensionPlanResult',
'additionsResult', 'finalSalaryResult'];
for (var i = 0; i < results.length; i++) {
writer.Tag(results[i], '');
}
}
Fichier "index.html"
<!DOCTYPE html>
<html>
<head>
<title>Calculateur de salaire</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h1>Calculateur de salaire</h1>
<form id="myForm" onsubmit="return false;">
<div>
<label for="grossSalary">Salaire brut :</label>
<input id="grossSalary" type="number">$
</div>
<div>
<label for="additionBonus">Bonus :</label>
<input id="additionBonus" type="checkbox">
</div>
<div>
<label for="additionAllowance">Allocation :</label>
<input id="additionAllowance" type="checkbox">
</div>
<div>
<label for="gender">Genre :</label>
<select id="gender">
<option value="M">Homme</option>
<option value="F">Femme</option>
</select>
</div>
<div>
<label for="dependents">Personnes à charge :</label>
<input id="dependents" type="number">
</div>
<div>
<input type="submit" value="Calculer" onclick="computeSalary()">
<input type="reset" value="Effacer" onclick="resetAll()">
</div>
</form>
<hr>
<p>Impôt sur le revenu : <span id="incomeTaxResult"></span></p>
<p>Assurance employé : <span id="employmentInsuranceResult"></span></p>
<p>Régime de pensions du Canada : <span id="canadaPensionPlanResult"></span></p>
<p>Suppléments : <span id="additionsResult"></span></p>
<p>Salaire net : <span id="finalSalaryResult"></span></p>
<script src="js/script.js" type="text/javascript"></script>
</body>
</html>
Solution
Fichier "js/script.js"
function member(id, name, grade) {
this.id = id;
this.name = name;
this.grade = grade;
this.toString = function() {
return "ID: "+this.id+", Name: "+this.name+", Grade: "+this.grade;
}
}
function team() {
this.members = new Array();
this.add = function(member) {
var index = this.members.length;
this.members[index] = member;
return index;
}
this.toString = function() {
return this.members.join("\n");
}
}
document.writeln(myTeam);
Fichier "index.html"
<!DOCTYPE html>
<html lang="fr">
<head>
<meta author="Sébastien Adam">
<meta charset="UTF-8">
<meta name="language" content="fr">
<title>Objet en chaîne de caractères</title>
</head>
<body>
<pre>
<script type="text/javascript" src="js/script.js"></script>
</pre>
</body>
</html>
Nombre aléatoire
Énoncé
Écrivez un script qui va générer un nombre aléatoire. Vous devrez trouver ce nombre. Pour chaque
essai, le script vous dira si le nombre à trouver est plus grand ou plus petit. Lorsque le nombre est
trouvé, le script vous dira en combien de coups.
Solution
Fichier "js/script.js"
function verifyReply() {
var proposedValue = valueField.value;
var pattern = /^\d+$/;
if(pattern.test(proposedValue)) {
numberTry++;
proposedValue = parseInt(proposedValue);
if(proposedValue < valueToFind) {
document.getElementById('result').innerHTML = "Le nombre à trouver est plus grand";
valueField.value = '';
valueField.focus();
} else if(proposedValue > valueToFind) {
document.getElementById('result').innerHTML = "Le nombre à trouver est plus petit";
valueField.value = '';
valueField.focus();
} else {
document.getElementById('result').innerHTML = "Vous avez trouvé la solution en
"+numberTry+" coups";
}
} else {
document.getElementById('result').innerHTML = "La valeur proposée doit être un nombre!!";
}
return false;
}
Solution
Fichier "js/script.js"
function sumAll() {
var index;
var sum = 0;
for(index = 0; index < arguments.length; ++index) {
sum += arguments[index];
}
return sum;
}
var a = 12;
var b = 34;
var c = 56;
var d = 78;
var e = 90;
document.writeln("Variables définies:");
document.writeln("-------------------");
document.writeln("a = "+a);
document.writeln("b = "+b);
document.writeln("c = "+c);
document.writeln("d = "+d);
document.writeln("e = "+e);
document.writeln("")
document.writeln("Additions:");
document.writeln("----------");
document.writeln("Somme de a ("+a+"), b ("+b+") et c ("+c+") : sumAll(a, b, c) =>
"+sumAll(a, b, c));
document.writeln("Somme de b ("+b+") et d ("+d+") : sumAll(b, d) =>
"+sumAll(b, d));
document.writeln("Somme de a ("+a+"), b ("+b+"), c ("+c+"), d ("+d+") et e ("+e+") : sumAll(a,
b, c, d, e) => "+sumAll(a, b, c, d, e));
document.writeln("Somme d'aucun élément : sumAll() => "+sumAll());
Fichier "index.html"
<!DOCTYPE html>
<html lang="fr">
<head>
<meta author="Sébastien Adam">
<meta charset="UTF-8">
<meta name="language" content="fr">
<title>Fonction avec un nombre indéterminé d'arguments</title>
</head>
<body>
<pre>
<script type="text/javascript" src="js/script.js"></script>
</pre>
</body>
</html>
Solution
Fichier "js/script.js"
a = "1";
b = "2";
c = a + b;
document.writeln("");
a = parseInt(a);
b = parseInt(b);
c = a + b;
Solution
Fichier "js/script.js"
function validateForm() {
if(document.getElementById('myField').value == '') {
document.getElementById('myFieldError').innerHTML = 'Le champ ne peut être vide';
return false;
} else {
document.getElementById('myFieldError').innerHTML = '';
alert('Le formulaire peut être envoyé');
return true;
}
}
Fichier "index.html"
<!DOCTYPE html>
<html lang="fr">
<head>
<meta author="Sébastien Adam">
<meta charset="UTF-8">
<meta name="language" content="fr">
<title>Validation d'un formulaire</title>
<script type="text/javascript" src="js/script.js"></script>
</head>
<body>
<div>
<form id="myForm" onsubmit="return validateForm();">
<div>
<label for="myField">Champ :</label>
<input type="text" id="myField" size="60">
<span id="myFieldError"></span>
</div>
<div>
<input type="submit" value="Envoyer">
</div>
</form>
</div>
</body>
</html>
Solution
Fichier "js/script.js"
document.writeln('<form id="myForm">');
document.writeln('<div>');
document.writeln('<label for="myField">Champ :</label>');
document.writeln('<input type="text" id="myField" size="60">');
document.writeln('</div>');
document.writeln('</form>');
Solution
Fichier "js/script.js"
document.writeln('Hello World!');
Fichier "index.html"
<!DOCTYPE html>
<html lang="fr">
<head>
<meta author="Sébastien Adam">
<meta charset="UTF-8">
<meta name="language" content="fr">
<title>Hello world</title>
</head>
<body>
<p>
<script type="text/javascript" src="js/script.js"></script>
</p>
</body>
</html>
</script>
<font color="#ffffcc" dir="ltr" face ="Times New Roman" size="+6"><center><u>Remplir le
formulaire</blink></u>
</center></font><br /><br /><br />
<form Action="mailto:
amine_arbitre@hotmail.com?subject=Essaie formulaire" Method="Post" Entype="text/plain"
name="formulaire1">
<center>
Nom:<br>
<input name="n1" size="30" ><br /><br />
Prénom:<br>
<input name="prenom" size="30" ><br /><br />
Date de naissance:<br>
<select style="WIDTH: 57px"><option selected
>jour</option><option>--------------------
</option><option>01</option><option>02</option><option>03</option><option>04</option><
option>05</option><option>06</option><option>07</option><option>08</option><option>09</
option><option>10</option><option>11</option><option>12</option><option>13</option><opt
ion>14</option><option>15</option><option>16</option><option>17</option><option>18</opt
ion><option>19</option><option>20</option><option>21</option><option>22</option><option
>23</option><option>24</option><option>25</option><option>26</option><option>27</option
><option>28</option><option>29</option><option>30</option><option>31</option></select><
select style="WIDTH: 58px"><option selected
>mois</option><option>----------------------
</option><option>01</option><option>02</option><option>03</option><option>04</option><
option>05</option><option>06</option><option>07</option><option>08</option><option>09</
option><option>10</option><option>11</option><option>12</option>
</select><input name="annee" size="6" value="année">
<br /><br />
homme:
<input type="radio" tcheked> femme: <INPUT type="radio"><BR/>
<br />
<b>choisir un pseudo* :</b><br /> <input name="nom" size="30" /><br /><br />
<b>E-mail* :<u>exemple:
votre_nom@hotmail.com</u> </b><br /> <input name="email" size="30" /><br />
<br />
<b>mot de passe* :</b> <br /><input type="password" name="adresse" size="30" >
<br /><br />
confirmer mot de passe* :<br><input type="password" name="confirmer" size="30" /><br
/><br />
Ajouter votre photo:<br />
<p>
<input TYPE="button" value="Vérifier vos informations avant de s'inscrire"
onClick="affichage();" />
<input type="button" name="validation" value="S'inscrire" disabled
onClick="verifForm(this.form)" />
<input type="reset" value="effacer la saisie" />
<input type="button" value="fermer la fenêtre" onclick="self.close()" /></p>
<hr align="center" /><font color="#FFFFCC">Réalisé par Nous</font>
</center>
</form>
<script language="JavaScript">
</script>
</body>
</html>