Différences entre versions de « Js algo td2 »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
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:700px">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px">
 
<big>globals.js</big>
 
<big>globals.js</big>
Ligne 92 : Ligne 98 :
 
     var lettre = lettre_au_hasard();
 
     var lettre = lettre_au_hasard();
 
     var names = noms(listenoms, lettre);
 
     var names = noms(listenoms, lettre);
+
    var result;
     var result = "La lettre au hasard: "+lettre+"<br/>";
+
     if(names.length == 0){
     result += "le tableau de noms: ";
+
        result = "Il ny a pas de noms commençant par la lettre '"+lettre+"'";
    for ( var index in names) {
+
     }else if(names.length == 1){
        result += "- "+names[index];
+
        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;
 
     document.getElementById('body').innerHTML = result;

Version du 20 mars 2014 à 06:52

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

Ecrire 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 ̧cant 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>