Название: Алгоритм построения графика функции... Отправлено: serg_yl от Март 08, 2011, 19:27 Вечер добрый! :-)
Стоит задача. Разработать программу для вычисления определенного интеграла методом средних прямоугольников для функции типа: y=a*cos(b*x)+x^d. Коэффициенты a, b, c, d и границы интервала интегрирования считываются из файла. В диалоге необходимо изобразить график функции, графики прямых, ограничивающих область интегрирования, оси координат. Итак, начну излагать все порядку. Прошу меня поправить, если я не правильно излагаю алгоритм нахождения координат точек графики и вычисления определённого интеграла методом средних прямоугольников. 1. Построим график функции y=a*cos(b*x)+x^d. 1.1 Присвоим значения коэф. и границы интегрирования: Код: n=0; //граница A Код: iter=(qRound (qAbs(k-n)/c)) Код: double xxx1[iter], yyy1[iter]; 1.4 Строим наш график. Код: cosFunCurve = new QwtPlotCurve("Test"); 2. С нахождением определённого интеграла вроде все более менее понятно, хотя немного погодя тоже напишу. Прошу вашей помощи! Огромное спасибо! Название: Re: Алгоритм построения графика функции... Отправлено: Hellraiser от Март 08, 2011, 20:51 Даже не вникая в суть алгоритма...
1. Массивы в С/С++ начинаются с 0-го элемента и заканчиваются элементом (кол-во элементов - 1). Это надо помнить и это очень важно. Почему так говорю: Цитировать double xxx1[iter], yyy1[iter]; Как видно, элементарно выходим за границу массива. Надо условие j<iterfor (j=0; j<=iter; j++) 2. Это не ошибка, но зачем лишние вычисления: до цикла считаем нулевые элементы, т.е. xxx1[0] и yyy1[0]. Цикл, соответственно, начинаем с 1-го элемента. Условие автоматически становится ненужным. Название: Re: Алгоритм построения графика функции... Отправлено: Hellraiser от Март 08, 2011, 20:54 Вдогонку. А какой компилятор позволяет так объявлять сишный массив, если iter не константа?
Цитировать double xxx1[iter], yyy1[iter]; Название: Re: Алгоритм построения графика функции... Отправлено: serg_yl от Март 08, 2011, 21:10 Стоит Ubuntu 10.10, qt устанавливал из оф. репозитория.
Я так думаю что скорей всего это mingw. Название: Re: Алгоритм построения графика функции... Отправлено: brankovic от Март 08, 2011, 22:12 Вдогонку. А какой компилятор позволяет так объявлять сишный массив, если iter не константа? Цитировать double xxx1[iter], yyy1[iter]; Такое расширение gcc прикольное. Чуть не то указал и SIGSEGV. Я так думаю что скорей всего это mingw. Это Gnu Compiler Collection, более известный как gcc |