472 lines
24 KiB
HTML
472 lines
24 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
|
|
<param name="Keyword" value="PNode">
|
|
<param name="Keyword" value="TNode">
|
|
<param name="Keyword" value="Node">
|
|
<param name="Keyword" value="Task">
|
|
<param name="Keyword" value="GetB">
|
|
<param name="Keyword" value="GetC">
|
|
<param name="Keyword" value="GetN">
|
|
<param name="Keyword" value="GetR">
|
|
<param name="Keyword" value="GetS">
|
|
<param name="Keyword" value="GetP">
|
|
<param name="Keyword" value="PutB">
|
|
<param name="Keyword" value="PutC">
|
|
<param name="Keyword" value="PutN">
|
|
<param name="Keyword" value="PutR">
|
|
<param name="Keyword" value="PutS">
|
|
<param name="Keyword" value="PutP">
|
|
<param name="Keyword" value="GetBoolean">
|
|
<param name="Keyword" value="GetChar">
|
|
<param name="Keyword" value="GetInt">
|
|
<param name="Keyword" value="GetReal">
|
|
<param name="Keyword" value="GetString">
|
|
<param name="Keyword" value="GetNode">
|
|
<param name="Keyword" value="Put">
|
|
<param name="Keyword" value="Show">
|
|
<param name="Keyword" value="ShowLine">
|
|
<param name="Keyword" value="SetPrecision">
|
|
<param name="Keyword" value="HideTask">
|
|
</object>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
|
<title></title>
|
|
<link rel="StyleSheet" href="../../default.css">
|
|
</head>
|
|
|
|
<body>
|
|
<h1>Ìîäóëü PT4</h1>
|
|
<hr>
|
|
<p>Îïèñàííûå â äàííîì ðàçäåëå òèïû è ïðîöåäóðû
|
|
áóäóò äîñòóïíû â ïðîãðàììå, åñëè ê íåé ñ ïîìîùüþ îïåðàòîðà <code><b>uses</b></code>
|
|
ïîäêëþ÷åí ìîäóëü <code>PT4</code> (ñì. <a href="..\CheckedTasks\checkedtasks1.htm">ïðèìåð</a> ïðîãðàììû, èñïîëüçóþùåé çàäà÷íèê
|
|
<b>Programming Taskbook</b>).
|
|
|
|
<a name="node"></a><h2>Äîïîëíèòåëüíûå òèïû äàííûõ PNode è TNode</h2>
|
|
<hr noshade size="1">
|
|
<blockquote>
|
|
<code><b>type</b><br>
|
|
PNode = ^TNode;<br>
|
|
TNode = <b>record</b><br>
|
|
Data: integer;<br>
|
|
Next: PNode;<br>
|
|
Prev: PNode;<br>
|
|
Left: PNode;<br>
|
|
Right: PNode;<br>
|
|
Parent: PNode;<br>
|
|
<b>end</b>;
|
|
</code></blockquote>
|
|
|
|
<p>Òèïû <code>PNode</code> è <code>TNode</code> èñïîëüçóþòñÿ â çàäàíèÿõ ãðóïï Dynamic è Tree.  çàäàíèÿõ íà ñòåêè è î÷åðåäè
|
|
(Dynamic1–Dynamic28) ïðè ðàáîòå ñ çàïèñÿìè òèïà <code>TNode</code> èñïîëüçóþòñÿ òîëüêî ïîëÿ <code>Data</code> è <code>Next</code>;
|
|
â çàäàíèÿõ íà äâóñâÿçíûå ñïèñêè (Dynamic29–Dynamic80) èñïîëüçóþòñÿ ïîëÿ <code>Data</code>, <code>Next</code> è <code>Prev</code>.
|
|
 áîëüøèíñòâå çàäàíèé íà áèíàðíûå äåðåâüÿ (ãðóïïà Tree) èñïîëüçóþòñÿ ïîëÿ <code>Data</code>, <code>Left</code> è <code>Right</code>;
|
|
â çàäàíèÿõ íà îáðàáîòêó áèíàðíûõ äåðåâüåâ ñ îáðàòíîé ñâÿçüþ (Tree48–Tree56 è Tree70–Tree71) äîïîëíèòåëüíî èñïîëüçóåòñÿ
|
|
ïîëå <code>Parent</code>.
|
|
</p>
|
|
<p>Âñå èñõîäíûå è ðåçóëüòèðóþùèå äàííûå-óêàçàòåëè â çàäàíèÿõ èìåþò òèï <code>PNode</code>;
|
|
èõ ââîä è âûâîä äîëæåí îñóùåñòâëÿòüñÿ ñ ïîìîùüþ ïðîöåäóð <code>GetP</code> è <code>PutP</code> (â ñèñòåìå <b>PascalABC.NET</b>
|
|
óêàçàòåëè, êàê è äðóãèå äàííûå,
|
|
ìîæíî ïîëó÷àòü èç çàäà÷íèêà è ïåðåäàâàòü åìó ñ ïîìîùüþ ñòàíäàðòíûõ ïðîöåäóð ââîäà-âûâîäà <code>read</code>
|
|
è <code>write</code>).
|
|
</p>
|
|
<p> ïðîãðàììå ó÷àùåãîñÿ íå ñëåäóåò ïîâòîðíî îïèñûâàòü òèïû <code>PNode</code> è <code>TNode</code>.
|
|
</p>
|
|
|
|
|
|
<h2>Èíèöèàëèçàöèÿ çàäàíèÿ, ââîä–âûâîä äàííûõ</h2>
|
|
<a name="task"></a><hr noshade size="1">
|
|
<blockquote>
|
|
<code><b>procedure</b> Task(Name: <b>string</b>);
|
|
</code></blockquote>
|
|
<p>Ïðîöåäóðà èíèöèàëèçèðóåò çàäàíèå ñ èìåíåì <code>Name</code>. Îíà äîëæíà
|
|
âûçûâàòüñÿ â íà÷àëå ïðîãðàììû, âûïîëíÿþùåé ýòî çàäàíèå (äî âûçîâà
|
|
ïðîöåäóð ââîäà-âûâîäà). Åñëè â ïðîãðàììå, ïîäêëþ÷èâøåé
|
|
ìîäóëü <code>PT4</code>, íå óêàçàíà ïðîöåäóðà <code>Task</code>, òî ïðè çàïóñêå ïðîãðàììû
|
|
áóäåò âûâåäåíî îêíî ñ ñîîáùåíèåì «<i>Íå âûçâàíà ïðîöåäóðà Task ñ
|
|
èìåíåì çàäàíèÿ</i>».</p>
|
|
<p>
|
|
Èìÿ çàäàíèÿ <code>Name</code> äîëæíî âêëþ÷àòü èìÿ òåìû è ïîðÿäêîâûé
|
|
íîìåð â ïðåäåëàõ òåìû (íàïðèìåð, <code>'Begin3'</code>). Ðåãèñòð áóêâ â èìåíè òåìû
|
|
ìîæåò áûòü ïðîèçâîëüíûì. Åñëè óêàçàíà íåâåðíàÿ òåìà çàäàíèÿ, òî
|
|
ïðîãðàììà âûâåäåò ñîîáùåíèå îá îøèáêå, â êîòîðîì áóäóò
|
|
ïåðå÷èñëåíû íàçâàíèÿ âñåõ èìåþùèõñÿ òåì. Åñëè óêàçàí
|
|
íåäîïóñòèìûé íîìåð çàäàíèÿ, òî ïðîãðàììà âûâåäåò ñîîáùåíèå, â
|
|
êîòîðîì áóäåò óêàçàí äèàïàçîí äîïóñòèìûõ íîìåðîâ äëÿ äàííîé òåìû.
|
|
Åñëè ïîñëå èìåíè çàäàíèÿ â ïàðàìåòðå <code>Name</code> óêàçàí ñèìâîë <code>?</code>
|
|
(íàïðèìåð, <code>'Begin1?'</code>), òî ïðîãðàììà áóäåò ðàáîòàòü â
|
|
<a href="Demo.html"><i>äåìîíñòðàöèîííîì ðåæèìå</i></a>.
|
|
</p>
|
|
<p>Íà÷èíàÿ ñ âåðñèè 4.8, ïðîöåäóðà <code>Task</code> ìîæåò òàêæå èñïîëüçîâàòüñÿ äëÿ
|
|
ãåíåðàöèè è âûâîäà íà ýêðàí html-ñòðàíèöû ñ òåêñòîì çàäàíèÿ èëè ãðóïïû çàäàíèé.
|
|
Äëÿ ýòîãî íåîáõîäèìî óêàçàòü â êà÷åñòâå ïàðàìåòðà <code>Name</code> èìÿ êîíêðåòíîãî çàäàíèÿ èëè ãðóïïû
|
|
çàäàíèé è ñèìâîë <code>#</code>, íàïðèìåð, <code>'Begin3#'</code> èëè
|
|
<code>'Begin#'</code>. Äîïîëíèòåëüíûå ñâåäåíèÿ î ãåíåðàöèè html-ñòðàíèö ñ îïèñàíèÿìè çàäàíèé ïðèâîäÿòñÿ
|
|
â ðàçäåëå, ïîñâÿùåííîì äåìîíñòðàöèîííîìó ðåæèìó çàäà÷íèêà.
|
|
</p>
|
|
|
|
|
|
<p>Åñëè ïðè ïåðâîì âûçîâå ïðîöåäóðû <code>Task</code> â ïàðàìåòðå íå óêàçûâàåòñÿ ñèìâîë <code>#</code>, òî
|
|
âñå ïîñëåäóþùèå âûçîâû ïðîöåäóðû <code>Task</code> èãíîðèðóþòñÿ. Åñëè ïðè ïåðâîì âûçîâå ïðîöåäóðû
|
|
<code>Task</code> â ïàðàìåòðå óêàçûâàåòñÿ ñèìâîë <code>#</code>,
|
|
òî èãíîðèðóþòñÿ âñå ïîñëåäóþùèå âûçîâû ïðîöåäóðû <code>Task</code>, íå ñîäåðæàùèå ýòîò ñèìâîë.
|
|
Ñ ïîìîùüþ íåñêîëüêèõ âûçîâîâ ïðîöåäóðû <code>Task</code>, ñîäåðæàùåé â ïàðàìåòðå ñèìâîë <code>#</code>, ìîæíî îáåñïå÷èòü
|
|
ãåíåðàöèþ html-ñòðàíèöû ñ îïèñàíèåì íåñêîëüêèõ ãðóïï çàäàíèé, ïðè÷åì â êàæäîé ãðóïïå ïðè ýòîì ìîæíî îòîáðàæàòü òîëüêî
|
|
íåêîòîðûå çàäàíèÿ.
|
|
</p>
|
|
|
|
<hr noshade size="1">
|
|
<blockquote>
|
|
<code>
|
|
<b>procedure</b> GetB(<b>var</b> X: boolean);<br>
|
|
<b>procedure</b> GetC(<b>var</b> X: char);<br>
|
|
<b>procedure</b> GetN(<b>var</b> X: integer);<br>
|
|
<b>procedure</b> GetR(<b>var</b> X: real);<br>
|
|
<b>procedure</b> GetS(<b>var</b> X: string);<br>
|
|
<b>procedure</b> GetP(<b>var</b> X: PNode);<br>
|
|
</code></blockquote>
|
|
<p>
|
|
Ïðîöåäóðû îáåñïå÷èâàþò ââîä èñõîäíûõ äàííûõ â ïðîãðàììó,
|
|
âûïîëíÿþùóþ ó÷åáíîå çàäàíèå. Îíè äîëæíû âûçûâàòüñÿ ïîñëå âûçîâà
|
|
ïðîöåäóðû <code>Task</code>;
|
|
â ñëó÷àå èõ âûçîâà äî âûçîâà ïðîöåäóðû <code>Task</code> ïðè çàïóñêå ïðîãðàììû
|
|
áóäåò âûâåäåíî ñîîáùåíèå îá îøèáêå «<i> íà÷àëå ïðîãðàììû íå
|
|
âûçâàíà ïðîöåäóðà Task ñ èìåíåì çàäàíèÿ</i>».</p>
|
|
|
|
<p>Èñïîëüçóåìàÿ ïðîöåäóðà ââîäà äîëæíà ñîîòâåòñòâîâàòü òèïó
|
|
î÷åðåäíîãî ýëåìåíòà èñõîäíûõ äàííûõ; â ïðîòèâíîì ñëó÷àå âûâîäèòñÿ
|
|
ñîîáùåíèå îá îøèáêå «<i>Íåâåðíî óêàçàí òèï ïðè ââîäå èñõîäíûõ
|
|
äàííûõ</i>» (òàêîå ñîîáùåíèå áóäåò âûâåäåíî, íàïðèìåð, åñëè î÷åðåäíîé
|
|
ýëåìåíò äàííûõ ÿâëÿåòñÿ ñèìâîëîì, à äëÿ åãî ââîäà èñïîëüçóåòñÿ
|
|
ïðîöåäóðà <code>GetN</code>).</p>
|
|
<p>Ïðè ïîïûòêå ââåñòè áîëüøå èñõîäíûõ äàííûõ, ÷åì ýòî
|
|
ïðåäóñìîòðåíî â çàäàíèè, âûâîäèòñÿ ñîîáùåíèå îá îøèáêå «<i>Ïîïûòêà
|
|
ââåñòè ëèøíèå èñõîäíûå äàííûå</i>». Åñëè èñõîäíûå äàííûå,
|
|
íåîáõîäèìûå äëÿ ðåøåíèÿ çàäàíèÿ, ââåäåíû íå ïîëíîñòüþ, òî
|
|
âûâîäèòñÿ ñîîáùåíèå «<i>Ââåäåíû íå âñå òðåáóåìûå èñõîäíûå äàííûå</i>».</p>
|
|
<p>Ïðè èñïîëüçîâàíèè çàäà÷íèêà â ñèñòåìå <b>PascalABC.NET</b> âìåñòî ïðîöåäóð ãðóïïû <code>Get</code>
|
|
ìîæíî èñïîëüçîâàòü îáû÷íûå ïðîöåäóðû ââîäà <code>read</code>.
|
|
|
|
<hr noshade size="1">
|
|
<blockquote>
|
|
<code>
|
|
<b>procedure</b> PutB(X: boolean);<br>
|
|
<b>procedure</b> PutC(X: char);<br>
|
|
<b>procedure</b> PutN(X: integer);<br>
|
|
<b>procedure</b> PutR(X: real);<br>
|
|
<b>procedure</b> PutS(X: string);<br>
|
|
<b>procedure</b> PutP(X: PNode);<br>
|
|
</code></blockquote>
|
|
<p>
|
|
Ïðîöåäóðû îáåñïå÷èâàþò âûâîä íà ýêðàí ðåçóëüòèðóþùèõ
|
|
äàííûõ, íàéäåííûõ ïðîãðàììîé, è èõ ñðàâíåíèå ñ <i>êîíòðîëüíûìè
|
|
äàííûìè</i> (òî åñòü ñ ïðàâèëüíûì ðåøåíèåì). Êàê è ïðîöåäóðû ãðóïïû
|
|
<code>Get</code>, ýòè ïðîöåäóðû äîëæíû âûçûâàòüñÿ ïîñëå âûçîâà ïðîöåäóðû <code>Task</code>;
|
|
â ïðîòèâíîì ñëó÷àå ïðè çàïóñêå ïðîãðàììû áóäåò âûâåäåíî ñîîáùåíèå
|
|
îá îøèáêå «<i> íà÷àëå ïðîãðàììû íå âûçâàíà ïðîöåäóðà Task
|
|
ñ èìåíåì çàäàíèÿ</i>».</p>
|
|
<p> îòëè÷èå îò ïðîöåäóð ãðóïïû <code>Get</code>, â êà÷åñòâå ïàðàìåòðà ïðîöåäóð
|
|
ãðóïïû <code>Put</code> ìîæíî óêàçûâàòü íå òîëüêî ïåðåìåííûå, íî è <i>âûðàæåíèÿ</i> (â
|
|
÷àñòíîñòè, <i>êîíñòàíòû</i> ñîîòâåòñòâóþùåãî òèïà). Èñïîëüçóåìàÿ
|
|
ïðîöåäóðà äîëæíà ñîîòâåòñòâîâàòü òèïó î÷åðåäíîãî ýëåìåíòà
|
|
ðåçóëüòèðóþùèõ äàííûõ, â ïðîòèâíîì ñëó÷àå âûâîäèòñÿ ñîîáùåíèå îá
|
|
îøèáêå «<i>Íåâåðíî óêàçàí òèï ïðè âûâîäå ðåçóëüòàòîâ</i>».</p>
|
|
<p>Êàê è â ñëó÷àå ïðîöåäóð ãðóïïû <code>Get</code>, ïðè âûçîâàõ ïðîöåäóð
|
|
ãðóïïû <code>Put</code> ïðîãðàììà îñóùåñòâëÿåò êîíòðîëü çà ñîîòâåòñòâèåì
|
|
êîëè÷åñòâà òðåáóåìûõ è âûâåäåííûõ ðåçóëüòèðóþùèõ äàííûõ. Åñëè
|
|
ïðîãðàììà âûâåäåò íåäîñòàòî÷íîå èëè èçáûòî÷íîå êîëè÷åñòâî
|
|
ðåçóëüòèðóþùèõ äàííûõ, òî ïîñëå ïðîâåðêè ýòèõ äàííûõ ïîÿâèòñÿ
|
|
ñîîáùåíèå «<i>Âûâåäåíû íå âñå ðåçóëüòèðóþùèå äàííûå</i>» èëè,
|
|
ñîîòâåòñòâåííî, «<i>Ïîïûòêà âûâåñòè ëèøíèå ðåçóëüòèðóþùèå äàííûå</i>».
|
|
<p>Ïðè èñïîëüçîâàíèè çàäà÷íèêà â ñèñòåìå <b>PascalABC.NET</b> âìåñòî ïðîöåäóð ãðóïïû <code>Put</code>
|
|
ìîæíî èñïîëüçîâàòü îáû÷íûå ïðîöåäóðû âûâîäà <code>write</code>.
|
|
<hr noshade size="1">
|
|
<blockquote>
|
|
<code>
|
|
<b>procedure</b> Dispose(<b>var</b> P: PNode);
|
|
</code></blockquote>
|
|
<p>
|
|
Äàííàÿ ïðîöåäóðà ïåðåîïðåäåëÿåò ñòàíäàðòíóþ ïðîöåäóðó <code>Dispose</code> äëÿ òîãî, ÷òîáû
|
|
êîíòðîëèðîâàòü äåéñòâèÿ ó÷àùåãîñÿ ïî îñâîáîæäåíèþ ïàìÿòè ïðè âûïîëíåíèè çàäàíèé ãðóïï Dynamic è Tree.</p>
|
|
|
|
|
|
<h2>Êëàññ Node è àëüòåðíàòèâíûé ââîä–âûâîä â ñòèëå .NET</h2>
|
|
|
|
<p> âàðèàíòå çàäà÷íèêà <b>Programming Taskbook</b>, âêëþ÷åííîì â ñèñòåìó <b>PascalABC.NET</b>, ïðåäóñìîòðåí
|
|
àëüòåðíàòèâíûé ñïîñîá îðãàíèçàöèè ââîäà-âûâîäà, õàðàêòåðíûé íå äëÿ òðàäèöèîííîãî Ïàñêàëÿ,
|
|
à äëÿ ÿçûêîâ ïëàòôîðìû .NET. Íàëè÷èå äâóõ ñïîñîáîâ ââîäà-âûâîäà îáóñëîâëåíî òåì îáñòîÿòåëüñòâîì, ÷òî
|
|
ñèñòåìà <b>PascalABC.NET</b> ïîçâîëÿåò ðàçðàáàòûâàòü ïðîãðàììû êàê â ñòèëå, õàðàêòåðíîì äëÿ
|
|
òðàäèöèîííîãî Ïàñêàëÿ, òàê è â .NET-ñòèëå, îðèåíòèðîâàííîì íà èñïîëüçîâàíèå ñòàíäàðòíûõ ñðåäñòâ ïëàòôîðìû
|
|
.NET, â òîì ÷èñëå åå áèáëèîòåêè êëàññîâ.
|
|
</p>
|
|
<p>Êðîìå íîâûõ ñðåäñòâ ââîäà-âûâîäà â âàðèàíòå çàäà÷íèêà äëÿ ñèñòåìû <b>PascalABC.NET</b> ïðåäóñìîòðåí
|
|
êëàññ <code>Node</code>, êîòîðûé ñëåäóåò èñïîëüçîâàòü âìåñòî òèïîâ <code>PNode</code> è <code>TNode</code> ïðè
|
|
âûïîëíåíèè çàäàíèé íà äèíàìè÷åñêèå ñòðóêòóðû «â îáúåêòíîì ñòèëå». Çàìåòèì, ÷òî â ýòîì ñëó÷àå
|
|
íåîáõîäèìî ïîëüçîâàòüñÿ ãðóïïàìè ObjDyn è ObjTree, â êîòîðûõ (â îòëè÷èå îò ãðóïï Dynamic è Tree)
|
|
ïðèìåíÿåòñÿ «îáúåêòíàÿ» òåðìèíîëîãèÿ, îðèåíòèðîâàííàÿ íà ïðèìåíåíèå êëàññîâ ïëàòôîðìû .NET.
|
|
</p>
|
|
|
|
<hr noshade size="1">
|
|
|
|
<blockquote>
|
|
<code><b>type</b><br>
|
|
Node = <b>class</b>(IDisposable)<br>
|
|
. . .<br>
|
|
<b>public</b><br>
|
|
// <i>Êîíñòðóêòîðû:</i><br>
|
|
<b>constructor</b> Create;<br>
|
|
<b>constructor</b> Create(aData: integer);<br>
|
|
<b>constructor</b> Create(aData: integer; aNext: Node);<br>
|
|
<b>constructor</b> Create(aData: integer; aNext, aPrev: Node);<br>
|
|
<b>constructor</b> Create(aLeft, aRight: Node; aData: integer);<br>
|
|
<b>constructor</b> Create(aLeft, aRight: Node; aData: integer; aParent: Node);<br>
|
|
// <i>Ñâîéñòâà (äîñòóïíû äëÿ ÷òåíèÿ è çàïèñè):</i><br>
|
|
<b>property</b> Data: integer;<br>
|
|
<b>property</b> Next: Node;<br>
|
|
<b>property</b> Prev: Node;<br>
|
|
<b>property</b> Left: Node;<br>
|
|
<b>property</b> Right: Node;<br>
|
|
<b>property</b> Parent: Node;<br>
|
|
// <i>Ìåòîä, îñâîáîæäàþùèé ðåñóðñû, èñïîëüçóåìûå îáúåêòîì Node:</i><br>
|
|
<b>procedure</b> Dispose;<br>
|
|
<b>end</b>;
|
|
</code></blockquote>
|
|
|
|
<p>Êëàññ <code>Node</code> èñïîëüçóåòñÿ â çàäàíèÿõ ãðóïï ObjDyn è ObjTree. Â çàäàíèÿõ íà
|
|
ñòåêè è î÷åðåäè (ObjDyn1–ObjDyn28) ïðè ðàáîòå ñ îáúåêòàìè òèïà <code>Node</code>
|
|
èñïîëüçóþòñÿ òîëüêî ñâîéñòâà <code>Data</code> è <code>Next</code>; â çàäàíèÿõ íà äâóñâÿçíûå ñïèñêè
|
|
(ObjDyn29–ObjDyn80) èñïîëüçóþòñÿ ñâîéñòâà <code>Data</code>, <code>Next</code> è <code>Prev</code>. Â áîëüøèíñòâå çàäàíèé íà
|
|
áèíàðíûå äåðåâüÿ (ãðóïïà ObjTree) èñïîëüçóþòñÿ ñâîéñòâà <code>Data</code>, <code>Left</code> è <code>Right</code>;
|
|
â çàäàíèÿõ íà îáðàáîòêó áèíàðíûõ äåðåâüåâ ñ îáðàòíîé ñâÿçüþ
|
|
(ObjTree48–ObjTree56 è ObjTree70–ObjTree71) äîïîëíèòåëüíî èñïîëüçóåòñÿ ñâîéñòâî <code>Parent</code>.
|
|
</p>
|
|
<p>Âàðèàíòû êîíñòðóêòîðà êëàññà <code>Node</code> ïîçâîëÿþò çàäàâàòü çíà÷åíèÿ òðåáóåìûõ ñâîéñòâ ïðè ñîçäàíèè
|
|
îáúåêòà; ïðî÷èå ñâîéñòâà èíèöèàëèçèðóþòñÿ íóëåâûìè çíà÷åíèÿìè
|
|
(÷èñëîì 0 äëÿ ñâîéñòâà <code>Data</code>, íóëåâîé ññûëêîé <code>nil</code> äëÿ îñòàëüíûõ ñâîéñòâ).
|
|
</p>
|
|
<p>Ñëåäóåò îáðàòèòü âíèìàíèå íà òî, ÷òî äàííûé êëàññ ðåàëèçóåò èíòåðôåéñ
|
|
<code>IDisposable</code>, ïîýòîìó ïðè çàâåðøåíèè ðàáîòû ñ îáúåêòîì òèïà <code>Node</code> òðåáóåòñÿ âûçâàòü
|
|
åãî ìåòîä <code>Dispose</code>, îñâîáîæäàþùèé <i>íåóïðàâëÿåìûå ðåñóðñû</i>, âûäåëåííûå äëÿ ýòîãî
|
|
îáúåêòà (èñêëþ÷åíèå äåëàåòñÿ òîëüêî äëÿ òåõ îáúåêòîâ, êîòîðûå ïåðåäàþòñÿ îáðàòíî
|
|
çàäà÷íèêó â êà÷åñòâå ðåçóëüòèðóþùèõ äàííûõ). Åñëè â çàäàíèè òðåáóåòñÿ âûçâàòü
|
|
ìåòîä <code>Dispose</code> äëÿ íåêîòîðûõ îáúåêòîâ, íî ýòîò âûçîâ íå âûïîëíÿåòñÿ, òî ïðè çàïóñêå
|
|
ïðîãðàììû âûâîäèòñÿ ñîîáùåíèå îá îøèáêå «<i>Íå âûçâàí ìåòîä Dispose äëÿ
|
|
îáúåêòà òèïà Node</i>».
|
|
</p>
|
|
<p>Âñå èñõîäíûå è ðåçóëüòèðóþùèå äàííûå-ññûëêè â çàäàíèÿõ ãðóïïû ObjDyn è ObjTree
|
|
èìåþò òèï <code>Node</code>; èõ ââîä è âûâîä äîëæåí îñóùåñòâëÿòüñÿ ñ ïîìîùüþ ôóíêöèè
|
|
<code>GetNode</code> è ïðîöåäóðû <code>Put</code>, îïèñàííûõ íèæå.
|
|
</p>
|
|
|
|
<hr noshade size="1">
|
|
<blockquote>
|
|
<code>
|
|
<b>function</b> GetBoolean: boolean;<br>
|
|
<b>function</b> GetChar: char;<br>
|
|
<b>function</b> GetInt: integer;<br>
|
|
<b>function</b> GetNode: Node;<br>
|
|
<b>function</b> GetReal: real;<br>
|
|
<b>function</b> GetString: string;<br>
|
|
</code></blockquote>
|
|
|
|
<p>Ôóíêöèè îáåñïå÷èâàþò ââîä èñõîäíûõ äàííûõ â ïðîãðàììó,
|
|
âûïîëíÿþùóþ ó÷åáíîå çàäàíèå, ïðè÷åì ââîä îðãàíèçóåòñÿ â ñòèëå,
|
|
õàðàêòåðíîì äëÿ ïëàòôîðìû .NET (ïîñêîëüêó
|
|
â ñòàíäàðòíîé áèáëèîòåêå .NET ââîä äàííûõ <i>âñåãäà</i> âûïîëíÿåòñÿ ñ ïîìîùüþ ôóíêöèé).
|
|
Ýòè ôóíêöèè äîëæíû âûçûâàòüñÿ ïîñëå âûçîâà ïðîöåäóðû <code>Task</code>;
|
|
â ñëó÷àå èõ âûçîâà äî âûçîâà ïðîöåäóðû <code>Task</code> ïðè çàïóñêå ïðîãðàììû áóäåò âûâåäåíî
|
|
ñîîáùåíèå îá îøèáêå «<i> íà÷àëå ïðîãðàììû íå âûçâàíà ïðîöåäóðà Task ñ
|
|
èìåíåì çàäàíèÿ</i>».
|
|
</p>
|
|
<p>Èñïîëüçóåìàÿ ôóíêöèÿ ââîäà äîëæíà ñîîòâåòñòâîâàòü òèïó î÷åðåäíîãî ýëåìåíòà
|
|
èñõîäíûõ äàííûõ; â ïðîòèâíîì ñëó÷àå âûâîäèòñÿ ñîîáùåíèå îá îøèáêå
|
|
«<i>Íåâåðíî óêàçàí òèï ïðè ââîäå èñõîäíûõ äàííûõ</i>» (òàêîå ñîîáùåíèå
|
|
áóäåò âûâåäåíî, íàïðèìåð, åñëè î÷åðåäíîé ýëåìåíò äàííûõ ÿâëÿåòñÿ ñèìâîëîì, à äëÿ
|
|
åãî ââîäà èñïîëüçóåòñÿ ôóíêöèÿ <code>GetInt</code>).
|
|
</p>
|
|
<p>Ïðè ïîïûòêå ââåñòè áîëüøå èñõîäíûõ äàííûõ, ÷åì ýòî ïðåäóñìîòðåíî â
|
|
çàäàíèè, âûâîäèòñÿ ñîîáùåíèå îá îøèáêå «<i>Ïîïûòêà ââåñòè ëèøíèå èñõîäíûå
|
|
äàííûå</i>». Åñëè èñõîäíûå äàííûå, íåîáõîäèìûå äëÿ ðåøåíèÿ çàäàíèÿ, ââåäåíû
|
|
íå ïîëíîñòüþ, òî âûâîäèòñÿ ñîîáùåíèå «<i>Ââåäåíû íå âñå òðåáóåìûå èñõîäíûå
|
|
äàííûå</i>».
|
|
</p>
|
|
<hr noshade size="1">
|
|
<blockquote>
|
|
<code>
|
|
<b>procedure</b> Put(<b>params</b> A: <b>array of</b> object);
|
|
</code></blockquote>
|
|
<p>Ïðîöåäóðà <code>Put</code> îáåñïå÷èâàåò âûâîä íà ýêðàí ðåçóëüòèðóþùèõ äàííûõ, íàéäåííûõ
|
|
ïðîãðàììîé, è èõ ñðàâíåíèå ñ <i>êîíòðîëüíûìè äàííûìè</i> (òî åñòü ñ ïðàâèëüíûì
|
|
ðåøåíèåì). Êàê è îïèñàííûå âûøå ôóíêöèè ãðóïïû <code>Get</code>, ïðîöåäóðà <code>Put</code> äîëæíà âûçûâàòüñÿ ïîñëå âûçîâà
|
|
ïðîöåäóðû <code>Task</code>; â ïðîòèâíîì ñëó÷àå ïðè çàïóñêå ïðîãðàììû áóäåò âûâåäåíî ñîîáùåíèå
|
|
îá îøèáêå «<i> íà÷àëå ïðîãðàììû íå âûçâàíà ïðîöåäóðà Task ñ èìåíåì
|
|
çàäàíèÿ</i>».
|
|
</p>
|
|
<p>Áëàãîäàðÿ èñïîëüçîâàíèþ ïàðàìåòðà-ìàññèâà, ñíàáæåííîãî àòðèáóòîì <code><b>params</b></code>,
|
|
ïðè âûçîâå ïðîöåäóðû <code>Put</code> ìîæíî óêàçûâàòü <i>ïðîèçâîëüíîå</i> ÷èñëî ïàðàìåòðîâ. Ïàðàìåòðû
|
|
ìîãóò èìåòü òèï <code>boolean</code>, <code>integer</code>, <code>real</code>, <code>char</code>, <code>string</code>, <code>Node</code>.
|
|
 êà÷åñòâå ïàðàìåòðîâ ïðîöåäóðû <code>Put</code>
|
|
ìîæíî óêàçûâàòü íå òîëüêî ïåðåìåííûå, íî è <i>âûðàæåíèÿ</i> (â ÷àñòíîñòè, <i>êîíñòàíòû</i>
|
|
ñîîòâåòñòâóþùåãî òèïà, à òàêæå <i>íóëåâóþ ññûëêó</i> <code>nil</code>. Çàìåòèì, ÷òî íóëåâûå ññûëêè, êàê è îáúåêòû òèïà <code>Node</code>, òðåáóåòñÿ
|
|
âûâîäèòü òîëüêî â çàäàíèÿõ ãðóïï ObjDyn è ObjTree. Åñëè â ñïèñêå ïàðàìåòðîâ óêàçûâàþòñÿ
|
|
ïàðàìåòðû íåäîïóñòèìîãî òèïà, òî ïðè âûïîëíåíèè ïðîãðàììû âûâîäèòñÿ
|
|
ñîîáùåíèå îá îøèáêå «<i>Â ìåòîäå Put óêàçàí ïàðàìåòð íåäîïóñòèìîãî
|
|
òèïà</i>».
|
|
</p>
|
|
<p>Òèï ïàðàìåòðà äîëæåí íå òîëüêî áûòü äîïóñòèìûì, íî è ñîîòâåòñòâîâàòü òèïó
|
|
î÷åðåäíîãî ýëåìåíòà ðåçóëüòèðóþùèõ äàííûõ; â ïðîòèâíîì ñëó÷àå âûâîäèòñÿ
|
|
ñîîáùåíèå îá îøèáêå «<i>Íåâåðíî óêàçàí òèï ïðè âûâîäå ðåçóëüòàòîâ</i>».
|
|
</p>
|
|
<p>Êàê è â ñëó÷àå ôóíêöèé ãðóïïû <code>Get</code>, ïðè âûçîâàõ ïðîöåäóðû <code>Put</code> ïðîãðàììà
|
|
îñóùåñòâëÿåò êîíòðîëü çà ñîîòâåòñòâèåì êîëè÷åñòâà òðåáóåìûõ è âûâåäåííûõ
|
|
ðåçóëüòèðóþùèõ äàííûõ. Åñëè ïðîãðàììà âûâåäåò íåäîñòàòî÷íîå èëè èçáûòî÷íîå
|
|
êîëè÷åñòâî ðåçóëüòèðóþùèõ äàííûõ, òî ïîñëå ïðîâåðêè ýòèõ äàííûõ ïîÿâèòñÿ
|
|
ñîîáùåíèå «<i>Âûâåäåíû íå âñå ðåçóëüòèðóþùèå äàííûå</i>» èëè,
|
|
ñîîòâåòñòâåííî, «<i>Ïîïûòêà âûâåñòè ëèøíèå ðåçóëüòèðóþùèå äàííûå</i>».
|
|
</p>
|
|
|
|
<a name="debug"></a><h2>Âûâîä îòëàäî÷íîé èíôîðìàöèè
|
|
</h2>
|
|
<p>Îïèñûâàåìûå äàëåå îòëàäî÷íûå ñðåäñòâà ïîÿâèëèñü â âåðñèè 4.9 çàäà÷íèêà Programming Taskbook.
|
|
Ñ èõ ïîìîùüþ ìîæíî âûâîäèòü îòëàäî÷íóþ èíôîðìàöèþ
|
|
íåïîñðåäñòâåííî â îêíî çàäà÷íèêà (â ñïåöèàëüíûé <a href="debug.html"><i>ðàçäåë îòëàäêè</i></a>).</p>
|
|
|
|
<a name="show"></a>
|
|
<hr noshade size="1">
|
|
<blockquote>
|
|
<code><b>procedure</b> Show(S: string);
|
|
</code></blockquote>
|
|
<p>Îòîáðàæàåò òåêñòîâóþ ñòðîêó <code>S</code> â ðàçäåëå îòëàäêè îêíà çàäà÷íèêà.
|
|
</p>
|
|
<p>Åñëè òåêóùàÿ ýêðàííàÿ ñòðîêà â ðàçäåëå îòëàäêè óæå ñîäåðæèò íåêîòîðûé òåêñò, òî
|
|
ñòðîêà <code>S</code> ñíàáæàåòñÿ íà÷àëüíûì ïðîáåëîì è ïðèïèñûâàåòñÿ ê ýòîìó òåêñòó,
|
|
çà èñêëþ÷åíèåì ñëó÷àÿ, êîãäà ïðè òàêîì ïðèïèñûâàíèè ðàçìåð
|
|
ïîëó÷åííîãî òåêñòà ïðåâûñèò øèðèíó îáëàñòè äàííûõ (ðàâíóþ 80 ñèìâîëàì).
|
|
 ïîñëåäíåì ñëó÷àå âûâîä ñòðîêè <code>S</code> îñóùåñòâëÿåòñÿ ñ íà÷àëà
|
|
ñëåäóþùåé ýêðàííîé ñòðîêè; åñëè æå è â ýòîé ñèòóàöèè ñòðîêà <code>S</code> ïðåâûñèò
|
|
øèðèíó îáëàñòè äàííûõ, òî ñòðîêà <code>S</code> áóäåò âûâåäåíà íà íåñêîëüêèõ
|
|
ýêðàííûõ ñòðîêàõ, ïðè÷åì ðàçðûâû òåêñòà áóäóò âûïîëíÿòüñÿ ïî
|
|
ïðîáåëüíûì ñèìâîëàì ñòðîêè <code>S</code>, à ïðè îòñóòñòâèè ïðîáåëîâ — ïðè
|
|
äîñòèæåíèè î÷åðåäíîãî ôðàãìåíòà ñòðîêè äëèíû, ðàâíîé 80.
|
|
</p>
|
|
<p>Ñòðîêà <code>S</code> ìîæåò ñîäåðæàòü ÿâíûå êîìàíäû ïåðåõîäà íà íîâóþ
|
|
ýêðàííóþ ñòðîêó.  êà÷åñòâå òàêèõ êîìàíä ìîæíî èñïîëüçîâàòü èëè
|
|
ñèìâîë ñ êîäîì 13 («âîçâðàò êàðåòêè»), èëè ñèìâîë ñ êîäîì 10 («ïåðåõîä íà íîâóþ
|
|
ñòðîêó»), èëè èõ êîìáèíàöèþ â
|
|
óêàçàííîì ïîðÿäêå (<code>#13#10</code>).
|
|
</p>
|
|
|
|
<a name="shownumber"></a>
|
|
<hr noshade size="1">
|
|
<blockquote>
|
|
<code><b>procedure</b> Show(<b>[</b>S: string;<b>]</b> A: integer<b>[</b>; W: integer<b>]</b>);<br>
|
|
<b>procedure</b> Show(<b>[</b>S: string;<b>]</b> A: real<b>[</b>; W: integer<b>]</b>);
|
|
</code></blockquote>
|
|
<p>Ïåðåãðóæåííûå âàðèàíòû ïðîöåäóðû Show, ïðåäíàçíà÷åííûå äëÿ âûâîäà ÷èñëîâûõ îòëàäî÷íûõ äàííûõ.
|
|
Èñïîëüçîâàíèå ýòèõ âàðèàíòîâ ïîçâîëÿåò ìàêñèìàëüíî óïðîñòèòü äåéñòâèÿ
|
|
ó÷àùåãîñÿ, ñâÿçàííûå ñ âûâîäîì ÷èñëîâûõ äàííûõ, ïîñêîëüêó èçáàâëÿåò
|
|
åãî îò íåîáõîäèìîñòè ïðèìåíÿòü ñòàíäàðòíûå ñðåäñòâà ÿçûêà Pascal,
|
|
ïðåäíàçíà÷åííûå äëÿ ïðåîáðàçîâàíèÿ ÷èñåë â èõ ñòðîêîâûå
|
|
ïðåäñòàâëåíèÿ.
|
|
</p>
|
|
<p>Ïðè âûçîâå ïðèâåäåííûõ âàðèàíòîâ ìîæíî íå óêàçûâàòü îäèí èëè îáà ïàðàìåòðà,
|
|
çàêëþ÷åííûå â êâàäðàòíûå ñêîáêè.
|
|
</p>
|
|
<p>Ñòðîêîâûé ïàðàìåòð <code>S</code> îïðåäåëÿåò íåîáÿçàòåëüíûé êîììåíòàðèé,
|
|
êîòîðûé óêàçûâàåòñÿ ïåðåä âûâîäèìûì ÷èñëîì; åñëè ïàðàìåòð <code>S</code>
|
|
îòñóòñòâóåò, òî êîììåíòàðèé ïîëàãàåòñÿ ðàâíûì ïóñòîé ñòðîêå.
|
|
</p>
|
|
<p>×èñëîâîé ïàðàìåòð <code>A</code> îïðåäåëÿåò âûâîäèìîå ÷èñëî.
|
|
</p>
|
|
<p>Íåîáÿçàòåëüíûé öåëî÷èñëåííûé ïàðàìåòð <code>W</code> îïðåäåëÿåò
|
|
<i>øèðèíó ïîëÿ âûâîäà</i> (ò. å. êîëè÷åñòâî ýêðàííûõ
|
|
ïîçèöèé, îòâîäèìîå äëÿ âûâîäà ÷èñëà). Åñëè óêàçàííîé øèðèíû <code>W</code> ïîëÿ âûâîäà íåäîñòàòî÷íî, òî
|
|
çíà÷åíèå ïàðàìåòðà <code>W</code> èãíîðèðóåòñÿ; â ýòîì ñëó÷àå (à òàêæå â ñëó÷àå, åñëè ïàðàìåòð <code>W</code> îòñóòñòâóåò)
|
|
èñïîëüçóåòñÿ øèðèíà ïîëÿ âûâîäà, ìèíèìàëüíî íåîáõîäèìàÿ äëÿ
|
|
îòîáðàæåíèÿ äàííîãî ÷èñëà. Åñëè ÷èñëî íå çàíèìàåò âñåãî ïîëÿ âûâîäà, òî
|
|
îíî äîïîëíÿåòñÿ ñëåâà ïðîáåëàìè (ò. å. âûðàâíèâàåòñÿ ïî
|
|
<i>ïðàâîé</i> ãðàíèöå ïîëÿ âûâîäà).  êà÷åñòâå äåñÿòè÷íîãî ðàçäåëèòåëÿ
|
|
äëÿ ÷èñåë ñ äðîáíîé ÷àñòüþ èñïîëüçóåòñÿ <i>òî÷êà</i>.
|
|
</p>
|
|
<p>Âåùåñòâåííûå ÷èñëà ïî óìîë÷àíèþ âûâîäÿòñÿ â ôîðìàòå ñ
|
|
ôèêñèðîâàííîé òî÷êîé è äâóìÿ äðîáíûìè çíàêàìè. Èçìåíèòü ôîðìàò
|
|
âûâîäà âåùåñòâåííûõ ÷èñåë ìîæíî ñ ïîìîùüþ âñïîìîãàòåëüíîé
|
|
ïðîöåäóðû <code>SetPrecision</code>, îïèñûâàåìîé äàëåå.
|
|
</p>
|
|
|
|
<a name="showline"></a>
|
|
<hr noshade size="1">
|
|
<blockquote>
|
|
<code><b>procedure</b> ShowLine(<b>[</b>S: string<b>]</b>);<br>
|
|
<b>procedure</b> ShowLine(<b>[</b>S: string;<b>]</b> A: integer<b>[</b>; W: integer<b>]</b>);<br>
|
|
<b>procedure</b> ShowLine(<b>[</b>S: string;<b>]</b> A: real<b>[</b>; W: integer<b>]</b>);<br>
|
|
</code></blockquote>
|
|
<p>Ìîäèôèêàöèè ðàíåå îïèñàííûõ ïðîöåäóð <code>Show</code>; ïîñëå âûâîäà óêàçàííûõ äàííûõ â ðàçäåë îòëàäêè
|
|
äîïîëíèòåëüíî îñóùåñòâëÿþò àâòîìàòè÷åñêèé ïåðåõîä íà ñëåäóþùóþ ýêðàííóþ ñòðîêó.
|
|
Ñìûñë ïàðàìåòðîâ — òîò æå, ÷òî è äëÿ ñîîòâåòñòâóþùèõ âàðèàíòîâ ïðîöåäóðû <code>Show</code>.
|
|
Ïàðàìåòðû, óêàçàííûå â êâàäðàòíûõ ñêîáêàõ, ìîãóò îòñóòñòâîâàòü.
|
|
Åñëè ïðîöåäóðà <code>ShowLine</code> âûçûâàåòñÿ áåç ïàðàìåòðîâ, òî îíà
|
|
ïðîñòî îáåñïå÷èâàåò ïåðåõîä íà íîâóþ ýêðàííóþ ñòðîêó â ðàçäåëå îòëàäêè.
|
|
</p>
|
|
|
|
<a name="hidetask"></a>
|
|
<hr noshade size="1">
|
|
<blockquote>
|
|
<code><b>procedure</b> HideTask;
|
|
</code></blockquote>
|
|
<p>Âûçîâ äàííîé ïðîöåäóðû îáåñïå÷èâàåò àâòîìàòè÷åñêîå ñêðûòèå âñåõ ðàçäåëîâ îêíà
|
|
çàäà÷íèêà, êðîìå ðàçäåëà îòëàäêè. Åñëè ðàçäåë îòëàäêè â îêíå çàäà÷íèêà
|
|
íå îòîáðàæàåòñÿ (â ÷àñòíîñòè, åñëè ïðîãðàììà çàïóùåíà â
|
|
äåìîíñòðàöèîííîì ðåæèìå), òî âûçîâ ïðîöåäóðû <code>HideTask</code> èãíîðèðóåòñÿ.
|
|
Èãíîðèðóþòñÿ òàêæå âñå ïîâòîðíûå âûçîâû äàííîé ïðîöåäóðû.
|
|
</p>
|
|
<p>Ñêðûòü/âîññòàíîâèòü îñíîâíûå ðàçäåëû îêíà
|
|
çàäà÷íèêà ïîñëå åãî îòîáðàæåíèÿ íà ýêðàíå ìîæíî òàêæå ñ ïîìîùüþ êëàâèøè
|
|
ïðîáåëà èëè ñîîòâåòñòâóþùåé êîìàíäû êîíòåêñòíîãî ìåíþ ðàçäåëà
|
|
îòëàäêè.
|
|
</p>
|
|
|
|
|
|
|
|
<a name="setprecision"></a>
|
|
<hr noshade size="1">
|
|
<blockquote>
|
|
<code><b>procedure</b> SetPrecision(N: integer);
|
|
</code></blockquote>
|
|
|
|
<p>Ïðîöåäóðà ïðåäíàçíà÷åíà äëÿ íàñòðîéêè ôîðìàòà âûâîäà
|
|
<i>âåùåñòâåííûõ</i> îòëàäî÷íûõ äàííûõ. Åñëè ïàðàìåòð <code>N</code> ïîëîæèòåëåí, òî îí
|
|
îïðåäåëÿåò êîëè÷åñòâî âûâîäèìûõ äðîáíûõ ðàçðÿäîâ; ïðè ýòîì ÷èñëî
|
|
âûâîäèòñÿ â ôîðìàòå ñ ôèêñèðîâàííîé òî÷êîé. Åñëè ïàðàìåòð <code>N</code> ðàâåí
|
|
íóëþ, òî ÷èñëî âûâîäèòñÿ â ôîðìàòå ñ
|
|
ïëàâàþùåé òî÷êîé (ýêñïîíåíöèàëüíîì ôîðìàòå); ïðè ýòîì ÷èñëî
|
|
äðîáíûõ çíàêîâ äëÿ ýêñïîíåíöèàëüíîãî ôîðìàòà
|
|
îïðåäåëÿåòñÿ øèðèíîé ïîëÿ âûâîäà (ò. å. ïàðàìåòðîì <code>W</code> ïðîöåäóðû
|
|
<code>Show</code> èëè <code>ShowLine</code>). Ïðè îòðèöàòåëüíûõ çíà÷åíèÿõ ïàðàìåòðà <code>N</code> âûïîëíÿåòñÿ òà æå
|
|
íàñòðîéêà, ÷òî è ïðè <code>N = 0</code>.
|
|
</p>
|
|
<p>Äåéñòâèå òåêóùåé íàñòðîéêè ÷èñëîâîãî ôîðìàòà, îïðåäåëåííîé
|
|
ïðîöåäóðîé <code>SetPrecision</code>, ïðîäîëæàåòñÿ äî î÷åðåäíîãî âûçîâà ýòîé
|
|
ïðîöåäóðû. Äî ïåðâîãî âûçîâà ïðîöåäóðû <code>SetPrecision</code> âåùåñòâåííûå
|
|
÷èñëà âûâîäÿòñÿ â ôîðìàòå ñ ôèêñèðîâàííîé òî÷êîé è äâóìÿ äðîáíûìè
|
|
çíàêàìè.
|
|
</p>
|
|
|
|
<h2>Îñîáåííîñòè ìîäóëÿ PT4Exam</h2>
|
|
<p>Ïðè âûïîëíåíèè çàäàíèé ãðóïï ExamBegin è ExamTaskC, ñâÿçàííûõ ñ ÅÃÝ ïî èíôîðìàòèêå,
|
|
ê ïðîãðàììàì âìåñòî ìîäóëÿ PT4 ïîäêëþ÷àåòñÿ ìîäóëü <code>PT4Exam</code>.  ýòîì ìîäóëå ðåàëèçîâàíà åäèíñòâåííàÿ äîïîëíèòåëüíàÿ
|
|
ïðîöåäóðà <a href="#task"><code>Task</code></a>, îáåñïå÷èâàþùàÿ èíèöèàëèçàöèþ çàäàíèÿ ñ óêàçàííûì
|
|
èìåíåì. Âñå äåéñòâèÿ ïî ââîäó-âûâîäó äîëæíû âûïîëíÿòüñÿ ñ èñïîëüçîâàíèå ñòàíäàðòíûõ
|
|
ïðîöåäóð ÿçûêà Pascal. Îòëàäî÷íûå ñðåäñòâà ìîäóëÿ <code>PT4</code> â ìîäóëå <code>PT4Exam</code> òàêæå íåäîñòóïíû,
|
|
îäíàêî èìååòñÿ âîçìîæíîñòü âûâîäèòü äîïîëíèòåëüíûå äàííûå ìîæíî íåïîñðåäñòâåííî â ðàçäåë ðåçóëüòàòîâ
|
|
(õîòÿ ïðè ýòîì ðåøåíèå áóäåò ñ÷èòàòüñÿ îøèáî÷íûì).
|
|
</p>
|
|
<p>Îïèñàííûå âûøå îãðàíè÷åíèÿ ìîäóëÿ <code>PT4Exam</code> ïîçâîëÿþò ìàêñèìàëüíî ïðèáëèçèòü ïîëó÷åííîå
|
|
ðåøåíèå ê âèäó, òðåáóåìîìó íà ýêçàìåíå (ïðîãðàììà ñîäåðæèò âñåãî äâå äîïîëíèòåëüíûå êîíñòðóêöèè:
|
|
äèðåêòèâó ïîäêëþ÷åíèÿ ìîäóëÿ <code>PT4Exam</code> è îïåðàòîð âûçîâà ïðîöåäóðû <code>Task</code>, èíèöèàëèçèðóþùåé òðåáóåìîå çàäàíèå).
|
|
</p>
|
|
</body>
|
|
</html>
|
|
|