Devoir de synthèse n°1 STI : tableaux en JavaScript, calcul de l'IMC, menu de navigation
Les pages se testent dans un navigateur. Les fonctions JavaScript de cette correction ont été exécutées avec les valeurs d'exemple données. Barème sur 20 points.
Exercice 1 : fonctions sur les tableaux (6 pts)
Écrire en JavaScript les trois fonctions suivantes, sans utiliser les méthodes sort, reverse, filter, map ni reduce :
- compterSup(tab, x) renvoie le nombre d'éléments du tableau tab strictement supérieurs à x (1,5 pt).
- inverse(tab) renvoie un nouveau tableau qui contient les éléments de tab dans l'ordre inverse ; tab n'est pas modifié (1,5 pt).
- trier(tab) trie le tableau tab dans l'ordre croissant avec le tri à bulles, et le renvoie (3 pts).
Exemples : compterSup([12, 8, 15, 10], 10) donne 2 ; inverse([1, 2, 3]) donne [3, 2, 1] ; trier([5, 1, 4, 2]) donne [1, 2, 4, 5].
Exercice 2 : calculer l'IMC (8 pts)
L'indice de masse corporelle (IMC) vaut poids / (taille × taille), le poids en kg et la taille en mètres. On veut une page qui le calcule.
- 1) Écrire le formulaire HTML : une zone poids, une zone taille, un bouton « Calculer » et un paragraphe resultat. Le bouton appelle la fonction calculer() (2 pts).
- 2) Écrire la fonction nombreValide(ch, min, max) qui renvoie true si la chaîne ch représente un nombre (entier ou décimal avec un point) compris entre min et max (2 pts).
- 3) Écrire la fonction imc(poids, taille) qui renvoie l'IMC arrondi à un chiffre après la virgule, et la fonction categorie(v) qui renvoie « Maigreur » si v < 18,5, « Normal » si v < 25, « Surpoids » si v < 30, sinon « Obésité » (2 pts).
- 4) Écrire la fonction calculer() : poids valide entre 20 et 300, taille valide entre 0,5 et 2,5, sinon un message d'erreur ; si tout est correct, le paragraphe affiche par exemple « IMC : 22.9 (Normal) » (2 pts).
Exercice 3 : un menu de navigation (6 pts)
Toutes les pages d'un site ont le même menu. On le fabrique en JavaScript à partir d'un tableau d'objets, par exemple : [{ texte: "Accueil", url: "index.html" }, { texte: "Cours", url: "cours.html" }].
- 1) Écrire la fonction menu(liens, page) qui renvoie le code HTML <nav> … </nav> contenant un lien <a> par objet ; le lien dont l'url est égale à page reçoit la classe actif (3 pts).
- 2) Écrire le CSS : les liens du menu sont alignés sur une ligne avec un espace de 16 pixels entre eux (flexbox), sans soulignement ; le lien actif est en gras et en blanc sur fond bleu ; un lien survolé par la souris devient orange (3 pts).
Exemple : menu(liens, "cours.html") avec le tableau ci-dessus renvoie <nav><a href="index.html">Accueil</a><a href="cours.html" class="actif">Cours</a></nav>
Correction détaillée
La correction de ce devoir est réservée aux abonnés. Elle donne l'analyse, l'algorithme en notation tunisienne, le programme Python vérifié et les erreurs fréquentes de chaque exercice. Avec un compte gratuit, tu peux ouvrir 3 corrections de ton choix.
Connecte-toi d'abord : créer un compte ou me connecter.
Tu as encore 0 correction(s) gratuite(s) à utiliser.
Il te faut un abonnement actif pour les autres corrections. Voir les tarifs ou demander un code sur WhatsApp, Instagram ou Facebook.
Mission Carthage est en période de test : le site s'ouvre avec un code d'accès. Demande ton code sur WhatsApp, Instagram ou TikTok, puis tape-le sur missioncarthage.tn.
Cette correction n'est pas encore publiée. Reviens bientôt.
Impossible de charger la correction. Vérifie ta connexion et réessaie.
Sujet original écrit pour Mission Carthage, dans le style des devoirs de synthèse de STI (technologies du web) du bac Sciences de l'informatique.
Tout le programme : Bac Sciences de l'informatique · Revoir le cours · Tous les devoirs