Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.26 KB | None | 0 0
  1. package lista2;
  2.  
  3. public class zad3 {
  4.    
  5.     public static double mnoz(double liczba, int potega)
  6.     {
  7.         double zwracana=liczba;
  8.        
  9.         for (int x=1; x<potega; x++)
  10.             zwracana*=liczba;
  11.        
  12.         return zwracana;
  13.     }
  14.    
  15.     public static int minDzielnik(int a)
  16.     {
  17.         if(a==0 || a==1) return a;
  18.        
  19.         else
  20.         {
  21.             for (int x=2; x<=Math.sqrt(a); x++)
  22.             {
  23.                 if(a%x==0) return x;
  24.             }
  25.                
  26.         }
  27.        
  28.         return a;
  29.     }
  30.  
  31.     public static double poteguj(double liczba, int potega)
  32.     {
  33.        
  34.         if(potega==0) return 1;
  35.        
  36.         boolean minus=false;
  37.         if(potega<0)
  38.         {
  39.             potega*=-1;
  40.             minus=true;
  41.         }
  42.        
  43.         while(minDzielnik(potega)!=potega)
  44.         {
  45.             liczba=mnoz(liczba, minDzielnik(potega));
  46.             potega/=minDzielnik(potega);
  47.         }
  48.        
  49.         liczba=mnoz(liczba, potega);
  50.        
  51.         if(minus==true) return 1/liczba;
  52.        
  53.         return liczba;
  54.     }
  55.    
  56.     public static double silnia(long liczba)
  57.     {
  58.         long zwracana=1;
  59.        
  60.         for (int x=1; x<=liczba; x++)
  61.         {
  62.             zwracana*=x;
  63.         }
  64.        
  65.         return zwracana;
  66.     }
  67.    
  68.     public static double E_X_pk(double x)
  69.     {
  70.         boolean minus=false;
  71.         if(x<0)
  72.         {
  73.             x*=-1;
  74.             minus=true;
  75.         }
  76.         double E=0;
  77.         int k=0;
  78.        
  79.         while(true)
  80.         {
  81.             double potega=poteguj(x, k);
  82.             double sil=silnia(k);
  83.             if(potega<0 || sil<0) break;
  84.            
  85.             E+=potega/sil; 
  86.             k++;
  87.         }
  88.         if(minus==true) return 1/E;
  89.        
  90.         return E;
  91.     }
  92.  
  93.     public static double Sin_X_pk(double x)
  94.     {
  95.         double sinus=0;
  96.         while(x<0) x+=2*Math.PI;
  97.         while(x>2*Math.PI) x-=2*Math.PI;
  98.        
  99.         int k=0;
  100.         while(true)
  101.         {
  102.             double potega=poteguj(x, 2*k+1);
  103.             double sil=silnia(2*k+1);
  104.            
  105.             if(potega<0 || sil<0) break; //tak jest najprosciej niestety, nie jest to najbardziej eleganckie rozwiazanie
  106.             sinus+=poteguj(-1, k) * potega / sil;
  107.             k++;
  108.         }
  109.        
  110.         return sinus;
  111.     }
  112.  
  113.     public static double Cos_X_pk(double x)
  114.     {
  115.         double cosinus=0;
  116.         while(x<0) x+=2*Math.PI;
  117.         while(x>2*Math.PI) x-=2*Math.PI;
  118.        
  119.         int k=0;
  120.         while(true)
  121.         {
  122.             double potega=poteguj(x, 2*k);
  123.             double sil=silnia(2*k);
  124.            
  125.             if(potega<0 || sil<0) break;
  126.             cosinus+=poteguj(-1, k) * potega / sil;
  127.             k++;
  128.         }
  129.        
  130.         return cosinus;
  131.     }
  132.    
  133.     public static void main(String[] args)
  134.     {
  135.         System.out.println(E_X_pk(8.1));
  136.         System.out.println(Sin_X_pk(41.2));
  137.         System.out.println(Cos_X_pk(-121.1));
  138.     }
  139.  
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement