ING 1 - POO Java année 2015-2016 TD n 2 Exercice préliminaire Écrire en Java tous les exercices vus en cours : discriminant, Exercice 1 Écrire un programme qui affecte des valeurs aléatoires à un tableau de 100 entiers et calcule la moyenne des éléments du tableau. Modifier ce programme de manière à afficher la valeur minimale et maximale du tableau. // initialisayion aléatoire d'un tableau et calcul de la moyenne public class Ex0201 { int [] t = new int[100]; int somme = 0; for(int i = 0; i < t.length; i++){ t[i] = (int) (Math.random()*50); somme = somme + t[i]; System.out.print(t[i] + " "); System.out.println("\n" + (double) somme/(double) t.length); Exercice 2 : Le code suivant permet de générer des nombres aléatoires entre 0 et 99 : import java.util.random;
public class Ex0202 { public static void main(string args[]) { Random r = new Random(); int i; final int nombre = 100; for(i = 0; i < nombre; i++) System.out.println(r.nextInt(100)); Taper ce code et tester le. Modifier le pour générer 100 nombres aléatoires entre 0 et 1000. Exercice 3 : En vous inspirant du code écrit précédemment, créer un tableau de 200 valeurs entières où chaque cellule contient une valeur aléatoire entre 1 et 100. Afficher ces différentes valeurs et calculer leur moyenne. Exercice 4 : Même exercice que le précédent en calculant la plus petite et la plus grande valeur contenue dans le tableau. Exercice 5 : Écrivez une application qui simule grâce à des nombres aléatoires un lancer de deux dés. Il existe 36 combinaisons et la somme des deux dés est comprise entre 2 et 12 avec certaines sommes plus fréquentes que d autres. Simulez 36 000 lancers et stockez la fréquence de chaque somme dans un tableau. Affichez ensuite les résultats et vérifiez que les fréquences sont correctes. public class Ex0206 { // 1 tableau pour stocker les lancers de dés int [] des = new int[13]; int de1, de2; // mise à zéro des éléments du tableau for(int i = 0; i < des.length; i++) des[i] = 0; // lancement de 36000 paires de dés for(int i = 0; i < 36000; i++){ de1 = (int) (Math.random() * 6) + 1; de2 = (int) (Math.random() * 6) + 1; des[de1 + de2]++; // affichage des fréquences for(int i = 0; i < des.length; i++)
System.out.println("il y a " + des[i] + " " + i); Exercice 6 : crible d Ératosthène On désire recherche tous les nombres premiers compris entre 2 et une certaine valeur maximale n. Le crible est la structure qui contient la suite d entiers ; il est représenté dans notre cas par un tableau Java. Compléter le pseudo-code suivant et le traduire en Java. Algorithme Crible d Ératosthène initialiser le crible /* la case i du tableau contient la valeur i + 1 */ vide faux répéter /* le plus petit nombre contenu dans le crible est premier */ afficher ce nombre sur la sortie standard l enlever du crible avec tous ses multiples si le crible est vide alors vide vrai finsi jusqu à vide Exercice 7 : Écrire un algorithme réalisant le décalage d une case vers la gauche d un tableau de 10 entiers rempli aléatoirement, même question avec décalage d une case vers la droit. Note : l élément de la cellule la plus à gauche (respectivement à droite) dans le cas d un décalage à gauche (respectivement à droite) sera reporté dans la cellule la plus à droite (respectivement à gauche). import java.util.random; // Exercice sur le décalage dans un tableau public class Ex0207 { Random r = new Random(); // 1 tableau pour stocker 10 entiers int [] tab = new int[10]; int val; // valauers aléatoires entre [0,20[ pour chaque cellule du tableau et affichage for(int i = 0; i < tab.length; i++){ tab[i] = r.nextint(20); System.out.print("\n");
// décalage à gauche d'une case et affichage val = tab[0]; // sauvegarde de la valeur la plus à gauche for(int i = 1; i < tab.length; i++) tab[i - 1] = tab[i]; tab[tab.length - 1] = val; for(int i = 0; i < tab.length; i++) System.out.print("\n"); Exercice 8 : Soit un tableau T avec T(i)={0,1. Écrire un algorithme qui retourne la position i dans le tableau telle que T[i] est le début de la plus longue suite consécutive de zéros. Afficher la taille de cette suite. Exercice 9 : Soit T un tableau de 100 éléments de type entier. Remplissez le tableau avec les nombres de la suite de Fibonacci c est-à-dire : T[0] = 0 T[1] = 1 T[2] = 1 T[3] = 2 T[n] = T[n-2] + T[n-1] // Exercice sur la suite de Fibonacci public class Ex0209 { final int n = 20; // 1 tableau pour stocker n entiers int [] tab = new int[20]; // les deux premières valeurs tab[0] = 0; tab[1] = 1; // calcul de la suite for(int i = 2; i < tab.length; i++) tab[i] = tab[i - 1] + tab[i - 2]; for(int i = 0; i < tab.length; i++)
System.out.print("\n"); Exercice 10 : Écrire un algorithme qui prend un tableau d entiers en paramètres et répond true si ce tableau est trié décroissant, false sinon.