Copyright © 2025 Yves MARCOUX; dernière modification de cette page : 2025-06-02.

SCI6373 Programmation documentaire

Exercices après le Cours 5

À faire après le Cours 5

Yves MARCOUXEBSIUniversité de Montréal


Votre coffre à outils jusqu’à maintenant
Outil Fait quoi ? Utilisation Vu où ?
+ - * / + - × ÷ n1 + n2 § 6
+ Concaténation de chaînes ch1 + ch2 § 6
= Assignation de variable maVar = expression § 7
= Assignation d’un membre chemin.d.accès = expression § 12.1
+=, -=, *=, … Auto-réassignation d’une variable ou d’un membre maVar += expression
ou
chemin.d.accès += expression
C3
++, -- Incrémentation / décrémentation de variable ou membre à valeur numérique, retourne la nouvelle valeur ++maVar
ou
++chemin.d.accès
C3
++, -- Incrémentation / décrémentation de variable ou membre à valeur numérique, retourne l’ancienne valeur maVar++
ou
chemin.d.accès++
C3
Math.PI π (3.14159…) Math.PI § 5
== Est égal à val1 == val2 § 9.1
=== Égalité stricte (sans conversion) val1 === val2 C2
!= Est différent de val1 != val2 § 9.1
> Est plus grand que val1 > val2 § 9.1
>= Est plus grand que ou égal à val1 >= val2 § 9.1
< Est plus petit que val1 < val2 § 9.1
<= Est plus petit que ou égal à val1 <= val2 § 9.1
isNaN() Vérifie si la valeur d’une expression est NaN isNaN(expression) C3
|| OU booléen val1 || val2 § 9.2
&& ET booléen val1 || val2 § 9.2
! NON booléen !val § 9.2
? : Choix conditionnel valBool ? valSiVrai : valSiFaux § 9.3
- Inversion de signe -n § 9.4
+ Chaîne → nombre +ch § 9.4
.toFixed() n1 → chaîne avec n2 chiffres après le point n1 .toFixed(n2) § 13
Math.min() Minimum Math.min(n1, n2, …) § 10.1
Math.max() Maximum Math.max(n1, n2, …) § 10.1
Math.sqrt() Racine carrée Math.sqrt(n) § 10.1
Math.pow() Exposant Math.pow(n1, n2) § 10.1
Math.abs() Valeur absolue (valeur positive) Math.abs(n) § 12.2
Math.random() Nombre aléatoire ≥ 0 et < 1 Math.random() § 12.2
.length Longueur d’une chaîne ch.length § 10.2
.charAt() Extrait caractère en position ch.charAt(n) § 10.2
.slice() Extrait sous-chaîne ch.slice(nDéb, nFin) § 10.2
.toUpperCase() → Majuscules ch.toUpperCase() § 10.2
.toLowerCase() → Minuscules ch.toLowerCase() § 10.2
.indexOf() Position d’une sous-chaîne ch1.indexOf(ch2) § 10.2
.lastIndexOf() Dernière position d’une sous-chaîne ch1.lastIndexOf(ch2) C2
.includes() Présence d’une sous-chaîne ch1.includes(ch2) § 10.2
prompt() Affiche invite & lit une chaîne chLue = prompt(chInvite) § 10.3
alert() Affiche message alert(chMessage) § 10.3
.trim() Enlève blancs initiaux et finaux ch.trim() C3
.replace() Remplace sous-chaîne ch1 par ch2 ch.replace(ch1, ch2) C3
if / if…else Blocs conditionnels if (valBool) {
   blocSiVrai
} else {
   blocSiFaux
};
C3
while Itération d’un bloc while (valBool) {
   blocÀRépéter
};
C5
console.log() Affiche à la console console.log(val1, val2, …) C3
function Définition d’une FDP function nom(p1, p2, …) {
   bloc
};
C4
return Termine l’exécution d’une FDP et retourne une valeur return expression; C4

Structures de contrôle

Page scriptée qui accepte un bout de texte et donne le nombre de caractères différents qu’on y retrouve, puis affiche ces caractères, dans leur ordre d’apparition dans le texte. Par exemple, avec "abracadabra", on obtiendrait :

5 caractères distincts : "abrcd"

L’entrée-sortie peut se faire avec prompt() et alert(). Il n’est pas question de compter les occurrences; simplement le nombre de caractères distincts.

- Réponse
texte = prompt('Entrez un bout de texte quelconque');
trouvés = '';
i = 0;
while (i < texte.length) {
  if (!trouvés.includes(texte.charAt(i)))
    trouvés += texte.charAt(i);
  i++;
};
msg = trouvés.length + ' caractères distincts : "';
msg += trouvés + '"';
alert(msg);