first commit with existing project files

This commit is contained in:
Vincent Guillet
2025-07-12 11:10:38 +02:00
commit 3f5b52661a
5 changed files with 462 additions and 0 deletions

189
partie1.js Normal file
View File

@@ -0,0 +1,189 @@
/* 1. Nettoyer et passer en majuscule */
function nettoyerEtMajuscules(str) {
return str.trim().toUpperCase();
}
console.log("1. " + nettoyerEtMajuscules(" Bonjour le monde "));
console.log("");
/* 2. Analyse de voyelles */
function analyserVoyelles(str) {
const voyelles = ["a", "e", "i", "o", "u", "y"];
const strArr = str.split("");
let voyellesCount = 0;
let voyellesArr = [];
strArr.forEach((char) => {
if (voyelles.includes(char.toLowerCase())) {
voyellesCount++;
if (!voyellesArr.includes(char.toLowerCase())) {
voyellesArr.push(char.toLowerCase());
}
}
});
return `2. Il y a ${voyellesCount} voyelles : ${voyellesArr.join(", ")}`;
}
console.log(analyserVoyelles("J'apprends JavaScript"));
console.log("");
/* 3. Fonctions fléchées simples */
const doubler = (x) => x * 2;
console.log("3. Doubler 5 : " + doubler(5));
const inverser = (str) => str.split("").reverse().join("");
console.log("3. Inverser 'JavaScript' : " + inverser("JavaScript"));
const estPair = (n) => n % 2 === 0;
console.log("3. 4 est pair ? " + estPair(4));
console.log("");
/* 4. Fonctions fléchées et tableaux */
const carreTableau = (tab) => tab.map(x => x * x);
console.log("4. Carré des nombres 1, 2, 3 et 4 : " + carreTableau([1, 2, 3, 4]));
const nombresImpairs = (tab) => tab.filter(x => x % 2 !== 0);
console.log("4. Nombres impairs parmi 1, 2, 3, 4, 5 : " + nombresImpairs([1, 2, 3, 4, 5]));
console.log("");
/* 5. Moyenne pondérée */
function moyennePonderee(valeurs, poids) {
let total = 0;
let sommePoids = 0;
for (let v = 0; v < valeurs.length; v++) {
for (let p = 0; p < poids.length; p++) {
total += valeurs[v] * poids[p];
sommePoids += poids[p];
}
}
return total / sommePoids;
}
console.log("5. Moyenne pondérée de [10, 15, 20], [1, 2, 1] : " + moyennePonderee([10, 15, 20], [1, 2, 1]));
console.log("");
/* 6. Valeur extrême d'un tableau */
function valeurExtremes(tab) {
const smallest = Math.min(...tab);
const biggest = Math.max(...tab);
const ecartAbsolu = biggest - smallest;
console.log("6. Valeur minimale : " + smallest);
console.log("6. Valeur maximale : " + biggest);
console.log("6. Écart absolu : " + ecartAbsolu);
}
valeurExtremes([3, 7, 1, 12]);
console.log("");
/* 7. Vérification de palindrome */
function estPalindrome(str) {
return str.toLowerCase() === str.toLowerCase().split("").reverse().join("") ?
str + " est un palindrome" :
str + " n'est pas un palindrome";
}
console.log("7. " + estPalindrome("Kayak"));
console.log("7. " + estPalindrome("Voiture"));
console.log("");
/* 8. Fréquence des lettres */
function frequenceLettres(str) {
const frequencies = {};
str.split("").forEach(letter => {
frequencies[letter] = (frequencies[letter] || 0) + 1;
}
);
console.log("8. ", frequencies);
}
frequenceLettres("JavaScript est un langage puissant");
console.log("");
/* 9. Factorielle récursive */
function factorielle(n) {
if (n < 0) alert("n doit être supérieur à 0 !")
if (n === 0 || n === 1) return 1;
return n * factorielle(n - 1);
}
console.log("9. 5! = " + factorielle(5));
console.log("");
/* 10. Analyse d'une phrase */
function statistiquesPhrase(str) {
const nbWords = str.split(" ").length;
const words = str.split(" ")
.sort((a, b) => b.length - a.length);
const longestWord = words[0]
const shortestWord = words.reverse()[0];
console.log(` 10. Statistiques de la phrase "${str}" :
- Nombre de mots : ${nbWords}
- Mot le plus long : ${longestWord}
- Mot le plus court : ${shortestWord}
`);
}
statistiquesPhrase("JavaScript est un langage puissant");
console.log("");
/* 11. Tableaux combinés */
const fusionFiltrage = function (tab1, tab2) {
return [...new Set([...tab1, ...tab2])]
.filter((n) => n % 2 === 0 && n > 10)
.sort((a, b) => a - b);
}
const tab1 = [1, 4, 9, 2];
const tab2 = [4, 3, 13, 18];
console.log(fusionFiltrage(tab1, tab2));
console.log("");
/* 12. Age détaillé */
function calculerAgeDetaille(dateNaissance) {
const birthdate = new Date(dateNaissance);
const today = new Date();
let years = today.getFullYear() - birthdate.getFullYear();
let months = today.getMonth() - birthdate.getMonth();
let days = today.getDate() - birthdate.getDate();
if (days < 0) {
months--;
const lastMonth = new Date(today.getFullYear(), today.getMonth(), 0);
days += lastMonth.getDate();
}
if (months < 0) {
years--;
months += 12;
}
return `${years} ans, ${months} mois, ${days} jours`;
}
console.log(calculerAgeDetaille("2000-06-20"));