Matematiksel fonksiyonları C'ye geçirmek.

Başlatan loser, 26 Kasım 2017 - 23:26:08

« önceki - sonraki »

0 Üyeler ve 3 Ziyaretçi konuyu incelemekte.

loser

Öncelikle herkese merhaba, umarım güzel bir gün geçiriyorsunuzdur.
C diliyle uğraşıyorum ve elimdeki kaynakların her detayına kadar öğrenmeye çalışıyorum.
Benim sorum şu, gördüğüm matematiksel bir fonkisyonu C'ye geçimek.

Örneğin burada e=1+1/1! + 1/2! + 1/3! ......
diye gidiyor. Bende şöyle bir şey yazdım; (Şu an 2. ünitedeyim bu yüzden bu ünitede öğrendiklerimin dışına çıkmadım)

#include <stdio.h>
/* faktoriyeli hesapla,1'e böl, yedeğe kat. */
int main(){
int fonksiyon=1,yedek,faktoriyel,sayac=1,deger,s;
printf("faktoriyeli giriniz.\n");
scanf("%d",&faktoriyel);

yedek=faktoriyel;
deger=1;


while(deger<=yedek){
faktoriyel=deger;
         while(sayac<yedek){
             faktoriyel=faktoriyel*(yedek-sayac);
             sayac++;
         }
    fonksiyon=fonksiyon+(1/faktoriyel);
    deger++;
}

    printf("Sonuc=%d\n",fonksiyon);
    return 0;

}


Doğruluğu nedir ?



Amenofis

1/faktoryel her zaman 0 çıkar çünkü ikisi de int.

loser

[mention=633767]@Amenofis[/mention] Evet, her zaman 0 çıkıyor. Yani kod doğru :) Teşekkürler.

edge35

Sanırsam demek istediği kodun yanlış çalıştığıydı. Sonuç "0" olmamalı, "0,xxxx" olmalı, fakat senin kodunda int olarak tanımladığın için virgülden sonrasını atıyor.

İnt olarak tanımladıklarını float olarak değiştirip tekrar deneyebilirsin.


Sorunlarımı çözerken her şeyiyle öğrenmeye çalışıyorum. Bana balık verenden Allah razı olsun, ama bana balık tutmayı öğretenden Allah daha çok razı olsun :)

loser

Hallettim. Teşekkürler. Konu kilitlenebilir.

soldanatar

int değerlerini float'a çevirdikten sonra yazdığın kodun doğruluğunu test ettin mi ? yukarıdaki kodu test ettiğinde sonucun yanlış olduğunu fark etmen lazımdı. Kodunda faktöryeli hesaplayan bir kod bloğu yok  .  Halen sıkıntı yaşıyorsan eğer sana tavsiyem öncelikle sadece faktöryel hesaplayan bir fonksiyon oluşturman ve o fonskiyon değerini gerekli yere koyman .

edge35

[mention=634016]@soldanatar[/mention] bi tekrar kontrol edin isterseniz. while döngüsünün içerisindeki while döngüsü faktoriyel hesaplıyora benziyor


Sorunlarımı çözerken her şeyiyle öğrenmeye çalışıyorum. Bana balık verenden Allah razı olsun, ama bana balık tutmayı öğretenden Allah daha çok razı olsun :)

soldanatar

işlemi hesap makinesiyle kontrol ettiğimizde sonuçlar çelişiyor :)

.py

Alıntı yapılan: soldanatar - 06 Aralık 2017 - 18:40:44
işlemi hesap makinesiyle kontrol ettiğimizde sonuçlar çelişiyor :)

Aynen hatalı.