piotranon

Untitled

Mar 18th, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.14 KB | None | 0 0
  1. import java.sql.SQLOutput;
  2. import java.util.Scanner;
  3.  
  4. public class calki {
  5.     public static void main(String[] args) {
  6.         Scanner sc =new Scanner(System.in);
  7.  
  8.         System.out.println("Podaj funkcję na podstawie przykładu:");
  9.         System.out.println("(3x^3+-x^2+2x^1+1)/(x+2)");
  10.  
  11. //        String input=sc.nextLine();
  12.         String input="(3x^3+-x^2+2x^1+1)/(x+2)";
  13.  
  14.         String licznik = input;
  15.         String mianownik = "1";
  16.  
  17.         if(input.contains("/")) {
  18.             licznik = input.trim().toLowerCase().split("/")[0].substring(1,input.trim().toLowerCase().split("/")[0].length()-1);
  19.             mianownik = input.trim().toLowerCase().split("/")[1].substring(1,input.trim().toLowerCase().split("/")[1].length()-1);
  20.         }
  21.  
  22.         System.out.println("licznik : "+licznik);
  23.         System.out.println("mianownik : "+mianownik);
  24.  
  25.         float[] licznikfloat=new float[licznik.split("\\+").length];
  26.         String[] licznikarray=licznik.split("\\+");
  27.  
  28. //        System.out.println("-----------------");
  29. //        System.out.println("licznik");
  30.         for(int i=0;i<licznikfloat.length;i++)
  31.         {
  32.             String dozapisu;
  33.             if(licznikarray[i].contains("^"))
  34.             {
  35.                 int miejscedaszku=licznikarray[i].indexOf("^");
  36.                 dozapisu=licznikarray[i].substring(0,miejscedaszku-1);
  37.             }else
  38.             {
  39.                 dozapisu=licznikarray[i];
  40.             }
  41.  
  42.             if(dozapisu.length()==0)
  43.                 dozapisu="1";
  44.             else if(dozapisu.contains("-") && dozapisu.length()==1)
  45.                 dozapisu="-1";
  46.  
  47.             if(dozapisu.contains("-")){
  48.                 licznikfloat[i]=-Float.valueOf(dozapisu.substring(1));
  49.             }
  50.             else{
  51.                 licznikfloat[i]=Float.valueOf(dozapisu);
  52.             }
  53.  
  54.  
  55. //            System.out.println("float["+i+"]="+licznikfloat[i]);
  56.         }
  57.  
  58.  
  59.         float[] mianownikfloat=new float[mianownik.split("\\+").length];
  60.         String[] mianownikarray=mianownik.split("\\+");
  61.  
  62. //        System.out.println("-----------------");
  63. //        System.out.println("mianownik");
  64.         for(int i=0;i<mianownikfloat.length;i++)
  65.         {
  66.             String dozapisu;
  67.             if(mianownikarray[i].contains("^"))
  68.             {
  69.                 int miejscedaszku=mianownikarray[i].indexOf("^");
  70.                 dozapisu=mianownikarray[i].substring(0,miejscedaszku-1);
  71.             }else
  72.             {
  73.                 dozapisu=mianownikarray[i];
  74.             }
  75.  
  76.             if(dozapisu.length()==0)
  77.                 dozapisu="1";
  78.             else if(dozapisu.contains("x") && dozapisu.length()==1)
  79.                 dozapisu="1";
  80.             else if(dozapisu.contains("-") && dozapisu.length()==1)
  81.                 dozapisu="-1";
  82.  
  83.             if(dozapisu.contains("-")){
  84.                 mianownikfloat[i]=-Float.valueOf(dozapisu.substring(1));
  85.             }
  86.             else{
  87.                 mianownikfloat[i]=Float.valueOf(dozapisu);
  88.             }
  89.  
  90.  
  91. //            System.out.println("float["+i+"]="+mianownikfloat[i]);
  92.         }
  93.         doMath(licznikfloat,mianownikfloat,2);
  94.     }
  95.     public static String rotate(String in)
  96.     {
  97.         StringBuilder out = new StringBuilder();
  98.         for(int i=in.length()-1;i>=0;i--)
  99.             out.append(in.charAt(i));
  100.  
  101.         return out.toString();
  102.     }
  103.     public static Float doMath(float[] licznik,float[] mianownik,float x)
  104.     {
  105.         float wyniklicznik=0;
  106.         for(int i=0;i<licznik.length;i++)
  107.         {
  108. //            System.out.println("ll"+(licznik.length-i-1));
  109.             wyniklicznik+=licznik[i]*Math.pow(x,licznik.length-i-1);
  110.         }
  111. //        System.out.println("wyniklicznik: "+wyniklicznik);
  112.         float wynikmianownik=0;
  113.         for(int i=0;i<mianownik.length;i++)
  114.         {
  115. //            System.out.println("mianownik:"+mianownik[i]);
  116. //            System.out.println("ll"+(mianownik.length-i-1));
  117.             wynikmianownik+=mianownik[i]*Math.pow(x,mianownik.length-i-1);
  118.         }
  119. //        System.out.println("wynikmianownik: "+wynikmianownik);
  120.         return wyniklicznik/wynikmianownik;
  121.     }
  122. }
Add Comment
Please, Sign In to add comment