Exercices d`algorithmique et Java

publicité
Exercices d’algorithmique et Java
1ère Informatique IPL
Quelques premiers exercices sur les tables :
1. Créez une classe Patient. Chaque patient possède comme champs un numéro, un nom, un
sexe, un poids (exprimé en kilo), une taille (exprimée en mètre).
1.1. Implémentez un constructeur où les différents champs sont fournis en paramètre.
1.2. Ecrivez les méthodes get().
1.3. Ecrivez la méthode toString().
1.4. Ecrivez une méthode qui calcule l’indice de Quételet du patient courant. L’indice de
Quételet est renvoyé sous forme d’un réel avec une décimale.
L’indice de Quételet, utilisé par les diététiciens, est révélateur de l’état d’une personne.
En fonction de l’indice de Quételet obtenu, on peut classer les personnes de la façon suivante :
Grade 0
Q
strictement inférieur à 18
(maigre)
Grade 1
Q
18 – 20.4
(mince)
Grade 2
Q
20.5 - 24.9
(normal)
Grade 3
Q
25 – 29.9
(en embonpoint)
Grade 4
Q
30 – 39.9
(gros)
Grade 5
Q
supérieur à 40
(obèse)
Voici comment est calculé cet indice :
Q = P / T2
T est la taille de la personne exprimée en mètre et P est le poids de la personne exprimé en kg.
1.5. Ecrivez une méthode grade() qui renvoie le grade du patient courant.
1.6. Ecrivez une méthode qui calcule le poids idéal du patient courant. Elle renvoie ce poids
sous forme d'un entier.
On calcule le poids idéal de l’homme selon la règle très simpliste qui dit que le poids
idéal pour un homme correspond à la partie décimale de la taille exprimée en mètres
multipliée par 100. Pour les femmes on retire 10 à ce nombre obtenu.
Par exemple, un homme qui mesure 1m78 devrait peser 78kg. Par contre, une femme de cette
taille devrait peser 68kg. Attention, un homme de 2 mètres devrait bien sûr peser 100 kg!
1.7. Ecrivez une méthode pourcentageExcèsDéficit() qui calcule le pourcentage de déficit ou
d’excès de poids du patient courant. Le pourcentage (qui peut être positif dans le cas d'un
excès de poids ou négatif dans le cas d’un déficit de poids) sera renvoyé sous forme d’un
entier.
% = (poids réel – poids idéal)/poids idéal *100
1.8. Ecrivez une méthode compareTo(Patient autrePatient) qui renvoie –1,0 ou 1 selon que
le patient courant est plus proche de son poids idéal que l’autrePatient.
2. Ecrivez un programme qui lit le numéro, le sexe, le nom, le poids et la taille de plusieurs
patients et affiche pour chacun de ceux-ci son indice de Quételet, son état, son poids idéal,
son pourcentage d’excès/déficit. A la fin le programme affiche le nombre de patients
rencontrés dans chaque grade.
Le programme ne connaît pas au départ le nombre de patients à traiter. Après chaque patient
traité, il demande s’il y en a un autre via un dialogue du style « encore un patient ? (o/n) ».
Le programme ne doit pas tester la validité de ses entrées.
3. Reprenez la classe Date que vous avez créée la semaine dernière.
3.1. Ajoutez les deux tableaux suivants :
private int[] tableau1 = {0,31,29,31,30,31,30,31,31,30,31,30,31} ;
private int[] tableau2 = {0,31,60,91,121,152,182,213,244,274,305,335,366} ;
3.2. Ajoutez un constructeur à deux paramètres (le jour et le mois).
3.3. Modifiez la méthode toString().
3.4. Ecrivez une méthode dateValide(int jour, int mois).
3.5. Vérifiez si les autres méthodes demandent des modifications et relancez vos programmes
« vidéothèque » et « Thalys » avec cette classe modifiée !
4. Apportez les modifications nécessaires à la classe Date pour que celle-ci puisse manipuler
n’importe quelle date supérieure au 1/1/1900.
On numérotera les jours à partir du 1/1/1900. Donc, le numéro du jour sera le nombre de jours
écoulés depuis le 1/1/1900 + 1!
Le 1/1/1900 fût un lundi.
Une année est bissextile si son nombre est divisible par 4 mais pas par 100 ou si elle est
divisible par 400!
Téléchargement