JAVA année 2017 CP 2 – série n°2 Exercice 1

publicité
JAVA année 2017
CP 2 – série n°2
Exercices sur les méthodes statiques et les tableaux
En JAVA une fonction est une méthode STATIC.
La signature d'une méthode static en java est la suivante :
public static typeDuRésultat NomDeLaMéthode (liste des paramètres)
{
déclarations de variables (locales à cette méthode)
instructions de résolution du probléme
retourne valeurRésultat; //au moins 1 fois
}
La méthode est dite « static » car elle ne s'applique pas sur des objets. Les méthodes static ne sont
pas les méthodes les plus utilisées en Java. Les méthodes static sont souvent utilisées comme des
fonctions outils. Lorsqu'elles sont déclarées dans un autre fichier que le fichier qui l'utilise, on
utilise le nom du fichier qui contient la méthode comme préfixe. Par exemple, la méthode Math.sqrt
indique que la fonction static sqrt est dans le fichier Math.
Exercice 1
La méthode des rectangles permet d’approximer l’intégrale d’une fonction f continue. Cette
méthode consiste à découper en n intervalles [ai, ai+1], de longueur identique m, l’intervalle [a,b] sur
lequel on veut intégrer la fonction f, puis à additionner l’aire des rectangles de hauteur
a+a
f ( i i + 1 ) et de largeur m. L’aire A, approximation de l’intégrale f sur l’intervalle [a,b] aura
2
pour valeur :
n
A=∑ m× f (
i=1
Illustration :
a i+ ai+ 1
)
2
Programmez en Java une fonction (méthode static) qui calcule l’intégrale de la fonction cosinus sur
un intervalle [a,b]. Testez votre méthode, par exemple, sur l’intervalle [0,/2].
Exercice 2
Écrire une classe DateEntiere qui comprend un ensemble de méthodes statiques permettant la
manipulation de dates au format entier (jour sur 2 chiffres 01 à 31, mois sur deux chiffres 01 à 12 et
année sur 4 chiffres).
•
DateValide qui retourne vrai si la chaîne passée en paramètre est valide. Il faudra prendre en
compte le problème du maximum des jours de mois à 30,3= 31, 28 ou 29 jours). Vous
pouvez consulter la classe String
https://docs.oracle.com/javase/8/docs/api/java/lang/String.html pour apprendre comment
récupérer une sous-chaîne de caractère. La classe Integer
https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html comporte des méthodes
statiques permettant de transformer un String en entier ;
•
public static int getJour(String s) qui retourne le numéro entier de la date si elle au format
entier de date, sinon retourne -1 ;
•
public static int getMois(String s) et static int getAnnée(String s) même chose pour le
mois et l'année ;
•
public static String enLettres(String s) retourne la date sous forme textuelle jour mois en
toute lettre et année en chiffre, retourne la chaîne vide si la date n'est pas au format ;
•
écrire une classe MainDate qui demande à l'utilisateur d'entrer une date et affiche cette date
en toute lettre si elle est valide ou affiche date invalide dans le cas contraire (cf ci-dessous)
java MainDate
Entrez une date 14022017
14 février 2017
Entrez une date 34012017
La date 34012017 est invalide
Exercice 3 - Classe java.util.Arrays
Écrivez une classe TestArrays dont la méthode main
1.crée un tableau de 150 nombres entiers et le remplit avec des nombres tirés au hasard entre
1 et 200 (pensez à utiliser la classe Random) ;
2.affiche les valeurs du tableau en utilisant la classe Arrays ;
3.trie ce tableau par ordre croissant en utilisant la classe Arrays ;
4.affiche à nouveau les valeurs du tableau (pour vérifier le tri) ;
5.tire 20 nombres au hasard et indique s'ils appartiennent au tableau (et en ce cas, donne la
position dans le tableau) en utilisant la recherche dichotomique (voir classe Arrays).
Exercice 4
Écrire une classe TestTableau sont la méthode main :
• crée un tableau de 100 nombres entiers et le remplit avec des valeurs aléatoires entre 100 et
200 ;
• affiche les valeurs du tableau (classe Arrays)
• affiche la plus petite valeur du tableau, la plus grande et la moyenne des éléments du tableau
• affiche l’élément le plus fréquent dans le tableau et affiche sa fréquence d’apparition
Exercice 5
Écrire un programme permettant de représenter un histogramme sur un écran (cf. la figure cidessous) à partir d'un tableau H de 10 entiers.
Vous commencerez par générer un tableau de 10 entiers dont chaque élément prend une valeu
comprise entre -6 et +6.
*
*
*
*
*
+ + + + + *
* *
*
*
*
*
*
*
* *
* *
+ + + +
* *
*
Chaque colonne i contient un nombre d'étoiles égal à la valeur de H[i]. L'axe des abscisses sera
représenté comme une ligne de '+' mais si H[i] = 0, on affichera une '*'.
H -1 -3 2 -2 3 0 4 2 -2 -1
Remarque : on fait l'hypothèse que le tableau H est compatible avec la taille de l'écran.
Téléchargement