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

Solution:

function distanceHamming(str1, str2) {

	return [...str1].filter((x, i) => x != str2[i]).length
}
 

Exercice 2:

Créez une fonction qui prend un tableau de nombres et renvoie le minimum et le maximum dans un tableau [Min, Max].

Exemple:

getMinMax([8, 1, 9, 2, 6]) ➞ [1, 9]

getMinMax([22, 2]) ➞ [2, 22]

getMinMax([5]) ➞ [5, 5]

Solution:

function getMinMax(tab) {

	return [Math.min(...tab), Math.max(...tab)];
}
 

Exercice 3:

Créez une fonction qui compte le nombre de majuscules dans une chaîne de caractères.

Exemple:

countMaj("abcdEFG") ➞ 3

countMaj("WayToLearnX") ➞ 4

countMaj("abcdefghigklmnopkrstvuwxyz") ➞ 0

Solution:

function countMaj(str) {

	return str.split(/[A-Z]/).length - 1;
}
 
 

Exercice 4:

Créez une fonction qui compte le nombre de syllabes d’un mot. Chaque syllabe est séparée par un tiret -.

Exemple:

nbrOfSlab("prin-temps") ➞ 2

nbrOfSlab("ar-rê-te") ➞ 3

nbrOfSlab("ther-mo-mè-tre") ➞ 4

Solution:

function nbrOfSlab(str) {

	return str.split("-").length;
}
 

Exercice 5:

Implémenter une fonction qui renvoie la distance donnée en kilomètres convertie en miles. Vous devez arrondir le résultat jusqu’au quatrième chiffre décimal.

Exemple:

toMiles(5) ➞ 3.1069

toMiles(7) ➞ 4.3496

toMiles(10) ➞ 6.2137

Solution:

function toMiles(km) {

	return parseFloat((km * 0.621371).toFixed(4))
}
 

Exercice 6:

Créez une fonction qui prend un nombre (de 1 à 12) et renvoie son nom de mois correspondant sous forme de chaîne. Par exemple, si on vous donne 4 en entrée, votre fonction devrait retourner Avril, car Avril est le 4ème mois.

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"

Solution:

function nomDuMois(n) {
	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'
	};
	return mois[n];
}
 
 

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"

Solution:

function caseOf(str) {

	return str === str.toUpperCase() ? 'Majuscule' : 
	       str === str.toLowerCase() ? 'Minuscule' : 'Mix';
}
 

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"

Solution:

var expr = /\d{2}\:\d{2}/
 

Exercice 9:

Écrivez une fonction qui prend un nombre binaire de 8 bits sous forme de tableau et convertissez-le en 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

Solution:

function binToDec(tab) {

	return parseInt(tab.join(""), 2);
}
QCM Javascript

Laisser un commentaire

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