Практическое занятие № 13

 

Тема: Модульное программирование в Turbo Pascal

Цель занятия: получить практические навыки по созданию и использованию модулей в Turbo Pascal

 

Ход работы

 

1. С помощью языка программирования Turbo Pascal создать модуль "massiv" для работы с одномерными массивами. Модуль должен включать следующие подпрограммы:

 

- процедура формирование массива на отрезке;

- процедура вывода массива на экран;

- функция нахождения максимального элемента;

- функция нахождения минимального элемента;

- функция нахождения нахождение суммы элементов.

 

Указания: код модуля может иметь вид:

 

{модуль для работы с массивами}

unit massiv;

 

{интерфейсная часть модуля}

interface

{тип для массива}

type mas=array[1..100] of real;

 

{процедура ввода массива}

procedure vvod(var m:mas; var n:integer);

 

{процедура вывода массива}

procedure vivod(var m:mas; n:integer);

 

{функция нахождения максимального}

function maxmas(var m:mas; n:integer):real;

 

{функция нахождения минимального}

function minmas(var m:mas; n:integer):real;

 

{функция нахождения суммы}

function summas(var m:mas; n:integer):real;

{раздел реализации процедур и функций}

implementation

 

{процедура ввода массива}

procedure vvod(var m:mas; var n:integer);

var i:integer; a,b:real;

begin

    write('Введите размер массива: '); readln(n);

    write('Введите концы отрезка: '); readln(a,b);

    randomize;

    for i:=1 to n do

        m[i]:=(b-a)*random+a;

end;

 

{процедура вывода массива}

procedure vivod(var m:mas; n:integer);

var i:integer;

begin

    writeln('Массив имеет вид:');

    for i:=1 to n do

        write(m[i]:6:2);

    writeln;

end;

 

{функция нахождения максимального}

function maxmas(var m:mas; n:integer):real;

var i:integer;max:real;

begin

    {в цикле находим максимальный элемент}

    max:=m[1];

    for i:=2 to n do

        if max<m[i] then

                max:=m[i];

    {функции присваиваем ответ}

    maxmas:=max;

end;

 

{функция нахождения минимального}

function minmas(var m:mas; n:integer):real;

var i:integer; min:real;

begin

    {в цикле находим минимальный

    min:=m[1];

    for i:=2 to n do

        if min>m[i] then

                min:=m[i];

    {функции присваиваем ответ}

    minmas:=min;

end;

 

{функция нахождения суммы}

function summas(var m:mas; n:integer):real;

var i:integer; sum:real;

begin

    {в цикле считаем сумму элементов}

    sum:=0;

    for i:=1 to n do

        sum:=sum+m[i];

    {функции присваиваем ответ}

    summas:=sum;

end;

 

end.
 

Сохраните файл модуля под именем massiv.pas.

С помощью клавиши F9 откомпилируйте его. Если нет ошибок, то в папке c:\bin\tp7\bin будет создан файл massiv.tpu, который скопируйте в папку c:\bin\tp7\units.

 

2. Используя модули massiv и math, создайте программу, для решения задачи: пусть имеется два массива, над которыми нужно выполнить операции:

 

- формирование массивов и вывод на экран;

- нахождение суммы элементов в каждом массиве и общей суммы;

- нахождение минимального элемента в обоих массивах;

- нахождение максимального элемента в обоих массивах.

 

При нахождении общего минимального и максимального значений в двух массивах нужно использовать функции min(a,b) и max(a,b) из модуля math.

 

Указания: код программы может иметь вид:

 

//подключаем модули

uses crt, massiv, math;

//переменные: два массива и их размеры

var m1,m2:mas;

    n1,n2:integer;

 

begin

    clrscr;

    writeln('Формируем первый массив:');

    vvod(m1,n1);

    vivod(m1,n1);

 

    writeln;

 

    writeln('Формируем второй массив:');

    vvod(m2,n2);

    vivod(m2,n2);

 

    writeln;

 

    writeln('Сумма элементов 1-го массива: ',summas(m1,n1):5:2);

    writeln('Сумма элементов 2-го массива: ',summas(m2,n2):5:2);

    writeln('Общая сумма элементов: ',summas(m1,n1)+summas(m2,n2):5:2);

 

    writeln;

 

    writeln('Минимальный элемент в массивах = ',min(minmas(m1,n1),minmas(m2,n2)):5:2);

    writeln('Максимальный элемент в массивах = ',max(maxmas(m1,n1),maxmas(m2,n2)):5:2);

 

    readln;

end.