TP 2

NFA031

Erreurs à la compilation

Compilez le programme suivant et essayez de comprendre les messages d'erreur en les identifiants dans le code. Corrigez et recompilez jusqu'à ce qu'il n'y ait plus d'erreurs.

public class Td1 {
  public static void main (String [] arguments)  {
        Terminal.ecrireStringln("exo1");
        character a;
        int a,bb
        char c = 'bonjour';
        boolean tt =
        a=2;
        bb = x+3; 
        tt=x+4;
        a = x +1;
        bb= 3*w; 
        bb+1 = 3; 
        bb==2;  
   }
}

Appels des méthodes prédéfinies

Voici deux méthodes prédéfinies en Java:

Compilez puis exécutez ce programme. En vous aidant des messages affichés, identifiez les instructions qui les ont produit.

public class Prog {
    public static void main (String[] args) {
        int x;
        boolean b;
        x = 3 + Math.min(2,3) -1;
        Terminal.ecrireIntln(Math.min(2,3));
        Terminal.ecrireCharln(Character.toLowerCase('1'));
        Terminal.ecrireString("Un entier? ");
        x = Terminal.lireInt();
        Terminal.ecrireIntln(x);
    }
}

Odre des instructions avec effets

Compilez puis exécutez les programmes suivants. Pouvez-vous expliquer les différences de comportément?

  1.  public class Somme1 {
        public static void main (String [] arguments)       { 
            int x =3;
            int y =4;
            int z;
            z=x+y;
            Terminal.ecrireStringln("la somme de "+ x + " et de " + y + " est  " + z);        
           }
    }
    

  2.  public class Somme2 {
        public static void main (String [] arguments)      { 
             int x = 3;
             int y = 4;
             x= x+y;
             Terminal.ecrireStringln("la somme de "+ x + " et de " + y + " est " + x);
           }
    }
    

  3. public class Somme3 {
        public static void main (String [] arguments)     { 
             int x = 3;
             int y = 4;
             Terminal.ecrireString("la somme de "+ x + " et de ");
             x= x+y; 
             Terminal.ecrireStringln( y + " est " + x);   
          }
    }
    

Test de tri

Compilez puis exécutez ce programme. En vous aidant des messages affichés, identifiez les instructions qui les ont produit et expliquez ce que le programme fait. Donnez au moins deux exemples d'exécution avec les messages affichés à chaque fois. Que se passe-t-il si les valeurs saisies pour a,b,c sont égales?

public class Exo {
    public static void main (String [] arguments) {
         int a,b,c;
         boolean abc_tries;
         Terminal.ecrireString("a ? ");
         a = Terminal.lireInt();
         Terminal.ecrireString("b ? ");
         b = Terminal.lireInt();
         Terminal.ecrireString("c ? ");
         c = Terminal.lireInt();
         abc_tries = (a < b) && (b < c);
         Terminal.ecrireBooleanln(abc_tries);
         Terminal.ecrireStringln("\n");
    }
}


Changez ce programme de manière à afficher true lorsque a,b,c sont triés dans un ordre décroissant ou égal (chaque élément est plus petit ou égal au précédent).



Francois Barthelemy
2012-10-15