Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2020
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.52 KB | None | 0 0
  1. package trojkat;
  2.  
  3. import java.util.Scanner;
  4. import static java.lang.Math.*;
  5.  
  6. public class Trojkat {
  7.  
  8.     public static void main(String[] args) {
  9.        
  10.         Trojkat a = new Trojkat();
  11.        
  12.         double xa, ya, xb, yb, xc, yc,xp,yp;
  13.         Scanner input = new Scanner(System.in);
  14.         System.out.println("---Algorytmion 2019, zadanie 1---" );
  15.         System.out.println();
  16.  
  17.         System.out.print("Podaj xa: ");
  18.         xa = input.nextDouble();
  19.         System.out.print("Podaj ya: ");
  20.         ya = input.nextDouble();
  21.         System.out.print("Podaj xb: ");
  22.         xb = input.nextDouble();
  23.         System.out.print("Podaj yb: ");
  24.         yb = input.nextDouble();
  25.         System.out.print("Podaj xc: ");
  26.         xc = input.nextDouble();
  27.         System.out.print("Podaj yc: ");
  28.         yc = input.nextDouble();
  29.        
  30.        
  31.         double ab = a.dl_prostej_ab(xa, ya, xb, yb);
  32.         double ac = a.dl_prostej_ac(xa, ya, xc, yc);
  33.         double bc = a.dl_prostej_bc(xb, yb, xc, yc);
  34.         System.out.println();
  35.         if ((ab*ab+ac*ac==bc*bc) || (ab*ab+bc*bc==ac*ac) || (bc*bc+ac*ac==ab*ab))
  36.         {
  37.             System.out.println("a)Trojkat jest prostokatny");
  38.         }
  39.         else if((ab*ab+ac*ac<bc*bc) || (ab*ab+bc*bc<ac*ac) || (bc*bc+ac*ac<ab*ab))
  40.         {
  41.             System.out.println("a)Trojkat jest rozwartokatny");
  42.         }
  43.         else if((ab*ab+ac*ac>bc*bc) || (ab*ab+bc*bc>ac*ac) || (bc*bc+ac*ac>ab*ab))
  44.         {
  45.             System.out.println("a)Trojkat jest ostrokatny");
  46.         }
  47.        
  48.        
  49.         double p = (ab + ac + bc)/2;
  50.         double pole = a.pole_trojkata(ab, ac, bc, p);
  51.        
  52.        
  53.         double suma_h = (2*pole)/ab + (2*pole)/ac + (2*pole)/bc;
  54.         System.out.println("b)Suma wysokosci trojkata: " + suma_h);
  55.         double suma_sr = 0.5*(sqrt(2*(ac*ac+bc*bc)-ab*ab))+0.5*(sqrt(2*(ab*ab+bc*bc)-ac*ac))+0.5*(sqrt(2*(ab*ab+ac*ac)-bc*bc));
  56.         System.out.println("b)Suma srednich trojkata: " + suma_sr);
  57.        
  58.         double rWpi = sqrt(((p-ab)*(p-ac)*(p-bc))/p);
  59.         double rOpi = (ab*ac*bc)/(4*rWpi*p);
  60.         System.out.println("b)Suma promieni okregu wpisanego i opisanego wynosi: " + (rWpi+rOpi));
  61.    
  62.         System.out.println();
  63.         System.out.println("---Sprawdz czy punkt (xp,yp) nalezy do trojkata---");
  64.         System.out.println();
  65.         System.out.print("Podaj xp: ");
  66.         xp = input.nextDouble();
  67.         System.out.print("Podaj yp: ");
  68.         yp = input.nextDouble();
  69.        
  70.         double obszar_trojkata = a.Obszar(xa, ya, xb, yb, xc, yc);
  71.        
  72.         boolean punkt_trojkata = a.CzyWewnatrz(xa, ya, xb, yb, xc, yc, xp, yp);
  73.         System.out.println();
  74.         if(punkt_trojkata == true)
  75.         System.out.println("c)Punkt ("+xp+","+yp+") nalezy do trojkata");
  76.         else
  77.         System.out.println("c)Punkt ("+xp+","+yp+") nie nalezy do trojkata:");
  78.    
  79.     }
  80.    
  81.     double dl_prostej_ab(double xa, double ya, double xb, double yb)
  82.     {
  83.         return sqrt(pow((xb-xa),2)+pow((yb-ya),2));
  84.     }
  85.    
  86.     double dl_prostej_ac(double xa, double ya, double xc, double yc)
  87.     {
  88.         return sqrt(pow((xc-xa),2)+pow((yc-ya),2));
  89.     }
  90.    
  91.     double dl_prostej_bc(double xb, double yb, double xc, double yc)
  92.     {
  93.         return sqrt(pow((xc-xb),2)+pow((yc-yb),2));
  94.     }
  95.    
  96.     double pole_trojkata(double ab, double ac, double bc, double p)
  97.     {
  98.         return sqrt(p*(p-ab)*(p-ac)*(p-bc));
  99.     }
  100.    
  101.     double Obszar(double xa, double ya, double xb, double yb, double xc, double yc)
  102.     {
  103.         return 0.5*abs((xa*(yb - yc) + xb*(yc - ya) + xc*(ya - yb)));
  104.     }
  105.    
  106.     boolean CzyWewnatrz(double xa, double ya, double xb, double yb, double xc, double yc, double xp, double yp)
  107.     {
  108.         double T = Obszar(xa, ya, xb, yb, xc, yc);
  109.         double T1 = Obszar(xp, yp, xb, yb, xc, yc);
  110.         double T2 = Obszar(xa, ya, xp, yp, xc, yc);
  111.         double T3 = Obszar(xa, ya, xb, yb, xp, yp);
  112.         return (T == T1 + T2 + T3);
  113.     }
  114.  
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement