Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРАКТИКУМ_4.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.68 Mб
Скачать

5. Практическая часть

Разработать модуль одного из двух вариантов:

1. Модуль приближенного решения алгебраических и трансцендентных

уравнений;

2. Модуль приближенного вычисления интеграла.

В качестве примера рассмотрим модуль приближенного вычисления интегра-ла методом трапеций:

unit Proc;

Interface

type MathFunc = function(x: Real): Real;

function Area(a, b: Real; n: Integer; f: MathFunc): Real;

Implementation

function Area(a, b: Real; n: Integer; f: MathFunc): Real;

var

I: Integer;

s, h, c, d: Real;

begin

s := 0;

h := (b-a)/n;

for i:= 1 to n do

begin

c := a+h*(i-1);

d := a+h*i;

s := s+h*(f(c)+f(d))/2;

end;

Area := s;

end;

end.

Здесь функция приближенного вычисления определенного интеграла методом трапеций. Area(площадь) имеет четыре параметра: a, b, n и f. a и b имеют тип Real, представляющие соответственно начало и конец интервала, на котором выполняет-ся аппроксимация; n - это целое число подинтервалов; f - формальный параметр про-цедурного типа MathFunc, используемый в качестве имени функции. Фактический параметр, связанный с f, должен быть именем функции вещественного типа. Эта функция определяет кривую, площадь под которой вычисляется.

Программа, тестирующая функцию Area для подынтегральной функции

f(x) = x2 – x может иметь следующий вид:

program ProcTypeDemo;

uses Sysutils,Math;

var

a, b: Real;

n: Integer;

function Func(x: Real): Real;

begin

Func := Sqr(x)-x;

end;

begin

Write('A - нижняя граница интервала : '); Readln(a);

Write('B - верхняя граница интервала: '); Readln(b);

Write('N - число подинтервалов : '); Readln(n);

Writeln('---------------------------------------------');

Writeln('S - площадь под кривой : ', Area(a,b,n,Func):10:2);

Readln;

end.

Задание на лабораторную работу

Требуется программу, разработанную в лабораторной работе №1, оформить в виде модуля Unit. После чего, следует создать новую совместную программу (project) со студентом из вашей группы, имеющим либо модуль с другим методом отыскания корней уравнения, либо с другим методом интегрирования, в зависимос-ти от вашего варианта задания. Общая ваша программа, к которой будут подключе-ны оба ваши модуля позволит, используя одни и те же уравнения, сравнить разные методы приближенного решения алгебраических трансцендентных уравнений либо методы приближенного вычисления интеграла. При этом точность определяется степенью приближения к истинному значению корня (совпадением в третье, четвёртом и т. д. знаке после запятой).