Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2014, 17:42   #1
alexandrmalov
Новичок
Джуниор
 
Регистрация: 08.05.2013
Сообщений: 1
Смущение программа, вычисляющую частичную сумму ряда Sn с заданной пользователем точностью

Друзья! Помогите пожалуйста доделать задачу:
Написать программу, вычисляющую частичную сумму ряда Sn с заданной пользователем точностью


Собственно всё практически готово, но не знаю как реализовать понятие n от 0 до бесконечности и надо сделать задаваемую пользователем точность.
Есть почти готовый код:
Код:
using System;
namespace Kont1_4
{
    class Program
    {
        public static int fact(int n)
        {
            int t, result=1;
           // result = 1;
            for (t = 1; t <= n; t++)
                result *= t;
            return result;
        }
        static void Main()
        {
            try
            {
                //var f = new factorial();
                Console.Write("Введите значение угла,х: ");
                int x = Convert.ToInt32(Console.ReadLine());

                Console.Write("Введите количество членов ряда, n: ");
                int n = Convert.ToInt32(Console.ReadLine());



                Console.Write("Введите точность e: ");
                int e = Convert.ToInt32(Console.ReadLine());
  
                do
                {
                    if (n >= 0)
                    {
                        byte i = 0;
                        double 
                        sina = 0, 
                        sinx = 0;
                        double a, b;
                        while (i <= n - 1)
                        {
                            a = (Math.Pow(-1, i));
                            b = (Math.Pow(x, (2*i + 1)));
                            //double c = (fact(i));
                            sinx += a/fact(2*i + 1)*b;
                            i++;
                            //Console.WriteLine("{0}\t{1}\t{2:0#.###}\t{3}", i, sinx, b, a);
                        }
                        Console.WriteLine("{0:0.###}", sina);
                    }

                    else
                    {
                        Console.WriteLine("Количественное значение не может быть отрицательным");
                    }
                } while (e < sinx);

            }
            catch (FormatException exit)
            {
                Console.WriteLine("Ошибка при вводе. {0}", exit.Message);
            }


            finally
            {
                Console.ReadKey();
            }
        }
    }
}
Изображения
Тип файла: jpg 2.jpg (34.2 Кб, 78 просмотров)
alexandrmalov вне форума Ответить с цитированием
Старый 04.06.2014, 18:13   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

присваиваете n равному нулю.
дальше вычисляете и суммируете в цикле до тех пор, пока очередной член ряда по модулю не окажется меньше, чем заданная точность.

p.s. строго говоря, это не совсем строго математически, но в практических целях, я думаю, вполне прокатит.

p.p.s. разумеется, ряд должен быть сходящимся!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти сумму ряда с заданной точностью = 10 C++ referent Помощь студентам 5 28.04.2014 11:29
Вычислить сумму ряда с заданной точностью: 35091_stasi Помощь студентам 2 29.10.2013 22:18
Вычислить сумму ряда с заданной точностью Tecknogleb Помощь студентам 1 20.10.2012 03:03
Вычислить с заданной точностью Е(эпсилон) сумму ряда Wika17 Помощь студентам 0 27.10.2010 08:10
найти бесконечную сумму ряда с заданной точностью логарифм Паскаль, Turbo Pascal, PascalABC.NET 1 23.07.2009 07:17