TP 14
TP 14
TP 14
Exercice 1 Utiliser le code ci-dessous pour écrire un fichier Exo1.java qui permet d’afficher la valeur minimale
du tableau tab. Il faut écrire que la fonction principale main .
class . . . . {
public . . . void main ( S t r i n g [ ] . . . ) {
int [ ] tab = { 3 , 9 , 2 3 , 1 , 2 9 , 1 3 4 , 1 2 , 6 6 7 , 4 3 , 2 , 1 2 0 , 3 2 , 1 2 3 } ;
int min = tab [ 0 ] ;
int a p p a r i t i o n s m i n =1;
for ( int i ; i <tab . l e n g t h ; . . . )
i f ( min==tab [ i ] ) {
a p p a r i t i o n s m i n ++; // une a p p a r i t i o n de p l u s de l a v a l e u r min
}
if ( . . . . . ) {
min=tab [ i ] ;
a p p a r i t i o n s m i n = 1 ; // 1 è r e a p p a r i t i o n de l a n o u v e l l e v a l e u r min
}
}
}
Exercice 2 Continuer le programme précédent dans un nouveau fichier Exo2.java. L’objectif est de calculer
apparitions min d’une autre manière.
Écrire d’abord une fonction int nbVals(int[] tab, int valeur) qui renvoie le nombre d’apparitions de la
valeur valeur dans le tableau tab . Utiliser cette fonction pour afficher le nombre d’apparitions de la valeur
min calculée dans le main .
Exercice 3 Écrire une classe Exo3 avec une fonction une fonction i puissance i(int i) qui renvoie ii à
l’aide d’une boucle for.
Exercice 4 Écrire une classe Exo4 avec une fonction sommePuissances(int n) qui renvoie la somme 11 +22 +
33 +. . . nn . Par exemple, pour n = 5, il faut renvoyer 12 +22 +33 +44 +55 = 1+4+27+256+3125 = 3413. N’hésitez
pas à utiliser la fonction i puissance i(int i) de l’exercice précédent pour écrire la nouvelle fonction.
Exercice 5 Écrire une classe Exo5 avec une fonction puissance parfaite(int x) qui renvoie true si x
i
peut s’écrire sous la forme x = i (ex, 256 = 44 , 3125 = 55 ) ou false sinon.
Astuce Il y a un exercice similaire dans le TP précédent, voir les corrections en-ligne pour la fonction
cubeParfait(...). Vous pouvez faire une boucle for pour parcourir les valeurs i = 1, 2, 3 . . . , x . S’il y a
un seul i tel que ii = x, alors il faut renvoyer true .
Exercice 7 Écrire un programme Exo7.java qui demande à l’utilisateur de saisir 5 valeurs ; vous pouvez vous
CNAM – Java 2
inspirez du code ci-dessous. Pour chaque saisie, il faut indiquer à l’utilisateur s’il a saisit une puissance parfaite
ou pas.
double [ ] v a l s = new double [ 5 ] ;
Scanner s c a n = new Scanner ( System . i n ) ;
System . out . p r i n t l n ( ” E n t r e r 5 v a l e u r s ” ) ;
f o r ( int i =0; i <5; i ++)
v a l s [ i ] = s c a n . nextDouble ( ) ;
Exercice 9 Écrire un programme Exo9.java avec une fonction double somme(n) qui renvoie la somme 1 +
2 + · · · + n. Continuer le programme et ajouter une deuxième fonction qui renvoie :
1 1 1 1
+ + + ...··· +
somme(1) somme(2) somme(3) somme(n)
Regardez si la valeur renvoyée par cette fonction se raproche de 2 lorsque n devient très grand.
Exercice 10 Écrire un programme Exo10.java avec une fonction double fact(n) qui calcule le produit
1 · 2 · · · · · n. Si n ≤ 0, la fonction doit renvoyer 1. Continuer le programme et ajouter une deuxième fonction qui
renvoie :
1 1 1 1 1
+ + + + ...··· +
fact(0) fact(1) fact(2) fact(3) fact(n)
Regardez si la valeur renvoyée par cette fonction se raproche de Math.E lorsque n devient très grand.
CNAM – Java 2