Un peu de shell Unix (Terminal) ——————————————————————————————— "Un shell Unix est un interpréteur de commandes destiné aux systèmes d'exploitation Unix et de type Unix qui permet d'accéder aux fonctionnalités internes du système d'exploitation. Il se présente sous la forme d'une interface en ligne de commande accessible depuis la console ou un terminal. L'utilisateur lance des commandes sous forme d'une entrée texte exécutée ensuite par le shell. Dans les différents systèmes d'exploitation Microsoft Windows, le programme analogue est command.com, ou cmd.exe." https://fr.wikipedia.org/wiki/Shell_Unix # voici user@machine:/home/user/info11$ # Écrire un programme user@machine:/home/user/info11$ gedit Test.java # Voir ce que vous avez dans le répertoire user@machine:/home/user/info11$ ls Test.java # Regarder rapidement le code source de Prog.java user@machine:/home/user/info11$ cat Prog.java # Compilation user@machine:/home/user/info11$ javac Prog.java # Voir ce que vous avez dans le répertoire user@machine:/home/user/info11$ ls Test.java Test.class # Exécution user@machine:/home/user/info11$ java Prog Caractères en Java —————————————————— char c; c = 'a'; // C'est bon. Un seul caractère. Guillemets anglais simples c = 'ab'; // Erreur!!! Strings (chaînes de caractères) en Java ——————————————————————————————————————— String s; String s2; String s3; s = "toto"; // Guillemets anglais doubles s2 = "tata"; s3 = s + s2; // Pour les strings + c'est la concaténation System.out.println (s); System.out.println (s2); System.out.println (s3); int a = 2; System.out.println (s + a); // ça va afficher "toto2" // la variable a est convertie en string Conversions implicites de types ——————————————————————————————– String + int → String double + int → double long + int → long etc. La règle générale : petit type + GRAND TYPE → GRAND TYPE GRAND TYPE + petit type → GRAND TYPE petit type * GRAND TYPE → GRAND TYPE petit type / GRAND TYPE → GRAND TYPE etc... La spécification complète : https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html Les entrées/sorties en java ——————————————————————————— Sorties ~~~~~~~ System.out.println ("tata") // ça va afficher "tata\n", c’est-à-dire // "tata" + '\n' // où '\n' est le caractère special, // '\n' c'est le saut de ligne. System.out.print ("tata") // ça va afficher "tata" sans saut de ligne Entrées ~~~~~~~ Il faut télécharger [Lire.java] et le placer dans le même répertoire que votre votre programme. [Lire.java] http://ufrsciencestech.u-bourgogne.fr/licence1/ Info21_AlgorithmiqueAvancee/codeUtile/Lire.java Exemples: // Lire un entier byte byte tata = Lire.b(); // ou byte tata; tata = Lire.b(); // Lire un entier short byte tata = Lire.s() // Lire un entier int tete = Lire.i(); // Lire un entier long long l = Lire.l(); // Lire un double double foo = Lire.d(); // Lire un float double foo = Lire.f(); // Lire un caractere char ch = Lire.c(); // Lire un String String toto = Lire.S(); Exercices simples ————————————————— Public class Echange { public static void main (String args[]) { int x,y; System.out.println ("Donnez une valeur de x :"); x = Lire.i(); System.out.println("Donnez une valeur de y :"); y = Lire.i(); x = y; y = x; System.out.println("Nouvelles valeurs: x = " + x + "; y = " + y); } } 1) Commentez ligne par ligne le programme ci-dessus. Dire ce qu'est censé faire ce programme. Donner le résultat du programme et corriger le pour obtenir le résultat espéré. 2) Que pensez-vous du résultat de l'éxécution de ces deux lignes suivantes: System.out.println("Nouvelles valeurs: " + x + y); System.out.println("Nouvelles valeurs: " + (x + y)); 3) Trouver et expliquer les erreurs du programme suivant : Public class Toto { public static void main (String args[]) { int x, y; char a; System.out.println(" Donnez une valeur de x :"); x = Lire.i(); System.out.println(" Donnez une valeur de a :"); a = Lire.i(); y = "x * x * x"; System.out.println( a + x + y); } } 4) Écrire un programme qui calcule le périmètre d'un triangle rectangle dont on connaît l'hypoténuse et l'un des cotes de l'angle droit. 5) Écrire un programme qui permet d'exprimer un nombre de secondes saisi par l'utilisateur en heures, minutes et secondes. 6) En utilisant l'opérateur conditionnel, écrire un programme qui permet de saisir un nombre entier puis indique si le nombre est pair ou impair Exercices plus difficiles ————————————————————————— Les entrées/sorties en java ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1) Écrire un programme qui permet de saisir l'âge de 5 personnes puis indique le nombre d'adultes (âge > 18) et le nombre d'enfants. 2) Lire le code source du [Lire.java] et comprendre comment ça marche [Lire.java] http://ufrsciencestech.u-bourgogne.fr/licence1/ Info21_AlgorithmiqueAvancee/codeUtile/Lire.java