Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.sql.SQLOutput;
- import java.util.Scanner;
- public class calki {
- public static void main(String[] args) {
- Scanner sc =new Scanner(System.in);
- System.out.println("Podaj funkcję na podstawie przykładów:");
- System.out.println("(3x^3+0x^2-2x^1+1)/(x+2)");
- System.out.println("3x^3+-x^2+2x^1+1");
- String input=sc.nextLine();
- // String input="3x^3+-x^2+2x^1+1";
- String licznik = input;
- String mianownik = "1";
- if(input.contains("/")) {
- System.out.println("/");
- licznik = input.trim().toLowerCase().split("/")[0].substring(1,input.trim().toLowerCase().split("/")[0].length()-1);
- mianownik = input.trim().toLowerCase().split("/")[1].substring(1,input.trim().toLowerCase().split("/")[1].length()-1);
- }
- System.out.println("licznik : "+licznik);
- System.out.println("mianownik : "+mianownik);
- float[] licznikfloat=new float[licznik.split("\\+").length];
- String[] licznikarray=licznik.split("\\+");
- System.out.println("-----------------");
- System.out.println("licznik");
- for(int i=0;i<licznikfloat.length;i++)
- {
- String dozapisu;
- if(licznikarray[i].contains("^"))
- {
- int miejscedaszku=licznikarray[i].indexOf("^");
- dozapisu=licznikarray[i].substring(0,miejscedaszku-1);
- }else
- {
- dozapisu=licznikarray[i];
- }
- if(dozapisu.length()==0)
- dozapisu="1";
- else if(dozapisu.contains("-") && dozapisu.length()==1)
- dozapisu="-1";
- if(dozapisu.contains("-")){
- licznikfloat[i]=-Float.valueOf(dozapisu.substring(1));
- }
- else if(dozapisu.contains("("))
- {
- licznikfloat[i]=Float.valueOf(dozapisu.substring(1,dozapisu.length()));
- }
- else if(dozapisu.contains(")"))
- {
- licznikfloat[i]=Float.valueOf(dozapisu.substring(0,dozapisu.length()-1));
- }
- else
- {
- licznikfloat[i]=Float.valueOf(dozapisu);
- }
- System.out.println("float["+i+"]="+licznikfloat[i]);
- }
- float[] mianownikfloat=new float[mianownik.split("\\+").length];
- String[] mianownikarray=mianownik.split("\\+");
- System.out.println("-----------------");
- System.out.println("mianownik");
- for(int i=0;i<mianownikfloat.length;i++)
- {
- String dozapisu;
- if(mianownikarray[i].contains("^"))
- {
- int miejscedaszku=mianownikarray[i].indexOf("^");
- dozapisu=mianownikarray[i].substring(0,miejscedaszku-1);
- }else
- {
- dozapisu=mianownikarray[i];
- }
- if(dozapisu.length()==0)
- dozapisu="1";
- else if(dozapisu.contains("x") && dozapisu.length()==1)
- dozapisu="1";
- else if(dozapisu.contains("-") && dozapisu.length()==1)
- dozapisu="-1";
- if(dozapisu.contains("-")){
- mianownikfloat[i]=-Float.valueOf(dozapisu.substring(1));
- }
- else if(dozapisu.contains("("))
- {
- mianownikfloat[i]=Float.valueOf(dozapisu.substring(1,dozapisu.length()));
- }
- else if(dozapisu.contains(")"))
- {
- mianownikfloat[i]=Float.valueOf(dozapisu.substring(0,dozapisu.length()-1));
- }
- else {
- mianownikfloat[i] = Float.valueOf(dozapisu);
- }
- System.out.println("float["+i+"]="+mianownikfloat[i]);
- }
- System.out.println(doMath(licznikfloat,mianownikfloat,2));
- //LICZBA PUNKTOW TRAPEZOW PODZIAŁOWYCH
- int n= 1000;
- System.out.println("Podaj xp:");
- float xp=sc.nextFloat();
- System.out.println("Podaj xk:");
- float xk=sc.nextFloat();
- float dx=(xk-xp)/n;
- float s=0;
- for(int i=1;i<n;i++)
- s+=doMath(licznikfloat,mianownikfloat,(xp+i*dx));
- s = (s+(doMath(licznikfloat,mianownikfloat,xp)+doMath(licznikfloat,mianownikfloat,xk))/2)*dx;
- Double t=Math.floor(s*1000)/1000;
- System.out.println("Wartość całki wynosi: "+t);
- }
- public static String rotate(String in)
- {
- StringBuilder out = new StringBuilder();
- for(int i=in.length()-1;i>=0;i--)
- out.append(in.charAt(i));
- return out.toString();
- }
- public static Float doMath(float[] licznik,float[] mianownik,float x)
- {
- float wyniklicznik=0;
- for(int i=0;i<licznik.length;i++)
- {
- // System.out.println("ll"+(licznik.length-i-1));
- wyniklicznik+=licznik[i]*Math.pow(x,licznik.length-i-1);
- }
- // System.out.println("wyniklicznik: "+wyniklicznik);
- float wynikmianownik=0;
- for(int i=0;i<mianownik.length;i++)
- {
- // System.out.println("mianownik:"+mianownik[i]);
- // System.out.println("ll"+(mianownik.length-i-1));
- wynikmianownik+=mianownik[i]*Math.pow(x,mianownik.length-i-1);
- }
- // System.out.println("wynikmianownik: "+wynikmianownik);
- return wyniklicznik/wynikmianownik;
- }
- }
Add Comment
Please, Sign In to add comment