Différences entre versions de « Js algo td2 »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 28 : Ligne 28 :
 
= Exercice 2 =
 
= Exercice 2 =
  
Ecrire une fonction ''noms(liste,lettre)'' dont les paramètres sont une liste de noms, ''liste'' et une lettre, ''lettre''.
+
Écrire une fonction ''noms(liste,lettre)'' dont les paramètres sont une liste de noms, ''liste'' et une lettre, ''lettre''.
 +
 
 +
Cette fonction créera la liste des noms de liste commençant par la lettre ''lettre'' et retournera cette liste.
  
Cette fonction créera la liste des noms de liste commen ̧cant par la lettre lettre
 
et retournera cette liste.
 
 
Exemple :
 
Exemple :
 
<source lang="javascript">
 
<source lang="javascript">
Ligne 59 : Ligne 59 :
 
</div>
 
</div>
  
= Code final =
+
= Exercice 3 =
 +
Écrire le programme qui affiche les options suivantes:
 +
*Il n’y a pas de noms commençant par la lettre 'Z'
 +
*Il y a 1 nom commençant par la lettre 'B', ce nom est Bernard
 +
*Il y a 3 noms commençant par la lettre 'L', ces noms sont Léa, Léon et Louis
 +
 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:1650px">
 +
<big>globals.js</big>
 +
<source lang="javascript" style="border:1px solid black;font-size:130%" class="mw-collapsible-content">
 +
var listenoms = new Array("Alain","Antoine", "Bernard", "Colin", "Christine","François", "Guy","Gérard", "Léa","Léon","Louis","Nathalie","Serge","Sylvie","Sylvain","Vincent");
 +
var alphabet = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
 +
</source>
 +
</div>
 +
 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:970px">
 +
<big>tri.js</big>
 +
<source lang="javascript" style="border:1px solid black;font-size:130%" class="mw-collapsible-content">
 +
function lettre_au_hasard(){
 +
    var rand = Math.round(Math.random()*25);
 +
    return alphabet[rand];
 +
}
 +
 
 +
function noms(liste,lettre){
 +
    var noms = new Array();
 +
    var i = 0;
 +
    for ( var index in liste) {
 +
        if(liste[index][0] == lettre){
 +
            noms[i] = liste[index];
 +
            i++;
 +
        }
 +
    }
 +
    return noms;
 +
}
 +
 
 +
function main(){
 +
    var lettre = lettre_au_hasard();
 +
    var names = noms(listenoms, lettre);
 +
    var result;
 +
    if(names.length == 0){
 +
        result = "Il ny a pas de noms commençant par la lettre '"+lettre+"'";
 +
    }else if(names.length == 1){
 +
        result = "Il y a 1 noms commençant par la lettre '"+lettre+"', ce nom est "+names[0];
 +
    }else{
 +
        result = "Il y a "+names.length+" noms commençant par la lettre '"+lettre+"', ces noms sont ";
 +
        for ( var index in names) {
 +
            result += names[index];
 +
            if(index < names.length-2){
 +
                result += ", ";
 +
            }else if(index < names.length-1){
 +
                result += " et ";
 +
            }
 +
        }
 +
    }
 +
    document.getElementById('body').innerHTML = result;
 +
}
 +
</source>
 +
</div>
 +
 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:600px">
 +
<big>index.html</big>
 +
<source lang="html4strict" style="border:1px solid black;font-size:130%" class="mw-collapsible-content">
 +
<!DOCTYPE html>
 +
<html>
 +
<head>
 +
<meta charset="UTF-8">
 +
<title>tri noms</title>
 +
<script type="text/javascript" src="js/globals.js"></script>
 +
<script type="text/javascript" src="js/tri.js"></script>
 +
</head>
 +
<body id="body">
 +
</body>
 +
<script type="text/javascript">
 +
main();
 +
</script>
 +
</html>
 +
</source>
 +
</div>

Version actuelle datée du 26 mars 2015 à 20:29

Introduction

Énoncé

On considère une liste de noms. Le but de l’exercice est de tirer une lettre au hasard dans l’alphabet et d’afficher les noms de la liste commençant par cette lettre.

Postulat de base

On considère le code suivant comme constituant le début du programme

var listenoms = new Array("Alain","Antoine", "Bernard", "Colin", "Christine","François", "Guy","Gérard", "Léa","Léon","Louis","Nathalie","Serge","Sylvie","Sylvain","Vincent");
var alphabet = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");

Exercice 1

Écrire une fonction lettre_au_hasard(), sans paramètre, qui retourne une lettre choisie au hasard de la liste alphabet.

Exemple : Si le nombre choisi au hasard est 2, lettre_au_hasard() renvoie la lettre C.

Solution

function lettre_au_hasard(){
    var rand = Math.round(Math.random()*25);
    return alphabet[rand];
}

Exercice 2

Écrire une fonction noms(liste,lettre) dont les paramètres sont une liste de noms, liste et une lettre, lettre.

Cette fonction créera la liste des noms de liste commençant par la lettre lettre et retournera cette liste.

Exemple :

noms(listenoms,"A")

renvoie la liste ["Alain","Antoine"]

noms(listenoms,"W")

renvoie la liste [ ] (liste vide).

Solution

function noms(liste,lettre){
    var noms = new Array();
    var i = 0;
    for ( var index in liste) {
        if(liste[index][0] == lettre){
            noms[i] = liste[index];
            i++;
        }
    }
    return noms;
}

Exercice 3

Écrire le programme qui affiche les options suivantes:

  • Il n’y a pas de noms commençant par la lettre 'Z'
  • Il y a 1 nom commençant par la lettre 'B', ce nom est Bernard
  • Il y a 3 noms commençant par la lettre 'L', ces noms sont Léa, Léon et Louis


globals.js

var listenoms = new Array("Alain","Antoine", "Bernard", "Colin", "Christine","François", "Guy","Gérard", "Léa","Léon","Louis","Nathalie","Serge","Sylvie","Sylvain","Vincent");
var alphabet = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");


tri.js

function lettre_au_hasard(){
    var rand = Math.round(Math.random()*25);
    return alphabet[rand];
}

function noms(liste,lettre){
    var noms = new Array();
    var i = 0;
    for ( var index in liste) {
        if(liste[index][0] == lettre){
            noms[i] = liste[index];
            i++;
        }
    }
    return noms;
}

function main(){
    var lettre = lettre_au_hasard();
    var names = noms(listenoms, lettre);
    var result;
    if(names.length == 0){
        result = "Il ny a pas de noms commençant par la lettre '"+lettre+"'";
    }else if(names.length == 1){
        result = "Il y a 1 noms commençant par la lettre '"+lettre+"', ce nom est "+names[0];
    }else{
        result = "Il y a "+names.length+" noms commençant par la lettre '"+lettre+"', ces noms sont ";
        for ( var index in names) {
            result += names[index];
            if(index < names.length-2){
                result += ", ";
            }else if(index < names.length-1){
                result += " et ";
            }
        }
    }
    document.getElementById('body').innerHTML = result;
}


index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>tri noms</title>
<script type="text/javascript" src="js/globals.js"></script>
<script type="text/javascript" src="js/tri.js"></script>
</head>
<body id="body">
</body>
<script type="text/javascript">
	main();
</script>
</html>