Exercice JavaScript Corrigé – Partie 8

Avec des exercices corrigés en JavaScript, vous pratiquerez divers concepts du langage JavaScript. Vous commencerez par des exercices JavaScript de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
 
 

Exercice 1:

La distance de Hamming est le nombre de caractères qui diffèrent entre deux chaînes. Prenons un exemple :

Str1: « abcdde »
Str2: « abcdbe »

Distance de Hamming = 1 « d » et « b » est la seule différence.

Créez une fonction qui calcule la distance de hamming entre deux chaînes.

Exemple:

distanceHamming("abcdde", "abcdbe") ➞ 1
distanceHamming("abefcd", "cdfgea") ➞ 6
distanceHamming("agresser", "adresser") ➞ 1
distanceHamming("attention", "intention") ➞ 2
// Fonction permettant de calculer
// la distance de Hamming entre deux chaînes
function distanceHamming(str1, str2) {

    // Parcourt les caractères de la première chaîne
    // et compte ceux qui sont différents
    // du caractère situé à la même position dans la deuxième chaîne
    return [...str1]
        .filter((caractere, index) => caractere !== str2[index])
        .length;
}

// Test de la fonction avec différents exemples
console.log(distanceHamming("abcdde", "abcdbe"));
console.log(distanceHamming("abefcd", "cdfgea"));
console.log(distanceHamming("agresser", "adresser"));
console.log(distanceHamming("attention", "intention"));
 

Exercice 2:

Écrivez une fonction JavaScript appelée getMinMax() qui reçoit un tableau de nombres et retourne un nouveau tableau contenant [Min, Max].

Exemple:

getMinMax([8, 1, 9, 2, 6]) ➞ [1, 9]
getMinMax([22, 2]) ➞ [2, 22]
getMinMax([5]) ➞ [5, 5]
// Fonction permettant de trouver le minimum
// et le maximum d'un tableau
function getMinMax(tab) {

    // Math.min() retourne la plus petite valeur.
    // L'opérateur Spread (...) transmet les éléments
    // du tableau comme arguments à Math.min().
    const min = Math.min(...tab);

    // Math.max() retourne la plus grande valeur.
    // L'opérateur Spread (...) permet également
    // de transmettre tous les éléments du tableau.
    const max = Math.max(...tab);

    // Retourne le minimum et le maximum
    // sous la forme [Min, Max]
    return [min, max];
}

// Test de la fonction avec différents exemples
console.log(getMinMax([8, 1, 9, 2, 6]));
console.log(getMinMax([22, 2]));
console.log(getMinMax([5]));
 

Exercice 3:

Écrivez une fonction JavaScript appelée countMaj() qui reçoit une chaîne de caractères et retourne le nombre de lettres majuscules qu’elle contient.

Exemple:

countMaj("abcdEFG") ➞ 3
countMaj("WayToLearnX") ➞ 4
countMaj("abcdefghigklmnopkrstvuwxyz") ➞ 0
// Fonction permettant de compter le nombre de lettres majuscules
function countMaj(str) {

    // Recherche toutes les lettres majuscules de A à Z
    // grâce à l'expression régulière /[A-Z]/g
    const majuscules = str.match(/[A-Z]/g);

    // Si des majuscules sont trouvées, retourne leur nombre.
    // Sinon, retourne 0.
    return majuscules ? majuscules.length : 0;
}

// Test de la fonction avec différents exemples
console.log(countMaj("abcdEFG"));
console.log(countMaj("WayToLearnX"));
console.log(countMaj("abcdefghigklmnopkrstvuwxyz"));
 
 

Exercice 4:

Écrivez une fonction JavaScript appelée nbrOfSlab() qui reçoit un mot dont les syllabes sont séparées par un tiret -. La fonction doit retourner le nombre de syllabes.

Exemple:

nbrOfSlab("prin-temps") ➞ 2
nbrOfSlab("ar-rê-te") ➞ 3
nbrOfSlab("ther-mo-mè-tre") ➞ 4
// Fonction permettant de compter le nombre de syllabes
// séparées par des tirets
function nbrOfSlab(str) {

    // Sépare le mot à chaque tiret "-"
    // puis compte le nombre de parties obtenues
    return str.split("-").length;
}

// Test de la fonction avec différents exemples
console.log(nbrOfSlab("prin-temps"));
console.log(nbrOfSlab("ar-rê-te"));
console.log(nbrOfSlab("ther-mo-mè-tre"));
 

Exercice 5:

Implémentez une fonction JavaScript appelée toMiles() qui reçoit une distance en kilomètres et la convertit en miles. Le résultat doit être arrondi à 4 chiffres après la virgule. Formule: 1 kilomètre ≈ 0,621371 mile

Exemple:

toMiles(5) ➞ 3.1069
toMiles(7) ➞ 4.3496
toMiles(10) ➞ 6.2137
// Fonction permettant de convertir des kilomètres en miles
function toMiles(km) {

    // Convertit les kilomètres en miles
    // puis arrondit le résultat à 4 chiffres après la virgule
    return parseFloat((km * 0.621371).toFixed(4));
}

// Test de la fonction avec différents exemples
console.log(toMiles(5));
console.log(toMiles(7));
console.log(toMiles(10));
 

Exercice 6:

Créez une fonction JavaScript appelée nomDuMois() qui reçoit un nombre compris entre 1 et 12 et retourne le nom du mois correspondant. Par exemple, si la fonction reçoit 4, elle doit retourner « Avril ».

Nombre
Nom du mois
1 Janvier
2 Février
3 Mars
4 Avril
5 Mai
6 Juin
7 Juillet
8 Août
9 Septembre
10 Octobre
11 Novembre
12 Décembre

Exemple:

nomDuMois(3) ➞ "Mars"
nomDuMois(12) ➞ "Décembre"
nomDuMois(6) ➞ "Juin"
// Fonction permettant de retourner le nom
// du mois correspondant au numéro donné
function nomDuMois(n) {

    // Objet contenant la correspondance
    // entre chaque numéro et son mois
    const mois = {
        1: "Janvier",
        2: "Février",
        3: "Mars",
        4: "Avril",
        5: "Mai",
        6: "Juin",
        7: "Juillet",
        8: "Août",
        9: "Septembre",
        10: "Octobre",
        11: "Novembre",
        12: "Décembre"
    };

    // Retourne le mois correspondant au numéro donné
    return mois[n];
}

// Test de la fonction avec différents exemples
console.log(nomDuMois(3));
console.log(nomDuMois(12));
console.log(nomDuMois(6));
 
 

Exercice 7:

Créez une fonction qui renvoie « Majuscule » si toutes les lettres d’un mot sont en majuscules, « Minuscule » si toutes les lettres d’un mot sont en minuscule et « Mix » s’il contient à la fois des majuscules et des minuscules.

Exemple:

caseOf("WAYTOLEARNX") ➞ "Majuscule"
caseOf("waytolearnx") ➞ "Minuscule"
caseOf("WayToLearnX") ➞ "Mix"
// Fonction permettant de déterminer la casse d'un mot
function caseOf(str) {

    // Vérifie si la chaîne est entièrement en majuscules
    if (str === str.toUpperCase()) {
        return "Majuscule";
    }

    // Vérifie si la chaîne est entièrement en minuscules
    if (str === str.toLowerCase()) {
        return "Minuscule";
    }

    // Si aucune des deux conditions n'est vraie,
    // la chaîne contient un mélange de majuscules et de minuscules
    return "Mix";
}

// Test de la fonction avec différents exemples
console.log(caseOf("WAYTOLEARNX"));
console.log(caseOf("waytolearnx"));
console.log(caseOf("WayToLearnX"));
 

Exercice 8:

Le temps a un format: heures:minutes. Les heures et les minutes ont deux chiffres, comme 07:00. Ecrivez l’expression régulière pour trouver le temps(heures:minutes) dans la chaîne.

Exemple:

"Le restaurant ouvre à 08:00 situé au boulevard du 200:200" ➞ "08:00"
"J'ai pris mon déjeuner à 10:30." ➞ "10:30"
"Je vais aller au cinéma demain à 18:00 du soir. ➞ "18:00"
// Expression régulière permettant de rechercher
// une heure au format HH:MM
var expr = /\d{2}:\d{2}/;

// Test de l'expression régulière
console.log("Le restaurant ouvre à 08:00 situé au boulevard du 200:200"
    .match(expr));

console.log("J'ai pris mon déjeuner à 10:30."
    .match(expr));

console.log("Je vais aller au cinéma demain à 18:00 du soir."
    .match(expr));
 

Exercice 9:

Écrivez une fonction JavaScript appelée binToDec() qui reçoit un nombre binaire de 8 bits sous forme de tableau et le convertit en nombre décimal.

Exemple:

binToDec([0, 0, 0, 1, 1, 1, 1, 1]) ➞ 31
binToDec([0, 0, 0, 0, 0, 0, 0, 1]) ➞ 1
binToDec([1, 0, 0, 0, 0, 0, 0, 0]) ➞ 128
// Fonction permettant de convertir un nombre binaire
// représenté par un tableau en nombre décimal
function binToDec(tab) {

    // Transforme le tableau en chaîne de caractères
    // Exemple : [0, 0, 0, 1, 1, 1, 1, 1] devient "00011111"
    const binaire = tab.join("");

    // Convertit la chaîne binaire en nombre décimal
    // Le deuxième argument 2 indique que la base est 2
    return parseInt(binaire, 2);
}

// Test de la fonction avec différents exemples
console.log(binToDec([0, 0, 0, 1, 1, 1, 1, 1]));
console.log(binToDec([0, 0, 0, 0, 0, 0, 0, 1]));
console.log(binToDec([1, 0, 0, 0, 0, 0, 0, 0]));
qcm-javascript

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *