16

Click here to load reader

Class Clavier

Embed Size (px)

Citation preview

Page 1: Class Clavier

Lecture de donnéesLecture de donnéesClasse fournissant des fonctions de

lecture au clavier

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 2: Class Clavier

Java est avant tout destiné à développer des applications ou des appletutilisant des interfaces graphiques.

L’affichage dans la console ne présente pas de difficultés.(System.out.println)

Malheureusement java ne prévoit rien de comparable pour la lecture auclavier.

Il est toujours possible de développez une classe offrant les services debase pour la lecture au clavier.

Il n’est pas nécessaire de comprendre le fonctionnement pour l’instant.Il suffit de l’utiliser tel quel.

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 3: Class Clavier

En interne Java utilise le format Unicode, comme ces caractères sontreprésentés sur 16 bits on est obligé d’utiliser des flots spéciaux pour lesmanipuler: ce sont les Reader et les Writer.

Les classes InputStreamReader et OutputStreamWriter font le pontavec les flots d’octets en assurant de manière implicite ou explicite lesconversions nécessaires.

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 4: Class Clavier

Le flux de données provenant du clavier est désigné par l'objet System.inde type InputStream.

Ce type d'objets permet de lire des données caractère par caractère. C'est au programmeur de retrouver ensuite dans ce flux de caractères les informations qui l'intéressent.

Le type InputStream ne permet pas de lire d'un seul coup une ligne de texte.

Le type BufferedReader le permet avec la méthode readLine.

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 5: Class Clavier

Afin de pouvoir lire des lignes de texte tapées au clavier, on crée àdu flux d'entrée System.in de type InputStream, un autre flux d'entrée de type BufferedReader cette fois :BufferedReader IN=new BufferedReader(new InputStreamReader(System.in));

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 6: Class Clavier

Les exceptions représentent le mécanisme de gestion des erreurs intégréau langage java. Il se compose d'objets représentant les erreurs et d'un ensemble de trois mots clés qui permettent de détecter et de traiter ces erreurs ( try, catch et finally ) et de les lever ou les propager (throw et throws).try {operation_risquée1;opération_risquée2;} catch (ExceptionInteressante e) {traitements} catch (ExceptionParticulière e) {traitements} catch (Exception e) {traitements} finally {traitement_pour_terminer_proprement;}

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 7: Class Clavier

public class TestException {public static void main(java.lang.String[] args) {int i = 3;int j = 0;try {System.out.println("résultat = " + (i / j));}catch (Exception e) {…..}catch (ArithmeticException e) {…..}}}Résultat :C:\tests>javac TestException.javaTestException.java:11: catch not reached.catch (ArithmeticException e) {^1 error

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 8: Class Clavier

import java.io.* ;public class Clavier

{ public static String lireString () // lecture d'une chaine

{ String ligne_lue = null ;try{

InputStreamReader lecteur = new InputStreamReader (System.in) ;BufferedReader entree = new BufferedReader (lecteur) ;ligne_lue = entree.readLine() ;

}catch (IOException err){ System.exit(0) ;}return ligne_lue ; }

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 9: Class Clavier

public static float lireFloat () // lecture d'un float{ float x=0 ; // valeur a liretry{ String ligne_lue = lireString() ;

x = Float.parseFloat(ligne_lue) ;}catch (NumberFormatException err){ System.out.println ("*** Erreur de donnee ***") ;

System.exit(0) ;}return x ;

}

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 10: Class Clavier

public static double lireDouble () // lecture d'un double{ double x=0 ; // valeur a liretry{

String ligne_lue = lireString() ;x = Double.parseDouble(ligne_lue) ;

}catch (NumberFormatException err){ System.out.println ("*** Erreur de donnee ***") ;System.exit(0) ;

}return x ;

}

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 11: Class Clavier

public static int lireInt () // lecture d'un int{ int n=0 ; // valeur a lire

try{ String ligne_lue = lireString() ;

n = Integer.parseInt(ligne_lue) ;}

catch (NumberFormatException err){ System.out.println ("*** Erreur de donnee ***") ;

System.exit(0) ;}return n ;

}

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 12: Class Clavier

// programme de test de la classe Clavierpublic static void main (String[] args){ System.out.println ("donnez un flottant") ;

float x ;x = Clavier.lireFloat() ;System.out.println ("merci pour " + x) ;System.out.println ("donnez un entier") ;int n ;n = Clavier.lireInt() ;System.out.println ("merci pour " + n) ;

}}

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 13: Class Clavier

Pour pouvoir utiliser la classe clavier au sein d’un programme, vous disposez de plusieurs solutions.Recopier le fichier source Clavier.java dans le même répertoire que celuioù se trouve le programme l’utilisant.Vous pouvez utiliser la classe Clavier en la collant à la suite de votre fichier source. Exemple public class testLecture{public static void main (String[] args){

int a,b,s;System.out.println ("valeur 1=") ;a = Clavier.lireInt() ;System.out.println ("valeur 2=") ;b = Clavier.lireInt() ;s=a+b;System.out.println ("le résultat est :"+s); }}

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 14: Class Clavier

Série N°3Exercice 1Ecrire un programme java qui demande un nombre à l’utilisateur, et l’informe ensuite si ce nombre est positif ou négatif (on laisse de côté le cas où le nombre vaut zéro).

Exercice 2Ecrire un programme java qui demande deux nombres à l’utilisateur et l’informe ensuite si leur produit est négatif ou positif (on laisse de côté le cas où le produit est nul). Attention toutefois : on ne doit pas calculer le produit des deux nombres.

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 15: Class Clavier

Exercice 3Ecrivez un programme java permettant à l’utilisateur de saisir un nombre quelconque de valeurs, qui devront être stockées dans un tableau. L’utilisateur doit donc commencer par entrer le nombre de valeurs qu’il compte saisir. Il effectuera ensuite cette saisie. Enfin, une fois la saisie terminée, le programme affichera le nombre de valeurs négatives et le nombre de valeurs positives. Exercice 4Un magasin de reprographie facture 0,30 dh les dix premières photocopies, 0,25 dh les vingt suivantes et 0,20 dh au-delà.Ecrivez programme java qui demande à l’utilisateur le nombre de photocopies effectuées et qui affiche la facture correspondante.Exercice 5Ecrivez un programme java qui après avoir demandé un numéro de jour, de mois et d'année à l'utilisateur, renvoie s'il s'agit ou non d'une date valide.

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com

Page 16: Class Clavier

Exercice 6Ecrire un programme java constituant un tableau, à partir de deux tableaux de même longueur préalablement saisis. Le nouveau tableau sera la somme des éléments des deux tableaux de départ.

Exercice 7Ecrire un programme java qui demande un nombre de départ, et qui ensuite écrit la table de multiplication de ce nombre.

Exercice 8Ecrivez un programme java calculant la somme , max, min, et moyenne des valeurs d’un tableau

Ce document a été fabriqué par PDFmail (Copyright RTE Multimedia)http://www.pdfmail.com