Advertisement
mrAnderson33

восьмая лаба Java

Dec 21st, 2017
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.50 KB | None | 0 0
  1. //полиномы передаются через файлы polynom1 и polynom 2, одна строка - один моном - сначала коэф, через пробел степень, каждый моном на //отдельной строке
  2. //Polynom.java
  3. package com.company;
  4.  
  5. import java.util.ArrayList;
  6.  
  7. public class Polynom
  8. {
  9.  
  10.     public Polynom(){}
  11.  
  12.     public Polynom(int degree, int koef)
  13.     {
  14.         for(int i = 0; i <= degree; ++i) arr.add(i == degree ? koef : 0);
  15.     }
  16.  
  17.     public Polynom(ArrayList<Integer> val) {
  18.         arr = val;
  19.     }
  20.  
  21.     public  Polynom(Polynom val){arr = val.arr;}
  22.  
  23.     private Polynom multiplication(Polynom right)
  24.     {
  25.         Polynom temp = new Polynom();
  26.  
  27.         for (int i = 0; i < arr.size(); ++i)
  28.             for (int j = 0; j < right.arr.size(); ++j)
  29.                 temp.add(i + j, arr.get(i) * right.arr.get(j));
  30.  
  31.         return temp;
  32.     }
  33.  
  34.     private Polynom sum(Polynom right)
  35.     {
  36.         Polynom temp = new Polynom();
  37.  
  38.         switch (Integer.compare(arr.size(),right.arr.size()))
  39.         {
  40.             case 0:
  41.                 for(int i =0; i < arr.size(); ++i)
  42.                     temp.add(i,arr.get(i)+right.arr.get(i));
  43.                 break;
  44.             case 1:
  45.                 temp = right;
  46.                 for (int i =0; i < arr.size(); ++i)
  47.                     temp.add(i,arr.get(i));
  48.                 break;
  49.             case -1:
  50.                 temp = new Polynom(arr);
  51.                 for(int i =0; i < right.arr.size(); ++i)
  52.                     temp.add(i,right.arr.get(i));
  53.                 break;
  54.         }
  55.         return temp;
  56.     }
  57.  
  58.     public static Polynom sum(Polynom left, Polynom right)
  59.     {
  60.         return  new Polynom(left).sum(right);
  61.     }
  62.  
  63.     public static Polynom multiplication(Polynom left,Polynom right)
  64.     {
  65.         return new Polynom(left).multiplication(right);
  66.     }
  67.  
  68.  
  69.     public  Polynom add(int degree, int koef)
  70.     {
  71.         if(arr.size() > degree)
  72.             arr.set(degree, koef + arr.get(degree));
  73.         else
  74.             for(int i = arr.size(); i <= degree;++i) arr.add( i == degree ? koef : 0 );
  75.         return this;
  76.     }
  77.  
  78.     @Override
  79.     public String toString()
  80.     {
  81.         final StringBuffer sb = new StringBuffer("<");
  82.         for(int i = arr.size() - 1; i > 0; --i) sb.append(arr.get(i) != 0 ? arr.get(i) + "x^" + i +" ":"");
  83.         return sb.append(">").toString();
  84.     }
  85.  
  86.     private ArrayList<Integer> arr = new ArrayList<>();
  87. }
  88.  
  89. //Main.java
  90. package com.company;
  91.  
  92. import java.io.BufferedReader;
  93. import java.io.FileInputStream;
  94. import java.io.IOException;
  95. import java.io.InputStreamReader;
  96.  
  97. public class Main {
  98.  
  99.     public static void main(String[] args)
  100.     {
  101.         Polynom a = new Polynom();
  102.         Polynom b = new Polynom();
  103.  
  104.         try(FileInputStream fin = new FileInputStream("C:\\Users\\Василий\\IdeaProjects\\lab 08\\src\\polynom1"))
  105.         {
  106.             BufferedReader br = new BufferedReader(new InputStreamReader(fin));
  107.             String strLine ;
  108.             while ((strLine = br.readLine()) != null)
  109.                 try
  110.                 {
  111.                     a.add(new Integer(strLine.split(" ")[1]), new Integer(strLine.split(" ")[0]));
  112.                 }
  113.                 catch (NumberFormatException ex)
  114.                 {
  115.                     System.err.println(ex.getMessage() + " Should be a number");
  116.                     System.exit(1);
  117.                 }
  118.         }
  119.         catch (IOException ex)
  120.         {
  121.             System.err.println(ex.getMessage());
  122.         }
  123.  
  124.         try(FileInputStream fin = new FileInputStream("C:\\Users\\Василий\\IdeaProjects\\lab 08\\src\\polynom2"))
  125.         {
  126.             BufferedReader br = new BufferedReader(new InputStreamReader(fin));
  127.             String strLine ;
  128.             while ((strLine = br.readLine()) != null)
  129.                 try
  130.                 {
  131.                     b.add(new Integer(strLine.split(" ")[1]), new Integer(strLine.split(" ")[0]));
  132.                 }
  133.                 catch (NumberFormatException ex)
  134.                 {
  135.                     System.err.println(ex.getMessage() + " Should be a number");
  136.                     System.exit(2);
  137.                 }
  138.  
  139.         }
  140.         catch (IOException ex)
  141.         {
  142.             System.err.println(ex.getMessage());
  143.         }
  144.  
  145.  
  146.        
  147.        System.out.println(a + " * " + b + " = " + Polynom.multiplication(a,b));
  148.         System.out.println(a + " + " + b + " = " + Polynom.sum(a,b));
  149.     }
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement