Не могу разобраться с типом функции - C#

  1. Как правильно задать функцию в С#, чтобы на выходе получилась математическая функция? Поясню.


textual

Код к задаче: «Не могу разобраться с типом функции - C#»

namespace method_setok
{
 
    delegate double name_delegate(string func, double Xn, double Xk, double h);
 
    class Program
    {
 
        static double parse_func(string func, double Xn, double Xk, double h) 
        {
            double x = Xn;
            int i, j, kf = 1, st = 1, ost, free = 0, n;
            string sKF = "", sST = ""; 
            bool minus, nenum = false;
 
            n = Convert.ToInt32((Xk - Xn) / h + 1);
            double[] arr = new double[n];
 
            if (func[0] == '-') minus = true; else minus = false;
            if (minus == true) j = 1; else j = 0;
 
            for (i = j; i < func.Length; i++)
            {
                if ((int)func[i] < 48 || (int)func[i] > 57) nenum = true;
            }
 
            if (nenum == true)
            {
                while ((int)func[j] >= 48 && (int)func[j] <= 57)
                {
                    sKF = sKF + func[j];
                    j++;
                }
 
                if (sKF.Length > 0) kf = Convert.ToInt32(sKF);
                if (minus == true) kf = -kf;
                ost = func.Length - sKF.Length - Convert.ToInt32(minus) - 1;
                if (ost != 0)
                {    
                    for (i = func.Length - ost + 1; i < func.Length; i++) sST = sST + func[i];
                    if (sST.Length > 0) st = Convert.ToInt32(sST);
                }
            }
            else
            {
                free = Convert.ToInt32(func);
                kf = 0;
                st = 0;
            }
 
 
            return (nenum == true) ? Math.Pow(kf * x, st) : free;
 
        }
 
        static void Main(string[] args)
        {
            string p, q, f;
            double Xn, Xk, h, x;
            int i;
            
            Console.Write("\n Данная программа найдёт решение дифференциального уравнения вида \n y\" + p(x)y' + q(x)y = f(x) методом сеток.\n\n Введите функцию p(x) = ");
            p = Console.ReadLine();
            Console.Write("\n Введите функцию q(x) = ");
            q = Console.ReadLine();
            Console.Write("\n Введите функцию f(x) = ");
            f = Console.ReadLine();
 
            Console.Write("\n Введите начало промежутка Xn = ");
            Xn = Convert.ToDouble(Console.ReadLine());
            Console.Write("\n Введите конец промежутка Xk = ");
            Xk = Convert.ToDouble(Console.ReadLine());
            Console.Write("\n Введите шаг промежутка h = ");
            h = Convert.ToDouble(Console.ReadLine());
 
            name_delegate xz = new name_delegate(parse_func);
            double P = xz(p, Xn, Xk, h);
            double Q = xz(q, Xn, Xk, h);
            double F = xz(f, Xn, Xk, h);
 
            for (i = 0, x = Xn; x <= Xk; i++, x = x + h)
            {
                Console.Write("\n\n " + x + "    ");
                Console.Write(P + "    " + Q + "    " + F);
            }

СДЕЛАЙТЕ РЕПОСТ

6   голосов, оценка 3.833 из 5



Похожие ответы
  1. Привет знатокам Сразу скажу - мне нужен хотя бы ручной расчет не говоря о программе, т.к. в программировании я мало понимаю, и скорее всего обратился не в ту тему или даже форум. Заранее извиняюсь Ребят, подскажите как найти оси координаты КУРСОРА если они расположены в обратном направлении, а их центр находится в левом верхнем углу? На скриншоте http://prntscr.com/gnbkw4 я показал так скажем условие которое сделал сам, но для моего мегамозга эта сложная задача.

  1. Код ================== { Entry 1 } Application Name: Google Chrome URL: http://cp.fange.ru/register Username: 123dd Password: 1234qwer ================= { Entry 2 } Application Name: Google Chrome URL: http://mail.ru Username: 123dd Password: 1234qwer ================== { Entry 3 } Application Name: Google Chrome URL: http://cp.ketrawars.net/register Username: 123dd Password: 1234qwer ================== как получить username:password из каждой части тхт

  1. Здравствуйте, я столкнулся с проблемой. Есть программа которая выполняет данные ей команды. Но проблема в том что надо реализовать пользовательские скрипты. Иными словами, есть папка в которой лежат файлы с кодом который программа должна выполнять при соответствующей команде в отдельном процессе. Вариант с запуском готовых .exe отпал сразу. Как я себе представляю: есть код на с#, который программа компилирует и выполняет. Принимаю все варианты и советы. Заранее спасибо!

  1. Доброго времени суток, Господа. Вопрос в следующем. Как мне правильно сделать пересечение друх множеств? Вопросы следующие:1. Хочу найти пересечение двух последовательностей, которые хранят информацию о свойствах двух классов, по имени этих свойств:

  1. Дано равенство, в котором цифры заменены на буквы: rsrx + sru = rutr Найдите сколько у него решений, если различным буквам соответствуют различные цифры. может знаете менее прямолинейное решение?) а то как-то даже выглядит не хорошо.

  1. Всем привет! Из своего приложения запускаю стороннюю консольную программу и хочу передать ей строку с параметрами. Перед этим, пользователь через окно обзора выбирает несколько файлов и добавляет их в список, происходит это так:

  1. Добрый день! Имеется задача, которую, к сожалению, пока не могу реализовать: Есть текстовый файл состоящий из множества строк. В нем нужно заменить первое вхождение фразы, удовлетворяющей маске "; день недели(3 символа) число (2 символа) месяц (3 символа) год (4 символа) время (hh:mm:ss) часовой пояс (всегда +0300)" (например,"; Fri, 30 Jun 2017 09:06:53 +0300"), на второе вхождение фразы, удовлетворяющей маске. Остальные фразы не трогать. Фраза всегда начинается с символа ";" и заканчивается на "+0300". Если бы вся фраза всегда располагалась на одной строке, проблем у меня это бы не вызвало. Но фраза может начаться на одной строке, а закончиться на другой. Пример прилагаю.

  1. Всем доброго времени суток. Есть голая форма с label. При наведении мышки на нее MouseEnter Эта label перебирает из массива приветсвия на разных языках. Это вроде работает но как потом выключить этот поток я не могу

  1. Ребят, нужна помощь: У меня на кнопке такой код:

  1. Написать программу, которая определяет, попадает ли точка с заданными координатами в область, закрашенную на рисунке. Вроде бы задание элементарное, но мои познания в математики на столько скудны, что я не смог справиться с треугольником, попытался найти формулу, но у меня не вышло