Загрузка данных
Стр = "";
ВвестиСтроку(Стр, "Введите слово");
// Приводим к нижнему регистру для корректного сравнения
СтрокаПроверки = НРег(Стр);
Начало = 1;
Конец = СтрДлина(СтрокаПроверки);
Палиндром = Истина;
Пока Начало <= Конец Цикл
СимволСлева = Сред(СтрокаПроверки, Начало, 1);
СимволСправа = Сред(СтрокаПроверки, Конец, 1);
Если СимволСлева <> СимволСправа Тогда
Палиндром = Ложь;
Прервать;
КонецЕсли;
Начало = Начало + 1;
Конец = Конец - 1;
КонецЦикла;
Если Палиндром = Истина Тогда
ОткрытьЗначение("Строка """ + Стр + """ является палиндромом");
Иначе
ОткрытьЗначение("Строка """ + Стр + """ не является палиндромом");
КонецЕсли;
```[span_1](start_span)[span_1](end_span)
**📷 Что скриншотить:**
1. Окно Конфигуратора с кодом упражнения в модуле[span_2](start_span)[span_2](end_span).
2. Окно ввода строки со словом, например, `шалаш`.
3. Итоговое окно с сообщением: `Строка "шалаш" является палиндромом`[span_3](start_span)[span_3](end_span).
---
### Упражнение №8. Подсчет слов, пробелов и знаков препинания
Для проверки вхождения символа в строку знаков препинания используется функция `Найти`. В 1С кавычка внутри строкового литерала экранируется удвоением (`""""`).
**Что вставить в `Модуль приложения`:**[span_4](start_span)[span_4](end_span)
```bsl
Текст = "";
ВвестиСтроку(Текст, "Введите текст");
ЗнакиПрепинания = "`~!@#$%^&*()-=_+\|[]{};':"",.<>/?";
КоличествоСлов = 0;
КоличествоПробелов = 0;
КоличествоЗнаковПрепинания = 0;
МыВСлове = Ложь;
ДлинаТекста = СтрДлина(Текст);
Для А = 1 По ДлинаТекста Цикл
Символ = Сред(Текст, А, 1);
Если Символ = " " Или Найти(ЗнакиПрепинания, Символ) > 0 Тогда
Если МыВСлове Тогда
КоличествоСлов = КоличествоСлов + 1;
КонецЕсли;
МыВСлове = Ложь;
Если Символ = " " Тогда
КоличествоПробелов = КоличествоПробелов + 1;
Иначе
КоличествоЗнаковПрепинания = КоличествоЗнаковПрепинания + 1;
КонецЕсли;
Иначе
МыВСлове = Истина;
КонецЕсли;
КонецЦикла;
Если МыВСлове = Истина Тогда
КоличествоСлов = КоличествоСлов + 1;
КонецЕсли;
Сообщить("Количество слов: " + КоличествоСлов);
Сообщить("Количество пробелов: " + КоличествоПробелов);
Сообщить("Количество знаков препинания: " + КоличествоЗнаковПрепинания);
Текст = "";
ВвестиСтроку(Текст, "Введите текст");
Текст = НРег(Текст);
ЗнакиПрепинания = "`~!@#$%^&*()-=_+\|[]{};':"",.<>/?";
Слова = Новый Массив;
ТекущееСлово = "";
МыВСлове = Ложь;
ДлинаТекста = СтрДлина(Текст);
Для А = 1 По ДлинаТекста Цикл
Символ = Сред(Текст, А, 1);
Если Символ = " " Или Найти(ЗнакиПрепинания, Символ) > 0 Тогда
Если МыВСлове Тогда
Слова.Добавить(ТекущееСлово);
ТекущееСлово = "";
КонецЕсли;
МыВСлове = Ложь;
Иначе
МыВСлове = Истина;
ТекущееСлово = ТекущееСлово + Символ;
КонецЕсли;
КонецЦикла;
Если МыВСлове Тогда
Слова.Добавить(ТекущееСлово);
КонецЕсли;
// Сортировка массива методом пузырька по возрастанию длины слов
Пока Истина Цикл
БылиПерестановки = Ложь;
Для Шаг = 0 По Слова.Количество() - 2 Цикл
Если СтрДлина(Слова[Шаг]) > СтрДлина(Слова[Шаг + 1]) Тогда
Буфер = Слова[Шаг];
Слова[Шаг] = Слова[Шаг + 1];
Слова[Шаг + 1] = Буфер;
БылиПерестановки = Истина;
КонецЕсли;
КонецЦикла;
Если БылиПерестановки = Ложь Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Сообщить("=== Словарь по возрастанию длины ===");
Для Каждого Слово Из Слова Цикл
Сообщить(Слово + " (" + СтрДлина(Слово) + ")");
КонецЦикла;
```[span_8](start_span)[span_8](end_span)
**📷 Что скриншотить:**
1. Окно Конфигуратора с кодом разбивки и пузырьковой сортировки[span_9](start_span)[span_9](end_span).
2. Окно служебных сообщений режима «1С:Предприятие» с выведенным списком слов от самых коротких к самым длинным.