Java Final Sorusu ( Yardım )
-
aşağıdaki adıma kadar ilerleyebildim.. yardımıcı olabiliecek varsa çok sevinirim. %100 final sorusu :)
import java.util.Scanner; public class Naber_01 { public static void main(String[] args) { int k,aci,isaret=-1,i; Scanner oku = new Scanner(System.in); System.out.println("İlk açıyı giriniz:"); aci=(int) oku.nextDouble(); System.out.println("K Değerini Giriniz:"); k=(int) oku.nextDouble(); double x = Math.PI * aci/180 ; System.out.println("sin = " + Math.cos(x)); for(i=1;i<=k;i++); int terim; for(isaret = *1;(terim = isaret* Math.pow(x, 2 * i-1))) Faktoriyel(2xi-1); } }
-
sonda işlemi karıştırmışsın hocam orada tek for var
ayrıca işaret olayını anlamadım tam sanrım her işlemde tersi oluyor öyle deneyelim
isaret= -1;
for(int i=1; i<=k; i++)
{
isaret *=-1;
terim = isaret * Math.Pow(x, (2*i) - 1);
faktoriyel((2*i)-1 );
}
şimdi akış diyagramından böyle bir şey çıkıyor ama olası hatalar şunlar
terim = olmaz sadece orada += li gibi bir ifade olması lazım. bunun haricinde bir faktoriyel hesabı yapan fonksiyon yazman gerek. ve son olarak üst alma ve faktöriyel hesabını bir şekilde birbirine matematiksel işlemle bağlaman gerek. sonra da terimin çıktısını verirsin..
matematik formülünü verirsen tüm kodu yazabilrim.
-
-
kodun ta kendisi budur. ihtiyacı olan olabilir belki faydalansın..
package javaapplication27; import java.util.Scanner; public class Final { public static void main(String[] args) { Scanner oku = new Scanner(System.in); System.out.print("İlk açıyı giriniz: "); int aci=(int) oku.nextDouble(); System.out.print("K Değerini Giriniz: "); int k=(int) oku.nextDouble(); double derece_radyan = Math.PI * aci/180 ; double toplam= 0; for(int i=1;i<=k;i++) { toplam +=Math.pow(derece_radyan, (2*i)-1)* Math.pow(-1, i-1)/faktoriyel((2*i)-1); } System.out.println("Bizim sonuç:" + toplam); System.out.println("Java sonucu: " + Math.sin(derece_radyan) ); } static double faktoriyel ( int sayi) { if(sayi<=1) return 1; else return sayi*faktoriyel(sayi-1); } }
Toplam Hit: 1515 Toplam Mesaj: 4