Remarque: Le
but n'est pas de "faire" une liste d'exercice, mais de comprendre ce
qui se passe. Les exercices doivent servir de support à la
discussion, n'hésitez
pas à poser des questions !
Objectifs de
la séance: variables, types, opérations
élémentaires sur les variables, méthodes de la
classe "Utilitaire", tests "if"...
Pour les deux premiers exercices,
feuille et crayon uniquement.
Exercice 1 - variables et types
On dispose des déclarations des variables suivantes:
int h=5, i=0, j=11, k;
double x=5.3, y, z=2.0;
String bonjour="Hello";
boolean test, vrai=true;
Les opérations suivantes sont-elles possibles ? Si oui, donnez
le type et la valeur du résultat.
Pour les exercices suivants, on
créera un nouveau projet sous Eclipse et on inclura le
package Utilitaire.jar comme en TD.
Exercice 3 - étude d'un
programme: classe Utilitaire,
test "if"
Corrigez le programme suivant et ensuite
seulement, vérifiez avec eclipse. Vous devez être
capable d'expliquer chacun des "bugs": il y en a beaucoup, passez
suffisamment de temps sur cet exercice. Le programme corrigé
doit s'exécuter selon le commentaire en dessous du "main".
public class ExerciceClinique {
/**
* Petit programme qui ne sert vraiment
à rien
*
public static void main(String[] args) {
// Ce programme tire au hasard un
entiers i et un double x
// et demande à
l'utilisateur un entier j;
// si x et y sont identiques, un
message est affiché
// si i<j, les deux doubles x
et y sont permutés
// sinon x et y sont
multipliés l'un par l'autre et le résultat
// est stocké dans x
/ dans les deux cas on
affiche i, j, x et y
string message;
double x;y==55.5,z;
int j;
Utilitaire.lireEntier("Quelle
valeur pour j ? ");
int i =
Utilitaire.tirerUnEntier(10);
x = Utilitaire.tirerUnEntier(100);
if (x=y) Utilitaire.Ecrire("x et
y sont identiques");
if (i<j)
z=y;
x=y;
y=z;
else x*=y
Message="i="+i+" et j="+j;
Utilitaire.ecrire("message");
Utilitaire.ecrire("x="+"x"+" et y="+"y");
}
}
a) Ecrire un programme qui demande à l'utilisateur les
coefficients a,b,c d'un polynôme de degré 2
sous la forme aX^2+bX+c, et qui détermine des valeurs
approchées des racines. Pour faciliter l'affichage dans la
question suivante, on se restreindra à des coefficients a,b,c
entiers.
Pour calculer une racine carrée, on utilisera la méthode
Math.sqrt().
b) Afficher le résultat sous la forme: "le polynôme
5.X^2-3.X-1 a deux racines, de valeurs:
0.835164807 et -0.2385164807" ou bien "le polynôme X^2-2.X+1 a
une seule racine, de valeur: 1".
Les problèmes à résoudre sont: 1) ne pas oublier
de cas lorsque l'on détermine les racines, et 2)
construire une
chaîne de caractère, à afficher avec
Utilitaire.ecrire, en tenant compte des signes des coefficients du
polynôme et des différentes valeurs du discriminant.
Exercice 4 - pour la route,
éventuellement à finir chez soi
Ecrire un programme qui effectue successivement les opérations
suivantes:
a) demande son nom à l'utilisateur
b) demande un entier N supérieur ou égal à 20
à l'utilisateur et teste si N est bien supérieur ou
égal à 20.
c) tire un entier au hasard entre 5 et N
d) affiche la réponse aux questions suivantes:
"cet entier
est-il divisible par 3 ?"
"cet entier
est-il divisible par 5 ?"
"cet
entier est-il à la fois divisible par 7 et par 8 ?"
"cet entier
est-il dans l'intervalle [7,15[ ?"
L'affichage devra se faire sous la forme: "Bonjour NomUtilisateur, les
réponses sont OUI, NON, OUI et NON".
Contact:
Frédéric Sur, ATER au département d'informatique.