Programming Taskbook


E-mail:

Пароль:

Регистрация пользователя   Восстановление пароля

 

ЮФУ

Электронный задачник по программированию

©  М. Э. Абрамян (Южный федеральный университет), 1998–2022

 

PT for 1C | Выполнение заданий в системе 1С:Предприятие | Простое задание

PrevNext


Пример выполнения простого задания: Begin3

На данной странице приводится пошаговое описание процесса решения на языке 1С:Предприятие 8.1 следующего простого задания из группы Begin.

Begin3°. Даны стороны прямоугольника a и b. Найти его площадь S = ab и периметр P = 2(a + b).

Создание программы-заготовки и знакомство с заданием

Для создания проекта, содержащего заготовку для требуемого задания, следует воспользоваться программным модулем PT4Load, входящим в состав базового варианта электронного задачника Programming Taskbook. Для этого достаточно перейти в рабочий каталог задачника и с помощью ярлыка Load.lnk запустить программу-утилиту PT4Load.exe. На экране появится окно модуля PT4Load, в котором следует указать имя нужного задания. Отметим, что в заголовке этого окна указывается имя той программной среды, для которой будет создана заготовка; при использовании системы PT for 1C в заголовке должен содержаться текст «_1С8».

Проект-заготовка, созданный для системы 1С:Предприятие 8, состоит из нескольких файлов, однако для решения задания нам потребуется только файл Begin3.1с. Для загрузки содержимого этого файла в конфигуратор системы 1С необходимо после появления на экране окна конфигуратора выполнить щелчок правой кнопкой мыши на пункте «Конфигурация» окна «Конфигурация» и выполнить в появившемся контекстном меню команду «Открыть модуль приложения». Приведем начальную часть содержимого данного файла:

Процедура Решение(pt)
  pt.Задание("Begin3");
        
КонецПроцедуры

Эта часть содержит описание процедуры Решение, в которой необходимо запрограммировать решение задания. Процедура Решение уже содержит вызов процедуры Задание, инициализирующей задание Begin3. Файл Begin3.1с содержит также описание стартовой процедуры ПриНачалеРаботыСистемы, в которой производится вызов процедуры Решение. Процедура ПриНачалеРаботыСистемы не требует редактирования при выполнении задания, поэтому приводить ее текст мы не будем.

Запустим программу, нажав клавишу [F5] или комбинацию клавиш [Ctrl]+[F5] (данная комбинация запускает программу в более быстром режиме с отключенным отладчиком). Перед компиляцией программы среда 1С выдаст диалоговое окно следующего вида:

В этом окне надо выбрать вариант «Да» (достаточно нажать клавишу [Enter]). После компиляции программы и ее запуска в среде 1С мы сможем увидеть на экране окно задачника с формулировкой задания и примером исходных данных.

Запуск нашей программы был признан ознакомительным (и поэтому правильность решения не анализировалась), так как в ходе ее выполнения не было совершено ни одной операции ввода-вывода.

Ввод исходных данных

Приступая к решению задания, надо прежде всего организовать ввод в программу исходных данных. В нашем случае исходными данными являются вещественные числа a и b, определяющие стороны прямоугольника (в области исходных данных эти числа выделены желтым цветом и снабжены комментариями).

Для правильного ввода исходных данных в нашем случае надо использовать функцию ПолучитьЧисло (GetNumber), обеспечивающую ввод данных типа Число (Number). Укажем это соответствующим образом в процедуре Решение:

Процедура Решение(pt)
  pt.Задание("Begin3");
  А = pt.ПолучитьЧисло();
  Б = pt.ПолучитьЧисло();

КонецПроцедуры

Заметим, что в языке системы 1С в именах переменных можно использовать русские буквы. Повторно запустив программу, мы увидим, что исходные данные изменились. При каждом запуске генерируется новый набор исходных данных, поэтому для успешного решения задания необходимо запрограммировать алгоритм, правильно обрабатывающий любой допустимый набор исходных данных.

Ввод данных выполнен правильно. Однако наша программа не выводит результатов, поэтому ее работа признана ошибочной с диагностикой «Выведены не все результирующие данные. Количество выведенных данных: 0 (из 2)».

Вычисления и вывод полученных данных

Выполним необходимые вычисления и выведем результаты, используя процедуру Вывести (Put):

Процедура Решение(pt)
  pt.Задание("Begin3");
  А = pt.ПолучитьЧисло();
  Б = pt.ПолучитьЧисло();
  Площадь = А * Б;
  Периметр = 2 * (А + Б);
  pt.Вывести(Периметр);
  pt.Вывести(Площадь);
КонецПроцедуры

После запуска программы мы можем убедиться, что найденные значения выведены в разделе результирующих данных. Но из-за того, что вначале мы вывели значение периметра Периметр, а затем — значение площади Площадь, решение признано неверным, а сообщение об ошибке имеет вид «Ошибочное решение». Подобное сообщение означает, что все исходные данные были введены, все результирующие данные выведены, но значения полученных результатов не совпадают с контрольными. Перейдя на вкладку «Пример верного решения«, мы можем убедиться в том, что площадь и периметр найдены верно и нарушен только порядок их вывода.

Таким образом, важно не только найти правильные значения результирующих данных, но и вывести их в нужном порядке. Для того чтобы указать этот порядок, в разделе результатов используется поясняющий текст (см. приведенный выше рисунок окна задачника). Заметим, что исходные данные тоже важно вводить именно в том порядке, в котором они указаны в окне задачника. Общее правило здесь следующее: ввод и вывод данных производится по строкам (слева направо), а строки просматриваются сверху вниз. Иными словами, данные, отображаемые в окне задачника, вводятся и выводятся в том порядке, в котором читается обычный текст на русском языке.

Правильное решение и его тестирование

Исправим допущенную ошибку, поменяв местами два последних оператора в процедуре Решение:

  pt.Вывести(Площадь);
  pt.Вывести(Периметр);

После запуска исправленной программы на информационной панели окна задачника будет выведено сообщение на зеленом фоне: «Верное решение. Тест номер 1 (из 3)».

Таким образом, мы провели первое успешное испытание нашей программы. Однако однократное успешное испытание алгоритма еще не означает, что он является правильным. Для того чтобы получить уверенность в правильности алгоритма, его надо протестировать несколько раз на различных наборах данных. Количество тестовых испытаний, требующихся для каждого учебного задания, различно и может меняться в пределах от 3 до 9 (для простого задания Begin3 число испытаний равно 3). Если нужное количество испытаний, проведенных подряд, прошло успешно, то на информационной панели появится сообщение «Задание выполнено!». Если же в ходе очередного испытания будет получено неверное решение, то счетчик количества успешных испытаний для данного задания будет сброшен в 0, и после исправления алгоритма программу придется тестировать заново.

В нашем случае алгоритм является правильным, поэтому после трех запусков на информационной панели окна задачника появится текст «Задание выполнено!». Выполнение задания Begin3 завершено.

С помощью модуля PT4Results, входящего в базовый вариант задачника Programming Taskbook, можно просмотреть информацию о ходе выполнения задания.

Примечание. В использовании вспомогательных переменных Периметр и Площадь при выполнении задания нет необходимости, поскольку при выводе результатов можно указать не только переменные, но и выражения. Учитывая это, можно получить более короткий вариант решения задания Begin3:

Процедура Решение(pt)
  pt.Задание("Begin3");
  А = pt.ПолучитьЧисло();
  Б = pt.ПолучитьЧисло();
  pt.Вывести(А * Б);
  pt.Вывести(2 * (А + Б));
КонецПроцедуры

PrevNext

 

Рейтинг@Mail.ru

Разработка сайта:
М. Э. Абрамян, В. Н. Брагилевский

Последнее обновление:
01.01.2022