Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.53 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.         Test a = new Test();
  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. }
  82.  
  83. class Test
  84. {
  85.    
  86.  
  87.     double dl_prostej_ab(double xa, double ya, double xb, double yb)
  88.     {
  89.         return sqrt(pow((xb-xa),2)+pow((yb-ya),2));
  90.     }
  91.    
  92.     double dl_prostej_ac(double xa, double ya, double xc, double yc)
  93.     {
  94.         return sqrt(pow((xc-xa),2)+pow((yc-ya),2));
  95.     }
  96.    
  97.     double dl_prostej_bc(double xb, double yb, double xc, double yc)
  98.     {
  99.         return sqrt(pow((xc-xb),2)+pow((yc-yb),2));
  100.     }
  101.    
  102.     double pole_trojkata(double ab, double ac, double bc, double p)
  103.     {
  104.         return sqrt(p*(p-ab)*(p-ac)*(p-bc));
  105.     }
  106.    
  107.     double Obszar(double xa, double ya, double xb, double yb, double xc, double yc)
  108.     {
  109.         return 0.5*abs((xa*(yb - yc) + xb*(yc - ya) + xc*(ya - yb)));
  110.     }
  111.    
  112.     boolean CzyWewnatrz(double xa, double ya, double xb, double yb, double xc, double yc, double xp, double yp) {
  113.         double T = Obszar(xa, ya, xb, yb, xc, yc);
  114.         double T1 = Obszar(xp, yp, xb, yb, xc, yc);
  115.         double T2 = Obszar(xa, ya, xp, yp, xc, yc);
  116.         double T3 = Obszar(xa, ya, xb, yb, xp, yp);
  117.         return (T == T1 + T2 + T3);
  118.       }
  119.    
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement