Доброго времени суток. Помогите написать программу для вычисления значения определенного интеграла методом прямоугольников,приняв число разбиений отрезка(0,1),n=80. S=(интеграл от 0 до 1)xdx/(x^2+1^2)^2. Кто может помогите пожалуйста,хотя бы один пример.
Volvo,спасибо большое за ответ,эту статью я уже видел,но она мне не помогла. Текст программы я уже писал много раз,но все они неудачны,если сможете помочь,то напишите текст програмы и выложить его на форум.
volvo
29.10.2005 19:55
To: Будущий программист А давай наоборот - ты выложишь текст своей программы, и скажешь, что именно у тебя не получается. А мы поможем твою программу исправить... Пока кто-то будет ЗА тебя делать задания полностью - толку не будет.
Будущий программист
3.11.2005 2:37
Program Integral;
Var
N,i:integer;
A,b,shag,sum,itog:real;
Function f(x:real);real;
Begin
F:=x/(x*x+1)*(x*x+1);
End;
Writeln(‘Начало интегрирования a=’);
Readln(a);
Writeln(‘Конец интегрирования b=’);
Readln(b);
Writeln(‘Число разбиений отрезка n=’);
Readln(n);
Shag:=(b-a)/n;
Sum:=o
For i=1to n-1do
Sum:=sum+f(shag*i+a);
Sum:=sum+(F(a)+F(b))/2;
Itog:=(b-a)/n*sum;
Writeln(‘Интеграл=’;itog:0:5);
End.
Подскажите где ошибка.
Будущий программист
3.11.2005 2:43
Подскажите,а то теорию знаю на зубок,а вот с практикой....небольшие проблемы.
volvo
3.11.2005 2:46
Ошибки-то только синтаксические (я написал, что было неверно):
Program Integral;
Var
N,i:integer;
A,b,shag,sum,itog:real;
Function f(x:real):real; { <-- Здесь была ";" вместо ":" }Begin
F:=x/(x*x+1)*(x*x+1);
End;
Begin{ <-- Этого не было }
Writeln('Начало интегрирования a='); { <-- Неправильный апостроф }
Readln(a);
Writeln('Конец интегрирования b='); { <-- Неправильный апостроф }
Readln(b);
Writeln('Число разбиений отрезка n='); { <-- Неправильный апостроф }
Readln(n);
Shag:=(b-a)/n;
Sum:=0; { Не буква "О", а цифра 0 }For i:=1to n-1do{ <-- Пропустил ":" }
Sum:=sum+f(shag*i+a);
Sum:=sum+(F(a)+F(b))/2;
Itog:=(b-a)/n*sum;
Writeln('Интеграл=', itog:0:5); { <-- Неправильный апостроф и ";" вместо "," }End.
Будущий программист
3.11.2005 2:49
Спасибо volvo!!! Эти ошибки я видел,так как только что её пробовал. Да вот программа то,все равно интеграл не считает.
volvo
3.11.2005 2:51
Дай мне те данные, которые ты вводишь... Чему у тебя равно A, B, N?
И чему (ты думаешь) должен быть равен результат ?...
Будущий программист
3.11.2005 11:26
A=2,B=1,n=80. Ну вроде как я нахожу определенный интеграл?Или значение должно быть другое?
volvo
3.11.2005 13:57
To: Будущий программист Я не спрашивал, что ты находишь!!! Я спрашивал, КАК ты определяешь, что программа отработала неверно? У меня с твоими значениями в ответе "Интеграл=0.5"
1.Вариант №8 1.Приведите синтаксис описания и вызова процедуры-функции.Опишите виды,назначение формальных и практических параметров.Приведите пример описания процедуры функции,её вызова и поясните его. 2.Составьте программу вычисления значения определенного интеграла S= Нажмите для просмотра прикрепленного файла методом прямоугольников,приняв число разбиений отрезка (0;1),n=80. 2.1.Отладить и провести счет по программе. 2.2.Приведите в пояснительной записке: 1)Текст программы с поянениями. 2)Исходные данные и результаты счета. В программе предусмотреть: 1.Ввод нижней и верхней границ отрезка(0;1),n=80. 2.Описание процедуры-функции для вычисления подинтегральной функции f(x)=Нажмите для просмотра прикрепленного файла . 3.Отображение на экране дисплея значения интеграла. 4.Комментарии в основных местах программы.
Будущий программист
3.11.2005 18:45
Ну так что все правильно??? :smile:
volvo
3.11.2005 20:25
To: Будущий программист Я что-то потерял нить твоего вопроса. IMHO ему место - в корзине. Что ты хочешь? Написать программу для вычисления интеграла? Иди в FAQ и бери готовую (для этого, я хотел бы напомнить, FAQ и пишется, чтобы не изобретать велосипед заново каждый раз). Если у тебя проблема, и ты не можешь ПРАВИЛЬНО написать функцию, то к сожалению, тебя этому невозможно научить, пока ты сам не будешь более внимательным ...
Твоя функция должна иметь вид:
Function f(x:real):real;
Begin
F:=x/((x*x+1)*(x*x+1));
End;
(обрати внимание на скобки !!!)
Кроме того, что за бред А=2, В=1? А это начало интегрирования, и должно быть < В, иначе получишь отрицательную площадь...
Цитата
A = 1; B = 2; N = 80 Интеграл=0.15
Будь внимательнее !!!
P.S. Кстати, ты для себя бы решил, какие все-таки границы у отрезка? В посте №10 ты говоришь
Цитата
A=2,B=1,n=80.
В посте №15 (где ты привел задание):
Цитата
1.Ввод нижней и верхней границ отрезка(0;1),n=80.
Какой из них правильный ???
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.