У вас вопросы?
У нас ответы:) SamZan.net

Модуль независимая программная единица которая может включать в себя компоненты раздела описаний программ

Работа добавлена на сайт samzan.net: 2016-06-20

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 9.6.2025

Билет 5

Концепция модули. Структура описания модуля.

Весьма желательно иметь возможность эффективного использования одной и той же подпрограммы во многих программах без её повторного описания. Это, в частности, совершенно необходимо для стандартных подпрограмм. Турбо Паскаль предоставляет такую возможность за счёт введения модулей как вида программных структур.

Модуль - независимая программная единица, которая может включать в себя компоненты раздела описаний программы (типы, константы, переменные, процедуры и функции, объекты), доступные для использования в любой программе. Таким образом, модуль выступает как оболочка для хранения описаний компонент и их экспорта в программы. Независимость модуля означает, что он может быть откомпилирован автономно от использующей его программы и может храниться отдельно от программ.

Структура описания модуля.

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

unit  < имя модуля >;

interface  

< описания компонентов  модуля >

[implementation

< реализация тел процедур и функций >]

[begin

< операторы инициализирующей части >]

end.

Заголовок модуля включает ключевое слово unit  и имя модуля (желательно, чтобы оно совпадало с именем файла, хранящего текст модуля). Имя модуля служит средством связи модуля с использующей его программой. Такая связь устанавливается специальным описанием, помещаемым в начале раздела описаний программы, в которой используются данные модули: uses  < список имён используемых модулей >;

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

Исполняемая часть содержит так называемые тела процедур и функций, заголовки которых описаны в интерфейсной части. Тела имеют обычную форму описаний процедур и функций, либо могут отличаться от таковой только сокращенными заголовками, состоящими лишь из ключевого слова procedure или function и имени процедуры (функции). Исполняемая часть является как бы "невидимой" для пользователя частью модуля. Исполняемая часть отсутствует, если в модуле не описаны процедуры и/или функции.

Инициализирующая часть завершает описание модуля и является необязательной частью модуля. Если она присутствует, то помещается между скобками begin  end , если отсутствует - то остаётся только закрывающая модуль скобка end и последующая точка. Назначением инициализирующей части является выполнение начальных действий при подключении модуля к исполняемой программе. Обычно инициализирующие действия подготавливают нормальную работу программы. Например, инициализируют переменные начальными значениями, открывают файлы, устанавливают связь с коммуникационными средствами и др.

В интерфейсной или исполняемой частях можно использовать другие модули, подключаемые описанием uses, которое должно следовать непосредственно за ключевыми словами interface или implementation. В исполняемой части можно также использовать локальные имена, относящиеся к инициализирующей части модуля.

Определить столбец прямоугольной матрицы с максимальной

суммой элементов и, если его номер больше заданного,

сформировать матрицу из стобцов исходной до найденного

столбца, иначе сформировать массив из элементов

заданного столбца.

program Z433_5;

uses Z433_5;

Var A,B:matr;

   C:mass1;

   S:mass2;

   i,j,k,G:integer;

BEGIN

for i := 1 to n do

for j := 1 to m do

readln(A[i,j]);

readln(G);

Sum(A,s);

Maximum(S,k);

if k > G then

 Begin

 CreateMatr(A,k,B);

 for i := 1 to n do

   Begin

   for j := 1 to k do

   write(B[i,j]:5:3,' ');

   writeln;

   end;

 end

else Begin

             CreateMass(A,k,C);

             for i := 1 to n do

             writeln(C[i]:5:3);

             end;

readln;

END.

Unit Z433_5;

interface

Const n = 3;

     m = 4;

Type matr = array[1..n,1..m] of real;

    mass1 = array[1..n] of real;

    mass2 = array[1..m] of real;

procedure Sum(A:matr; Var S:mass2);  {записывает в массив S суммы элементов столбцов матрицы A}

procedure Maximum(S:mass2; Var k:integer);  {k - максимальный элемент массива S}

procedure CreateMatr(A:matr; k:integer; Var B:matr);  {формирует матрицу из столбцов исходной до k-го}

procedure CreateMass(A:matr; k:integer; Var C:mass1);  {формирует массив из элементов k-го столбца исходной матрицы}

implementation

procedure Sum(A:matr; Var S:mass2);

Var i,j:integer;

Begin

for j := 1 to m do

 Begin

 S[j] := 0;

 for i := 1 to n do

 S[j] := S[j] + A[i,j];

 end;

end;  {Sum}

procedure Maximum(S:mass2; Var k:integer);

Var i:integer;

   max:real;

Begin

max := S[1];

k := 1;

for i := 2 to m do

if S[i] > max then

 Begin

 max := S[i];

 k := i;

 end;

end;  {Maximum}

procedure CreateMatr(A:matr; k:integer; Var B:matr);

Var i,j:integer;

Begin

for i := 1 to n do

for j := 1 to k do

B[i,j] := A[i,j];

end;  {CreateMatr}

procedure CreateMass(A:matr; k:integer; Var C:mass1);

Var i:integer;

Begin

for i := 1 to n do

C[i] := A[i,k];

end;  {CreateMass}

END.




1. Шпоры по экономической теори
2. Научная и художественная картины мира
3. тема правових соціальноекономічних організаційнотехнічних
4. Эксперт от 19 октября 1998 года 39 анализа инвестиционной привлекательности регионов России СПетербург зан
5. бакалавр галузь знань 0305 Економіка та підприємництво нап
6. Тема- Социальнотрудовые отношения рынок труда и занятость населения 1 в
7. Амальрик, Андрей Алексеевич.html
8. Мордовский государственный педагогический институт имени М
9. КАЛЕВАЛА ПРИКАЗ 64 Петрозаводский ГО
10. Содержание и направленность профессиональной подготовки в спортивной педагогике и деятельности тренера по фехтованию