Saisie des données tapées au clavier : En Java, La lecture au clavier a été simplifié à partir de la version 1.5 avec l’utilisation d’un objet Scanner et de ses méthodes. Pour les versions antérieures, la lecture des données est assez compliquée. Pour favoriser l’apprentissage, j’écris une petite classe du nom "Utile.Java". En classe et aussi à la démonstration, on va vous montrer la façon d’utiliser cette classe afin de lire un entier ou un réel ou un caractère ou une chaîne de caractères que l’usager a tapé au clavier. Selon la version de Java que vous utilisez, vous pourrez utilisez une approche ou l’autre dans vos travaux, par contre, pour les examens, il sera présumé que vous connaissez Scanner. Exemple 1 : /** * Fichier Clavier1.java :Ce programme permet de saisir 3 âges tapés au * clavier. Il détermine et affiche l'âge le plus grand */ import java.io.*; public class Clavier1 { public static void main (String[] args) throws IOException { int age1, age2, age3, ageMax ; // saisir les 3 âges tapés au clavier age1 = Utile.lireEntier("Tapez l'age de la premiere personne "); age2 = Utile.lireEntier("Tapez l'age de la deuxieme personne "); age3 = Utile.lireEntier("Tapez l'age de la troisieme personne "); // déterminer d'abord l'âge le plus grand entre les 2 premiers if (age1 > age2) ageMax = age1 ; else ageMax = age2 ; if (age3 > ageMax) ageMax = age3 ; // ajuster l'âge maximum si nécessaire System.out.println("Age maximum entre " + age1 + ", " + age2 + " et " + age3 + " est : " + ageMax + " ans"); } } /* Exécution: Tapez l'age de la Tapez l'age de la Tapez l'age de la Age maximum entre */ premiere personne 25 deuxieme personne 49 troisieme personne 18 25, 49 et 18 est : 49 ans IFT 1870, hiver 2002, campus Université de Montréal Saisie des données tapées au clavier (classe Utile.java, par LE VAN N) 33 Exemple 1 avec Scanner : import java.util.Scanner; public class Scanner1 { public static void main (String[] args) { int age1, age2, age3, ageMax ; Scanner clavier = new Scanner(System.in); // saisir les 3 âges tapés au clavier System.out.print("Tapez l'age de la premiere personne "); age1 = clavier.nextInt(); System.out.print("Tapez l'age de la deuxieme personne "); age2 = clavier.nextInt(); System.out.print("Tapez l'age de la troisieme personne "); age3 = clavier.nextInt(); // déterminer d'abord l'âge le plus grand entre les 2 premiers if (age1 > age2) ageMax = age1 ; else ageMax = age2 ; if (age3 > ageMax) ageMax = age3 ; // ajuster l'âge maximum si nécessaire System.out.println("Age maximum entre " + age1 + ", " + age2 + " et " + age3 + " est : " + ageMax + " ans"); } } Exemple 2 : /** * * * * * * * * * */ Fichier Clavier2.java Ce programme permet de : - saisir le rayon d'un cercle, calculer et afficher le périmètre (2 x PI x rayon où PI = 3.1415...) et la surface du cercle ( PI x (rayon au carré) - saisir le côté d'un carré, calculer et afficher le périmètre (4 x côté) et la surface du carré (côté x côté) import java.io.*; public class Clavier2 { public static void main (String[] args) throws IOException { double rayon, cote, perimetre, surface; // saisir le rayon du cercle rayon = Utile.lireReel("Tapez le rayon d'un cercle "); IFT 1870, hiver 2002, campus Université de Montréal Saisie des données tapées au clavier (classe Utile.java, par LE VAN N) 34 // calculer le périmètre et la surface : perimetre = 2 * Math.PI * rayon ; surface = Math.PI * Math.pow( rayon, 2.0); // Afficher les informations du cercle : System.out.println("Pour un cercle de rayon : " + rayon); System.out.println(" - le perimetre : " + perimetre); System.out.println(" - la surface : " + surface); // saisir le côté du carré : cote = Utile.lireReel("Tapez le cote d'un carre "); // calculer le périmètre et la surface : perimetre = 4 * cote ; surface = cote * cote ; // Afficher les informations du carré : System.out.println("Pour un carre de cote : " + cote); System.out.println(" - le perimetre : " + perimetre); System.out.println(" - la surface : " + surface); } } /* Exécution: Tapez le rayon d'un cercle 10.0 Pour un cercle de rayon : 10.0 - le perimetre : 62.83185307179586 - la surface : 314.1592653589793 Tapez le cote d'un carre 5 Pour un carre de cote : 5.0 - le perimetre : 20.0 - la surface : 25.0 */ Exemple 2 avec Scanner : import java.util.Scanner; public class Scanner2 { public static void main (String[] args) { Scanner clavier = new Scanner(System.in); double rayon, cote, perimetre, surface; // saisir le rayon du cercle System.out.print("Tapez le rayon d'un cercle "); rayon = clavier.nextDouble(); // calculer le périmètre et la surface : perimetre = 2 * Math.PI * rayon ; surface = Math.PI * Math.pow( rayon, 2.0); IFT 1870, hiver 2002, campus Université de Montréal Saisie des données tapées au clavier (classe Utile.java, par LE VAN N) 35 // Afficher les informations du cercle : System.out.println("Pour un cercle de rayon : " + rayon); System.out.println(" - le perimetre : " + perimetre); System.out.println(" - la surface : " + surface); // saisir le côté du carré : System.out.print("Tapez le cote d'un carre "); cote = clavier.nextDouble(); // calculer le périmètre et la surface : perimetre = 4 * cote ; surface = cote * cote ; // Afficher les informations du carré : System.out.println("Pour un carre de cote : " + cote); System.out.println(" - le perimetre : " + perimetre); System.out.println(" - la surface : " + surface); } } Exemple 3 : /** * * * * * */ Fichier Clavier3.java Ce programme permet de : - saisir le sexe d’une personne (f ou m) ainsi que son nom et afficher le nom et le sexe en mot (feminin ou masculin) import java.io.*; public class Clavier3 { public static void main (String[] args) throws IOException { char sexe ; String nomPre ; // saisir un caractère représentant le sexe : sexe = Utile.lireCaractere("Tapez f, F, m ou M pour le sexe "); // saisir `le nom et prénom nomPre = Utile.lireChaine("Tapez le nom et prenom "); // Afficher les informations de la personne : System.out.println("\nSexe de " + nomPre); if (sexe == 'f' || sexe == 'F') System.out.println(" - feminin"); else if (sexe == 'm' || sexe == 'M') System.out.println(" - masculin"); else System.out.println(" - est indetermine"); } } IFT 1870, hiver 2002, campus Université de Montréal Saisie des données tapées au clavier (classe Utile.java, par LE VAN N) 36 /* Exécution: Tapez f, F, m ou M pour le sexe f Tapez le nom et prenom Laliberte Lise Sexe de Laliberte Lise - feminin Tapez f, F, m ou M pour le sexe m Tapez le nom et prenom Chartrand Pierre Sexe de Chartrand Pierre - masculin Tapez f, F, m ou M pour le sexe z Tapez le nom et prenom Baba Ali Sexe de Baba Ali - est indetermine */ Exemple 3 avec Scanner : import java.util.Scanner; public class Scanner3 { public static void main (String[] args) { Scanner clavier = new Scanner(System.in); char sexe ; String nomPre, temp ; // saisir un caractère représentant le sexe : System.out.print("Tapez f, F, m ou M pour le sexe "); temp = clavier.nextLine(); sexe = temp.trim().charAt(0); /*permier caractère après avoir enlevé les séparateurs */ // saisir `le nom et prénom System.out.print("Tapez le nom et prenom "); nomPre = clavier.nextLine(); // Afficher les informations de la personne : System.out.println("\nSexe de " + nomPre); if (sexe == 'f' || sexe System.out.println(" else if (sexe == 'm' || System.out.println(" else System.out.println(" == 'F') - feminin"); sexe == 'M') - masculin"); - est indetermine"); } } IFT 1870, hiver 2002, campus Université de Montréal Saisie des données tapées au clavier (classe Utile.java, par LE VAN N) 37