Практическое занятие № 12
Тема: модульное программирование на Turbo Pascal
Цель работы: получить практические навыки по созданию модулей подпрограмм и их использованию в программах
Ход работы
1. Создать модульный файл с именем "math" для хранения подпрограмм математических и алгебраических функций, которых нет в Pascal:
- возведение в степень - ab;
- тангенс - tg x;
- обычный логарифм - log ba;
- десятичный логарифм - lg a;
- максимальное из двух чисел - max(a,b);
- минимальное из двух чисел - min(a,b)
Указания: введите текст модуля:
{заголовок модуля}
unit math;
{интерфейсная часть с заголовками подпрограмм}
interface
function power(a,b:real):real;
function tg(a:real):real;
function log(a,b:real):real;
function lg(a:real):real;
function max(a,b:real):real;
function min(a,b:real):real;
{часть реализации кода подпрограмм}
implementation
{функция возведения в степень}
function power(a,b:real):real;
begin
if a > 0 then
power:=exp(b*ln(a))
else if a<0 then
power:=-exp(b*ln(abs(a)))
else
power:=1;
end;
{функция расчет тангенса}
function tg(a:real):real;
begin
tg:=sin(a)/cos(a);
end;
{функция расчета обычного логарифма}
function log(a,b:real):real;
begin
log:=ln(a)/ln(b);
end;
{функция расчета десятичного логарифма}
function lg(a:real):real;
begin
lg:=ln(a)/ln(10);
end;
{функция нахождения максимума из двух чисел}
function max(a,b:real):real;
begin
if a>=b then
max:=a
else
max:=b;
end;
{функция нахождения минимума из двух чисел}
function min(a,b:real):real;
begin
if a<=b then
min:=a
else
min:=b;
end;
end.
Сохраните файл модуля под именем math.pas.
С помощью клавиши F9 откомпилируйте его. Если нет ошибок, то в папке c:\bin\tp7\bin будет создан файл math.tpu, который скопируйте в папку c:\bin\tp7\units.
2. Используя модуль math, создайте программу, которая на основании двух чисел m,n считает и выводит на экран следующие значения:
-
mn;
-
tg m;
-
log nm;
-
lg m;
-
max(m,n);
-
min(m,n)
Указания: в новом окне введите текст программы
uses crt, math;
var m,n:real;
begin
clrscr;
write('Введите два числа (m,n): ');readln(m,n);
writeln('m в степени n =
',power(m,n):5:2);
writeln('tg(m) = ',tg(a):5:2);
writeln('Логарифм m по основанию n = ',log(m,n):5:2);
writeln('Десятичный логарифм от m = ',lg(m):5:2);
writeln('Максимальное (m,n) = ',max(m,n):5:2);
writeln('Минимальное (m,n) = ',min(m,n):5:2);
readln;
end.
3. Используя модуль math, создайте программу для вычисления значения функции:

Указания: в новом окне
введите текст программы
uses crt, math;
var x,y,z:real;
begin
clrscr;
write('Введите два числа (x,y): ');
readln(x,y);
z:=(power(tg(x),3)+power(log(power(x,3),y),4))/
(4*power(lg(y),4)/power(sin(x),1/5));
writeln('Функция z = ',z:5:2);
readln;
end.
4. Используя модуль math, создайте программу для вычисления значения функции:
p=3min(f,h)+2max(f,h)
Указания: в новом окне введите текст программы
uses crt, math;
var f,h,p:real;
begin
clrscr;
write('Введите два числа (f,h): '); readln(f,h);
p:=3*min(f,h)+2*max(f,h);
writeln('Функция p = ',p:5:2);
readln;
end.