CPO 2°année 2001 - 2002 Corrigé TP n°1 – Java Exercice 1 : public class Premier
CPO 2°année 2001 - 2002 Corrigé TP n°1 – Java Exercice 1 : public class PremierProg { public static void main(String [] args) { System.out.println("Bonjour de mon premier programme Java"); } } Exercice 2 : public class Tab1Prog { public static void main(String [] args) { char tabchar [] = {‘B’,’o’,’n’,’j’,’o’,’u’,’r’}; String st1 = “Bonsoir Madame”; System.out.print("contenu de tabchar = "); System.out.println(tabchar); System.out.println(“contenu de st1 =“ + st1); System.out.println(“taille de tabchar =“ + tabchar.length); System.out.println(“taille de st1 =“ + st1.length()); } } Exercice 3 : La solution proposée ci-après ne distingue pas explicitement le constructeur puisque la création des structures se fait à l’initialisation. Cependant, il est préférable de définir des constructeurs explicitement pour être en conformité avec les principes objet. Leur mettre en évidence la différence. public class Pile { private int tabi [] = new int [100]; private int ind_cur = 0; // Methode empile public void empile (int nb) { this.tabi[ind_cur] = nb ; this.ind_cur++ ; } // Methode depile public int depile() { this.ind_cur--; return(this.tabi[ind_cur]); } // Methode nb_elem public int nb_elem() { return(this.ind_cur); } } Exercice 4 : public class PileProg { public static void main(String [] args) { Pile p1 = new Pile(); int nbelem; p1.empile(4) ; p1.empile(4) ; p1.empile(12) ; nbelem = p1.nb_elem() ; System.out.println("Nombre d'element(s) dans la pile = " +nbelem) ; // Affichage et vidage du contenu de la pile for (int i = 0; i < nbelem; i++= System.out.println("element " + (nbelem – i – 1) + "=" +p1.depile()); } } public class Pile2{ private int [] tabi; private int ind_cur ; // Constructeur de la pile sans parametre public Pile2() { tabi = new int[100] ; ind_cur = 0; } // Constructeur de la pile avec parametre taille public Pile2(int taille) { tabi = new int[taille] ; ind_cur = 0 ; } // Methode empile public void empile (int nb) { this.tabi[ind_cur] = nb ; this.ind_cur++ ; } // Methode depile public int depile() { this.ind_cur--; return(this.tabi[ind_cur]); } // Methode nb_elem public int nb_elem() { return(this.ind_cur); } 2 // Methode taille public int taille() { return(this.tabi.length) ; } } public class Pile2Prog { public static void main[String [] args) { Pile2 p1 = new Pile2(500); int nbelem; p1.empile(4); p1.empile(25); p1.empile(12); System.out.println("Taille de la pile = " +p1.taille()) ; nbelem = p1.nbelem() ; System.out.println("Nombre d’element(s) dans la pile = " +nbelem) ; // Affichage et vidage du contenu de la pile for (int i = o ; i < nbelem ; i++) System.out.println("Element "+ (nbelem – i – 1) +" = " +p1.depile() ); } } Exercice 5 : public class Point { int x; int y; // Constructeur de l'objet Point public Point() { x = 0 ; y = 0 ; } // Constructeur de l'objet Point public Point(int xx, int yy) { x = x ; y = yy ; } } public class Figure { protected Point p; protected String type_fig; // Constructeur de l’objet Figure // Protected fait que ce constructeur ne peut etre // utilise qu’a partir d’une sous-classe protected Figure() { p = new Point(); type_fig = "non defini"; } // Constructeur de l’objet Figure 3 protected Figur (int x, int y, String type_fig) { p = new Point(x,y); this.type_fig = type_fig; } // Methode toString public String toString() { return(type_fig + "x = "+p.x +" y="+p.y+" "); } } public class Rect extends Figure { int larg; int haut; // Constructeur public Rect() { super(0,0,"Rectangle") ; larg = 0 ; haut = 0 ; } // Constructeur public Rect(int x, int y, int larg, int haut) { super(x,y,"Rectangle") ; this.larg = larg ; this.haut = haut ; } // Redefinition de la methode toString public String toString() { return(super.toString() + "largeur = " +larg + "Hauteur = " +haut); } } public class Fenetre { Figure [] list; public Fenetre (int nb) { list = new Figure[nb]; } } public class JavaDraw{ static Fenetre f; public static void main(String [] args) { // Creation d’un objet Fenetre f constitue de 20 figures f = new Fenetre(20) ; f.list[0] = new Rect(5,10,200,300); System.out.println(); System.out.println("Description de l'objet Fenetre f => " +f) ; System.out.println() ; System.out.println("Description de l'element 0 de la fenetre f => "+ f.list[0]) ; System.out.println() ; } } 4 Exercice 7 : Simulation d'un jeu de dé 1. Fichier jeu.java : /** * Classe simulant une partie de dé * entre deux joueurs. */ public class jeu { score henri, lise; jeu() { henri=new score("Henri"); lise=new score("Lise"); } void tirage(score S){ Double D=new Double(6*Math.random()+1); int resultat=D.intValue(); System.out.println(S.nom+" tire un "+resultat+"."); S.ajoute(resultat); S.affiche(); } void jouer(int n){ //procéder à n tirages for (int i=1; i<=n; i++) { tirage(lise); tirage(henri); } //indiquer le gagnant if (lise.getScore()>henri.getScore()) System.out.println("Lise a gagné."); else if (lise.getScore()<henri.getScore()) System.out.println("Henri a gagné."); else System.out.println("Match nul."); } /** * méthode main du programme */ public static void main(String args[]) { //on crée un jeu jeu monjeu=new jeu(); //la partie se fait sur 10 tirages monjeu.jouer(10); } } Fichier score.java : /** * Cette classe permet la gestion du score d'un joueur. */ public class score { /** * Nom du joueur. */ public String nom; 5 /** * Score maximal */ int scoMax; private int leScore; /** * Constructeur par défaut : * nom:"inconnu" , * score initial:0 , * score maximal:100 . */ public score() { nom="inconnu"; leScore=0; scoMax=100; } /** * Constructeur avec initialisation du nom. */ public score(String nom) { this.nom=nom; leScore=0; scoMax=100; } /** * méthode de lecture du score */ public int getScore(){ return leScore; } /** * méthode d'écriture du score */ public void setScore(int sco) { if (sco>scoMax) leScore=scoMax; else if (sco<0) leScore=0; else leScore=sco; } /** * méthode pour ajouter des points au score. */ public void ajoute(int points) { setScore(leScore+points); } /** * méthode d'affichage du score */ public void affiche() { System.out.println(nom+" : "+leScore); } } Fichier test1.java : public class test1 { public static void main(String args[]) { //déclaration score sc; //création ou instanciation 6 sc=new score(); //initialisation des données sc.nom="Pierre"; sc.setScore(10) ; //sc.leScore=10; sc.scoMax=100; System.out.println(sc.nom+" : "+sc.setScore()); } } Fichier test2.java : public class test2 { public static void main(String args[]) { //déclaration score sc; //création ou instanciation sc=new score(); //initialisation des données sc.nom="Pierre"; sc.setScore(10) ; //sc.leScore=10; sc.scoMax=100; sc.affiche(); } } Fichier test3.java : public class test3 { public static void main(String args[]) { //déclaration score sc; //création ou instanciation sc=new score("Henri"); //affichage sc.affiche(); } } Fichier tes4.java : public class test4 { public static void main(String args[]) { //déclaration score scHenri,scLise; //création ou instanciation scHenri=new score("Henri"); scLise=new score("Lise"); //affichage scHenri.affiche(); scLise.affiche(); } } 2. Fichier jeu21.java //programme simulant le jeu consistant à lancer //des dés jusqu'à obtenir 21 points public class jeu21 { 7 public static void main(String args[]) { Double D; int tirage; score2 pierre=new score2("Pierre"); while (pierre.getScore()<21) { D=new Double(6*Math.random()+1); tirage=D.intValue(); pierre.ajoute(tirage); pierre.affiche(); } System.out.println("Pierre a gagné en "+pierre.getNbEssais()+" coups."); } } Fichier score2.java : /** * Classe dérivée de score * Elle prend en compte le nombre d'essais nécessaires * pour atteidre le score. */ public class score2 extends score { private int nbEssais; /** * Constructeur par défaut */ public score2() { super(); nbEssais=0; } /** * Constructeur avec initilaisation du nom */ public score2(String nom) { super(nom); nbEssais=0; } /** * lecture du nombre d'essais */ public int getNbEssais() { return nbEssais; } /** * inscription d'un score * surcharge de la méthode setScore héritée */ public void setScore(int sco) { super.setScore(sco); nbEssais++; } } Exercice 8 : Angles Fichier angle.java : //classe angle 8 import java.text.DecimalFormat; public class angle { double valeur; public angle() { valeur=0; } public angle(double ini) { valeur=ini; recadre(); } /** méthode qui ramène la valeur entre 0 et 360 */ public void recadre() { if (valeur<0.0) do { valeur=valeur+360; }while (valeur<0); if (valeur>=360.0) do { valeur=valeur-360; }while (valeur>=360); } /** mise en forme pour affichage */ public String toString() { DecimalFormat f=new DecimalFormat(); return f.format(valeur)+"°"; //return valeur+"°"; } /** méthode de conversion en radians */ public double toRadian() { return valeur*Math.PI/180.0; } /** addition */ public void ajouter(angle a) { valeur=valeur+a.valeur; recadre(); } /** multiplication par un entier */ public void multiplier(int n) { valeur=valeur*n; recadre(); } /** fonctions trigo. */ public double sinus() { return Math.sin(toRadian()); } public double cosinus() { 9 return Math.cos(toRadian()); } public double tangente() { return Math.tan(toRadian()); } } Fichier angletest.java : //test de l'objet angle public class angletest { public static void main(String args[]) { angle a=new angle(76); System.out.println("L'angle a mesure "+a.toString()); a.ajouter(new angle(-240)); System.out.println("Après -240 on obtient "+a.toString()); System.out.println("Sinus : "+a.sinus()); } } Exercice 9 : Date et heure Fichier DateHeure.java : import java.util.*; import java.text.*; class DateHeure { public static String mois[]={"janvier","février","mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"}; public static String jour[]={"dimanche","lundi","mardi", "mercredi", "jeudi", "vendredi", "samedi"}; public static void main(String[] arguments) { // Lecture de la date et de l'heure Calendar now = Calendar.getInstance(); int hour = now.get(Calendar.HOUR_OF_DAY); int minute = now.get(Calendar.MINUTE); int month = now.get(Calendar.MONTH); int day = now.get(Calendar.DAY_OF_MONTH); int year = now.get(Calendar.YEAR); int wday uploads/Sports/ corrige-tp-n01-java-exercice-1.pdf
Documents similaires




-
30
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Sep 29, 2022
- Catégorie Sports
- Langue French
- Taille du fichier 0.1432MB