Next: TD 4 et 5
Up: No Title
Previous: TD 2: Java, premiers
1. Recopie des arguments.
On a utilisé au TD 2 la possibilité de passer des arguments au
main d'un programme. On sait que ces arguments sont placés
dans un tableau de type String[]. Lors de la lecture les
éléments du tableau sont les chaînes de caractères de la
ligne de commande qui sont découpées par les espaces de la
ligne. La taille du tableau est donnée par le champ length. Voici un exemple:
// Programme de recopie des arguments.
class Echo {
public static void main(String[] entree) {
int i;
for ( i = 0; i < entree.length; i++ )
System.out.println(entree[i]);
} // fin de main
} // fin de la classe
Transformer ce programme pour que les longueurs de chacun de ses
éléments soient écrites au lieu de leur valeur. (Utiliser la
méthode length())
Transformer ce programme pour que les
éléments soient écrits concaténés au maximum sur des lignes
de 60 caractères au plus.
2. Statistiques.
Écrire des fonctions qui, étant donné un tableau d'entiers, font:
- la somme des éléments du tableau;
- la recherche du maximum;
- la recherche et l'impression des maxima relatifs;
- la recherche simultanée du maximum et du minimum;
- la recherche du second maximum;
- la recherche de l'élément médian.
3. Réalisation d'une fonction pseudo-aléatoire.
Pour initialiser un tableau par des données aléatoires entières
comprises entre 0 et un nombre M-1, on peut utiliser la méthode
prédéfinie Math.random() qui fournit un float entre 0
et 1. Par exemple on écrira la méthode:
static void initialisation(int M) {
for (int i = 0; i < N; ++i)
tableau[i] =(int)(Math.random() * (M-1));
}
Une façon
classique et éprouvée pour fabriquer des suites
pseudo-aléatoires est de calculer une suite du type
x[n+1]=(a x[n]+ c) mod m.
On pourra choisir
a=171, c=0, m=30269, ou encore
a=16807, c=0, m=65537 comme dans Maclib.
Écrire une méthode qui réalise cette fonction.
La modifier pour faire en sorte qu'on puisse changer la valeur de
départ.
Construire alors une fonction qui permette de tirer de façon
équiprobable un entier compris entre 1 et N.
4. Permutations aléatoires.
Construire un tableau T de N nombres entiers tirés au hasard,
de telle sorte que T[i]<= i, pour tout 0<= i<N.
Construire alors la permutation P dont le tableau précédent est
celui des inversions: T[i]= le nombre de j<i tels que P[j]>P[i].
Une autre façon de faire est de remplir le tableau P par
P[i]=i+1 puis, pour i de N-1 à 1, de tirer dans l'intervalle
[0,i] la case j du tableau dans laquelle on mettra P[i] par
échange avec P[j].
Écrire les programmes qui réalisent ces algorithmes.
Next: TD 4 et 5
Up: No Title
Previous: TD 2: Java, premiers
Jean-Marc Steyaert
2000-05-22