Soit un Objet (un tableau est un objet) appelé Tableau[] (de [0] à [n])
La sélection aléatoire d'un élément de celui-ci se fait ainsi :
alea=Math.floor(Math.random() * Tableau.length);
La Variable alea contient l'indice (dans la table) correspondant à l'élément tiré au sort.
Le Java (le JS aussi) est un langage Orienté Objet.
Donc, on utilise la propriété héritée length() de l'Objet Tableau Pour en déterminer le nombre d'éléments.
Puis on utilise la propriété intrinsèque floor() de la Classe Math pour arrondir(*) le nombre généré par random() * Tabeau.length![]()
Alain AKA Arma
(*) au nombre immédiatement inférieur, appartenant à l'ensemble N (nombres Entiers Naturels + 0 {[0 - ~[})
PS :Prenons l'Objet array().
Il possède les Propriétés suivantes :
- constructor --> Contient le constructeur de l'objet array() ;
- input --> Permet de faire une recherche dans le tableau à l'aide d'une expression régulière ;
- length --> Contient le nombre d'éléments de array() ;
- prototype --> Permet d'ajouter de nouvelles Propriétés personnalisées à l'Objet.
Il est possible de lui (appelons le Table) appliquer les Méthodes suivantes :
- Concat(tab1, tab2[, tab3,...]) Créer un tableau unique à partir de ceux donnés en paramètres ;
- Table.join() --> Renvoie une chaîne de caractères contenant tous les éléments du tableau ;
- Table.pop() --> Supprime le dernier élément du tableau et retourne sa valeur (POP en assembleur) ;
- Table.push(valeur1[, valeur2,...]) --> Ajoute un ou plusieurs éléments au tableau (PUSH en assembleur) ;
- Table.reverse() --> Inverse l'ordre des éléments du tableau ;
- Table.shift() --> Supprime le premier élément du tableau (SHIFT en assembleur) ;
- Table.slice() --> Renvoit un tableau contenant une partie (extraction) des éléments d'un tableau ;
- Table.splice() --> Ajoute/retire des éléments d'un tableau (il y a des paramètres) ;
- Table.sort() --> Pour trier les éléments d'un tableau (il y a des paramètres) ;
- Table.toString() --> Renvoit la chaîne de caractères correspondant à l'Objet Array ;
- Table.unshift() --> Pour rajouter un ou plusieurs élément au début du tableau ;
- Table.valueOf() --> Retourne la valeur de l'Objet Array auquel elle fait référence.
NB : Les Objets appartiennent à des Classes (Math [java.lang.Math] est une Classe)...
- Maths --> La classe java.lang.Math contient une série de méthodes et variables mathématiques.
La Classe Math fait partie du Package java.lang, elle est donc automatiquement importée.
(il n'est pas nécessaire de déclarer un Objet de type Math car les Méthodes sont toutes de type Static)
Bon, je sais, je vous ai saoulés...
...
[Vous devez être identifié pour voir le texte caché.]
Hors ligne
Un exemple concret (pour les membres) :
[Vous devez être identifié pour voir le texte caché.]![]()
Alain AKA Arma
<script type="text/javascript">
<!--
var pict=new Array(
"http://www.cigiema.fr/images/annuaire-du-maroc.gif", // Ne pas supprimer
// Insérez votre ligne juste derrière celle-ci
"http://www.cigiema.fr/images/gnome-corp.jpg", // Ne pas supprimer
"http://www.cigiema.fr/images/portail-du-web.gif", // Ne pas supprimer
"http://www.cigiema.fr/images/rss-news.jpg", // Ne pas supprimer
"http://www.cigiema.fr/images/pink-seo.png", // Ne pas supprimer
"http://www.cigiema.fr/images/tout-annuaire.jpg", // Ne pas supprimer
"http://www.cigiema.fr/images/deep-camping.png"); // tableau des noms d'images
var lien=new Array(
"http://www.annuaire-du-maroc.ma/", // Ne pas supprimer
// Insérez votre ligne juste derrière celle-ci
"http://www.gnomecorp.fr/", // Ne pas supprimer
"http://www.portailduweb.net/", // Ne pas supprimer
"http://www.rssnews.fr/", // Ne pas supprimer
"http://www.pink-seo.com/blog/", // Ne pas supprimer
"http://www.tout-annuaire.com/", // Ne pas supprimer
"http://www.deepcamping.com/"); // tableau des URLs de liens
var text=new Array(
"Annuaire du Maroc (Industrie - Artisanat - Tourisme)", // Ne pas supprimer
// Insérez votre ligne juste derrière celle-ci
"Gnome Corp - Référencement", // Ne pas supprimer
"Le Portail du Web - Référencement", // Ne pas supprimer
"RSSNews - Votre Page d Accueil Personnalisée", // Ne pas supprimer
"Blog Pink SEO - Référencement", // Ne pas supprimer
"Tout Annuaire (Annuaire Généraliste)", // Ne pas supprimer
"Annuaire campings et hôtellerie de plein air"); // tableau des titres ou textes alternatifs
alea=Math.floor(Math.random() * pict.length); // tirer aléatoirement un nombre > 0 et <n
document.write("<a href='"+lien[alea]+"' target='_blank' title='"+text[alea]+"'><img border='0' src='"+pict[alea]+"' width='468' height='60' alt='"+text[alea]+"'></a>");
// -->
</script>Hors ligne
Il est aussi possible de le faire en PHP...
<?php // On initialise la table (bien que ce ne soit pas particulièrement nécessaire)... $table = array(); // On remplit la table... Comme ci-dessous ou dynamiquement... $table[] = 'xxx'; // indice 0 $table[] = 'yyy'; // indice 1 $table[] = 'zzz'; // indice 2 // On tire un élément aléatoire... $result = $table[rand(0,count($table) - 1)]; // de 0 à 2 (car count($table) donne 3) ?>
Si la table a de multiples colonnes
<?php
// On initialise la table (bien que ce ne soit pas particulièrement nécessaire)...
$table = array();
// On remplit la table 3 x 3 (par exemple)...
$table[0][] = 'x1';
$table[0][] = 'x2';
$table[0][] = 'x3';
$table[1][] = 'y1';
$table[1][] = 'y2';
$table[1][] = 'y3';
$table[2][] = 'z1';
$table[2][] = 'z2';
$table[2][] = 'z3';
// OU BIEN
$table[] = ('x1','x2','x3'); // indices 0-0, 0-1, 0-2
$table[] = ('y1','y2','y3'); // indices 1-0, 1-1, 1-2
$table[] = ('z1','z2','z3'); // indices 2-0, 2-1, 2-2
// PUIS
$aleat = rand(0,count($table) - 1); // ne seront normalement comptées que les lignes
$result_1 = $table[$aleat][0];
$result_2 = $table[$aleat][1];
$result_3 = $table[$aleat][2];
// Si on veut tout dans la même variable, éléments séparés par des virgules
$result = implode(', ',$table[$aleat]);
// OU sous forme de table
$result = $table[$aleat]
// remplacer par print_r($table[$aleat]); pour afficher le tableau,
// puis reset($table[$aleat]); pour réinitialiser le pointeur du tableau
?>![]()
Alain AKA Arma
NB : Depuis PHP 4, inutile d'initialiser le générateur avec la fonction srand(),
print_r() affiche des informations lisibles à propos d'une variable.
PS : Ces codes n'ont pas été testés, je préfère utiliser le JS... Mais ils devraient fonctionner...
Hors ligne
|
© 2006-2012 / A. G.☺ CiGi€M@®, 1997-2012 |
|
Reproduction totale ou partielle strictement interdite Contact : / |