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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2011, 18:43   #1
drboolean
 
Регистрация: 17.06.2011
Сообщений: 4
Печаль Интегрирование методом входящих прямоугольников

Помогите решить задачу на C#:
--------------------------------------------------------------------------
Для типа Integral разработайте метод с именем M, возвращающий значение определенного интеграла, рассчитанного методом "входящих прямоугольников" для функции 3x^2+4x^3-12x^4 на интервале от x=0 до x=10 с кратностью 200 без остаточного члена.
В классе Интеграл разработайте Main-метод, вызывающий метод M, выводящий результат в консольное окно:

Код HTML:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Интеграл
    {
        struct Integral
        {
            public double a, b;
            public int m;
            public Integral(double ina, double inb, int inm)
            {
                if (ina < inb) { a = ina; b = inb; }
                else { b = ina; a = inb; }
                m = inm;
            }
         }
     }
}
___________________________________ ______________________________
Попытался решить задачу, но вернули, указав на неправильный вызов метода M. Вот мой код:

Код HTML:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Интеграл
    {
        struct Integral
        {
            public double a, b;
            public int m;
            public Integral(double ina, double inb, int inm)
            {
                if (ina < inb) { a = ina; b = inb; }
                else { b = ina; a = inb; }
                m = inm;
            }
            public double M
            {
                get
                {
                    //расчет прибилизительного значения интеграла
                    //первообразная
                    double Leibniz = ((Math.Pow(b, 3) + Math.Pow(b, 4)) - (12 / 5 * Math.Pow(b, 5))) - ((Math.Pow(a, 3) + Math.Pow(a, 4)) - (12 / 5 * Math.Pow(a, 5)));

                    //высота(шаг) прямоугольников
                    double h = (b - a) / m;

                    //суммарная площадь всех прямоугольников (точное значение интеграла)
                    double SxPryamoyg = 0;
                    //сама функция
                    for (double i = a; i < b - h; i += h) SxPryamoyg += (3 * Math.Pow(i, 2) + 4 * Math.Pow(i, 3) - 12 * Math.Pow(i, 4)); 
                    SxPryamoyg *= h;
                    double sigma = 0;
                    for (double i = a; i < b; i += h)
                        //вторая производная
                        if ((6 + 24 * i - 144 * Math.Pow(i, 2)) > sigma) sigma = (6 + 24 * i - 144 * Math.Pow(i, 2));
                    sigma *= h * h * (b - a) / 24;
                    SxPryamoyg += sigma;

                    return Math.Abs(SxPryamoyg);
                }
            }
        }
            static void Main()
            {
                Integral obj = new Integral(0,10,200);
                Console.WriteLine("Точное значение интеграла: {0}", obj.M);
                Console.ReadLine();
            }
    }
}
drboolean вне форума Ответить с цитированием
Старый 17.06.2011, 19:16   #2
como
Форумчанин
 
Регистрация: 26.07.2008
Сообщений: 116
По умолчанию

Цитата:
Сообщение от drboolean Посмотреть сообщение
Попытался решить задачу, но вернули, указав на неправильный вызов метода M.
Сделай M методом, а не свойством.
como вне форума Ответить с цитированием
Старый 17.06.2011, 19:20   #3
drboolean
 
Регистрация: 17.06.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от como Посмотреть сообщение
Сделай M методом, а не свойством.
como, не могли бы вы подсказать, как именно можно это осуществить?
drboolean вне форума Ответить с цитированием
Старый 17.06.2011, 19:41   #4
como
Форумчанин
 
Регистрация: 26.07.2008
Сообщений: 116
По умолчанию

Цитата:
Сообщение от drboolean Посмотреть сообщение
como, не могли бы вы подсказать, как именно можно это осуществить?
Кто писал твою программу? Если ты не знаешь как сделать метод, то все остальное в программе, которое по сложности превышает создание метода, явно написано не тобой. Ты думаешь, зачем тебе сказали сделать M методом? Человек, который способен сделать изменения в своей программе, с большей вероятностью написал ее сам или хотя бы разобрался.
como вне форума Ответить с цитированием
Старый 17.06.2011, 19:44   #5
drboolean
 
Регистрация: 17.06.2011
Сообщений: 4
По умолчанию

Спасибо, como!
drboolean вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интеграл. Метод входящих прямоугольников heso Помощь студентам 0 24.05.2010 22:18
Интеграл методом левых прямоугольников murzic28 Помощь студентам 1 17.05.2010 10:17
вычислить определенный интеграл методом прямоугольников ronn Помощь студентам 3 27.05.2009 19:44