Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

Билет 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. Лабораторна робота 31 Вивчення процесу виготовлення разової ливарної форми Мета роботи Ознайоми
3. на тему- ГРАНІ ТАЛАНТУ НІКА ТІНБЕРГЕНА Талант Таке відоме і водночас до кінця незрозуміле поня.html
4. Контрольная работа должна быть подготовлена студентом самостоятельно иметь аналитический характер содер
5. Посмотри на него- поднимается и опускается забирая все с собой
6. Методические рекомендации для выполнения контрольных работ по дисциплине История государства и права зар
7. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата історичних наук Київ ~
8. Обнинский колледж технологий и услуг ДНЕВНИК ОТЧЕТ по производственной практик
9. Общественно-политические движени
10. тематическую борьбу за завоевание Синайского полуострова и северной Нубии
11. процесу за допомогою інструментів структурнофункціонального моделювання повинні бути визначені основні в
12. Высоты 1 и BB1 треугольника BC пересекаются в точке H
13. статья представляет собой отчет по исследовательскому проекту цель которого сформулировать и апробирова
14. Реферат- Паразиты классов паукообразные, амфибии и рептилии
15. Технологии социальных сетей в рекламе и ПР Калмыков А
16. Отечественные историки о государе Иване IV Грозном- С.Ф. Платоно
17. Территория талантов
18. тема является инерциальной
19. В философских учениях древности уже затрагивались некоторые психологические аспекты которые решались либ
20. Контрольная работа- Защита сельскохозяйственных культур от вредителей.html