Загрузка данных
HELPME1S.RU
ПОМОЩНИК БУХГАЛТЕРА и ПРОГРАММИСТА (//helpme1s.ru)
Милькин В.В.
(//helpme1s.ru/o-proekte),
г. Владивосток
helpme1c.box@gmail.com
коллекции бывают разные
(//helpme1s.ru/uprazhneniya-po
vnutrennemu-yazyku-programmirovaniya
1s-8-3-chast-6)
Упражнения по внутреннему языку
программирования 1С 8.3: скобки
возраст, светофор и фио
оглавление
(//helpme1s.ru/uprazhneniya
po-vnutrennemu-yazyku
programmirovaniya-1s-8-3)
(//helpme1s.ru/uprazhneniya-po
vnutrennemu-yazyku-programmirovaniya
1s-8-3-chast-8)
Автор упражнений и преподаватель школы: Владимир Милькин
(//helpme1s.ru/o-proekte)
Упражнение №14. Напишите программу, которая вводит от пользователя
последовательность скобок одного вида "()" и проверяет её на корректность.
Примеры правильных скобочных последовательностей:
()
(())
()()()
(((())))
()()((()))
Примеры неправильных скобочных последовательностей:
(
(()
))((
())(
((())
Подсказки:
Общий план
Заведите имя, например, Ошибка и свяжите его со значением 0. Теперь
последовательно перебирайте все символы введенной строки. Если вы
встретили открывающуюся скобку, то увеличьте 1, закрывающую —
уменьшите на 1. Если на протяжении всего перебора Ошибка было больше
или равно нулю и после завершения осталось нулем, то скобочная
последовательность правильна.
Подсказка
ввести от пользователя Строка
Ошибка = 0
цикл для А от 1 до (длина Строка):
{
Символ = символ из Строка под номером А
если Символ = "(" тогда
Ошибка = Ошибка + 1
если Символ = ")" тогда
Ошибка = Ошибка - 1
если Ошибка < 0 тогда
прервать цикл
}
если Ошибка = 0 тогда
вывести "последовательность скобок корректна"
иначе
вывести "есть ошибка"
Эталонное решение. Сначала пишем код сами, проверяем на компьютере
(как и все примеры программ из уроков), только потом сверяемся
Строка = "";
ВвестиСтроку(Строка); // ввели строку от пользователя
Ошибка = 0; // флаг ошибки
// перебираем все символы строки
Для А = 1 По СтрДлина(Строка) Цикл
Символ = Сред(Строка, А, 1); // получаем текущую строку
Если Символ = "(" Тогда // открывающая скобка, увеличим флаг
Ошибка = Ошибка + 1;
КонецЕсли;
Если Символ = ")" Тогда // закрывающая скобка, уменьшим флаг
Ошибка = Ошибка - 1;
КонецЕсли;
Если Ошибка < 0 Тогда
// флаг стал отрицательным, значит неверная последовательность
Прервать; // прервём цикл досрочно
КонецЕсли;
КонецЦикла;
Если Ошибка = 0 Тогда
// флаг по-прежнему равен нулю, а значит всё ок
ОткрытьЗначение("Последовательность скобок корректна.");
Иначе
// скобок не хватает или они перепутаны местами
ОткрытьЗначение("Последовательность скобок не корректна!");
КонецЕсли;
Перейти к следующему уроку
(//helpme1s.ru/uprazhneniya-po-vnutrennemu-yazyku-programmirovaniya-1s-8-3
chast-8)
Для учеников
Второй модуль - самый сложный в школе. Если вы не программировали ранее- приготовьтесь к тому, что не сможете решить некоторые из задач с первого раза
и без подсказок.
Поэтому вовремя останавливайтесь и спрашивайте преподавателя, если что-то
не понятно даже с подсказками.
В крайнем случае, пройдите все оставшиеся модули школы, а затем вернитесь с
новыми силами к решению задач второго модуля.
На вопросы учеников (//helpme1s.ru/shkola-programmirovaniya-v-1s) — отвечаю
по почте, но прежде загляните в ЧАВО (ссылка) (//helpme1s.ru/otvety-na-chasty
voprosy-v-shkole-programmirovaniya) .
С уважением, Владимир Милькин (//helpme1s.ru/o-proekte)
коллекции бывают разные
(//helpme1s.ru/uprazhneniya-po
vnutrennemu-yazyku-programmirovaniya
1s-8-3-chast-6)
возраст, светофор и фио
оглавление
(//helpme1s.ru/uprazhneniya
po-vnutrennemu-yazyku
programmirovaniya-1s-8-3)
(//helpme1s.ru/uprazhneniya-po
vnutrennemu-yazyku-programmirovaniya
1s-8-3-chast-8)
Условия (//helpme1s.ru/usloviya-obucheniya-v-shkole) • Гарантия
(//helpme1s.ru/garantiya-oplaty-obucheniya-v-shkole) •
Соглашение с пользователем (//helpme1s.ru/polzovatelskoe-soglashenie) •
Политика конфиденциальности (//helpme1s.ru/privacy-policy) •
Политика обработки персональных данных (//helpme1s.ru/politika-v-otnoshenii
obrabotki-personalnyx-dannyx) helpme1s.ru 2013-2026
(https://metrika.yandex.ru/stat/?
id=87047646&from=informer)