pascalabcnet/PABCNetHelp/ForEducation/CheckedTasks/checkedtasks1.html

167 lines
8.8 KiB
HTML
Raw Normal View History

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" href="../../default.css">
</head>
<body>
<H1>Задание Begin3 из электронного задачника Programming Taskbook</H1>
<hr>
<p>Задание Begin3 относится к самой первой группе задачника, посвященной
знакомству с вводом-выводом и оператором присваивания.
Приведем формулировку этого задания.
</p>
<p><b>Begin3</b>. Даны стороны
прямоугольника <code>a</code> и <code>b</code>.
Найти его площадь <code>S=a*b</code> и периметр <code>P=2*(a+b)</code>. </p>
<p>Далее по шагам опишем сценарий выполнения задания в системе
<b>PascalABC.NET</b>.</p>
<hr>
<p><font color="#0000FF"><b><i>Шаг 1.</i> </b></font>Для
выполнения заданий из электронного задачника подключим к программе модуль
<code>PT4</code> и вызовем в
начале программы процедуру <code>Task</code>, передав ей в
качестве параметра имя задания:</p>
<blockquote>
<code><b>uses</b> PT4;<br><b>begin</b><br>&nbsp;&nbsp;Task('Begin3');<br>
<br><b>end</b>.</code>
</blockquote>
<p>Заметим, что эту программу не обязательно набирать вручную. Для автоматической генерации данной программы
выполним следующие действия. Нажмем кнопку
<img border="0" src="../PT4/gif/load.gif" width="16" height="17">. На экране появится окно
программного модуля <b>PT4Load</b>, позволяющего создать программу-заготовку для требуемого задания:
</p>
<blockquote>
<img border="0" src="../PT4/gif/pt4load.png">
</blockquote>
<p>Наберем в поле ввода «Задание»
текст <code>Begin3</code> и нажмем <b>Enter</b>.
После этого указанный выше текст сгенерируется автоматически и сохранится в
файле Begin3.pas в рабочем каталоге
системы <b>PascalABC.NET</b>
(по умолчанию это каталог C:\PABCWork.NET).</p>
<p>Запустим программу (нажав клавишу <b>F9</b>),
чтобы увидеть на экране текст задания:<a name="s1"></a></p>
<blockquote>
<img border="0" src="gif/Begin3-1.png">
</blockquote>
<p>Запуск нашей программы был признан <i>ознакомительным</i> (и поэтому правильность решения не анализировалась),
так как в ходе ее выполнения не было совершено ни одной операции ввода-вывода.
</p>
<hr>
<p><b><font color="#0000FF"><i>Шаг 2.</i> </font></b>Переменные
<code>a</code> и <code>b</code>
считываются из полей ввода, выделенных желтым цветом, с помощью обычной функции <code>
ReadInteger</code>, <code>ReadReal</code> ... Закроем окно задачника
и изменим программу следующим образом:
</p>
<blockquote>
<code><b>uses</b> PT4;<br><b><br>begin</b><br>&nbsp;&nbsp;Task('Begin3');<br>
&nbsp; <b>var (</b>a,b) := ReadInteger2;<br>
<b>end</b>.</code>
</blockquote>
<p>После запуска этого вариант программы окно задачник примет вид:</p>
<blockquote>
<img border="0" src="gif/Begin3-2.png">
</blockquote>
<p>Как видим, исходные данные поменялись и появилось сообщение
об ошибке &#151; переменные <code>a</code> и <code>b</code> должны быть объявлены как
вещественные. Если запуск программы не является ознакомительным, то в окне задачника
появляется раздел с полученными результатами
(в нашем случае он не содержит ни одного числа), а также панель индикаторов,
показывающих количество введенных и выведенных данных, а также число успешных тестовых запусков
программы.
</p>
<hr>
<p><font color="#0000FF"><b><i>Шаг 3.</i> </b></font>Исправим тип исходных данных:</p>
<blockquote>
<code><b>uses</b> PT4;<br><b><br>begin</b><br>&nbsp;&nbsp;Task('Begin3');<br>
&nbsp; <b>var (</b>a,b) := ReadReal2;<br>
<b>end</b>.</code>
</blockquote>
<p>Вновь запустим программу:</p>
<blockquote>
<img border="0" src="gif/Begin3-3.png">
</blockquote>
<p>Электронный задачник предупреждает, что не выведен результат.
Обратите внимание на то, что для сообщений о различных видах ошибок используются
разные цвета (например, фиолетовый для ошибок, связанных с несоответствием типов,
и оранжевый для ошибок, связанных с вводом/выводом недостаточного числа данных).
</p>
<hr>
<p><font color="#0000FF"><b><i>Шаг 4.</i> </b></font>Проведем
вычисления и выведем результирующие данные, но в неверном порядке:</p>
<blockquote>
<code><b>uses</b> PT4;<br><b><br>begin</b><br>&nbsp;&nbsp;Task('Begin3');<br>
&nbsp; <b>var (</b>a,b) := ReadReal2;<br>
&nbsp; <b>var </b>S := a * b;<br>
&nbsp; <b>var </b>P := 2 * (a + b);<br>
&nbsp; Print(P, S)<br>
<b>end</b>.</code>
</blockquote>
<p>Вновь запустим программу:</p>
<blockquote>
<img border="0" src="gif/Begin3-4.png">
</blockquote>
<p>Мы видим, что все требуемые исходные данные введены, все результаты выведены,
однако полученные результаты имеют неверные значения.
В случае ошибочного решения окно задачника всегда содержит раздел с примером
верного решения, чтобы можно было сравнить полученные и правильные результаты.</p>
<hr>
<p><font color="#0000FF"><b><i>Шаг 5.</i> </b></font>Исправим
ошибку:</p>
<blockquote>
<code><b>uses</b> PT4;<br><b><br>begin</b><br>&nbsp;&nbsp;Task('Begin3');<br>
&nbsp; <b>var (</b>a,b) := ReadReal2;<br>
&nbsp; <b>var </b>S := a * b;<br>
&nbsp; <b>var </b>P := 2 * (a + b);<br>
&nbsp; Print(S, P)<br>
<b>end</b>.</code>
</blockquote>
<p>После запуска программы увидим следующее окно:</p>
<blockquote>
<img border="0" src="gif/Begin3-5.png">
</blockquote>
<p>Если решение является правильным, то дополнительный раздел с примером правильного
решения в окне не выводится.</p>
<hr>
<p><font color="#0000FF"><b><i>Шаг 6.</i> </b></font>Чтобы задание считалось выполненным, запустим
программу еще два раза. В результате в окне задачника появится сообщение «Задание
выполнено!»: </p>
<blockquote>
<img border="0" src="gif/Begin3-6.png">
</blockquote>
<p>Поздравляем! Задание <code>Begin3</code>
под руководством электронного задачника выполнено! Результаты выполнения заданий можно просмотреть,
щелкнув мышью на метке &laquo;Результаты (F2)&raquo;, расположенной в правом верхнем
углу окна задачника, или нажав клавишу <b>F2</b>.
После закрытия окна задачника и возврата в среду PascalABC.NET результаты можно отобразить на экране,
нажав кнопку <img border="0" src="../PT4/gif/results.gif" width="16" height="17"> или нажав клавиатурную
комбинацию <b>Shift+Ctrl+R</b>.
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>