![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Pharaon |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
В университете задали решить эту простую задачу (с погрешностью 0.001 вычислить интеграл от 0 до 1 sin(x)/x*dx) с помощью рекурсии. Задача без рекурсии решается элементарно, но вот с ней у меня проблемы. Программу написал, при запуске выдаёт какую-то ошибку. Надеюсь на вашу помощь.
p.s. Программа из методички БЕЗ рекурсии: program Method_Prm; const e = 0.001; var i, n: word; a, b, j1, j2, h, s, x: real; begin writeln(‘Введите пределы интегрирования a и b’); readln(a, b); n:= 2; j1:= 0; repeat j2:= j1; h:= (b - a)/n; x:= a; s:= 0; for i:= 1 to n do begin s:= s + sin(x)/x; x:= x + h end; j1:= s*h; n:= n*2 until abs(j1 - j2); writeln(‘Интеграл = ’, j1) end. Неработающая, составленная мной программа: program lab_4_2; const e=0.001; var a,b,j1,j2,s:real; function int(a,b:real; n:word):real; var h,x:real; i:byte; begin j2:=j1; h:=(b-a)/n; x:=a; for i:=1 to n do begin s:=s+sin(x)/x; x:=x+h end; j1:=s*h; if abs(j1-j2)<e then int:=j1 else int:=int(a,b,n*2) end; begin writeln(int(0,1,2)); readln end. Сообщение отредактировано: Pharaon - 22.03.2008 15:48 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:40 |