25.04.2012, 17:19 | #1 (permalink) |
Новичок
Регистрация: 25.04.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Пожалуйста, помогите написать программу в Паскале.
Заранее огромное преогромное спасибо) |
25.04.2012, 17:19 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Довольно частая проблема, нашлись похожие темы Ребята помогите написать программу на паскале Пожалуйста, помогите написать программу на Паскале Помогите пожалуйста написать программу в С++ Помогите написать программу и блок схему в Паскале Помогите написать программу в Паскале |
25.04.2012, 17:42 | #3 (permalink) |
Новичок
Регистрация: 25.04.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Да,на любые несобственные интегралы.Вычисление интеграллов с бесконечными пределами - тема курсовой работы.
И на эту тему нужна программа в паскале. Вы сможете мне помочь? |
04.05.2012, 14:41 | #5 (permalink) |
Новичок
Регистрация: 25.04.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Const
E=0.001; Var h,a,b,Jn,J2n:real; N,i:Word; Begin Write('a= '); Readln(a); Write('b= '); Readln(b); N:=2; h:=(b-a)/N; J2n:=0; For i:=1 to N do J2n:=J2n+h*Cos(a+h*i-h/2); Repeat Jn:=J2n; N:=N*2; h:=(b-a)/N; J2n:=0; For i:=1 to N do J2n:=J2n+h*Cos(a+h*i-h/2); Until Abs(Jn-J2n)<=E; Writeln(' Integral = ',J2n:0:6); Writeln('Accurate value = ',(Sin(b)-Sin(a)):0:6); Readln; End. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
04.05.2012, 15:26 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Так, но это программа расчета обычного (собственного) интеграла от вполне конкретной функции Cos(x). Здесь не вижу никаких проблем. Уточните задание: всё-таки нужно написать программу вычисления конкретной функции или любой? А если любой, то как ее задать? Нет, пока не понимаю. Может быть, у Вас есть текст задания по курсовой? Выложите, посмотрим.
|
25.05.2012, 20:17 | #7 (permalink) |
Новичок
Регистрация: 25.04.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
В методологическом указании к курсовой,описана только цель.
Задание на курсовую работу - Вычисление интегралов с бесконечными пределами. Я,если честно сама не совсем понимаю,какая нужна программа. Знала бы,не просила бы помощи... Мне бы хоть примерную программу,а потом , я по ходу буду уже с преподавателем изменять её(если потребуется). |
27.05.2012, 11:19 | #8 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Для вычисления интеграла в программе применен метод парабол (Симпсона). Алгоритм работы программы: 1. Ввод исходных данных: а) нижний предел (в данном случае ввести 0.1). б) некое исходное разумное значение верхнего предела; в дальнейшем при работе программы верхний предел будет наращиваться. При тестировании введите несколько десятков, скажем, 10, или 20, или 27 - не так уж и важно. Очень большие числа нежелательны. Равно как и слишком маленькие. Ориентируйтесь на область, где подынтегральная функция уже спадает раз в 10-100 от исходных значений. в) точность результата. 2. Ищется оптимальный шаг путем увеличения числа точек промежутка от нижнего до исходного верхнего предела. 3. Наращивается верхний предел с сохранением ранее полученного шага разбиения. 4. Выводится результат. Код:
Var a,b,b0,eps,Simp1,Simp2:Real; j,N,N0:Integer; Function F(z:real):real; begin F:=1/Sqr(z); end; Function Simpson(As,Bs:Real; Ns:Integer):Real; var i:Integer; Sum,h:Real; begin h:=(Bs-As)/(2*Ns); Sum:=(F(As)+F(Bs))/3*h; for i:=1 to Ns do Sum:=Sum+4.0*h/3.0*F(As+h*(2*i-1)); for i:=2 to Ns do Sum:=Sum+2.0*h/3.0*F(As+h*(2*i-2)); Simpson:=Sum; end; Begin Write('Lower limit = '); Readln(a); Write('Upper limit (initial value) = '); Readln(b0); b:=b0; Write('Accuracy (e.g. 0.0001) = '); Readln(Eps); N0:=10; N:=N0; Simp2:=Simpson(a,b,N); Repeat Simp1:=Simp2; N:=N+N0; Simp2:=Simpson(a,b,N); Until Abs(Simp1-Simp2)<Eps; N0:=N; Repeat Simp1:=Simp2; b:=b+b0; N:=N+N0; Simp2:=Simpson(a,b,N); Until Abs(Simp1-Simp2)<Eps; Writeln('Result: ',Simp2:0:(Round(Ln(1/Eps)/Ln(10))+1)); Readln End. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|