Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package lista2;
- public class zad3 {
- public static double mnoz(double liczba, int potega)
- {
- double zwracana=liczba;
- for (int x=1; x<potega; x++)
- zwracana*=liczba;
- return zwracana;
- }
- public static int minDzielnik(int a)
- {
- if(a==0 || a==1) return a;
- else
- {
- for (int x=2; x<=Math.sqrt(a); x++)
- {
- if(a%x==0) return x;
- }
- }
- return a;
- }
- public static double poteguj(double liczba, int potega)
- {
- if(potega==0) return 1;
- boolean minus=false;
- if(potega<0)
- {
- potega*=-1;
- minus=true;
- }
- while(minDzielnik(potega)!=potega)
- {
- liczba=mnoz(liczba, minDzielnik(potega));
- potega/=minDzielnik(potega);
- }
- liczba=mnoz(liczba, potega);
- if(minus==true) return 1/liczba;
- return liczba;
- }
- public static double silnia(long liczba)
- {
- long zwracana=1;
- for (int x=1; x<=liczba; x++)
- {
- zwracana*=x;
- }
- return zwracana;
- }
- public static double E_X_pk(double x)
- {
- boolean minus=false;
- if(x<0)
- {
- x*=-1;
- minus=true;
- }
- double E=0;
- int k=0;
- while(true)
- {
- double potega=poteguj(x, k);
- double sil=silnia(k);
- if(potega<0 || sil<0) break;
- E+=potega/sil;
- k++;
- }
- if(minus==true) return 1/E;
- return E;
- }
- public static double Sin_X_pk(double x)
- {
- double sinus=0;
- while(x<0) x+=2*Math.PI;
- while(x>2*Math.PI) x-=2*Math.PI;
- int k=0;
- while(true)
- {
- double potega=poteguj(x, 2*k+1);
- double sil=silnia(2*k+1);
- if(potega<0 || sil<0) break; //tak jest najprosciej niestety, nie jest to najbardziej eleganckie rozwiazanie
- sinus+=poteguj(-1, k) * potega / sil;
- k++;
- }
- return sinus;
- }
- public static double Cos_X_pk(double x)
- {
- double cosinus=0;
- while(x<0) x+=2*Math.PI;
- while(x>2*Math.PI) x-=2*Math.PI;
- int k=0;
- while(true)
- {
- double potega=poteguj(x, 2*k);
- double sil=silnia(2*k);
- if(potega<0 || sil<0) break;
- cosinus+=poteguj(-1, k) * potega / sil;
- k++;
- }
- return cosinus;
- }
- public static void main(String[] args)
- {
- System.out.println(E_X_pk(8.1));
- System.out.println(Sin_X_pk(41.2));
- System.out.println(Cos_X_pk(-121.1));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement