0% ont trouvé ce document utile (0 vote)
23 vues12 pages

Exercices JavaScript Avec Solutions

Le document présente une série d'exercices de programmation en JavaScript, allant de la saisie de nombres et du calcul de moyennes à la création de fonctions et d'objets. Chaque exercice est accompagné d'une description des tâches à accomplir et de solutions potentielles. Les exercices couvrent divers concepts, tels que les boucles, les fonctions, les tableaux et les événements DOM.

Transféré par

Osias Arthur Miere
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
23 vues12 pages

Exercices JavaScript Avec Solutions

Le document présente une série d'exercices de programmation en JavaScript, allant de la saisie de nombres et du calcul de moyennes à la création de fonctions et d'objets. Chaque exercice est accompagné d'une description des tâches à accomplir et de solutions potentielles. Les exercices couvrent divers concepts, tels que les boucles, les fonctions, les tableaux et les événements DOM.

Transféré par

Osias Arthur Miere
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 12

Exercices JavaScript

Exercice 1

Écrivez un script qui :

1. Demande à l'utilisateur de saisir trois nombres.

2. Affiche la moyenne, le minimum et le maximum des trois nombres.

Exercice 2

Écrivez un programme qui demande la note d'un étudiant (sur 20) et affiche :

• « Excellent » si la note est supérieure à 16

• « Bien » si la note est entre 14 et 16

• « Assez bien » si la note est entre 12 et 14

• « Passable » si la note est entre 10 et 12

• « Insuffisant » sinon

Exercice 3

Utilisez une boucle while pour afficher tous les nombres pairs entre 2 et 50. Calculez et
affichez aussi le nombre total de ces nombres pairs.

Exercice 4

Créez une fonction estPremier(n) qui retourne true si n est un nombre premier, false sinon.
Testez cette fonction avec les nombres 7, 15, 23 et 25.

Exercice 5

Écrivez un script qui :

1. Crée un tableau de 6 prix d'articles saisis par l'utilisateur.

2. Calcule le prix total.

3. Applique une remise de 10% si le total dépasse 100€.

4. Affiche le prix final.

Exercice 6

Créez une fonction qui convertit une distance en kilomètres vers des miles. Formule : 1 km =
0.621371 miles.

Exercice 7
Créez un objet voiture avec les propriétés : marque, modele, annee, couleur. Créez une
méthode description() qui retourne une phrase descriptive de la voiture.

Exercice 8

Créez un tableau de nombres. Utilisez map() pour créer un nouveau tableau contenant le
carré de chaque nombre, puis affichez les deux tableaux.

Exercice 9

En HTML : créez deux champs de texte (nom et prénom) et un bouton. En JS : affichez un


message personnalisé "Bienvenue [prénom] [nom] !" dans une div avec l'ID "message" au
clic.

Exercice 10

Expliquez ce que fait ce code et quelle sera la sortie :

let tableau = [1, 2, 3, 4, 5];

let resultat = 0;

for (let i = 0; i < tableau.length; i++) {

if (tableau[i] % 2 === 0) {

resultat += tableau[i];

console.log(resultat);

Exercice 11

Écrivez une fonction fibonacci(n) qui retourne le n-ième terme de la suite de Fibonacci.
Testez avec n = 8.

Exercice 12

Écrivez une fonction qui compte le nombre de voyelles dans une chaîne de caractères. Testez
avec "JavaScript est fantastique".

Exercice 13

Créez un tableau d'objets représentant 4 étudiants avec leurs noms et notes. Triez le tableau
par note décroissante et affichez le classement.

Exercice 14
1. En HTML : créez une liste vide (<ul>) et un champ de texte avec un bouton.

2. En JS : ajoutez le contenu du champ comme nouvel élément de liste à chaque clic.

Exercice 15

Trouvez et corrigez les erreurs dans ce code :

function calculerAge(anneeNaissance) {

let anneeActuelle = 2024;

let age = anneeActuelle - anneeNaissance;

retourner age;

let monAge = calculerAge("1990");

console.log("J'ai " + monAge + " ans");

Exercice 16

Créez une calculatrice simple avec les fonctions additionner(), soustraire(), multiplier(),
diviser(). Créez un menu qui permet à l'utilisateur de choisir l'opération et saisir les nombres.

Exercice 17

Créez un jeu de "Deviner le nombre" où :

• L'ordinateur génère un nombre aléatoire entre 1 et 100

• L'utilisateur a 7 tentatives pour deviner

• Affichez "Trop grand", "Trop petit" ou "Bravo !" selon le cas

Exercice 18

Écrivez une fonction qui inverse l'ordre des mots dans une phrase. Exemple : "Bonjour le
monde" devient "monde le Bonjour".

Exercice 19

En HTML : créez un tableau avec id "tableau" et un bouton "Ajouter ligne". En JS : ajoutez


dynamiquement une nouvelle ligne avec deux cellules à chaque clic.
Exercice 20

Analysez ce code et expliquez pourquoi il ne fonctionne pas comme attendu :

for (var i = 0; i < 3; i++) {

setTimeout(function() {

console.log(i);

}, 100);

Proposez deux solutions pour corriger le problème.


Solutions des Exercices JavaScript

Exercice 1
let num1 = parseFloat(prompt("Entrez le premier nombre :"));
let num2 = parseFloat(prompt("Entrez le deuxième nombre :"));
let num3 = parseFloat(prompt("Entrez le troisième nombre :"));

let moyenne = (num1 + num2 + num3) / 3;


let minimum = Math.min(num1, num2, num3);
let maximum = Math.max(num1, num2, num3);

console.log("Moyenne :", moyenne);


console.log("Minimum :", minimum);
console.log("Maximum :", maximum);

Exercice 2
let note = parseFloat(prompt("Entrez votre note sur 20 :"));

if (note > 16) {


console.log("Excellent");
} else if (note >= 14) {
console.log("Bien");
} else if (note >= 12) {
console.log("Assez bien");
} else if (note >= 10) {
console.log("Passable");
} else {
console.log("Insuffisant");
}

Exercice 3
let i = 2;
let compteur = 0;

console.log("Nombres pairs entre 2 et 50 :");


while (i <= 50) {
console.log(i);
compteur++;
i += 2;
}
console.log("Nombre total de nombres pairs :", compteur);
Exercice 4
function estPremier(n) {
if (n <= 1) return false;
if (n <= 3) return true;
if (n % 2 === 0 || n % 3 === 0) return false;

for (let i = 5; i * i <= n; i += 6) {


if (n % i === 0 || n % (i + 2) === 0) {
return false;
}
}
return true;
}

console.log("7 est premier :", estPremier(7));


console.log("15 est premier :", estPremier(15));
console.log("23 est premier :", estPremier(23));
console.log("25 est premier :", estPremier(25));

Exercice 5
let prix = [];
for (let i = 0; i < 6; i++) {
prix[i] = parseFloat(prompt(`Entrez le prix de l'article ${i + 1} :`));
}

let total = prix.reduce((sum, p) => sum + p, 0);


console.log("Prix total :", total + "€");

if (total > 100) {


total = total * 0.9;
console.log("Remise de 10% appliquée !");
}

console.log("Prix final :", total + "€");


Exercice 6
function kmVelMiles(km) {
return km * 0.621371;
}

let kilometres = parseFloat(prompt("Entrez la distance en kilomètres :"));


let miles = kmVelMiles(kilometres);

console.log(kilometres + " km = " + miles.toFixed(2) + " miles");

Exercice 7
let voiture = {
marque: "Toyota",
modele: "Corolla",
annee: 2022,
couleur: "Rouge",

description: function() {
return `Voiture ${this.marque} ${this.modele} de ${this.annee}, couleur ${this.couleur}`;
}
};

console.log(voiture.description());

Exercice 8
javascript
let nombres = [1, 2, 3, 4, 5];
let carres = nombres.map(n => n * n);

console.log("Tableau original :", nombres);


console.log("Tableau des carrés :", carres);

Exercice 9
html
<!-- HTML -->
<input type="text" id="nom" placeholder="Votre nom">
<input type="text" id="prenom" placeholder="Votre prénom">
<button id="btn">Valider</button>
<div id="message"></div>
document.getElementById("btn").addEventListener("click", function() {
let nom = document.getElementById("nom").value;
let prenom = document.getElementById("prenom").value;
let message = `Bienvenue ${prenom} ${nom} !`;
document.getElementById("message").innerHTML = message;
});

Exercice 10
Explication : Le code parcourt un tableau et additionne tous les nombres pairs.
Sortie : 6 (car 2 + 4 = 6)
Le code teste si chaque élément est pair avec %2 === 0 et ajoute les nombres pairs à la
variable resultat.

Exercice 11
function fibonacci(n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}

// Version optimisée (itérative)


function fibonacciIteratif(n) {
if (n <= 1) return n;
let a = 0, b = 1;
for (let i = 2; i <= n; i++) {
let temp = a + b;
a = b;
b = temp;
}
return b;
}

console.log("Fibonacci(8) =", fibonacci(8)); // Résultat : 21

Exercice 12
function compterVoyelles(chaine) {
let voyelles = "aeiouAEIOU";
let compteur = 0;

for (let i = 0; i < chaine.length; i++) {


if (voyelles.includes(chaine[i])) {
compteur++;
}
}
return compteur;
}

let phrase = "JavaScript est fantastique";


console.log(`Nombre de voyelles : ${compterVoyelles(phrase)}`);

Exercice 13
let etudiants = [
{nom: "Alice", note: 15},
{nom: "Bob", note: 18},
{nom: "Charlie", note: 12},
{nom: "Diana", note: 16}
];

// Trier par note décroissante


etudiants.sort((a, b) => b.note - a.note);

console.log("Classement :");
for (let i = 0; i < etudiants.length; i++) {
console.log(`${i + 1}. ${etudiants[i].nom} - ${etudiants[i].note}/20`);
}

Exercice 14
html
<!-- HTML -->
<input type="text" id="textInput" placeholder="Entrez du texte">
<button id="ajouterBtn">Ajouter</button>
<ul id="liste"></ul>
document.getElementById("ajouterBtn").addEventListener("click", function() {
let texte = document.getElementById("textInput").value;
if (texte.trim() !== "") {
let li = document.createElement("li");
li.textContent = texte;
document.getElementById("liste").appendChild(li);
document.getElementById("textInput").value = "";
}
});

Exercice 15
Erreurs et corrections :
// Code corrigé
function calculerAge(anneeNaissance) {
let anneeActuelle = 2025; // Mise à jour de l'année
let age = anneeActuelle - parseInt(anneeNaissance); // Conversion en nombre
return age; // "return" au lieu de "retourner"
}

let monAge = calculerAge("1990");


console.log("J'ai " + monAge + " ans");
Erreurs trouvées :
1. retourner → return
2. L'année devrait être 2025
3. Conversion de string en nombre avec parseInt()

Exercice 16
function additionner(a, b) { return a + b; }
function soustraire(a, b) { return a - b; }
function multiplier(a, b) { return a * b; }
function diviser(a, b) { return b !== 0 ? a / b : "Division par zéro impossible"; }

function calculatrice() {
let operation = prompt("Choisissez une opération (+, -, *, /) :");
let a = parseFloat(prompt("Premier nombre :"));
let b = parseFloat(prompt("Deuxième nombre :"));
let resultat;

switch(operation) {
case "+": resultat = additionner(a, b); break;
case "-": resultat = soustraire(a, b); break;
case "*": resultat = multiplier(a, b); break;
case "/": resultat = diviser(a, b); break;
default: resultat = "Opération invalide";
}

console.log(`Résultat : ${resultat}`);
}

calculatrice();

Exercice 17
function devinerNombre() {
let nombreSecret = Math.floor(Math.random() * 100) + 1;
let tentatives = 7;
let trouve = false;

console.log("Devinez le nombre entre 1 et 100 !");

while (tentatives > 0 && !trouve) {


let guess = parseInt(prompt(`Tentative ${8 - tentatives}. Votre proposition :`));

if (guess === nombreSecret) {


alert("Bravo ! Vous avez trouvé !");
trouve = true;
} else if (guess > nombreSecret) {
alert("Trop grand !");
} else {
alert("Trop petit !");
}

tentatives--;
}

if (!trouve) {
alert(`Dommage ! Le nombre était ${nombreSecret}`);
}
}
devinerNombre();

Exercice 18
function inverserMots(phrase) {
return phrase.split(' ').reverse().join(' ');
}
let phrase = "Bonjour le monde";
console.log("Phrase originale :", phrase);
console.log("Phrase inversée :", inverserMots(phrase));
Exercice 19
html
<!-- HTML -->
<table id="tableau" border="1">
<tr>
<th>Colonne 1</th>
<th>Colonne 2</th>
</tr>
</table>
<button id="ajouterLigne">Ajouter ligne</button>
document.getElementById("ajouterLigne").addEventListener("click", function() {
let tableau = document.getElementById("tableau");
let nouvelleLigne = tableau.insertRow();
let cellule1 = nouvelleLigne.insertCell(0);
let cellule2 = nouvelleLigne.insertCell(1);
cellule1.innerHTML = "Cellule 1";
cellule2.innerHTML = "Cellule 2";
});

Exercice 20
Problème : Le code affiche 3 trois fois au lieu de 0, 1, 2.
Explication : La variable var i est partagée par toutes les fonctions setTimeout. Quand elles
s'exécutent, la boucle est terminée et i vaut 3.
Solution 1 - Utiliser let :
javascript
for (let i = 0; i < 3; i++) {
setTimeout(function() {
console.log(i);
}, 100);
}
Solution 2 - Utiliser une closure :
javascript
for (var i = 0; i < 3; i++) {
(function(index) {
setTimeout(function() {
console.log(index);
}, 100);
})(i);
}

Vous aimerez peut-être aussi