|
Université
de la Polynésie Française |
Examen
Algo et programmation Java Lic Prof.
Techni.Com Année
2002-03 Jeudi 12
Décembre |
1.Vous disposez de une heure trente,
2.vos documents personnels sont autorisés,
3.le barème est donné à titre indicatif et est susceptible d'être modifié.
Il s’agit bien de faire « disparaître » l’élément en question et donc d’obtenir une liste de taille longueur –1.
A partir d'une liste d'entiers quelconque, on souhaite calculer la plus grande suite de nombres pairs contenue dans cette liste. Il s’agit simplement de rendre la taille de la plus grande suite d’entiers pairs trouvée. Les exemples ci-dessous sont probablement plus explicites qu’un long discours.
Exemples :
1. liste = 3, 4, 6, 8, 7, 18, 20, 21, 30 le résultat est 3 car la plus longue suite de pairs est : 4, 6, 8
2. liste = 12, 3, 67, 21, 44, 66, 8, 12 le résultat est 4 car la plus longue suite de pairs est : 44, 66, 8, 12
3. liste = 5, 7, 6, 3, 9, 10 le résultat est 1 car la plus longue suite de pairs est : 6 ou 10
4. liste = 5, 7, 11, 3, 9 le résultat est 0 car il n'y a aucun nombre pair
Soit l’algorithme suivant :
|
mystere[0] <== tab[0] |
|
lmystere <== 1 |
|
Répéter pour i allant de 1 à longueur -1 |
|
/* ?????????? */ |
|
j <== 0 |
|
tant que (tab[i] > mystere[j]) ET (j < lmystere) |
|
j <== j + 1 |
|
fin_tant_que |
|
/* ?????????? */ |
|
Répéter pour k allant de lmystere -1 à j par pas de -1 |
|
mystere[k+1] <== mystere[k] |
|
fin_de_répéter |
|
mystere[j] <== tab[i] |
|
lmystere <== lmystere + 1 |
|
fin_de_répéter |
Si tab vaut : 8 12 6 7 14 9 23 et longueur = 7
Donner étape par étape la liste mystere.
La classe ListeEntier ci-dessous est supposée connue et dispose des attributs et méthodes expliqués par les commentaires. Le code Java des méthodes importe peu.
A partir de cette classe, il vous est demandé de :
Remarque : tab et mystere sont deux instances de ListeEntier.
import java.io.*;
import java.util.Random;
/** Une classe de manipulation des listes d'entiers
* @author Patrick Capolsini - 2000
* @version 1.0
*/
public
class ListeEntier
{ /* Les éléments de la liste */
int elementsListe[];
/* Initialisation du générateur de nombres aléatoires */
private static Random hasard = new
Random();
/* Constructeur à partir de la seule taille de la liste à créer */
ListeEntier(int taille)
/** Constructeur (surcharge) à partir d'un tableau de String */
ListeEntier(String elem[])
/* Retourne la taille de la liste */
public int getDim()
/* Affichage des éléments de la liste */
public void affichage()
/* Tirage aléatoire des éléments d'une liste */
public void randomListe()
/* Tirage aléatoire des éléments d'une liste */
/* entiermax est la valeur maximum des entiers à tirer */
public void randomListe(int entiermax)
}