pascalabcnet/PABCNetHelp/LangGuide/_ProgrStruct_Defs/index_progrstruct.html

110 lines
6.2 KiB
HTML
Raw Permalink Normal View History

<html>
<head>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="program">
<param name="Keyword" value="uses">
</object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" href="../../default.css">
<style type="text/css">
.auto-style1 {
font-family: monospace;
font-size: 10pt;
color: #000080;
}
</style>
</head>
<body>
<H1>Структура программы: обзор</H1>
<p class="pabcmain">Программа содержит <a href="identifiers.html">ключевые слова</a>,
<a href="identifiers.html">идентификаторы</a>, <a href="comments.html">комментарии</a>.
Ключевые слова используются для выделения синтаксических конструкций и
подсвечиваются жирным шрифтом в редакторе. Идентификаторы являются именами
объектов программы и не могут совпадать с ключевыми словами. </p>
<p class="pabcmain">&nbsp;Программа на языке <b>PascalABC.NET</b> имеет следующий вид:</p>
<blockquote>
<p><code><b>program</b>
<code class="codeit">имя программы</code>;<br><code class="codeit">раздел </code></code>
<b><code>uses</code></b><code><br>
<code class="codeit">раздел описаний</code><br><b>begin</b><br>&nbsp;
<code class="codeit">операторы</code><br><b>end</b>.</code> </p>
</blockquote>
<p>Первая строка называется <i><b><font color="#FF0000">заголовком программы</font></b></i> и не является
обязательной. В <strong>PascalABC.NET</strong> использование заголовка программы
считается устаревшим.</p>
<p><a href="../Modules/uses.html">Раздел
<code>
<b>uses</b></code></a>
состоит из нескольких подряд идущих секций <span class="auto-style1"> <strong>
uses</strong></span>, каждая из которых
начинается с ключевого слова
<b><code>uses</code></b>,
за которым следует список имен модулей и пространств имен .NET, перечисляемых через запятую.</p>
<p>Раздел описаний может включать следующие подразделы:</p>
<ul>
<li><a href="vardef.html">раздел описания переменных</a> </li>
<li><a href="constdef.html">раздел описания констант</a></li>
<li><a href="typesdef.html">раздел описания типов</a></li>
<li><a href="labeldef.html">раздел описания меток</a></li>
<li><a href="../ProcFunc/procdef.html">раздел
описания процедур и функций</a></li>
</ul>
<p>Данные подразделы следуют друг
за другом в произвольном порядке.</p>
<p>Далее следует <a href="../Operators/beginend.html">блок</a> <b><code>begin</code></b>/<b><code>end</code></b>,
внутри которого находятся <a href="../Operators/index_statements.html">операторы</a>, отделяемые один от другого символом &quot;точка
с запятой&quot;. Среди операторов может присутствовать
<a href="../Operators/var_statement.html">оператор описания
переменной</a>, который позволяет описывать переменные внутри блока.</p>
<p>Раздел
<b><code>uses</code></b><code><code class="codeit"><span style="font-style: normal">
</span></code></code>и раздел описаний
могут отсутствовать.</p>
<p>Например:</p>
<blockquote>
<code><b>program</b> MyProgram;<br>
<b>var</b> <br>
&nbsp; a,b: integer;<br>
<b>begin<br>
</b>&nbsp; (a,b) := ReadInteger2;<br>
<strong>&nbsp; var </strong>x := a/b;<br>
&nbsp; Println(x);<br>
<b>end</b>.</code></blockquote>
<p>или</p>
<blockquote>
<code><b>uses</b> GraphABC;<br>
<b>begin<br>
</b>&nbsp; <strong>var</strong> x := 100;<br>&nbsp; <strong>var</strong> y :=
100;<br>&nbsp; <strong>var</strong> r := 50;<br>&nbsp; Circle(x,y,r);<br>
<b>end</b>.</code></blockquote>
<p>Глобальные описания переменных до begin основной программы в основном
используются редко и считаются устаревшим стилем. Глобальные описания переменных
могут использоваться в учебных программах, в которых несколько процедур
используют эти переменные:</p>
<blockquote>
<code><b>uses</b> GraphWPF;<br><br><strong>var</strong> x: integer;<br><br>
<strong>procedure</strong> Draw := Circle(x,300,5);<br><br>
<b>begin<br>
</b>&nbsp; x := 100;<br>&nbsp; Draw;<br>
<b>end</b>.</code></blockquote>
<p>Кроме того, имеется возможность записывать программы без внешнего begin-end.
Для этого в начале программы используется префикc ##:</p>
2021-12-11 23:51:50 +03:00
<blockquote>
<code>##<b><br>
</b><strong>var</strong> a := ArrRandomInteger(10);<br>a.Println;</code></blockquote>
<p>Такой режим называется командным и предназначен для написания коротких
программ из нескольких команд. В данном режиме разрешено использовать одну
секцию uses и описывать процедуры и функции:</p>
2021-12-11 23:51:50 +03:00
<blockquote>
<code>
<span class="p">##<br>
<strong>uses</strong> GraphWPF;</span><br>
<span class="k"><strong>function</strong></span> <span class="n">Draw</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">:</span> real<span class="p">)</span> <span class="p">:=</span> Circle(x,y,5)<span class="p">;</span><br>
<span class="p">Draw(100,100);</span></code></blockquote>
</body>
</html>