Разработка собственного модуля

  • doc
  • 29.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 87. Практическая работа по теме Разработка собственного модуля.doc

Практическая работа №11

Тема: Разработка собственного модуля

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

Вид работы: фронтальная.

Время выполнения: 2 часа.

Теоретический материал:

Модуль (UNIT) – программная единица, текст которой компилируется независимо (автономно). Внутренняя структура модуля (тексты программ и т.д.) скрыта от пользователя.

Заголовок модуля

UNIT     имя модуля;

Интерфейсная часть

INTERFACE       начало раздела объявлений;

USES     используемые при объявлении модули;

LABEL  подраздел объявления доступных глобальных меток; 

CONST  подраздел объявления доступных глобальных констант;

TYPE     подраздел объявления доступных глобальных типов;

VAR      подраздел объявления доступных глобальных переменных;

PROCEDURE      заголовки доступных процедур;

FUNCTION         заголовки доступных функций;

Реализационная часть

IMPLEMENTATION    начало раздела реализации;

USES   используемые при реализации модули;

LABEL подраздел объявления скрытых глобальных меток; 

CONST подраздел объявления скрытых глобальных констант;

TYPE   подраздел объявления скрытых глобальных типов;

VAR     подраздел объявления скрытых глобальных переменных;

PROCEDURE     тела доступных и скрытых процедур;

FUNCTION         тела доступных и скрытых функций;

Инициализационная часть

BEGIN

Операторы, которые выполняются при подключении модуля;

END.

Задания:

1)  Создайте модуль для вычисления факториала некоторого числа. В основной программе, не объявляя никаких переменных, осуществите вывод на экран факториалов чисел a и b.

2)  Напишите программу для ввода некоторого числа X и вывода факториала этого числа. В программе должны использоваться два модуля: модуль для проверки, является ли число X целым и положительным, модуль для вычисления факториала (можно применить модуль, созданный для решения предыдущей задаче).

Ход работы:

         В тетрадь оформите листинги программ и модулей с комментариями

1. Основная программа, согласно условию, будет содержать подключение модуля, ввод чисел a и b, вызов функции для каждого числа и вывод результата на экран. Текст программы можно представить так:

usees unitF; {подключение модуля}

begin

         writeln(‘введите два числа’);

         readln(a,b); {ввод переменных, описанных в модуле}

         f1:=factor(a);{вызов функции, описанной в модуле; вычисление факториала от a}

         f2:=factor(b);        {вызов функции, описанной в модуле; вычисление факториала от b}

         writeln(‘факториал числа а = ’, f1);

         writeln(‘факториал числа b = ’, f2);

         readln;

end.

Модуль создаётся отдельно от основной программы. Его название должно совпадать с именем файла, в котором он записан (unitF). Для удобства использования модули сохраняют с расширениями pas и tpu, т.к. откомпилированный модуль нельзя исправить. В интерфейсной части модуля описываются переменные a, b типа integer и переменные f1, f2 типа longint (для записи результата используется тип с наибольшим диапазоном из целых типов), описывается функция factor. В реализационной части находится не только описание функции, но и сама функция. Инициализационная часть будет пустой. Текст модуля unitF (файлы unitF.tpu и unitF.pas):

unit unitF;   {заголовок модуля}

interface      {интерфейсная часть}

var a, b: integer; {описание переменных доступных из вызывающий модуль программ}

f1, f2: longint;

function factor(x: integer): longint; {описание доступной программам функции}

implementation    {реализационная часть}

function factor(x: integer): longint;    {тело функции}

var i: inttger;        {локальные переменные}

f: longint;

begin

f;=1;

for i:= 1 to x do              {цикл для вычисления факториала}

f:=f*i;

factor:=f;    {имени функции всегда присваивается результат}

end;   {завершение функции}

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

2. Решение этой задачи упрощается тем, что в предыдущей уже разработан модуль для вычисления факториала. Следовательно, необходимо создать ещё один модуль и исправить вызывающую программу. В модуле proverka находится функция: является ли число, от которого вычисляется факториал, положительным и целым, это проверяется так:

ost:=x-round(x);   {определение дробной части числа x}

if (x>=0) and (ost=0) then writeln(‘факториал числа = ’,factor(round(x)))

else writeln(‘от данного числа не возможно найти факториал’);

Если x неотрицательное и целое число, то вызывается функция для вычисления факториала из модуля unitf - factor.

Контрольные вопросы и задания:

1) Дайте определение понятию модуль.

2) Обозначьте основные принципы модульного программирования.

3) Охарактеризуйте структуру пользовательского модуля.

4) Для чего предназначен раздел implementation?

5) Можно ли в модуле использовать подпрограммы из других модулей?

6) В каком разделе модуля описываются переменные, доступные извне?


Скачано с www.znanio.ru