c ⃝Fabrice Rossi, 1997-2002 Conditions de distribution et de copie Cet ouvrage

c ⃝Fabrice Rossi, 1997-2002 Conditions de distribution et de copie Cet ouvrage peut ˆ etre distribu´ e et copi´ e uniquement selon les conditions qui suivent : 1. toute distribution commerciale de l’ouvrage est interdite sans l’accord pr´ ealable explicite de l’auteur. Par distribution commerciale, on entend une distribution de l’ouvrage sous quelque forme que ce soit en ´ echange d’une contribution financi` ere directe ou indirecte. Il est par exemple interdit de distribuer cet ouvrage dans le cadre d’une formation payante sans auto- risation pr´ ealable de l’auteur ; 2. la redistribution gratuite de copies exactes de l’ouvrage sous quelque forme que ce soit est autoris´ ee selon les conditions qui suivent : (a) toute copie de l’ouvrage doit imp´ erativement indiquer clairement le nom de l’auteur de l’ouvrage ; (b) toute copie de l’ouvrage doit imp´ erativement comporter les conditions de distribution et de copie ; (c) toute copie de l’ouvrage doit pouvoir ˆ etre distribu´ ee et copi´ ee selon les conditions de distribution et de copie ; 3. la redistribution de versions modifi´ ees de l’ouvrage (sous quelque forme que ce soit) est inter- dite sans l’accord pr´ ealable explicite de l’auteur. La redistribution d’une partie de l’ouvrage est possible du moment que les conditions du point 2 sont v´ erifi´ ees ; 4. l’acceptation des conditions de distribution et de copie n’est pas obligatoire. En cas de non acceptation de ces conditions, les r` egles du droit d’auteur s’appliquent pleinement ` a l’ouvrage. Toute reproduction ou repr´ esentation int´ egrale ou partielle doit ˆ etre faite avec l’autorisation de l’auteur. Seules sont autoris´ ees, d’une part, les reproductions strictement r´ eserv´ ees ` a l’usage priv´ e et non destin´ ees ` a une utilisation collective, et d’autre part, les courtes citations justifi´ ees par le caract` ere scientifique ou d’information de l’oeuvre dans laquelle elles sont incorpor´ ees (loi du 11 mars 1957 et Code p´ enal art. 425). Exercices Fabrice Rossi 24 septembre 2002 1 Forme g´ en´ erale d’un programme Exercice 1.1 : Indiquer si les programmes suivants sont corrects. Si ce n’est pas le cas, indiquer la ou les erreurs. 1. dans le fichier prog.java : Prog1 1 public public public class class class Prog1 { 2 public public public void void void static static static main(String[] args) { 3 System.out.println("Bonjour"); 4 } 5 } 2. dans le fichier Prog2.java : Prog2 1 public public public class class class Prog2 { 2 public public public static static static void void void main(String args) { 3 System.out.println("Bonjour"); 4 } 5 } 3. dans le fichier Prog3.java : Prog3 1 import import import dauphine.util.*; 2 public public public Prog3 class class class 3 public public public static static static void void void main(String[] args) 4 System.out.println("Bonjour") 5 }}; 2 Identificateurs Exercice 2.1 : Indiquer si les propositions d’identificateurs suivantes sont syntaxiquement correctes ou non (valides en Java) : compteur _compteur 1compteur compteur 2 compteur_3 Compteur@ c_12323 Exercice 2.2 : Indiquer si les propositions d’identificateurs suivent ou non les conventions portant sur les noms de variables : UneNote Une_Note compteur Compteur uneVariable une_variable uneNoteDeMath uneNotedemath 3 D´ eclarations Exercice 3.1 : Dessiner la m´ emoire apr` es l’ex´ ecution par le processeur abstrait des lignes suivantes (on des- sinera la m´ emoire apr` es chaque ligne) : double a,b; int i=3; a=2.5; b=3.7; b=a+5; i=i+1; Exercice 3.2 : ´ Ecrire un programme permettant d’obtenir la configuration de la m´ emoire donn´ ee par la fi- gure 1. 4 Affectations et calculs Exercice 4.1 : Indiquer dans le programme suivant quelles sont les affectations correctes et celles qui sont impossibles (chaque ligne incorrecte est ignor´ ee). double x; float y; int a; boolean b; char c; byte d; F. Rossi – 24 septembre 2002 (Version 2.2) p. 3 y x a truc machin boolean true int 12323 int float 5.3f double 2.5 Fig. 1 – Repr´ esentation de la m´ emoire x = 12; y = -2.343e-10f; a = 2323232; b = 2; c = ’a’; d = -324; a = 2.5; b = true; x = ’r’; d = 125; Exercice 4.2 : Que font les instructions suivantes (on suppose que les variables x et y sont d´ eclar´ ees, de type double et d´ ej` a initialis´ ees) : x = x + y; y = x - y; x = x - y; Remarque : ne surtout jamais utiliser cette technique dans un v´ eritable programme ! Exercice 4.3 : On consid` ere que les d´ eclarations suivantes ont ´ et´ e effectu´ ees : int i=3,j=4; double x=2,y=3; boolean v=true; F. Rossi – 24 septembre 2002 (Version 2.2) p. 4 Pour chaque expression du tableau suivant, indiquez : 1. le type du r´ esultat ; 2. la valeur du r´ esultat ; 3. si l’affectation de cette valeur ` a la variable d´ eclar´ ee dans la colonne “variable” du tableau est possible. Chaque ligne est ind´ ependante des autres. Faites bien attention de ne pas confondre la lettre l et le chiffre 1. Expression type valeur variable possible i/j-1 int k ; 2-3/i+1 double z ; (float)2.5 int k ; 3f double z ; 2+3l int k ; 1/i/2d int k ; 2/i/j double z ; 2f+3l float u ; v&&(i-x/y>j) int k ; y/x+1 int k ; 5 Analyse d’expressions Exercice 5.1 : Convertir sous forme d’expressions Java les quatre formules suivantes. La valeur de l’expression une fois calcul´ ee par le processeur doit ˆ etre la plus exacte possible (` a cause des arrondis, il est parfois impossible d’obtenir le r´ esultat exact math´ ematiquement) : 2 + 2.5×1.5 1.2−10.3 2 4 5 − 1 1 + 1 2 1 + 1 2 2 1 + 1 1 2 Exercice 5.2 : On consid` ere les expressions suivantes : b && x==y+2d || !(3*x%2>t) x/(y+d/k)/(1-j) x%y>y b || !b x/y*y+x%y b || (x/y>x+y && !b) Quels types peut-on choisir pour les variables qui apparaissent dans les expressions afin que celles-ci soient correctes ? Quel est alors le type de chacune des expressions ? Peut-on d´ eterminer la valeur de certaines expressions sans connaˆ ıtre les valeurs des variables ? F. Rossi – 24 septembre 2002 (Version 2.2) p. 5 Exercice 5.3 : x, y et z d´ esignent des variables de type double. R´ e´ ecrire les expressions Java suivantes sous leur forme math´ ematique usuelle. 3*x - 4*y - x*x (x + 4)/(x + 1/x) 5 - (1/x + 1/3 + y) / z - 1 3*x + x*x*y*y - 2/x/y Exercice 5.4 : On suppose que les d´ eclarations suivantes ont ´ et´ e effectu´ ees : int n; double x; On suppose que n contient la valeur n et x la valeur x. Traduisez les expressions suivantes en Java, de sorte que le r´ esultat obtenu soit le plus exact possible. On tentera de simplifier les expressions, en passant ´ eventuellement par des variables interm´ ediaires. 2n + 1 (1 + 1 n)(1 −1 n) −1 ≤x ≤1 (n pair et n ̸= 0) 2 3 + 3x + 1 2 (x + 1)2 1 + 1 nx + 3 n(n + 2)x2 + 15 n(n + 2)(n + 4)x3 6 Expressions bool´ eennes Exercice 6.1 : Traduire sous forme d’expression bool´ eenne les propositions suivantes : 1. la variable x contient une valeur num´ erique comprise au sens large entre 3.5 et 7 ; 2. la variable x contient une valeur n´ egative strictement ou bien une valeur sup´ erieure ` a 5 ; 3. l’une des deux propositions suivantes est vraie : – la variable y contient une valeur divisible par 2 ; – la variable y ne contient pas une valeur divisible par 3. 4. une et une seule des deux propositions suivantes est vraie : – la variable x n’est pas nulle; – la variable z contient la mˆ eme valeur que la variable x ; 5. soit le contenu de la variable a est divisible par celui de b, soit le contenu de la variable b est divisible par celui de a. Exercice 6.2 : Traduire sous forme d’une phrase en fran¸ cais la plus simple possible chacune des expressions suivantes (pour la r´ edaction des r´ eponses, on prendra pour mod` ele l’exercice pr´ ec´ edent) : F. Rossi – 24 septembre 2002 (Version 2.2) p. 6 ! ( x != 2 && x < 3 ) ! ( u > v || u%2 == 0 && u-v > 10 ) x%3 == 0 ^ x%4 == 0 ! ( x < 3 || x > 5 ) 7 M´ ethodes de classe Exercice 7.1 : Pour chacun des appels suivants, indiquer la signature de l’appel : A.f(2.5,3) A.g(true,3f) A.h(2l,5d) B.f() B.g((byte)3) Exercice 7.2 : On suppose donn´ ee une m´ ethode f dans une classe A. Quelles sont la (ou les) signature(s) possible(s) pour f si les deux appels suivants sont accept´ es par le compilateur : A.f(2,3.5) uploads/s3/ variables-etc-pdf.pdf

  • 23
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager