Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 9.11.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. кваліфікаційним рівнем бакалавр в галузі знань 0305 Економіка та підприємництво за напрямами підготов.html
3. Опера Джузеппе Верди Отелло Otello
4. Юриспруденция 030900 квалификации Бакалавр МЕЖДУНАРОДНОЕ ПРАВО К
5.  Экономикогеографическая характеристика Китая
6. Я понимаю что наш малыш еще не готов к поступлению в детский сад но мне срочно нужно выходить на работу го
7. Собор Святого Петра в Риме история строительства
8. управление происходит от латинского слова rdministrcio и имеет много значений; в самом широком смысле означае
9. Роль белков и липидов в жизнедеятельности водорослей
10. тематизация информации
11. Реферат- Ишемическая болезнь сердца
12. Состав и содержание правовой охраны государственного природно-заповедного фонда Российской Федерации
13. Аппаратура, используемая для очистки атмосферы от промышленных выбросов пыли
14. I Психологические основы формирования самооценки и коммуникативных умений в младшем школьном возрасте
15. Права и обязанности потребителя и изготовителя
16. технического оборудования подъемнокранового оборудования в химической промышленности
17. Противопоказания к вакцинации.html
18. ТЕМАТИКА ЛАБОРАТОРНЫХ ЗАНЯТИЙ по дисциплине Электротехника для студентов инженерного факультета заочно.
19. Правовое регулирование арендных отношений в Украине (ПРАВОВЕ РЕГУЛЮВАННЯ ОРЕНДНИХ ВІДНОСИН В УКРАЇНІ)
20. Красюковский 2008 Каким скучным местом был бы мир без птиц Цели- создать атмосферу доброжелательно