• TD Java AMRT2 Bambey

     

    Université Alioune Diop de Bambey                                                                                                                        Année 2012

    TD Java AMRT2 Bambey

    Exercice 1:

    Soit le programme suivant :

    public class ExoI

    { public static void main(String[] args)

    { int i, n, som ;

    som = 0 ;

    for (i=0 ; i<4 ; i++)

    { System.out.println ("donnez un entier ") ;

    n = Clavier.lireInt() ;

    som += n ;

    }

    System.out.println ("Somme : " + som) ;

    }

    }

    Écrire un programme réalisant la même chose en employant à la place de l’instruction for :

    1. une instruction while,

    2. une instruction do... while.

     

     

    Exercice 2:

    Écrire un programme qui calcule les racines carrées de nombres fournis en donnée. Il s’arrêtera lorsqu’on lui fournira la valeur 0. Il refusera les valeurs négatives. Son exécution se présentera ainsi :

    donnez un nombre positif : 2

    sa racine carree est : 1.4142135623730951

    donnez un nombre positif : -3

    svp positif

    donnez un nombre positif : 5

    sa racine carree est : 2.23606797749979

    donnez un nombre positif : 0

    Exercice 3:

    Écrire un programme calculant la somme des n premiers termes de la "série harmonique", c’est-à-dire la somme :

    1 + 1/2 + 1/3 + 1/4 + ..... + 1/n

    La valeur de n sera lue en donnée

    Exercice 4 :

     

    Écrire un programme qui affiche un triangle isocèle formé d’étoiles. La hauteur du triangle (c’est-à-dire son nombre de lignes) sera fourni en donnée, comme dans l’exemple ci-dessous.

    On s’arrangera pour que la dernière ligne du triangle s’affiche sur le bord gauche de l’écran.

    combien de lignes ? 8

                  *

                ***

              *****

            *******

          *********

        ***********

      *************

    ***************

    Exercice 5 :

     

    Écrivez un programme qui lit des chaînes de caractères passées comme arguments à la ligne de commande, soit à la fonction FiltreNoms; ces chaînes sont des noms de personnes. Le programme affiche ensuite les noms qui commencent par la lettre " F " et se terminent par la lettre " e ".

    Voici un exemple d’exécution du programme :

    C:\>java FiltreNoms Latendresse Masse Fontaine Bourassa Frenette Levasseur
    Liste de noms :
    Latendresse
    Masse
    Fontaine
    Bourassa
    Frenette
    Levasseur
    Après filtrage :
    Fontaine
    Frenette

    Exercice 6 :

    Écrivez un programme qui lit une série de nombres de type entier et qui affiche la somme de ces nombres. Les données doivent être lues à partir de la ligne de commande.

    Voici un exemple d’exécution du programme :

    C:\>java Somme 5 10 15 20 25 30 35 40 45 50

    5 + 10 + 15 + 20 + 25 + 30 + 35 + 40 + 45 + 50 = 275

     

    Exercice 7 :

    Réaliser une classe Point permettant de représenter un point sur un axe. Chaque point sera caractérisé par un nom (de type char) et une abscisse (de type double). On prévoira :

    • un constructeur recevant en arguments le nom et l’abscisse d’un point,

    • une méthode affiche imprimant (en fenêtre console) le nom du point et son abscisse,

    • une méthode translate effectuant une translation définie par la valeur de son argument.

    Écrire un petit programme utilisant cette classe pour créer un point, en afficher les caractéristiques, le déplacer et en afficher à nouveau les caractéristiques.

     

    Exercice 8 : Initialisation d’un objet

    Que fournit le programme suivant ?

    class A

    { public A (int coeff)

    { nbre *= coeff ;

    nbre += decal ;

    }

    public void affiche ()

    { System.out.println ("nbre = " + nbre + " decal = " + decal) ;

    }

    private int nbre = 20 ;

    private int decal ;

    }

    public class InitChmp

    { public static void main (String args[])

    { A a = new A (5) ; a.affiche() ;

    }

    }

     

    Exercice 9 :Méthodes d’accès aux champs privés

    Soit le programme suivant comportant la définition d’une classe nommée Point et son utilisation :

    class Point

    { public Point (int abs, int ord) { x = abs ; y = ord ; }

    public void deplace (int dx, int dy) { x += dx ; y += dy ; }

    public void affiche ()

    { System.out.println ("Je suis un point de coordonnees " + x + " " + y) ;

    }

    private double x ; // abscisse

    private double y ; // ordonnee

    }

    public class TstPnt

    { public static void main (String args[])

    { Point a ;

    a = new Point(3, 5) ; a.affiche() ;

    a.deplace(2, 0) ; a.affiche() ;

    Point b = new Point(6, 8) ; b.affiche() ;

    }

    }

    Modifier la définition de la classe Point en supprimant la méthode affiche et en introduisant deux méthodes d’accès nommées abscisse et ordonnee fournissant respectivement l’abscisse et l’ordonnée d’un point. Adapter la méthode main en conséquence.

    Exercice 10: 

     

    Créer une classe Compte qui modélise un compte en banque. Dans cette classe on doit avoir au moins les deux informations suivantes : numéro du compte et le solde du compte.

    Cette classe doit posséder les méthodes :  
        - void deposer(int s)  : pour déposer une somme sur le compte.  
        - void retirer(int s)  : pour retirer une somme sur le compte.  
        - int avoirSolde() : qui retourne le solde du compte.
        - String infos() : qui retourne une chaîne d'informations similaires à :  "Compte numero: 121, Solde :  15000 Fr"      

    -Ecrire un programme pour tester la classe Compte. Ce programme doit effectuer successivement les opérations suivantes : déposer 5000 Frs, afficher le solde, retirer 200 Frs, afficher un RIB (methode infos()). 

    Exercice11 :

     

    Écrivez une méthode qui calcule le factoriel d'un nombre entier passé en paramètre. Écrivez également un programme permettant de tester cette méthode et d’afficher le résultat.

    Rappel

       fact(0) = 1;
      fact(n) = n * (n-1) * (n-2) * ...* (n-(n-1))

    Voici un exemple d’exécution du programme.

        fact(0) = 1
        fact(5) = 120
        fact(10) = 3628800

     

    Exercice 12 :

    Ecrivez une classe Livre avec les attributs suivants:

    • titre: Le titre du livre,
    • auteur: L'auteur du livre,
    • prix: Le prix du livre,
    • annee: L'année du livre.


    La classe Livre doit disposer des constructeurs suivants:

    • Livre(),
    • Livre(titre),
    • Livre(titre, auteur),
    • Livre(titre, auteur, prix),
    • Livre(titre, auteur, prix, annee),
    • Livre(Livre).


    La classe Livre doit contenir des accesseurs pour les différents attributs. Elle doit aussi contenir une méthode toString() donnant une représentation de la classe Livre.
    Ecrivez aussi une classe de testLivre afin de tester la classe Livre.

     

    Exercice 13 :

    Ecrivez une classe Personne avec les attributs suivants:

    • nom: Le nom de famille de la personne,
    • prenom: Le prénom de la personne,
    • age: L'âge de la personne compris entre 0 et 130 ans,
    • sexe: Masculin ou Féminin.


    La classe Personne doit disposer des constructeurs suivants:

    • Personne(): constructeur par défaut,
    • Personne(nom, prenom),
    • Personne(nom, prenom, age),
    • Personne(nom, prenom, age, sexe),
    • Personne(Personne).


    La classe Personne doit contenir des accesseurs et mutateurs pour les différents attributs. Elle doit aussi contenir une méthode toString() donnant une représentation de la classe Personne.
    Ecrivez aussi une classe de testPersonne afin de tester la classe Personne.

    Exercice 14 :

    • Exercice 7 : Représentation de points et segments
    • Ecrire une classe java Point permettant de décrire les coordonnées d’un point dans le plan. Cette classe a :
    • des attributs privés x et y
    • un constructeur qui permet d’initialiser le point lors de sa création
    • des méthodes public int getX () et public int getY () qui retournent respectivement les valeurs de x et y.
    • une méthode public String toString() qui retourne une chaine de caractères de la forme ‘’(1,4)’’.
    • une méthode de test public static void main (String [] args) qui crée deux points et affiche leurs coordonnées.
    •  Ecrire une classe java Segment permettant de décrire un segment dans le plan. Celui-ci est défini par deux points : ses extrémités. Cette classe a :
    • des attributs de type Point : p1 et p2.
    • un constructeur public Segment(Point p1, Point p2) qui permet d’initialiser le segment lors de sa création.
    • une méthode public String toString () qui retourne une chaîne de caractères de la forme ‘’[(1,4) ..(2,5)]’’.
    • une méthode de test qui crée d’abord quatre points, à partir de coordonnées passées sur la ligne de commande, et crée ensuite deux segments à partir des ces points.

     

     

     


  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :