• Aucun résultat trouvé

TP2Exercice portant sur le TD1

N/A
N/A
Protected

Academic year: 2022

Partager "TP2Exercice portant sur le TD1"

Copied!
2
0
0

Texte intégral

(1)

Module Info31 – L2 Sciences & Techniques Université de Bourgogne Dominique Michelucci

TP2

Exercice portant sur le TD1

Question 1- En utilisant les méthodes de produit et puissance matriciels du TP1, écrivez et testez les versions matricielles du calcul :

des coefficients de Bezout,

de la suite de Fibonacci.

Exercices portant sur le TP0

Question 2- Programmez et testez les algorithmes de Levenshtein, Needlemann & Wunsh, Smith &

Waterman présenté dans le cadre du TP préparatoire (pages 19 et suivantes). Les algorithmes sont disponibles dans l'énoncé du TP préparatoire.

Exercice portant sur le TD2

Question 3- Ecrivez et testez les tris de tableaux (tri naïf, tri par sélection, tri par fusion, tri rapide) ainsi que la recherche dichotomique dans un tableau trié.

Question 4- Le tri par tas (heapsort).

Il est vivement conseillé de procéder de la façon suivante :

le nombre d'éléments du tableau est de la forme 2n-1 où n est la hauteur de l'arbre binaire complet correspondant. Le premier élément est à l'indice 1 dans le tableau ;

écrivez et testez une méthode récursive d'affichage infixe de l'arbre binaire stocké dans votre tableau ;

écrivez et testez la méthode récursive de construction du tas entre un indice i et la fin du tableau,

écrivez et testez le tri proprement dit.

Question 4- Les tours de Hanoï

Ecrivez et testez l'algorithme récursif de déplacement sur les tours de Hanoï.

Exercice portant sur le TD3

Question 6- Ecrivez et testez le tri par dénombrement. L'algorithme correspondant est disponible dans l'énoncé du TD3. Vous disposez d'une classe pourDenombrement.class pour générer un tableau dont les éléments prennent un nombre limité de valeurs différentes. Vous devez passer en paramètre à l'exécution la taille du tableau à générer. L'initialisation du tableau est affichée sur écran

java pourDenombrement taille

Question 7- Ecrivez et testez la multiplication russe (décrite dans l'énoncé du TD).

Question 8- Utilisez complexiteFlops.java pour évaluer les machines sur lesquelles vous travaillez en salle de TP.

Exercice préparatoire

Question 9- Vous devez choisir de façon aléatoire les valeurs entières d'un tableau T, indicé de 1 à max, de telle sorte que chaque valeur soit unique. Vous allez procéder de la façon suivante :

pour i de 1 à max

faire répéter choisir x au hasard

jusqu'à ce que x n'existe pas dans le tableau T enregistrer le point x dans T[i]

fpour

TP1-1-

(2)

Module Info31 – L2 Sciences & Techniques Université de Bourgogne Dominique Michelucci

Vous pouvez assez facilement avoir ainsi une boucle infinie (en tirant aléatoirement des valeurs entières au hasard entre 0 et 10, vous êtes limités à 11 valeurs distinctes). Il est donc prudent de limiter le nombre d'itérations … une des méthodes possibles consiste à utiliser le mécanisme des exceptions de Java :

définissez une classe exception qui aura pour seul champ la valeur de i sur laquelle vous avez atteint le nombre maximum d'itérations autorisées : i-1 indique le nombre maximum d'élements disponibles ;

public class unicitePoints extends Exception { private int ind;

public unicitePoints (int ind) { this.ind = ind; }

public int getIndice() { return ind; }

}

vous devez indiquer que votre méthode de génération des éléments distincts est susceptible de générer une telle exception ;

public int[][] genereTdis ( int max ) throws unicitePoints

dans la boucle de génération des éléments uniques, activez cette exception lorsque le maximum d'itérations est atteint ;

public int[][] genereTdis ( int max ) throws unicitePoints { ...

for ( int i=1; i< max; i++ ) { int nbEssais=0;

do { // choix aléatoire entre 0 et maxAleat ...

nbEssais++;

if ( nbEssais > maxEssais) // dépassement { throw new unicitePoints (i); // DONC exception }

...

lorsque vous appelez la méthode genereTdis, indiquez ce qui doit être fait en cas d'exception (en l'occurrence, modifier le nombre de points, max :

try { T = genereTdis ( max );

}

catch ( unicitePoints e) { max= e.getIndice();

System.out.println("nombre d'éléments REDUIT à " + max);

}

TP1-2-

Références

Documents relatifs

Chaque élève doit choisir un personnage qu’il va présenter dans son historyflix. Vous ne pouvez pas choisir le même

Modifiez le programme de Von Koch que vous avez écrit sur la base du schéma fourni : vous devez éliminer la profondeur des appels récursifs qui figure dans la liste de paramètres

– triMax(T, max) qui utilise la méthode tasMax() pour trier le tableau T en construisant un tas binaire maximum pour trouver le plus grand élément du tableau puis en mettant ce

– définissez une classe exception qui aura pour seul champ la valeur de i sur laquelle vous avez atteint le nombre maximum d'itérations autorisées : i-1 indique le nombre

– le même graphe en version valuée (avec des valuations positives choisies de façon aléatoire) ; – un graphe construit de façon aléatoire (tirage au hasard du nombre d'arcs

[r]

Tout d’abord, γ([0, 1]) est compact donc inclus dans un disque borné D dont le complémentaire D c

Associe chaque définition au mot qui convient. a-Phagocytose 2) Processus par lequel les microbes sont détruits par certaines catégories de cellules. b-Antigène 3) Capacité