Практическое занятие № 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.