Загрузка данных


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)