Objectifs : Le but de ce TP est :
Les exercices proposés dans ces TP sont indépendants. Ils sont présentés dans un ordre de complexité croissante.
Afin d'organiser correctements vos fichiers, nous vous recommandons de respecter la règle suivante lors des TP de programmation : pour chaque TP créez un répertoire TPioù i est le numero du TP. C'est dans ce répertoire que vous devrez ranger les programmes que vous écrirez lors de ce TP.
Par ailleurs, rappelez vous que tout programme source JAVA devra avoir comme suffixe .java. La version compilée d'un programme JAVA a le même nom que le programme source correspondant mais son suffixe est .class
exemple : programme source Montp1.java , programme
compilé Montp1.class (obtenu par la commande javac
Montp1.java) , exécution : java Montpt1
Thème 1 : expressions / instructions conditionnelles
Exercice 1 : Conversion de températures
En utilisant la formule C = (5/9)(F-32) écrire un programme Degres.java en langage JAVA qui lit une température exprimée en degrés Fahrenheit et affiche sa valeur en degrés centigrades ou degrés Celsius.
exemples d'exécution du programme :
C:\JAVA\TP1>java Degres
donnez une temperature en Fahrenheit : O.O
cette temperature equivaut a -17.8 degres Celsius
C:\JAVA\TP1>java Degres
donnez une temperature en Fahrenheit : 60.0
cette temperature equivaut a 15.6 degre Celsius
C:\JAVA\TP1>
Exercice 2 : Conversion de durées
Ecrire un programme Hjms.java en langage JAVA qui pour un nombre de secondes donné calcule et affiche son équivalent en nombre de jours, d?heures, de minutes et de secondes.
exemples d'exécution du programme :
C:\JAVA\TP1>java Hjms
donnez une durée en secondes : 3621
cette durée équivaut à 0 jours 1 heures 0
minutes 21 secondes
C:\JAVA\TP1>java Hjms
donnez une durée en secondes : 567231
cette durée équivaut à 6 jours 13 heures 33
minutes et 51 secondes
C:\JAVA\TP1>
Exercice 3 : Déterminer de l?appartenance d?un point à
une couronne
Ecrire un programme Courronne.java en langage JAVA qui pour un pour un point du plan donné détermine si ce point se trouve ou non à l?intérieur de la couronne de centre l?origine et définie par la donnée de son rayon extérieur r1 et son rayon intérieur r2 | ![]() |
Les deux exercices sont indépendants. Chacun comporte deux parties (a) et b)), ne traiter le supplément b) que lorsque la première partie des deux exercices aura été correctement effectuée.
Exercice 1 : Calcul de X^n
a) Ecrire un programme JAVA Puissance1.java permettant de calculer et d'afficher la valeur de X^n (lire X puissance n, HTML ne permet pas dans cette version d'écrire des exposants!!), où X et n sont respectivement un réel et un entier introduits au clavier.
Pour effectuer ce calcul on ne fera pas appel aux fonctions de la classe
Math (pow ou exp et log), mais on utilisera
des instructions itératives (for, while ou do
while). Le programme devra permettre de traiter tous les cas possibles
: n = 0, n > 0 et n < 0 avec X réel négatif, positif ou
nul. Rappelons que :
|
On pourra organiser le calcul de la façon suivante :
|
exemple d?exécution :
eudoxe%java Puissance2
x = 2.0
n = 3.0
x^n = 8.0
voulez-vous faire un autre calcul O/N : o
x = 3.5
n = -3
x^n = 0.0233236151
voulez-vous faire un autre calcul O/N : n
eudoxe%
Exercice 2 : Valeur approchée de la racine carrée d'un nombre réel positif
On considère un nombre réel positif A ; on sait que la suite (un) n=0,1,2,... définie par la donnée d'un réel u0 positif et par la relation de récurrence un = (un-1 + A / un-1) * 0,5 (pour n > 0) converge vers la racine carrée de A . On suppose le nombre A compris entre 1 et 100, et on prend u0 = A / 2.
Pour obtenir une valeur approchée de racine carrée de A, on cherche le premier terme un tel que | un^2 - A | < E-5 . Le nombre un trouvé est une valeur approchée de racine carrée de A ( en effet | un^2 - A | < E-5 implique que | un- rac(A) | < E-5 / ( un+ rac(A) où rac(A) correspond à la racine carrée de A (et oui, HTML ne supporte pas hélas les symbôles mathématiques, du moins dans la version lue par netscape 2.01b utilisée au DSU!)).
a) Ecrire un programme JAVA Raca1.java qui permet
Entrer un nombre A entre 1 et 100: 19.23
Approximations successives :
|
Entrer un nombre A entre 1 et 100: 41.569
Approximations successives :
|
- définir une constante : static final double EPS = 1E-5;
- utiliser une boucle tant que :
while (. . . . . . . >= EPS)
{ . . . . . . . . . }
b) à partir du programme Raca1.java écrire un programme Raca2.java qui vérifie que le nombre introduit au clavier est bien un nombre positif supérieur à 1, et dans le cas contraire affiche un message d?erreur et redemande une nouvelle valeur à l?utilisateur.