Contrôles

Exemple

Dans le dossier 3-fonctions :

  • Ajoutez le fichier controle-2020.html

1
<!DOCTYPE html>
2
<html lang="fr">
3
    <head>
4
        <title>JS Fonctions Contrôle</title>
5
        <meta charset="utf-8" />
6
        <meta name="viewport" content="width=device-width, initial-scale=1" />
7
        <link
8
          href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css"
9
          rel="stylesheet"
10
          integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx"
11
          crossorigin="anonymous"
12
        />
13
        <style> main > div {background-color: #c5c5c5;}</style>
14
    </head>
15
    <body>
16
        <header class="p-2 bg-secondary text-light bg-gradient">
17
            <section>
18
                <h2>JS - Fonctions - Contrôle</h2>
19
            </section>
20
        </header>
21
22
        <main>
23
            <div class="m-3 p-3 row">
24
                <p>Saisir les variables</p>
25
                <div class="col input-group mb-3">
26
                    <span class="input-group-text">Tableau de nombres</span>
27
                    <input class="form-control" id="tableauNombres" type="text">
28
                </div>
29
                <div class="col input-group mb-3">
30
                    <span class="input-group-text">Tableau de mots</span>
31
                    <input class="form-control" id="tableauMots" type="text">
32
                </div>
33
                <div class="col-3 input-group mb-3">
34
                    <span class="input-group-text">Lettre</span>
35
                    <input class="form-control" id="lettre" type="text"/>
36
                </div>
37
                <div class="col input-group mb-3">
38
                    <span class="input-group-text">Nombre</span>
39
                    <input class="form-control" id="nombre" type="text"/>
40
                </div>
41
                <div class="col-auto">
42
                    <button class="btn btn-primary" onclick="exercice()" type="submit">Soumettre</button>
43
                </div>
44
            </div>
45
46
            <div class="m-3 p-3 row">
47
                <p>retourne un tableau contenant les mots de plus de nb lettres :
48
                    <br/>[toto,ta,tu,tutu], 3 => [toto,tutu]</p>
49
50
                <div class="col">
51
                    <input class="form-control" id="motsNb" readonly type="text">
52
                </div>
53
            </div>
54
55
            <div class="m-3 p-3 row">
56
                <p>retourne si le tableau contient que des nombres positifs :
57
                    <br/>[2, 3, 6, 5] => true
58
                    <br/>[2, -3, 6, -5] => false</p>
59
60
                <div class="col">
61
                    <input class="form-control" id="positif" readonly type="text"/>
62
                </div>
63
            </div>
64
65
            <div class="m-3 p-3 row">
66
                <p>Retourne un tableau contenant la première et la dernière lettre de chaque mots
67
                    <br/>[totu,tite,tatu,tutux] => [tu,te,tu,tx]</p>
68
                <div class="col input-group mb-3">
69
                    <input class="form-control" id="extremes" readonly type="text"/>
70
                </div>
71
            </div>
72
73
            <div class="m-3 p-3 row">
74
                <p>retourne combien de nombres pairs contient le tableau
75
                    <br/>[3,4,9,12,5] => 2</p>
76
                <div class="col input-group mb-3">
77
                    <input class="form-control" id="nbPairs" readonly type="text"/>
78
                </div>
79
            </div>
80
81
            <div class="m-3 p-3 row">
82
                <p>Retourne combien de mots du tableau commençent par lettre
83
                    <br/>[toto,titi,tata,riri], t => 3</p>
84
                <div class="col input-group mb-3">
85
                    <input class="form-control" id="nbLettre" readonly type="text">
86
                </div>
87
            </div>
88
89
            <div class="m-3 p-3 row">
90
                <p>Retourne si le tableau contient un mot de plus de nb lettres
91
                    <br/> [tototo,titi,tat,tutu], 5 => true
92
                    <br/> [tototo,titi,tat,tutu], 10 => false</p>
93
                <div class="col input-group mb-3">
94
                    <input class="form-control" id="contient" readonly type="text"/>
95
                </div>
96
            </div>
97
98
        </main>
99
100
        <footer>
101
            <nav class="navbar navbar-expand-lg navbar-light bg-secondary bg-gradient">
102
              <ul class="navbar-nav mr-auto mb-2 mb-lg-0">
103
                <li class="nav-item">
104
                  <a class="nav-link" href="https://www.univ-littoral.fr/">ULCO</a>
105
                </li>
106
                <li class="nav-item">
107
                  <a class="nav-link" href="https://fcu.univ-littoral.fr/">FCU</a>
108
                </li>
109
                <li class="nav-item">
110
                  <a class="nav-link" href="https://deust-bcmm.univ-littoral.fr/">W2D</a>
111
                </li>
112
              </ul>
113
            </nav>
114
        </footer>
115
116
        <script src="js/controle-2020.js"></script>
117
    </body>
118
</html>
  • Dans le dossier js ajoutez le fichier controle-2020.js

1
/**
2
 *  Fonctions
3
 */
4
5
// retourne un tableau contenant les mots de plus de nb lettres :
6
// motsNb(['toto','ta','tu,'tutu'], 3) => ['toto','tutu']
7
const motsNb = function (tab, nb) {
8
9
};
10
11
// retourne si le tableau contient que des nombres positifs :
12
// positif([2, 3, 6, 5]) => true
13
// positif([2, -3, 6, -5]) => false
14
const positif = function (tab) {
15
16
};
17
18
// Retourne un tableau contenant la première et la dernière lettre de chaque mots
19
// extremes(['totu','tite,'tatu','tutux']) => ['tu','te','tu','tx']
20
const extremes = function(tab) {
21
22
};
23
24
// retourne combien de nombres pairs contient le tableau
25
// nbPairs([3,4,9,12,5]) => 2
26
const nbPairs = function (tab) {
27
28
};
29
30
// Retourne combien de mots du tableau commençent par lettre
31
// nbLettre(['toto','titi,'tata','riri'], 't') => 3
32
const nbLettre = function(tab, lettre) {
33
34
};
35
36
// Retourne si le tableau contient un mot de plus de nb lettres
37
// contient(['tototo','titi,'tat','tutu'], 5) => true
38
// contient(['tototo','titi,'tat','tutu'], 10) => false
39
const contient = function(tab, nb) {
40
41
};
42
43
/**
44
 *  Lancement des fonctions
45
 */
46
47
const exercice = () => {
48
    let tableauNombres = document.querySelector('#tableauNombres').value.split(',').map((v) => +v);
49
    let tableauMots = document.querySelector('#tableauMots').value.split(',');
50
    let lettre = document.querySelector('#lettre').value[0] ?? ''; //
51
    let nombre = +document.querySelector('#nombre').value;
52
53
    // motsNb
54
    document.querySelector('#motsNb').value = motsNb(tableauMots, nombre);
55
    // positif
56
    document.querySelector('#positif').value = positif(tableauNombres);
57
    // extremes
58
    document.querySelector('#extremes').value = extremes(tableauMots);
59
    // nbPairs
60
    document.querySelector('#nbPairs').value = nbPairs(tableauNombres);
61
    // nbLettre
62
    document.querySelector('#nbLettre').value = nbLettre(tableauMots, lettre);
63
    // contient
64
    document.querySelector('#contient').value = contient(tableauMots, nombre);
65
66
}

Exercice :

  • complétez le fichier controle-2020.js :

    • Les instructions sur les fonctions se trouvent dans le fichier

Ouvrez dans votre navigateur le fichier controle-2020.html

Exemple

Dans le dossier 3-fonctions :

  • Ajoutez le fichier controle-2021.html

1
<!DOCTYPE html>
2
<html lang="fr">
3
  <head>
4
    <title>JS Fonctions Contrôle</title>
5
    <meta charset="utf-8" />
6
    <meta name="viewport" content="width=device-width, initial-scale=1" />
7
    <link
8
      href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css"
9
      rel="stylesheet"
10
      integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx"
11
      crossorigin="anonymous"
12
    />
13
    <style> main > div {background-color: #c5c5c5;}</style>
14
  </head>
15
  <body>
16
    <header class="p-2 bg-secondary text-light bg-gradient">
17
      <section>
18
        <h2>JS - Fonctions - Contrôle</h2>
19
      </section>
20
    </header>
21
22
    <main>
23
      <div class="m-3 p-3 row">
24
        <p>Saisir les variables</p>
25
        <div class="col-3 input-group mb-3">
26
          <span class="input-group-text">Tableau de nombres</span>
27
          <input type="text" id="tableauNombres" class="form-control" />
28
        </div>
29
        <div class="col input-group mb-3">
30
          <span class="input-group-text">Mot</span>
31
          <input type="text" id="mot" class="form-control" />
32
        </div>
33
        <div class="col input-group mb-3">
34
          <span class="input-group-text">Lettre</span>
35
          <input type="text" id="lettre" class="form-control" />
36
        </div>
37
        <div class="col input-group mb-3">
38
          <span class="input-group-text">Nombre1</span>
39
          <input type="text" id="nombre1" class="form-control" />
40
        </div>
41
        <div class="col input-group mb-3">
42
          <span class="input-group-text">Nombre2</span>
43
          <input type="text" id="nombre2" class="form-control" />
44
        </div>
45
        <div class="col-auto">
46
          <button type="submit" onclick="exercice()" class="btn btn-primary">
47
            Soumettre
48
          </button>
49
        </div>
50
      </div>
51
52
      <div class="m-3 p-3 row">
53
        <p>
54
          Affiche le produit des nombres pairs : produit([2, 3, 6, 5]) => 12
55
          (2*6)
56
        </p>
57
58
        <div class="col">
59
          <input type="text" id="exo1" class="form-control" readonly />
60
        </div>
61
      </div>
62
63
      <div class="m-3 p-3 row">
64
        <p>
65
          Affiche combien de nombres sont multiples de nb : multiple([12, 3, 6,
66
          8], 4) => 2 (12 et 8)
67
        </p>
68
69
        <div class="col">
70
          <input type="text" id="exo2" class="form-control" readonly />
71
        </div>
72
      </div>
73
74
      <div class="m-3 p-3 row">
75
        <p>
76
          Affiche le nombre de fois qu'une lettre apparait dans un mot :
77
          occurrence("bonjour", "o") => 2
78
        </p>
79
        <div class="col input-group mb-3">
80
          <input type="text" id="exo3" class="form-control" readonly />
81
        </div>
82
      </div>
83
84
      <div class="m-3 p-3 row">
85
        <p>
86
            Affiche un tableau contenant :
87
             Les nombres pairs multipliés par nb1.
88
             Les nombres impairs multipliés par nb2 :
89
             multiplication ([3,2,4,5], 2, 3) => [9,4,8,15]
90
        </p>
91
        <div class="col input-group mb-3">
92
          <input type="text" id="exo4" class="form-control" readonly />
93
        </div>
94
      </div>
95
96
      <div class="m-3 p-3 row">
97
        <p>
98
          Affiche les lettres du rang nb1 au rang nb2 - 1 d'un mot :
99
           slice('bonjour',2,5) => 'njo'
100
        </p>
101
        <div class="col input-group mb-3">
102
          <input type="text" id="exo5" class="form-control" readonly />
103
        </div>
104
      </div>
105
    </main>
106
107
    <footer>
108
      <nav class="navbar navbar-expand-lg navbar-light bg-secondary bg-gradient">
109
        <ul class="navbar-nav mr-auto mb-2 mb-lg-0">
110
          <li class="nav-item">
111
            <a class="nav-link" href="https://www.univ-littoral.fr/">ULCO</a>
112
          </li>
113
          <li class="nav-item">
114
            <a class="nav-link" href="https://fcu.univ-littoral.fr/">FCU</a>
115
          </li>
116
          <li class="nav-item">
117
            <a class="nav-link" href="https://deust-bcmm.univ-littoral.fr/">W2D</a>
118
          </li>
119
        </ul>
120
      </nav>
121
  </footer>
122
123
    <script src="js/controle-2021.js"></script>
124
125
  </body>
126
</html>
  • Dans le dossier js ajoutez le fichier controle-2021.js

1
/**
2
 *  Fonctions
3
 */
4
5
// retourne le produit des nombres pairs :
6
// produit([2, 3, 6, 5]) => 12 (2*6)
7
const produit = function (tab) {
8
9
};
10
11
// retourne combien de nombres sont multiples de nb :
12
// multiple([12, 3, 6, 8], 4) => 2 (12 et 8)
13
const multiple = function (tab, nb) {
14
15
};
16
17
18
// retourne le nombre de fois qu'une lettre apparait dans un mot
19
// occurrence("bonjour", "o") => 2
20
const occurrence = function (mot, lettre) {
21
22
};
23
24
// Retourne un tableau contenant
25
// Les nombres pairs multipliés par nb1
26
// Les nombres impairs multipliés par nb2
27
// multiplication ([3,2,4,5], 2, 3) => [9,4,8,15]
28
const multiplication = function (tab, nb1, nb2) {
29
30
};
31
32
// retourne les lettres du rang nb1 au rang nb2 - 1 d'un mot
33
// slice('bonjour',2,5) => 'njo'
34
const slice = function (mot, nb1, nb2) {
35
36
};
37
38
/**
39
 *  Lancement des fonctions
40
 */
41
42
const exercice = () => {
43
  let tableauNombres = document
44
    .querySelector("#tableauNombres")
45
    .value.split(",")
46
    .map((v) => +v);
47
  let mot = document.querySelector("#mot").value;
48
  let lettre = document.querySelector("#lettre").value;
49
  let nombre1 = +document.querySelector("#nombre1").value;
50
  let nombre2 = +document.querySelector("#nombre2").value;
51
52
  // produit
53
  document.querySelector("#exo1").value = produit(tableauNombres);
54
  // plusGrand
55
  document.querySelector("#exo2").value = multiple(tableauNombres, nombre1);
56
  // emplacementPairs
57
  document.querySelector("#exo3").value = occurrence(mot, lettre);
58
  // remplace
59
  document.querySelector("#exo4").value = multiplication(
60
    tableauNombres,
61
    nombre1,
62
    nombre2
63
  );
64
  // nbPremieresP
65
  document.querySelector("#exo5").value = slice(mot, nombre1, nombre2);
66
};
67

Exercice :

  • complétez le fichier controle-2021.js :

    • Les instructions sur les fonctions se trouvent dans le fichier

Ouvrez dans votre navigateur le fichier controle-2021.html