Advertisement
Guest User

Untitled

a guest
Jan 26th, 2015
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.59 KB | None | 0 0
  1. import java.util.*;
  2. import java.lang.*;
  3.  
  4. class Polynominal
  5. {
  6.     Scanner h = new Scanner(System.in);
  7.     int [] p;
  8.     int deg;
  9.    
  10.     Polynominal()
  11.     {
  12.        
  13.     }
  14.    
  15.     Polynominal(int n)
  16.     {
  17.         deg = n;
  18.         p = new int [deg+1];
  19.         for(int i=0; i<=deg; i++)
  20.         {
  21.             p[i] = 0;
  22.         }
  23.     }
  24.    
  25.     void setData(int [] b)
  26.     {
  27.         deg = b.length - 1;
  28.         p = new int [deg + 1];
  29.         for (int i=0; i<=deg; i++)
  30.         {
  31.             p[i] = b[i];
  32.         }
  33.     }
  34.    
  35.     void input()
  36.     {
  37.         System.out.print("Enter degree: ");
  38.         deg = h.nextInt();
  39.         p = new int [deg+1];
  40.         int in;
  41.        
  42.         for(int i=0; i<=deg; i++)
  43.         {
  44.             System.out.print("Enter coefficient of x^" + i + ": ");
  45.             in = h.nextInt();
  46.             p[i] = in;
  47.         }
  48.     }
  49.    
  50.     Polynominal add(Polynominal p2)
  51.     {
  52.        /*int max_deg
  53.        if(this.deg > p2.deg)
  54.         {
  55.             add.Polynominal(this.deg);
  56.             for(int i=0; i<=p2.deg; i++)
  57.             {
  58.                 add.p[i] += p2.p[i];
  59.             }
  60.         }
  61.         else
  62.         {
  63.             add = p2;
  64.             for(int i=0; i<=this.deg; i++)
  65.             {
  66.                 add.p[i] += this.p[i];
  67.             }
  68.         }*/
  69.        
  70.         int max_deg;
  71.         if(this.deg > p2.deg)
  72.             max_deg = this.deg;
  73.         else
  74.             max_deg = p2.deg;
  75.        
  76.         Polynominal add = new Polynominal(max_deg);
  77.        
  78.         for(int i=0; i<=p2.deg; i++)
  79.             {
  80.                 add.p[i] += p2.p[i];
  81.             }
  82.        
  83.         for(int i=0; i<=this.deg; i++)
  84.             {
  85.                 add.p[i] += this.p[i];
  86.             }
  87.        
  88.         return add;
  89.     }
  90.    
  91.     Polynominal sub(Polynominal p2)
  92.     {
  93.         /*Polynominal sub;
  94.        
  95.         if(this.deg > p2.deg)
  96.         {
  97.             sub = this;
  98.             this.display();
  99.             sub.display();
  100.             for(int i=0; i<=p2.deg; i++)
  101.             {
  102.                 sub.p[i] -= p2.p[i];
  103.             }
  104.         }
  105.         else
  106.         {
  107.             sub = p2;
  108.             this.display();
  109.             p2.display();
  110.             sub.display();
  111.             for(int i=0; i<=p2.deg; i++)
  112.             {
  113.                 sub.p[i] = sub.p[i] - p2.p[i] - p2.p[i];
  114.                 System.out.print(" (" + sub.p[i] + ") " );
  115.             }
  116.             for(int i=0; i<=deg; i++)
  117.             {
  118.                 sub.p[i] += p[i];
  119.             }
  120.         }*/
  121.        
  122.        
  123.         int max_deg;
  124.         if(this.deg > p2.deg)
  125.             max_deg = this.deg;
  126.         else
  127.             max_deg = p2.deg;
  128.        
  129.         Polynominal sub = new Polynominal(max_deg);
  130.                
  131.         for(int i=0; i<=p2.deg; i++)
  132.             {
  133.                 sub.p[i] -= p2.p[i];
  134.             }
  135.        
  136.         for(int i=0; i<=this.deg; i++)
  137.             {
  138.                 sub.p[i] += this.p[i];
  139.             }
  140.        
  141.         return sub;
  142.     }
  143.    
  144.     int valueX(int x)
  145.     {
  146.         int result = 0;
  147.        
  148.         for(int i=0; i<=deg; i++)
  149.         {
  150.             result += p[i] * Math.pow(x, i);
  151.         }
  152.                
  153.         return result;
  154.     }
  155.    
  156.     Polynominal multi(Polynominal p2)
  157.     {
  158.         int max_deg = this.deg + p2.deg;
  159.        
  160.         Polynominal multi = new Polynominal(max_deg);
  161.        
  162.         for (int i=0; i<= this.deg; i++)
  163.         {
  164.             Polynominal t = new Polynominal(max_deg);
  165.             for (int j=0; j<=p2.deg; j++)
  166.             {
  167.                 t.p[i+j] = this.p[i] * p2.p[j];
  168.             }
  169.             multi = multi.add(t);
  170.         }
  171.        
  172.         return multi;
  173.     }
  174.    
  175.     int findDeg()
  176.     {
  177.         int order = 0;
  178.        
  179.         boolean start = true;
  180.         for(int i=deg; i>0; i--)
  181.         {
  182.             if(start==true)
  183.             {
  184.                 if(p[i] != 0)
  185.                     start = false;
  186.             }
  187.             if(start==false)
  188.                 order++;
  189.         }
  190.         return order;
  191.     }
  192.    
  193.     void display()
  194.     {
  195.         /*boolean ex = true;
  196.         for (int i = 0; i<=this.deg; i++){
  197.             if (p[i] == 0)
  198.                continue;
  199.            String str = "x^" + i;
  200.            if (i == 0)
  201.                str = "";
  202.            else if (i == 1)
  203.                str = "x";  
  204.            if (p[i] < 0 || ex)
  205.            {
  206.                ex = false;
  207.                if (p[i] != 1)
  208.                {
  209.                     if (p[i] == -1)
  210.                         System.out.print(p[i] + str + "");
  211.                     else System.out.print(p[i] + str + "");
  212.                }
  213.                else System.out.print(str + "");
  214.            }
  215.            else
  216.            {
  217.                if (p[i] == 1)
  218.                    System.out.print(" + " + str + "");
  219.                else if (p[i] == -1)
  220.                    System.out.print(str + "");
  221.                else System.out.print(" + " + p[i] + str + "");
  222.            }
  223.         }
  224.         System.out.println(" = 0 ");*/
  225.        
  226.         for(int i=0; i<=deg; i++)
  227.         {
  228.             System.out.print(p[i] + " ");
  229.         }
  230.     }
  231.    
  232. }
  233.  
  234. public class Main {
  235.  
  236.     public static void main(String[] args) {
  237.        
  238.         Scanner h = new Scanner(System.in);
  239.        
  240.         Polynominal p1 = new Polynominal();
  241.         Polynominal p2 = new Polynominal();
  242.         Polynominal p3 = new Polynominal();
  243.        
  244.         /*System.out.println("Input polynominal 1");
  245.         p1.input();
  246.         System.out.println();
  247.         System.out.println("Input polynominal 2");
  248.         p2.input();
  249.         System.out.println();*/
  250.        
  251.         int [] b = {3,0,2,1};
  252.         int [] c = {2,5,0,3,4};
  253.         int [] d = {4,0,6,3,1,0,0};
  254.        
  255.         p1.setData(b);
  256.         p2.setData(c);
  257.         p3.setData(d);
  258.        
  259.         System.out.print("p = u + v = ");
  260.         p1.add(p2).display();
  261.         System.out.println();
  262.        
  263.         System.out.print("q = u - v = ");
  264.         p1.sub(p2).display();
  265.         System.out.println();
  266.        
  267.         System.out.print("t = u * v = ");
  268.         p1.multi(p2).display();
  269.         System.out.println();
  270.         /*int x;
  271.         System.out.print("Enter x: ");
  272.         x = h.nextInt();
  273.         System.out.println("Polynominal 1 at " + x +" = " + p1.valueX(x));
  274.         System.out.println("Polynominal 2 at " + x +" = " + p2.valueX(x));
  275.         System.out.println();*/
  276.        
  277.         System.out.println("u(1) = " + p1.valueX(1));
  278.        
  279.         System.out.println("Real order of d is: " + p3.findDeg());
  280.     }
  281.    
  282. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement