piotranon

Untitled

Mar 18th, 2020
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.18 KB | None | 0 0
  1. import java.sql.SQLOutput;
  2. import java.util.Scanner;
  3.  
  4. import static com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type.Int;
  5.  
  6. public class SchematHorneraDzielenieWielomianuPrzezDwumian__2 {
  7.     public static void main(String[] args) {
  8.         wartoscWPunkcie();
  9.     }
  10.     public static void wartoscWPunkcie()
  11.     {
  12.         Scanner sc =new Scanner(System.in);
  13.  
  14.         System.out.println("Podaj wielomian w formie 2x^3+-5x^2+4x+-1");
  15. //        String wielomian= sc.nextLine();
  16.         String wielomian="2x^3+-5x^2+4x+-1";
  17.         System.out.println("Podaj dwumian :");
  18. //        String dwumian = sc.nextLine();
  19.         String dwumian="x-1";
  20.  
  21.  
  22.         //tworzenie tabelki
  23.         String[] wielomianwczesciach=wielomian.trim().toLowerCase().split("\\+");
  24.         float[][] wspolczynniki =new float[wielomianwczesciach[0].length()][2];
  25.         for(int i=0;i<wspolczynniki.length;i++)
  26.         {
  27.             String wsp=wielomianwczesciach[i].split("x")[0];
  28.             if(wsp.length()==0)
  29.                 wsp="1";
  30.  
  31.             wspolczynniki[i][0]=Integer.parseInt(wsp);
  32. //            System.out.println(wspolczynniki[i][0]);
  33.         }
  34.  
  35.         dwumian=rotate(dwumian);
  36. //        System.out.println(dwumian);
  37.  
  38.         float liczbaSama;
  39.         boolean pierwszyminus=false;
  40.  
  41.         if(dwumian.indexOf("-")>=0 && dwumian.indexOf("+") >=0 && dwumian.indexOf("-")<dwumian.indexOf("+"))
  42.             pierwszyminus=true;
  43.         else if(dwumian.indexOf("-")>=0 && dwumian.indexOf("+")<0)
  44.             pierwszyminus=true;
  45.  
  46.         if(pierwszyminus)
  47.         {
  48. //            System.out.println(":::"+dwumian.trim().toLowerCase().split("\\-")[0]);
  49. //            System.out.println(":"+Integer.valueOf(dwumian.trim().toLowerCase().split("\\-")[0]));
  50.             liczbaSama=-Integer.valueOf(dwumian.trim().toLowerCase().split("\\-")[0]);
  51.         }
  52.         else
  53.         {
  54. //            System.out.println("::"+dwumian.trim().toLowerCase().split("\\+")[0]);
  55. //            System.out.println(":"+Integer.valueOf(dwumian.trim().toLowerCase().split("\\+")[0]));
  56.             liczbaSama=Integer.valueOf(dwumian.trim().toLowerCase().split("\\+")[0]);
  57.         }
  58.  
  59. //        System.out.println("sama:"+liczbaSama);
  60.         dwumian=rotate(dwumian);
  61. //        System.out.println("po samejliczbuie: "+dwumian);
  62.  
  63.         float liczbaPrzyX;
  64.             if(dwumian.trim().toLowerCase().split("x")[0].length()==0)
  65.                 liczbaPrzyX=1;
  66.             else
  67.                 liczbaPrzyX=Integer.valueOf(dwumian.trim().toLowerCase().split("x")[0]);
  68. //        System.out.println("liczba przy x: "+liczbaPrzyX);
  69.  
  70.         float liczbaZerujacaDwumian=(-liczbaSama/liczbaPrzyX);
  71. //        System.out.println("liczba zerujaca dwumian:"+liczbaZerujacaDwumian);
  72.  
  73. //        System.out.println(dwumian.trim().toLowerCase().split("x")[0]);
  74.  
  75. //        System.out.println("liczba zerujaca dwumian :"+liczabaZerujacaDwumian);
  76.  
  77.         //przepisanie pierwszej wlasnosci
  78.         wspolczynniki[0][1]=wspolczynniki[0][0];
  79.         for(int i=1;i<wspolczynniki.length;i++)
  80.         {
  81.             wspolczynniki[i][1]=liczbaZerujacaDwumian*wspolczynniki[i-1][1]+wspolczynniki[i][0];
  82.         }
  83.  
  84.         // tabelka
  85.         System.out.println("TABELKA");
  86.         for(int j=0;j<2;j++)
  87.         {
  88.             for(int i=0;i<wspolczynniki.length;i++)
  89.             {
  90.                 System.out.print(wspolczynniki[i][j]+" | ");
  91.             }
  92.             System.out.println("");
  93.             System.out.println("----------------------------------");
  94.         }
  95.  
  96.         StringBuilder rozwiazanie=new StringBuilder();
  97.  
  98.         for(int i=0;i<=wspolczynniki[1].length;i++)
  99.         {
  100.             rozwiazanie.append(wspolczynniki[i][1]+"x^"+(wspolczynniki[1].length-i)+"+");
  101.         }
  102.         //Wypisanie rozwiązania
  103.         rozwiazanie.deleteCharAt(rozwiazanie.length()-1);
  104.         System.out.println("Rozwiązanie:");
  105.         System.out.println("( "+wielomian+" ) : ( "+dwumian+" ) = "+rozwiazanie.toString());
  106.     }
  107.     public static String rotate(String in)
  108.     {
  109.         StringBuilder out = new StringBuilder();
  110.         for(int i=in.length()-1;i>=0;i--)
  111.             out.append(in.charAt(i));
  112.  
  113.         return out.toString();
  114.     }
  115.  
  116. }
Add Comment
Please, Sign In to add comment