diff --git a/serie1/ex5.md b/serie1/ex5.md new file mode 100644 index 0000000000000000000000000000000000000000..4254cdea549e8eef5bc666b8d2cd83bec5c937d1 --- /dev/null +++ b/serie1/ex5.md @@ -0,0 +1,47 @@ +On dispose des méthodes suivantes: + +```java +void g(int n, float x) { ... } +void h(short s) { ... } +``` + +Et des déclarations suivantes: + +```java +int i; +byte b; +float f; +double d; +``` + +Spécifiez si les appels suivants sont corrects ou non tout en justfiant vos +réponses: + +```java +g(i, f) // Oui, car on passe à la fonction respectivement un int et un float + // exactement comme le spécifie la signature de la fonction g + +g(b+1, f) // Oui, cela fonction car car b + 1 sera implicitement converti en + //int + +g(b, f) // Oui, cela fonctionne car le b sera implicitement converti en int + +g(i, i) // Oui, cela fonctionne car le 2ème i sera implicitement converti en + // float + +g(i, 2*f) // Oui, cela va fonctionner car le 2 qui est un int sera implicitement + // converti en float + +g(i, 2.0*f) // Non, cela ne va pas fonctionner car 2.0 qui est un double ne + // pourra pas être implicitement converti en float + +h(b) // Oui, cela va fonctionner car b sera implicitement converti en short + +h(b+1) // Non, cela ne va pas fonctionner car b+1 sera implicitement converti en + // int cependant la fonction peut accepter uniquement un short + +h(5) // Oui, cela fonctionne car 5 est dans le $D_{f}$ d'un short + +h(5.0) // Non, cela ne va pas fonctionner car un double (5.0) ne peut pas être + // implicitement converti en short +```