1.4 Описание переменных.
Имя переменной | Тип переменной | Значение |
N | integer | Число интервалов разбиения |
A | real | Нижний предел интегрирования |
B | real | Верхний предел интегрирования |
С | real | Параметр функции, определяемый пользователем |
H | real | Шаг интегрирования |
E | real | Точность вычислений |
X | real | Аргумент функции |
integral1 | real | Значение интеграла при n разбиений |
integral2 | real | Значение интеграла при 2n разбиений |
1.5 Схема алгоритма.
1.6 Текст программы.
PROGRAM KKP2_1_DUB3;
USES CRT;
var
A, B, C, E, ABS_Integral:real;
PROCEDURE ENTER_DATA(VAR PR_1, PR_2, P_PAR,POGR_PRO:REAL);
BEGIN
ClrScr;
Writeln ('Программа для нахождения значения интеграла на определенном промежутке');
Writeln;
writeln('Введите границы интервала [A,B],причем (A<B),число C (0<C<1) и точность E (E>0): ');
writeln;
REPEAT
BEGIN
writeln('Число C: '); readln(P_PAR);
if not (P_PAR>0) then
writeln ('C должно быть больше 0 !. Повторите ввод.')
ELSE IF NOT (P_PAR<1) THEN
WRITELN('C должно быть меньше 1!. Повторите ввод.');
END;
UNTIL ((P_PAR>0) AND (P_PAR<1));
REPEAT
BEGIN
writeln('Начало интервала A: '); readln(PR_1);
writeln('Конец интервала B: '); readln(PR_2);
if not (PR_1<PR_2) then
writeln ('A должно быть меньше B !. Повторите ввод.');
END;
UNTIL (PR_1<PR_2);
REPEAT
BEGIN
writeln('Точность E: '); readln(POGR_PRO);
if not (POGR_PRO>0) then
writeln ('E должно быть больше 0 !. Повторите ввод.');
END;
UNTIL (POGR_PRO>0);
END;
FUNCTION integration(VAR GR_1,GR_2,F_PAR,POGR_FUNC:REAL):real;
VAR
INTEGRAL1, INTEGRAL2, X, H:REAL;
N:INTEGER;
READY:BOOLEAN;
begin
integral1:=0;
integral2:=0;
n:=1;
REPEAT
N:=N*2;
H:=(GR_2-GR_1)/N;
X:=GR_1;
Integral2:=0;
repeat
if x<=(-F_PAR) then
integral2:=integral2+((1/sqr(3))*(ln(F_PAR)-F_PAR))
ELSE IF((-F_PAR<x) and (x<=F_PAR))
THEN integral2:=integral2+ln(F_PAR)
ELSE if (X>F_PAR) THEN
Integral2:=integral2+LN(X)/LN(10);
X:=X+H;
until not (X<=B);
READY:=abs(integral1-integral2)<POGR_FUNC;
INTEGRAL1:=INTEGRAL2;
UNTIL READY;
INTEGRATION:=INTEGRAL2;
END;
BEGIN
ENTER_DATA(A,B,C,E);
ABS_Integral:=INTEGRATION(A,B,C,E);
Writeln;
Writeln( 'Ответ: ');
writeln('Интеграл на промежутке от ',A:0:2,' до ',B:0:2,' равен ');
writeln (ABS_Integral:1:3,' с точностью ',E:1:3);
ReadKey;
END.
1.7 Инструкция пользователю.
Данная программа вычисляет значение интеграла функции заданной графически. Интервал интегрирования, точность вычислений и параметр функции вводятся пользователем. Программа вычислит результат и выдаст его (в числовом виде) на экран монитора.
После запуска программы на экране появится описание программы.
В ответ на приглашение к вводу значений следует ввести требуемые величины. Программа не претендует на универсальность, поэтому не стоит вводить запредельные границы интервала или очень маленькую ( ~0.001) точность вычислений. Поскольку скорость выполнения этой программы напрямую зависит от частоты процессора, то на процессорах, различающихся значительно, время вычислений (и допустимая точность) будут разными. В общем случае это определяется опытным путем.
Если все величины заданы корректно и вычисления не прерывались, то через некоторое время, зависящее от тактовой частоты процессора, программа подсчитает значение интеграла и выдаст его на экран.
В случае если требуется повторное вычисление значения, следует заново запустить программу.
1.8. Тестовый пример.
Программа для нахождения значения интеграла на определенном промежутке
Введите границы интервала [A,B], причем (A<B), число C (0<C<1), число D (D<0) и точность E (E>0):
Число C:
0.9
Число D:
-0.1
Начало интервала A:
5
Конец интервала B:
10
Точность E:
1
Ответ:
Интеграл на промежутке от A до B равен
... условий взаимной уравновешенности системы сил является одной из основных задач статики. На основе изложенной в первой главе курсовой работы алгоритм конструкции языка программирования Паскаль составим и решим ряд задач по прикладной механике. Сформулируем задачу по статике первому разделу прикладной механики. Задача. Найти центр тяжести тонкого круглого однородного стержня изогнутого по дуге ...
... в профессиональном программировании. Широкой популярностью Паскаля среди программистов способствовали следующие причины: - Благодаря своей компактности, удачному первоначальному описанию Паскаль оказался достаточно лёгким для обучения. - Язык программирования Паскаль . Отображает фундаментальные и наиболее важные концепции (идеи) алгоритмов в очевидной и легко воспринимаемой форме, что ...
... 3. Для функционирования программы необходима операционная система MS DOS 3.30 и выше или полностью совместимой с ней. Исходный текст программы написан на языке программирования высокого уровня Турбо Паскаль версии 7.0 фирмы Borland для DOS и WINDOWS с применением библиотеки Turbo Vision и содержится в файле notebook.pas в форме пригодной к использованию его как текстового документа в среде ДОС, и ...
... времени на возню с файлами на дисках или ожидание ввода, не смогут продемонстрировать какое-то впечатляющее увеличение скорости. 2. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ 2.1. Машинно – ориентированные языки Машинно – ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и ...
0 комментариев