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