- •Лабораторный практикум по информатике для проведения занятий во втором семестре
- •Лабораторная работа №1
- •1.Процедурные и функциональные типы данных.
- •Var p: SwapProc;
- •2. Пример программной реализации функционального типа.
- •X,y : integer;
- •3. Практическая часть
- •3.2. Приближенное интегрирование функций
- •4. Задание.
- •Лабораторная работа №2 Тема занятия: «Модули»
- •1. Назначение модуля и его структура.
- •2. Структура модуля
- •Interface
- •{ Глобальные описания констант, типов, переменных, заголовки процедур и функций}
- •Implementation
- •3. Интерфейсная секция
- •4. Секция инициализации
- •5. Практическая часть
- •Interface
- •Implementation
- •I: Integer;
- •Задание на лабораторную работу
- •Лабораторная работа №3 Тема занятия: «Разработка оконного интерфейса» Задание на лабораторную работу
- •Interface
- •Image2: tImage;
- •Image1: tImage;
- •Image3: tImage;
- •Var Form1: tForm1;
- •Лабораторная работа №4 Тема занятия: «Разработка дополнительной оконной формы для рисования графика функции» Задание на лабораторную работу
- •1.Алгоритм построения графика функции
- •Interface
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) со студентом из вашей группы, имеющим либо модуль с другим методом отыскания корней уравнения, либо с другим методом интегрирования, в зависимос-ти от вашего варианта задания. Общая ваша программа, к которой будут подключе-ны оба ваши модуля позволит, используя одни и те же уравнения, сравнить разные методы приближенного решения алгебраических трансцендентных уравнений либо методы приближенного вычисления интеграла. При этом точность определяется степенью приближения к истинному значению корня (совпадением в третье, четвёртом и т. д. знаке после запятой).
