C# Matematiksel formül hesaplama

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Ey yüce yaradan bana fantastik bir hayat yaşattın.
Emektar Üye
Katılım
2 Ocak 2016
Mesajlar
4,595
Çözümler
1,842
Tepki puanı
2,297
Ödüller
18
10 HİZMET YILI
Merhabalar bir hesaplama için ihtiyacım olan bir kod dizini var. Aşağıdaki formülü bir x ve n değeri için hesaplayan bir program yazmam lazım. Bilgisi olanlar yardım edebilir mi?

Kod:
f(x) = 1+ x + x^2 / 2! + x^3 / 3! + x^4 / 4! + ..... + x^n / n!

NOT: Çıktıları Konsol ortamında görmem lazım.
 
Tutti mi chiedono perché ho imparato questa lingua
Süper Üye
Katılım
17 Mar 2016
Mesajlar
634
Çözümler
5
Tepki puanı
112
Ödüller
11
10 HİZMET YILI
C#:
   int N=3;
            int X = 2;
            int faktöriyel = 1;
            double cevap=1;
            double[] hesaplananÜsler = new double[N];
            double[] hesaplananFaktöriyeller = new double[N];
            int index = 0;
            double çarpılan =1;
            double toplanılan = 0;
            for(int i=2; i<=N; i++)
            {
          
                faktöriyel *= i;
                double hesaplananÜs = Math.Pow(X, i + 1);
                hesaplananÜsler[index] = hesaplananÜs;
                hesaplananFaktöriyeller[index] = faktöriyel;
                index += 1;
                çarpılan = çarpılan * faktöriyel;
                toplanılan = toplanılan + hesaplananÜs;

            }
            Console.WriteLine((çarpılan + toplanılan) / faktöriyel);
Bu kodlarla bi kısma kadar doğru buluyorum ama sonrasında 1+x+x^2 yaparken sıkıntı yaşıyorum belki sen devamını yapabilirsin
Mesela f(2) = 2!+2^3 / 3!+2^4 / 3! i doğru buluyorum ama 1+2+2^2 olunca olmuyor
 
Son düzenleme:
Ey yüce yaradan bana fantastik bir hayat yaşattın.
Emektar Üye
Katılım
2 Ocak 2016
Mesajlar
4,595
Çözümler
1,842
Tepki puanı
2,297
Ödüller
18
10 HİZMET YILI
C#:
   int N=3;
            int X = 2;
            int faktöriyel = 1;
            double cevap=1;
            double[] hesaplananÜsler = new double[N];
            double[] hesaplananFaktöriyeller = new double[N];
            int index = 0;
            double çarpılan =1;
            double toplanılan = 0;
            for(int i=2; i<=N; i++)
            {
     
                faktöriyel *= i;
                double hesaplananÜs = Math.Pow(X, i + 1);
                hesaplananÜsler[index] = hesaplananÜs;
                hesaplananFaktöriyeller[index] = faktöriyel;
                index += 1;
                çarpılan = çarpılan * faktöriyel;
                toplanılan = toplanılan + hesaplananÜs;

            }
            Console.WriteLine((çarpılan + toplanılan) / faktöriyel);
Bu kodlarla bi kısma kadar doğru buluyorum ama sonrasında 1+x+x^2 yaparken sıkıntı yaşıyorum belki sen devamını yapabilirsin
Mesela f(2) = 2!+2^3 / 3!+2^4 / 3! i doğru buluyorum ama 1+2+2^2 olunca olmuyor
Öncelikle teşekkür ederim. Bir X ve N değerleri sabit değil değişken bu yüzden bunları kendim sürekli değiştireceğim. Mümkün olduğunda konsol üzerinden kullanıcıdan direkt veriyi çekmemiz lazım. Bunu alma konusunda sorun yaşamayız Console.Readline ile halledilir fakat formülü sizde tam olarak tutturamamışsınız. Matematiksel olarak bir sıkıntı yaşadığımızı zannetmiyorum fakat koda eklerken bir şeyleri eksik aktarıyoruz.

Benim yaptığım da şu şekildeydi fakat alakası bile olmadı:
C#:
            Console.WriteLine("Bir x sayısı giriniz:");
            int x = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Bir n sayısı giriniz:");
            int n = Convert.ToInt32(Console.ReadLine());

            int bas = 1 + x;
            int faktoriyel = 1;

            for (int b = 1; b <= n; b++)
            {
                faktoriyel *= b;
            }

            for (int i = 2; 2 <= n; i++)
            {
                int üs = Convert.ToInt32(Math.Pow(x, i));

                int sonuc = üs / faktoriyel;
                int cevap = sonuc + bas;
                Console.WriteLine(cevap);
                Console.ReadLine();
            }

for döngüsünü iç içe de kullansam sorunu çözemedim.
 
Tutti mi chiedono perché ho imparato questa lingua
Süper Üye
Katılım
17 Mar 2016
Mesajlar
634
Çözümler
5
Tepki puanı
112
Ödüller
11
10 HİZMET YILI
Biraz daha düşününce çıktı sonuç
For döngüsüyle yapılmış hali:

C#:
Console.WriteLine("N değeri girin:");
            int N = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("X değeri girin:");
            int X = Convert.ToInt32(Console.ReadLine());
            int faktöriyel = 1;
            int ilk = 1 + X;
            double cevap = 0;
            double[] hesaplananÜsler = new double[N];
            hesaplananÜsler[0] = Math.Pow(X, 2);
            double[] hesaplananFaktöriyeller = new double[N];
            int index = 1;
            for (int i = 2; i <= N; i++)
            {

                faktöriyel *= i;
                double hesaplananÜs = Math.Pow(X, i + 1);
                hesaplananÜsler[index] = hesaplananÜs;
                hesaplananFaktöriyeller[index - 1] = faktöriyel;
                index += 1;
            }

            for (int a = 0; a < hesaplananÜsler.Length - 1; a++)
            {
                double bölüm = hesaplananÜsler[a] / hesaplananFaktöriyeller[a];

                cevap += bölüm;

            }

            cevap = cevap + ilk;
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("Bulunan Sonuç:");
            Console.WriteLine(cevap);
            Console.ForegroundColor = ConsoleColor.White;
            Console.ReadLine();
 
Son düzenleme:
Ey yüce yaradan bana fantastik bir hayat yaşattın.
Emektar Üye
Katılım
2 Ocak 2016
Mesajlar
4,595
Çözümler
1,842
Tepki puanı
2,297
Ödüller
18
10 HİZMET YILI
Biraz daha düşününce çıktı sonuç
For döngüsüyle yapılmış hali:

C#:
Console.WriteLine("N değeri girin:");
            int N = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("X değeri girin:");
            int X = Convert.ToInt32(Console.ReadLine());
            int faktöriyel = 1;
            int ilk = 1 + X;
            double cevap = 0;
            double[] hesaplananÜsler = new double[N];
            hesaplananÜsler[0] = Math.Pow(X, 2);
            double[] hesaplananFaktöriyeller = new double[N];
            int index = 1;
            for (int i = 2; i <= N; i++)
            {

                faktöriyel *= i;
                double hesaplananÜs = Math.Pow(X, i + 1);
                hesaplananÜsler[index] = hesaplananÜs;
                hesaplananFaktöriyeller[index - 1] = faktöriyel;
                index += 1;
            }

            for (int a = 0; a < hesaplananÜsler.Length - 1; a++)
            {
                double bölüm = hesaplananÜsler[a] / hesaplananFaktöriyeller[a];

                cevap += bölüm;

            }

            cevap = cevap + ilk;
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("Bulunan Sonuç:");
            Console.WriteLine(cevap);
            Console.ForegroundColor = ConsoleColor.White;
            Console.ReadLine();
Çözüm bu şekildeymiş. Çok teşekkür ederim @Cromeflex :panlove:
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst