Différences entre versions de « Js algo td2 »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
Ligne 60 : Ligne 60 :
  
 
= Code final =
 
= Code final =
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px">
 +
<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:700px">
 +
<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 = "La lettre au hasard: "+lettre+"<br/>";
 +
    result += "le tableau de noms: ";
 +
    for ( var index in names) {
 +
        result += "- "+names[index];
 +
    }
 +
    document.getElementById('body').innerHTML = result;
 +
}
 +
</source>
 +
</div>
 +
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px">
 +
<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 du 20 mars 2014 à 06:40

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;
}

Code final

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 = "La lettre au hasard: "+lettre+"<br/>";
    result += "le tableau de noms: ";
    for ( var index in names) {
        result += "- "+names[index];
    }
    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>