Programming Taskbook


E-mail:

Пароль:

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

 

ЮФУ

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

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

 

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

PrevNext


Выполнение задания на обработку строк: String9

Особенности выполнения заданий на обработку символов и строк рассмотрим на примере задания String9.

String9°. Дано четное число N (> 0) и символы C1 и C2. Вывести строку длины N, которая состоит из чередующихся символов C1 и C2, начиная с C1.

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

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

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

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

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

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

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

После запуска программы на экране появится окно задачника следующего вида.

Символьные и строковые данные в окне задачника заключаются в двойные кавычки; это позволяет отличить числовые данные (например, 2) от символьных и строковых данных, содержащих цифры (например, символа "2"). Кроме того, кавычки дают возможность увидеть пробелы, находящиеся в начале или в конце строк.

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

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

Процедура Решение(pt)
  pt.Задание("String9");
  A = pt.ПолучитьСтроку();
  Б = pt.ПолучитьСтроку();      
  N = pt.ПолучитьЧисло();
        
КонецПроцедуры

Мы намеренно ввели данные не в том порядке, в котором они указаны в окне задачника.

Запуск нового варианта программы уже не будет считаться ознакомительным, поскольку в программе выполняется ввод исходных данных. Так как порядок ввода исходных данных является ошибочным, этот вариант решения будет признан неверным и приведет к сообщению «Неверно указан тип при вводе исходных данных. Для ввода 1-го элемента (целого типа) использована переменная символьного типа».

Напомним правило, определяющее порядок ввода и вывода данных для задачника Programming Taskbook: ввод и вывод данных производится по строкам (слева направо), а строки просматриваются сверху вниз.

Исправим процедуру Решение, изменив в ней порядок ввода исходных данных:

  N = pt.ПолучитьЧисло();
  А = pt.ПолучитьСтроку();
  Б = pt.ПолучитьСтроку();

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

Формирование требуемой строки и ее вывод

Для формирования нужной строки воспользуемся операцией «+» сцепления строк; для вывода полученной строки используем процедуру Вывести (Put):

Процедура Решение(pt)
  pt.Задание("String9");
  N = pt.ПолучитьЧисло();
  А = pt.ПолучитьСтроку();
  Б = pt.ПолучитьСтроку();
  стр = "";
  Для инд = 0 по N - 1 Цикл
    стр = стр + А + Б;
  КонецЦикла;
  pt.Вывести(стр);
КонецПроцедуры

При выполнении этой программы в области результатов будет выведена строка, оканчивающаяся особым символом — красной звездочкой, например:

"a1a1a1a1a1*

Красная звездочка, расположенная в конце строки, отображаемой на экране, означает, что длина полученной строки превышает длину контрольной (т. е. «правильной») строки. Для того чтобы увидеть на экране всю полученную строку, достаточно подвести курсор мыши к строке со звездочкой; при этом полный текст строки появится во всплывающей подсказке.

Примечание. Красная звездочка может появиться и при выводе ошибочных числовых данных. Например, если ожидается целое число в диапазоне от 1 до 99, а получено число 10000, то на экран будет выведена только первая цифра этого числа, за которой будет указана красная звездочка: 1*.

Правильное решение, его тестирование и просмотр результатов

Ошибка в предыдущей программе возникла из-за неверного указания количества итераций цикла. Действительно, на каждой итерации к строке добавляется по два символа, поэтому после N итераций строка будет содержать 2N символов (а не N, как требуется в задании).

Для исправления ошибки достаточно вдвое уменьшить число итераций, изменив заголовок цикла следующим образом:

Для инд = 0 по N/2-1 Цикл

После запуска исправленной программы мы получим сообщение «Верное решение. Тест номер 1 (из 5)», а после пяти подобных запусков — сообщение «Задание выполнено!». С помощью модуля PT4 Results из базового варианта задачника Programming Taskbook мы можем вывести на экран окно результатов, в котором будут перечислены все наши попытки решения задания:

String9   e24/03 11:37 Ознакомительный запуск.
String9   е24/03 11:48 Неверно указан тип при вводе исходных данных.
String9   е24/03 11:49 Выведены не все результирующие данные.
String9   е24/03 11:49 Ошибочное решение.
String9   е24/03 11:52 Задание выполнено!

Заметим, что указанная перед датой выполнения задания буква «e» (начальная буква слова Enterprise) означает, что задание выполнялось в системе 1С:Предприятие.


PrevNext

 

Рейтинг@Mail.ru

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

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