<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40710&amp;view=findpost&amp;p=365612</guid>
        <pubDate>Tue, 25 May 2004 22:18:06 +0000</pubDate>
        <title>Что такое модуль?</title>
        <link>https://forum.sources.ru/index.php?showtopic=40710&amp;view=findpost&amp;p=365612</link>
        <description><![CDATA[romtek: Вот пример модуля и программы, использующей модуль.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">unit MathLib;</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">Const Max=10;</div><div class="code_line">Type</div><div class="code_line">&nbsp;&nbsp; &nbsp; TVector: array [1..Max] of integer;</div><div class="code_line">&nbsp;</div><div class="code_line">function &nbsp;Sum (a, b: integer): integer;</div><div class="code_line">function &nbsp;Hypot (a, b: real): real;</div><div class="code_line">procedure InitVector (var V: TVector);</div><div class="code_line">&nbsp;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">function Sum (a, b: integer): integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;summa := a + b;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">function Hypot (a, b: real): real;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Hypot := Sqrt( Sqr(a) + Sqr(b))</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure InitVector (var V: TVector);</div><div class="code_line">var i: integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; for i:=1 to Max do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; V[i]:=0;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
Пример использования модуля<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Uses MathLib;</div><div class="code_line">&nbsp;</div><div class="code_line">var A: TVector;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;InitVector (A); </div><div class="code_line">&nbsp;&nbsp;writeln (sum (100,20));</div><div class="code_line">&nbsp;&nbsp;writeln (Hypot (100,20):5:3);</div><div class="code_line">end.</div></ol></div></div></div></div><br>
<br>
<hr>Откомпилируйте модуль, выбрав <strong class='tag-b'>Compile-&gt;Build</strong>. Таким образом создастся TPU файл, который можно использовать в дальнейшем в разных программах.<br>
Если в процессе компиляции программы, использующей модуль вы получили сообщение о том, что модуль не найден, то<ol class="tag-list" type="1"><li>Возможно, вы просто не откомпилировали модуль... Проверьте, что TPU файл создан.</li><li>Модуль есть, и ошибку можно устранить, зайдя в <strong class='tag-b'>Options-&gt;Directories</strong> в строке <strong class='tag-b'>Unit directories</strong> добавить путь к вашему TPU файлу: <strong class='tag-b'>D:&#092;TP7&#092;Units;D:&#092;TP7&#092;Vasya</strong> (пример).</li></ol><strong class='tag-b'>Примечание: <span class="tag-color tag-color-named" data-value="red" style="color: red">и не пытайтесь запустить модуль&#33;</span></strong><br>
У вас всё равно ничего не получится, т.к. модуль является &quot;библиотекой&quot;. Можно запустить только программу.]]></description>
        <author>romtek</author>
        <category>Pascal: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=40710&amp;view=findpost&amp;p=264162</guid>
        <pubDate>Tue, 16 Dec 2003 02:30:48 +0000</pubDate>
        <title>Что такое модуль?</title>
        <link>https://forum.sources.ru/index.php?showtopic=40710&amp;view=findpost&amp;p=264162</link>
        <description><![CDATA[@Hgpeu: <em class='tag-i'><strong class='tag-b'>Что такое модуль?</strong></em><br>
<br>
Модуль это специальная разновидность программы на паскале. Он содержит описание типов данных, переменных функций или процедур и других объектов, которые затем могут используются в других программах паскаля. Подпрограмму имеет смысл включать в состав модуля в том случае, когда она реализует действие, которое приходится выполнять достаточно часто. Подпрограммы, входящие в модуль, можно написать, отладить, модуль откомпилировать один раз, а использовать многократно.<br>
Откомпилированный модуль имеет расширение TPU (TPW) и из него код функций и процедур включается в вашу программу если вы в ней их используете.<br>
<br>
<em class='tag-i'><strong class='tag-b'>Подключение модуля.</strong></em><br>
<br>
Доступ к описаниям, функциям и процедурам модуля обеспечивает оператор <strong class='tag-b'>uses</strong>, в котором указывается имя модуля. Этот оператор размещается в разделе описаний программы, сразу после заголовка. Если в программе используется не один модуль, а сразу несколько, необходимо указать имена всех модулей, перечислив их через запятую. (Исключением является модуль <em class='tag-i'>System</em>, ссылка на который необязательна).<br>
<br>
<em class='tag-i'><strong class='tag-b'>Описание модуля.</strong></em><br>
<br>
Модуль начинается заголовком<br>
<strong class='tag-b'>Unit</strong> &lt;имя модуля&gt;;<br>
Где &lt;имя модуля&gt; - имя модуля, которое выбирается в соответствии с правилами Паскаля.<br>
<strong class='tag-b'>Файл, содержащий модуль, обязан иметь то же имя, что и модуль&#33;</strong><br>
<br>
<em class='tag-i'><strong class='tag-b'>Структура модуля.</strong></em><br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">-----------------------</div><div class="code_line">|      Unit name      |</div><div class="code_line">-----------------------</div><div class="code_line">|      Interface      |</div><div class="code_line">-----------------------</div><div class="code_line">| Интерфейсная секция |</div><div class="code_line">-----------------------</div><div class="code_line">|   Implementation    |</div><div class="code_line">-----------------------</div><div class="code_line">|  Секция реализации  |</div><div class="code_line">-----------------------</div><div class="code_line">| Секция инициализации|</div><div class="code_line">-----------------------</div></ol></div></div></div></div><br>
<br>
Модуль состоит из трех частей.<br>
Первая – <em class='tag-i'>интерфейсная секция</em> – содержит те описания типов, переменных и других объектов данных, которые можно использовать в других программах или модулях. Она начинается с зарезервированного слова <strong class='tag-b'>interface</strong>. Здесь приводятся не полные описания процедур и функций, а только их заголовки, которые должны совпадать с полными описаниями в <em class='tag-i'>секции реализации</em>. <em class='tag-i'>Секция реализации</em> начинается с зарезервированного слова <strong class='tag-b'>implementation</strong>. Все описания, содержащиеся в секции реализации, являются локальными, их область действия – данный модуль. Здесь же содержаться полные описания функций и процедур модуля. Последняя часть модуля – <em class='tag-i'>секция инициализации</em>. Она может быть и пустой и содержать только зарезервированное слово <strong class='tag-b'>end</strong> или включать в себя исполняемые операторы, выполняющие необходимые действия по инициализации (например, по присваиванию начальных значений переменным) модуля.]]></description>
        <author>@Hgpeu</author>
        <category>Pascal: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	