S= x-x3/3! + x5/5! -x7/7! +...
Dizisinde takıldım.
Paydalar ardışık gitse
fakt = fakt*i;
,
yazacağım ama tek sayılar şeklinde gidiyor.
Yardımcı olursanız sevinirim.
import java.util.Scanner;
public class Hesaplama {
public static void main(String[] args) {
Scanner klavye = new Scanner(System.in);
double x, toplam=0, fakt = 1;
int i,N, isaret =1;
System.out.println("x değerini girinz");
x = klavye.nextDouble();
System.out.println("Toplam terim sayını giriniz");
N= klavye.nextInt();
xpow = 2*N-1;
for (i = 1; i <=N; i++) {
toplam +=isaret *(Math.pow(x, 2*i+1))/fakt;
isaret =-isaret;
fakt = "Bulamadım";//////
}
System.out.println(toplam);
}
}
O satırı
fakt *= (2*i)*(2*i+1);
şeklinde yazabilirsin. Ayrıca toplamı yanlış hesaplıyorsun. i=1 değeriyle test edersek 2^3 şeklinde devam ediyor ama 2^1 olmalıydı. Ya bunu değiştirmeli ya da döngünü 0 dan başlatıp N-1'de sonlandırmalısın.
Bu işleri kafa karıştırmadan yapmanın en kolayı matematikle birebir gitmek. Eğer ardışık gitmiyorsa sen de döngünü ardışık götürme :)
Örneğin kodlarını fazla değiştirmeden az oynama yapıyorum.
for(i = 1; i < N*2; i += 2) {
toplam +=isaret *(Math.pow(x, i))/fakt;
isaret =-isaret;
fakt *= (i+1)*(i+2);
}
Hatta işaretlerle uğraşmadan direk (-1)^(i+1) yazabilirsin.
@bugra9 çok teşekkür ederim.
Alıntı YapBu işleri kafa karıştırmadan yapmanın en kolayı matematikle birebir gitmek. Eğer ardışık gitmiyorsa sen de döngünü ardışık götürme :)
Bu cümle bana klavuz oldu.
Kolay gelsin.
Programın tam hali
package Bolum3DenetimYapilari.Alistirmalar;
import java.util.Scanner;
public class Hesaplama {
public static void main(String[] args) {
Scanner klavye = new Scanner(System.in);
double x, toplam=0, fakt = 1, xpow;
int i,N, isaret =1;
System.out.println("x değerini girinz");
x = klavye.nextDouble();
System.out.println("Toplam terim sayını giriniz");
N= klavye.nextInt();
xpow = 2*N-1;
for(i = 1; i < N*2; i += 2) {
toplam +=isaret *(Math.pow(x, i))/fakt;
isaret =-isaret;
fakt *= (i+1)*(i+2);
}
System.out.println(toplam);
}
}
rica ederim, etiket ve kodların son hali için teşekkür ederim.