Je veux resoudre ce programme en java

Fermé
paclemzo - 14 janv. 2010 à 14:16
 Utilisateur anonyme - 15 janv. 2010 à 11:40
Bonjour,
svp j'ai un probleme a resoudre ce programme.
le programme doit realiser un triangle rectangle dirige vers le haut et vers le bas. on imposera a l'utilisateur de saisir une taille compris entre 5 et 10 sinon le programme reprend. l'utilisateur n'a droit qu'a 3 essai au maximum pour donner une valeur acceptable. le choix de l'orientation sera la valeur 0 vers le bas et 1 vers le haut . merci j'espere avoir une reponse
A voir également:

3 réponses

Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
14 janv. 2010 à 15:21
Tu utilises qu'elle librairie graphique en Java ?
0
Utilisateur anonyme
15 janv. 2010 à 04:01
oui important a savoir.
0
Utilisateur anonyme
15 janv. 2010 à 11:40
Salut,

Je n'ai pas compri ce que signifie "un triangle rectangle dirigé vers le haut et vers le bas"
Les dimensions du triangle (5 à 10) sont vraiment petites mais bon c'est plus clair avec une couleur de fond !!!

Supposons que tu utilisises la classe Graphics voici un exemple:

   import javax.swing.*;
   import java.awt.*;
   import java.awt.Toolkit;
	
    public class TriangleRectangle extends JFrame
   {
      private int x, y;
      
      private static Font font14;
   
       public TriangleRectangle()
      {
         super("TRACER UN TRIANGLE RECTANGLE."); // titre
      
         setSize(538, 248); // dimensions frame
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         setVisible(true);
      }
   
       public void paint(Graphics g)
      {
         super.paint(g);
      
      // tester avec l'un des 3 groupes de 6 points les 2 autres étant en commentaire
      
      	// supposons que ces points sont saisis par l'utilisateur
      	// les 3 essais ne sont pas traités puisque la saisie est simulée
      	// le triangle sera de bonnes dimensions
         /*int pointXHautGauche = 20;
         int pointYHautGauche = 35;
         int pointXBasGauche = pointXHautGauche; // (ou = 20) doit etre egal a pointXHautGauche
         int pointYBasGauche = 40; // soit une "hauteur" de 40 - 35 = 5
         int pointXBasDroite = 30; // Soit une "largeur" de 30 - 20 = 10
         int pointYBasDroite = pointYBasGauche; // (ou 40) doit etre egal a pointYBasGauche  */
      	
      	// Avec ces points les dimensions seraient refusées
         int pointXHautGauche = 20;
         int pointYHautGauche = 35;
         int pointXBasGauche = pointXHautGauche; // (ou = 20) doit etre egal a pointXHautGauche
         int pointYBasGauche = 40; // soit une "hauteur" de 40 - 35 = 5
         int pointXBasDroite = 25; // Soit une "largeur" de 25 - 20 = 5
         int pointYBasDroite = pointYBasGauche; // (ou 40) doit etre egal a pointYBasGauche
      	
      	// Avec ces points les dimensions seraient aussi refusées
         /*int pointXHautGauche = 20;
         int pointYHautGauche = 35;
         int pointXBasGauche = pointXHautGauche; // (ou = 20) doit etre egal a pointXHautGauche
         int pointYBasGauche = 230; // soit une "hauteur" de 230 - 20 = 210
         int pointXBasDroite = 515; // soit une "largeur" de 515 - 20 = 495
         int pointYBasDroite = pointYBasGauche; // (ou 230) doit etre egal a pointYBasGauche  */
      
         int hauteur = pointYBasGauche - pointYHautGauche;
         int largeur = pointXBasDroite - pointXBasGauche;
      	
         // A vérifier:
      /*	Si "hauteur" <5 OU >10 >>>> ERREUR
      	Si "largeur" <5 OU >10 >>>> ERREUR
      	Si "hauteur" >5 ET <=10 soit 6 a 10 "largeur" doit etre 5
      	Si "largeur" >5 ET <=10 soit 6 a 10 "hauteur" doit etre 5
      	Si "hauteur" =5 "largeur" doit etre 6 a 10
      	Si "largeur" =5 "hauteur" doit etre 6 a 10  */
      
         boolean err = false;	
         if( (hauteur < 5) || (hauteur > 10) || (largeur < 5) || (largeur > 10) )
         {
            err = true;
         }
         if( (hauteur > 5) && (hauteur <= 10) && (largeur != 5) )
         {
            err = true;
         }
         if( (largeur > 5) && (largeur <= 10) && (hauteur != 5) )
         {
            err = true;
         }
         if( (hauteur == 5) && (largeur < 6) || (largeur > 10) )
         {
            err = true;
         }
         if( (largeur == 5) && (hauteur < 6) || (hauteur > 10) )
         {
            err = true;
         }
         if(err)
         {
            Toolkit.getDefaultToolkit().beep();
            g.setFont(font14); // texte erreur
            g.setColor(Color.red);
            g.drawString("ERREUR DIMENSIONS", 30, 50);
         }
         else
         {
         // Dessiner un triangle rectangle plein (3points)
            Polygon triangleRect = new Polygon();
         //g.setColor(Color.orange); // noir par défaut s'il n'y a pas de fond d'une autre couleur
            triangleRect.addPoint(pointXHautGauche, pointYHautGauche); // points haut gauche
            triangleRect.addPoint(pointXBasGauche, pointYBasGauche);   // points bas gauche
            triangleRect.addPoint(pointXBasDroite, pointYBasDroite);   // points bas droite
            //g.setColor(Color.orange);     // fond du triangle
            g.fillPolygon(triangleRect);      // remplissage de noir par défaut ou orange
         	                                  // en enlevant les // de la ligne ci-dessus
            g.drawPolygon(triangleRect);      // affichage;
         }
      }
   
       public static void main(String[] args)
      {
         new TriangleRectangle();
      }
   }


C'est toujours moche quand on simule plusieurs cas pour tester...

Cordialement,

Dan
0