corrigesExoJava
Corrigés Introduction Naissance d’un programme Exercice 1-1: Apprendre à décomposer une tâche en sous-tâches distinctes Corrigé a. Objets nécessaires : 1 tableau, 1 clou, 2 pointes, 1 ficelle, 1 marteau, 1 crayon, 1 mètre. b. Liste des opérations : Mesurer le mur en h hauteur ; Calculer le centre du or 108 le tableau en ur du tableau ; Tracer une marque au centre du mur, sur le cadre (face arrière) du tableau ; Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ; Poser le marteau, le tableau, le mètre, le crayon ; Enfoncer la pointe, le clou ; Accrocher la ficelle à la pointe, la ficelle au clou ;
Ajuster le tableau ; Liste ordonnée des opérations : prendre le mètre Mesurer le mur en hauteur ; public static void main(String C] argument) { double a; Scanner lectureClavier = new Scanner(System. in); une valeur : « ) ; a – lectureClavier. nextDouble(); avez entre : » + a) ; Repérez les instructions définissant la fonction main() : voir tracé orange sur le programme cidessus. Celles délimitant la classe Premier : voir tracé vert sur le programme ci-dessus.
Recherchez les instructions d’affichage : voir tracé jaune sur le L’instruction double pour rôle de réserver une case mémoire afin d’y stocker une valeur éelle de double précision. Cette case à pour nom d’appel a. d. Exécution du programme : Le message Entrer une valeur s’affiche à l’écran ; L’utilisateur tape 10 au clavier et, puis sur la touche Entrée ; Le message Vous avez entre : 10 s’affiche à l’écran Exercice 1-3 : Observer et comprendre la structure d’un programme Java import java. til. *; public class Rectangle{ // Nom à la classe public static void main(String C] argument){ // Déclaration des variables double surface, largeur, longueur ; // Afficher un message à l’écran System. out. print(i’Valeur de la longueur : « ); // Lire au clavier une valeur ongueur lectureClavier. nextDouble(); de la largeur : // Llre au clavier une valeur largeur — lectureClavier. nextDouble(); // Calculer le surface du rectangle surface = largeur * longueur; // Afficher le résultat System. out. rint(« Surface: » + surface); Exercice 1-1 : Repérer les instructions de déclaratlon, 4 observer la syntaxe d’une instruction Partie 1 : Outils et techniques de base Chapitre 1 : Stocker une information Exercice 1-1 : Repérer les instructions de déclaration, observer la syntaxe d’une instruction Déclaration de trois entiers nommés i, Opération non valide, pas j, valeur ; auche de l’affectation ; 0-1 b 2. Ainsi, grâce à ce calcul, les valeurs de a et b sont échangées sans utiliser de variable intermédiaire.
Exercice 1-8 : Calculer des expressions mixtes i=16 i est un entier, le résultat de la division est donc un entier ; 4 est le reste de la division entière de 100 par 6 5 est le reste de la division entière de 5 par 8 ; . -3,0) 7. 0 (5 5-4 + O. 5f il = (int)fl (int) 3. 5f i2 (int) f2 (int) 4. 0f 3. 5f+ o. 5f 4. 0f Chapitre 2 : Communiquer une information Exercice 2- 1 : Comprendre les opérations de sortie Vous avez entre : 223 pour un montant de 335. 5 le total vaut : 223135 Apres reduction de 20. 5 vous gagnez : 68. Euros La variable R = RetT=T Exercice 2Q : Comprendre les opérations de sortie = + x + » et y = + Y) System. out. println(« Racine carree de » + x + ‘ ‘ + Math. sqrt(x)) ; » a la puissance » + y + » = « + Math. pow(x,y)) ; System. out. print(x + Exercice 2-3 : Comprendre les opérations d’entrée Dans le premier cas, lorsque l’utilisateur fournit au clavier 2, puis 3, puis 4, le programme a resultat est 3 Explication : x a pour valeur -9. Le contenu de la variable x est donc strictement inférieur à O.
Le programme execute le bloc else, cest à dire l’instruction r = Math. sqrt (-(-9)) Exercice 3-2 : Construire une arborescence de choix public class Maximum{ public static void main (String O parametre){ int première, deuxième, laPIusGrande ; une valeur ; première =lectureClavier. nextlnt() ; System. out. print(i’Entrer une deuxieme valeur • deuxième —lectureclavier. nextlnt() ; if (première > deuxième) System. out. println(deuxième + « ‘ + première) ; laPlusGrande = première ; System. out. rintln(« La plus grande valeur est : » + laPlusGrande) ; else if (première < deuxième) { System. out. println(première + laPlusGrande = deuxième ; une arborescence de choix + deuxième) ; Exercice 3-3 : Construire plus grande valeur est : " + laplusGrande) : else deux valeurs saisies sont identiques") ; } // Fin du main () // bloc d'instructions V Dans chaque bloc if ou else, les instructions de calcul et d'affichage appropriées sont les suivantes : Le bloc d'instructions 1: reel est solution") ; Le bloc d'instructions Il : System. out. rintln("il n'y a pas de solution") ; Le bloc d'instructions Ill : solution est ' Le bloc d'instructions IV : System. out. println("il n'y a pas de solution dans les reels") ; Le bloc d'instructions V : Attention de bien placer les parenthèses our obtenir un résultat cohérent. xl = (-b + - System. out. println("il y deux solutions egales a ' Remarquez les instructions de saisie des trois coefficients a, b c nécessaires à la bonne marche du programme ainsi que l'utilisation d'une variable intermédiaire delta utilisée pour éviter la répétition du même calcul b*b — 4*a*c. 2 Exercice 3-5 : Manipuler les choix multiples, gérer les caractères Exercice 3-5 : Manipuler les choix multiples, gérer les caractères Le code source complet : public class Calculette { public static void main( String [l argument) { int a, b; char opérateur; ouble calcul = O,' Scanner lectureClavier new Scanner(System. in); // Lire et stocker la première valeur dans a System. out. print("Entrer la premiere valeur : "); a = lectureclavier. nextlnt(); // Lire et stocker la première valeur dans b System. ut. print(i'Entrer la seconde valeur : b = lectureclavier. nextlnt(); // Lire et stocker le signe de l'a ératian dans opérateur de java. lang. ArithmeticException: / by zero at Calculette. main(Calculette. java:22) L'interpréteur détecte une exception de type arithmétique. Il s'agit de la division par zéro. L'erreur provient de la division. Il suffit de vérifier que la valeur de b soit non nulle pour l'étiquette '/' de la structure switch.
Examinons la correction : public class Calculette public static void main( String argument) // Définir et initialiser un booléen à true boolean OK = true; System. out. print(« Entrer la premiere valeur : a = lectureClavier. nextlnt(); System. out. print(« Entrer la seconde valeur : b = lectureClavier. nextlnt(); de l’operation : (+, l) : « ); opérateur lectureClavier. next(). charAt(O); switch (opérateur H case ‘+ : calcul = a b; break; case : calcul = a- b; // Si c’est un l, tester la va 08