1 Institut Supérieur des Science Appliquées Année universitaire : 2019-2020 Et
1 Institut Supérieur des Science Appliquées Année universitaire : 2019-2020 Et de Technologie de Sousse Matière : Programmation Orientée Objet 2 (Java) Enseignant : Dr. Majd BELLAAJ Filière : Deuxième Année Cycle Préparatoire TD 9 : Exercices de révision Exercice 1 Implémentez en Java un algorithme vous permettant de permuter les valeurs de deux variables Exemple d'exécution : Entrez x: 1 Entrez y: 2 Avant permutation : x : 1 y : 2 Après permutation : x : 2 y : 1 Exercice 2 Le programme Portee.java ci-dessous sert à illustrer un point important qui concerne la portée des variables dans un programme. Sans exécuter le programme, indiquez tout ce que le programme affichera à l'écran lors de l'exécution. class Portee { public static void main(String[] args) { int x = 11, y = 22; System.out.println("1. x = " + x); System.out.println("2. y = " + y); System.out.println(); calculer1(x, y); System.out.println("5. x = " + x); System.out.println("6. y = " + y); 2 System.out.println(); calculer2(x, y); System.out.println("11. x = " + x); System.out.println("12. y = " + y); System.out.println(); int [] object = {5}; System.out.println("13. object [0] = " + object [0]); calculer3(object); System.out.println("15. object [0] = " + object [0]); } static void calculer1(int x, int y) { x = 878; y++; System.out.println("3. x = " + x); System.out.println("4. y = " + y); } static void calculer2(int a, int b) { int x = 33; int y = 44; a = 2 * x; b = 2 * y; System.out.println("7. x = " + x); System.out.println("8. y = " + y); System.out.println("9. a = " + a); System.out.println("10. b = " + b); } static void calculer3(int [] object) { object [0] = 37; System.out.println("14. object [0] = " + object [0]); } } Exercice 3 1. Le programme Operation.java suivant sert à illustrer un point important qui concerne le passage de paramètres. Sans exécuter le programme, indiquez tout ce que le programme affichera à l'écran lors de l'exécution. 2. Corriger le codage du programme Operation.java de sorte à ce que l'exécution du programme affiche : before change 50 after change 150 3 class Operation{ int data=50; void change(int data){ data=data+100; } public static void main(String args[]){ Operation op=new Operation(); System.out.println("before change "+op.data); op.change(500); System.out.println("after change "+op.data); } } Exercice 4 Compilez et exécutez les deux programmes Moyenne1.java et Moyenne2.java. Expliquez pourquoi la valeur retournée est différente d'un programme à l'autre. Moyenne1.java class Moyenne1{ public static void main(String[] args) { double noteProgrammation = 6.0; double noteAlgebre = 5.0; System.out.println("Ma moyenne est " + (noteProgrammation++ + noteAlgebre) / 2.0 ); System.out.println(noteProgrammation); } } Moyenne2.java class Moyenne2{ public static void main(String[] args) { double noteProgrammation = 6.0; double noteAlgebre = 5.0; System.out.println("Ma moyenne est " + (++noteProgrammation + noteAlgebre) / 2.0 ); System.out.println(noteProgrammation); } } 4 Exercice 5 Indiquez l'affichage du programme AfficherCouleur ci-dessous. AfficherCouleur.java class AfficherCouleur { public static void main(String[] args) { FigureGeometrique f1, f2, f3, f4; f1 = new FigureGeometrique("Rouge", "Noir"); f2 = new FigureGeometrique("Bleu", "Blanc"); f3 = new FigureGeometrique(); f4 = new FigureGeometrique("Violet", "Orange"); f2.changerCouleurContour("Noir"); System.out.println(f3.couleurSurface); System.out.println(f3.couleurContour); System.out.println(f2.couleurContour); System.out.println(FigureGeometrique.nbFigures); System.out.println(f2.nbFigures); System.out.println(f1.nbFigContNoir); System.out.println(f4.nbFigSurfBlanc); } } class FigureGeometrique { String couleurContour = "Jaune"; String couleurSurface = "Blanc"; static int nbFigures = 0; static int nbFigContNoir = 0; static int nbFigSurfBlanc = 0; FigureGeometrique() { } FigureGeometrique(String coulSurf, String coulCont) { couleurSurface = coulSurf; couleurContour = coulCont; if (couleurContour.equals("Noir")) { nbFigContNoir++; } if (couleurSurface.equals("Blanc")) { nbFigSurfBlanc++; } nbFigures++; } void changerCouleurContour(String couleur) { couleurContour = couleur; } void changerCouleurSurface(String couleur) { couleurSurface = couleur; } } 5 Exercice 6 Selon la norme Unicode, les lettres majuscules A..Z ont les codes 65 à 90 et les lettres minuscules a..z ont les codes 97 à 122: LA NORME UNICODE ------------------------------------------------------------------ 65 = A 79 = O 97 = a 111 = o 66 = B 80 = P 98 = b 112 = p 67 = C 81 = Q 99 = c 113 = q 68 = D 82 = R 100 = d 114 = r 69 = E 83 = S 101 = e 115 = s 70 = F 84 = T 102 = f 116 = t 71 = G 85 = U 103 = g 117 = u 72 = H 86 = V 104 = h 118 = v 73 = I 87 = W 105 = i 119 = w 74 = J 88 = X 106 = j 120 = x 75 = K 89 = Y 107 = k 121 = y 76 = L 90 = Z 108 = l 122 = z 77 = M 109 = m 78 = N 110 = n ------------------------------------------------------------------- Ecrivez un programme Conversion.java qui demande à l'utilisateur d'entrer une seule lettre A..Z ou a..z au clavier (utilisez par exemple l'instruction scanner.next().charAt(0)). Le programme affiche un message d'erreur si le caractère entré ne fait pas partie des lettres demandées. Sinon, s'il s'agit d'une lettre minuscule, la version majuscule de la lettre est affichée. Si au contraire il s'agit d'une lettre majuscule, la version minuscule de la lettre est affichée. Exemples d'exécution: Entrez une seule lettre A..Z ou a..z : A Version minuscule : a Entrez une seule lettre A..Z ou a..z : b Version majuscule : B Entrez une seule lettre A..Z ou a..z : * Caractère non valable 6 Exercice 7 Vérifiez que vous savez convertir entre les codes et les caractères de la norme Unicode en écrivant un petit programme, par exemple intitulé Codes.java, avec le fonctionnement suivant: Afficher l'Unicode correspondant aux caractères suivants: * 9 W Afficher le caractère correspondant aux Unicodes suivants: 34 65 123 Exemple d'exécution (sans les réponses): Unicode de * : Unicode de 9 : Unicode de W : Caractère correspondant à l'Unicode 34 : Caractère correspondant à l'Unicode 65 : Caractère correspondant à l'Unicode 123 : Exercice 8 Indiquez, pour chaque affectation dans le programme Transtypage ci-dessous, si l'affectation est possible et, le cas échéant, la valeur exacte qui sera affectée à la variable. class Transtypage { public static void main(String[] args) { int n1 = 2; double r1 = 2.7; int n2 = 2.7; double r2 = 5; int n3 = (int) 5.6; double r3 = 5.6; int n4 = 9; double r4 = (double) n4; double r5 = (int) r4; int n5 = 19 / 4; double r6 = 5.0; int n6 = n5 / r5; int n7 = (int) (n5 / r5); double r7 = 19.0 / r6; double r8 = 15.0 / n3; double r9 = 19 / 4; double r10 = (double) (19 / 4); double r11 = (double) 19 / (double) 4; } } 7 Exercice 9 Écrivez un petit programme Java, Degre3.java, vous permettant d'évaluer un polynôme du 3ème degré de la forme: ((a+b)/2)x3 + (a+b)2x2 + a + b + c Exemple d'exécution: Entrez a (int) : 1 Entrez b (int) : 2 Entrez c (int) : 3 Entrez x (double) : 3.5 La valeur du polynôme est : 180.5625 Exercice 10 Chacune des méthodes methode1 à methode8 dans le programme ErreursMethodes.java ci- dessous contient une seule erreur syntaxique. Il s'agit d'erreurs liées à l'utilisation des paramètres, des variables ou de la valeur retournée par la méthode. Il n'y pas d'erreurs dans la méthode main, ni dans la méthode methodeSansErreurs. Trouvez et corrigez les erreurs ! class ErreursMethodes { public static void main (String[] args) { int i1 = methode1(); int i2 = methode2(); int i3 = methode3(); int i4 = methode4(); methode5(); methode6(); methode7(); methode8(); } static int methode1 { int a = 0; System.out.println("Méthode 1"); return a; } static int methode2 () { int a = 0; i1 = 10; System.out.println("Méthode 2"); 8 return a; } static int methode3 () { int a = 0; System.out.println("Méthode 3"); } static int methode4 () { String a = "0"; System.out.println("Méthode 4"); return a; } static void methode5 () { double a = 0; System.out.println("Méthode 5"); return a; } static methode6 () { double a = 0; System.out.println("Méthode 6"); return a; } static void methode7 () { int a = 0; double b = 5.5; methodeSansErreur(a); System.out.println("Méthode 7"); } static void methode8 () { int a = 0; String b = "5.5"; methodeSansErreur(a, b); System.out.println("Méthode 8"); } static void methodeSansErreur (int a, double b) { // Cette méthode ne fait rien du tout } } 9 Exercice 11 On cherche ici à écrire un programme MulMat.java qui calcule la multiplication de deux matrices. Vous utiliserez pour représenter la matrice un tableau de tableaux de double. Déclarations : Dans la méthode main, déclarez deux matrices mat1 et mat2. Traitements : Lire depuis le clavier les éléments de chacune des deux matrices (après avoir demandé leurs dimensions). Multiplier les deux matrices et stocker le résultat dans une nouvelle matrice prod. Afficher le contenu de cette nouvelle matrice ligne par ligne. Méthodes : Lire depuis le clavier les dimensions lignes (nombre de lignes) et colonnes (nombre de colonnes) de la première matrice mat1 Lire uploads/s3/ td-9-exercices-de-revision.pdf
Documents similaires
-
22
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 15, 2021
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.7203MB