Pré-test Programmation Exercice 1
La loi de Moor stipule que la puissance des microprocesseurs double chaque 18 mois. La fréquence maximale en janvier 2006 était de 3Ghz (Giga Hertz). En juin 2007, cette puissance sera équivalente à 6Ghz. En janvier 2009, elle sera de 12 Ghz etc.
Écrire la méthode
double moor(int mois, int année)
qui retourne la puissance en Ghz des microprocesseurs correspondant à l’année et au mois fournis en paramètres. La méthode prend comme référence la puissance de 3Ghz en janvier 2006. La puissance est donnée par la formule 3 * (2 d/18), où d est la durée en mois séparant la date donnée de janvier 2006.
Exercice 2
On désire calculer l’approximation itérative suivante :
! ...
... 1
! 3 1
! 2
1
! 1
1+1 + + + + +
= n
e
où n! signifie le factoriel de n ( c’est à dire 1 * 2 * 3 * … * n).
Les itérations s’arrêtent quand l’incrément (1/n!) est inférieur à 10-12.
Écrire la méthode JAVA, public double approximation(), qui permet de calculer et retourner la valeur de e. La méthode imprime le nombre d’itérations (n).
Exercice 3
Soit la classe Plaque ayant la structure suivante et représentant une plaque d’immatriculation de véhicule :
Une plaque 123 AB 31 aura la représentation suivante :
numero = 123 lettres = “ABC”
departement = 31 p:Plaque
Écrire la méthode public boolean equals(Plaque p) qui retourne true si la plaque courante a la même valeur que p et false sinon.
Ecrire une classe TestPlaque contenant une méthode main() qui crée les deux plaques 123 AB 31 et 345 URL 75. Les deux objets créés doivent alors être comparés et le résultat (de la comparaison) affiché.
Exercice 4
On considère qu’un nombre complexe est un couple de nombres réels. Soit la classe Complexe suivante qui représente un nombre complexe (reel , imaginaire). La méthode produit() permet de multiplier le complexe par un complexe c donné. Il est à rappeler que (x1 , y1) * (x2 , y2) = (x1*x2 – y1*y2 , x2*y1 + x1*y2)
De même la méthode somme() permet d’additionner le complexe avec un complexe donné.
(x1 , y1) + (x2 , y2) = (x1+x2 , y1 + y2)
La méthode module() permet de calculer le module du nombre qui est x2+y2 class Complexe{
private double reel ;
private double imaginaire ;
public double getReel(){ return reel ;}
public double getImaginaire() { return imaginaire ;}
public void setReel(double x){reel = x ;}
public void setImaginaire(double y){imaginaire = y ;}
public Complexe produit(Complexe c){
}
public Complexe somme(Complexe c){
}
public double module(){
} }
Écrire les méthodes produit(), somme(), et module().
Exercice 5
Soit la classe Fraction
Fraction
+ n : int ; + d : int ; + Fraction() ; + Fraction(int, int) ;
+ addition(Fraction) : Fraction ; + soustraction(Fraction) : Fraction ; + multiplication(Fraction) : Fraction ; + division(Fraction) : Fraction ; + simplification() : Fraction ; + inverse() : Fraction ; - pgcd(int, int) : int + toString() : String ;
+ compareTo(Fraction f): int
La méthode compareTo(Fraction f) compare la fraction courante à la fraction f et retourne -1 si la fraction courante est plus petite que la fraction f, 1 si la fraction courante est plus grande que la fraction f, et 0 si elles sont égales.
Soit la méthode int recherche(Fraction x, Fraction [] tab). Le tableau tab est trié selon les valeurs ascendantes dans fractions. La méthode recherche la fraction x dans le tableau tab par la méthode dichotomique. Si x est retrouvé, la méthode retourne son indice. Si x n’existe pas dans tab, la méthode retourne -1.
Écrire le code Java de cette méthode.