Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕтодичка по практическим работам.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
156.28 Кб
Скачать

Лабораторная работа 11. Создание и использование модулей Основные сведения

Структура модуля:

unit имя_модуля; {Заголовок модуля}

interface {Раздел интерфейса модуля}

uses имя_модуля1, имя_модуля2, …; {модули, используемые в разделе интерфейса}

const

{описание внешних констант}

type

{описание внешних типов}

var

{описание внешних переменных}

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

implementation {Раздел реализации модуля}

uses имя_модуля1, имя_модуля2, …; {модули, используемые в разделе реализации}

const

{описание внутренних констант модуля}

type

{описание внутренних типов модуля}

var

{описание внутренних переменных модуля}

{тексты внешних процедур и функций}

label

{метки, используемые в разделе инициализации модуля}

begin

{Раздел инициализации модуля}

end.

Имя файла, в котором находится модуль, должно совпадать с именем модуля. При компиляции модуля создается файл имя_модуля.TPU, который располагается в каталоге, заданном в пункте меню Options+Directories+EXE&TPU.

Для использования констант, типов, переменных и подпрограмм модуля необходимо в основной программе непосредственно за заголовком программы включить строку:

uses имя_модуля1,имя_модуля2,...;,

Указанные в этой директиве модули Паскаль будет искать в каталогах, заданных в пункте меню Options+Directories+Unit (можно задавать несколько каталогов, разделяя их точкой с запятой).

Необходимо помнить, что описанные в разделе интерфейса константы, типы и переменные привносятся в основную программу при подключении к ней модуля. Поэтому сугубо внутренние для модуля константы, переменные и типы следует описывать в разделе реализации.

Пример выполнения

Оформить в виде модуля вычисление следующих математических функций:

Написать программу, которая тестирует эти функции на значениях, вводимых с клавиатуры.

{ Файл модуля MODUL.PAS }

unit MODUL;

interface

function F1(X,Y:real): real;

function F2(X,Y:real): real;

function F3(X:real): real;

function F4(X:real): real;

implementation

function F1(X,Y:real): real;

begin

F1:=sin(X)*cos(Y)+sin(Y)*cos(X)

end;

function F2(X,Y:real):real;

begin

if X<+Y then F2:=sqr(X)+Y

else F2:=X-sqr(Y)

end;

function F3(X:real):real;

begin

F3:=(sin(X)/cos(X))/(sqr(X)+1)

end;

function F4(X:real):real;

begin

F4:=(sqr(X)-3*x+4)/(abs(X)+2)

end;

end.

{ Файл основной программы }

program PRIMER;

uses MODUL;

var

X,Y: real;

C: char;

begin

repeat

writeln('Введите x и y');

readln(X,Y);

writeln('F1(',X,',',Y,')=',F1(X,Y));

writeln('F2(',X,',',Y,')=',F2(X,Y));

writeln('F3(',X,')=',F3(X));

writeln('F4(',X,')=',F4(X));

writeln('Продолжить?(N-нет)');

readln(C)

until (C='N') or (C='n')

end.

Варианты заданий

Для всех вариантов задание состоит в следующем:

  • оформить в виде модуля подпрограммы, получающие в качестве параметров некоторые данный и производящие с ними определенные действия – действия и данные определяются вариантом задания;

  • написать программу, которая использует подпрограммы этого модуля и тестирует их на данных, введенных с клавиатуры.

1. Параметры – строки. Действия:

  • обменять между строками самое длинное слово первой строки на самое короткое слово второй строки,

  • вернуть конкатенацию слова первой строки, состоящего из наибольшего количества различных букв, и слова второй строки, состоящего из наименьшего количества различных букв,

  • вставить в конец первой строки количество слов с четной длиной, а в конец второй - количество слов с нечетной длиной,

  • удалить из первой строки слова, содержащиеся во второй.

2. Параметры – строки. Действия:

  • урезание более длинной строки до длины более короткой,

  • добавление пробелов в более короткую строку до длины более длинной,

  • конкатенацию первых слов обеих строк,

  • конкатенацию последних слов обеих строк.

3. Параметры – строки. Действия:

  • удаление из строки всех гласных,

  • удаление из строки всех согласных,

  • подсчет количества слогов в строке,

  • подсчет количество слов в строке.

4. Параметр – массив из N целых чисел (N – константа модуля). Действия:

  • нахождение минимального элемента,

  • нахождение максимального элемента,

  • нахождение суммы элементов массива,

  • перестановка элементов массива в обратном порядке.

5. Параметр – массив из N целых чисел (N – константа модуля). Действия:

  • упорядочение по возрастанию,

  • упорядочение по убыванию,

  • подсчет количества отрицательных элементов,

  • подсчет количества положительных элементов.

6. Параметр – двумерный массив NxM (N и M – константы модуля). Действия:

  • транспонирование относительно главной диагонали,

  • транспонирование относительно побочной диагонали,

  • нахождение минимального элемента,

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

7. Параметр – двумерный массив NxM (N и M – константы модуля). Действия:

  • сортировка строк по убыванию суммы элементов строк,

  • сортировка строк по возрастанию суммы элементов строк,

  • сортировка столбцов по убыванию суммы элементов столбцов,

  • сортировка столбцов по возрастанию суммы элементов столбцов.

8. Параметр – двумерный массив NxM (N и M – константы модуля). Действия:

  • обмен между массивами элементами, находящимися выше главной диагонали,

  • обмен между массивами элементами четных строк,

  • обмен между массивами элементами нечетных столбцов,

  • обмен между массивами отрицательными элементами, стоящими на одном и том же месте в обоих массивах.

9. Параметры – строки. Действия:

  • обмен между строками первыми словами,

  • обмен между строками последними словами,

  • обнуление более длинной строки,

  • обнуление более короткой строки.

10. Параметр – двумерный массив NxM (N и M – константы модуля). Действия:

  • нахождение разности сумм элементов массивов,

  • обмен элементами первой строки первого и последней строки второго массивов,

  • обмен элементами первого столбца второго массива и последнего столбца первого массива,

  • нахождение суммы элементов главных диагоналей двух массивов.

11. Параметр – двумерный массив NxM (N и M – константы модуля). Действия:

  • обмен элементами между массивами,

  • обмен отрицательными элементами, стоящими на одинаковых местах в двух массивах,

  • обмен положительными элементами, стоящими на одинаковых местах в двух массивах,

  • обмен максимальными элементами.