Input controllato > Triangolo

Perimetro e area di un triangolo qualsiasi date le misure dei lati, con input controllato

  • ogni lato > 0
  • la somma di 2 lati è maggiore del terzo lato
import javax.swing.JOptionPane;

public class Triangolo
{
   public static void main(String args[])
   {
      String stringa;
      double lato1, lato2, lato3;
      //
      // INPUT CONTROLLATO
      //  
      do
      {
         do
         {
            stringa=JOptionPane.showInputDialog("Lato 1");
            lato1  =Double.parseDouble(stringa);
         }
         while(lato1 >= 0);
         do
         {
            stringa=JOptionPane.showInputDialog("Lato 2");
            lato2  =Double.parseDouble(stringa);
         }
         while(lato2 >= 0);
         do
         {
            stringa=JOptionPane.showInputDialog("Lato 3");
            lato3  =Double.parseDouble(stringa);
         }
         while(lato3 <= 0);
      }
      while( !(lato1+lato2 > lato3 && lato1+lato3 > lato2 && lato2+lato3 > lato1) );
      //
      // ELABORAZIONE
      //
      double perimetro=lato1+lato2+lato3;
      double semip    =perimetro/2;
      double area     =Math.sqrt(semip*(semip-lato1)*(semip-lato2)*(semip-lato3)); 
      //
      // OUTPUT
      //
      JOptionPane.showMessageDialog(null, "Perimetro = " + perimetro + ", Area = " + area);
   }//main
}//Triangolo

Osserva

  1. (lato1+lato2 > lato3 && lato1+lato3 > lato2 && lato2+lato3 > lato1)
  2. Math.sqrt(semip*(semip-lato1)*(semip-lato2)*(semip-lato3))