9.7 KiB
Задание к занятию "Универсальные коллекции"
Примерное время выполнения: 60 минут
Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу.
Любые вопросы по решению задач задавайте в чате учебной группы.
Цель задания
- Закрепить на практике работу с универсальными коллекциями
Решение задания научит вас использовать массивы, структуры и соответствия для написания алгоритмов. Этот навык является одним из базовых для дальнейшего решения домашних заданий и промышленной разработки.
Чеклист готовности к домашнему заданию
- Установлена учебная платформа версии 8.3.20 или больше.
- Развернута информационная база с конфигурацией УправлениеИТФирмой, полученная по итогу выполнения домашнего задания к занятию Циклы.
Инструкция к заданию
- Решите описанные задачи в конфигураторе.
- Протестируйте решение в пользовательском режиме.
- Отправьте на проверку в личном кабинете Нетологии внешнюю обработку ПодсчетЧислаУникальныхСлов с решением задачи 1 и файл выгрузки информационной базы (.dt) с конфигурацией, содержащей решение по задаче 2. Файлы прикрепите в раздел "решение" в практическом задании.
Задача 1 "Подсчет числа уникальных слов"
Описание задачи
Вы хотите реализовать обработку, которая сможет посчитывать число уникальных слов в тексте, введенном пользователем.
Требования к результату
Внешняя обработка с реквизитом и многострочным полем ввода для текста и кнопкой "Подсчитать", по нажатию на которую определяется и выводится пользователю число уникальных слов в тексте без учета регистра. Иначе говоря, слово, встречающееся в тексте несколько раз, учитывается в итоговом результате лишь однажды.
Например: для текста "Привет привет ПрИвЕт Нетология" результат должен быть 2
Процесс выполнения
- Создайте внешнюю обработку с именем, например, ПодсчетЧислаУникальныхСлов.
- Добавьте в нее реквизит типа Строка - например, Текст - и перетащите его на форму, сделав многострочным полем ввода.
- Добавьте команду Подсчитать и перетащите ее кнопкой на форму.
- В обработчике команды:
- Создайте Соответствие для хранения уникальных слов.
Подсказка
Пример решения задачи по поиску дублирующих чисел:
МассивЧисел = Новый Массив;
МассивЧисел.Добавить(0);
МассивЧисел.Добавить(1);
МассивЧисел.Добавить(2);
МассивЧисел.Добавить(2);
МассивЧисел.Добавить(0);
Поиск = Новый Соответствие;
Для Каждого Число Из МассивЧисел Цикл
Повтор = Дубликаты.Получить(Число);
Если Повтор = Неопределенно Тогда
Дубликаты.Вставить(Число, 1);
Иначе
НовоеЗначение = Повтор + 1;
Дубликаты.Вставить(Число, НовоеЗначение);
КонецЕсли;
КонецЦикла;
Для Каждого ЭлементСоответствия Из Дубликаты Цикл
Сообщить (СтрШаблон(“Значение %1 встретилось %2 раза”, ЭлементСоответствия.Ключ, ЭлементСоответствия.Значение));
КонецЦикла;
- Разделите текст на слова вызовом СтрРазделить().
- Обойдите в цикле все слова.
- Вставляйте в соответствие слово, приведя его к верхнему или нижнему регистру.
- Выведите результат - число элементов соответствия - вызовом Сообщить() или ПоказатьПредупреждение(), формируя строку с помощью СтрШаблон().
Задача 2 "Поздравления"
Описание задачи
Вы хотите, чтобы программа при запуске поздравляла пользователя с праздником, если он приходится на сегодня или на завтра.
Требования к результату
Выгрузка информационной базы (.dt), при начале работы системы выводящая поздравление с сегодняшней или завтрашней праздничной датой, находя ее в заранее подготовленном массиве структур. Приветствие должно содержать название праздника и собираться функцией СтрШаблон().
Процесс выполнения
- Используйте конфигурацию из прошлого задания.
- Реализуйте алгоритм оповещения о праздниках в обработчике ПриНачалеРаботыСистемы в модуле приложения.
- Объявите переменную-массив праздничных дат.
- Добавьте в него несколько праздничных дат в виде структур со свойствами День, Месяц, Название.
- Определите, не является ли текущая дата праздничной или предпраздничной, обходя в цикле этот заранее подготовленный массив структур, и покажите соответствующее поздравление.
Подсказка
Пример задачи, которая уведомляет сотрудника о планируемых работах на оборудовании.
ДатыПрофилактик = Новый Массив;
ДатыПрофилактик.Добавить(Новый Структура("День, Название", 2, "Профилактика оборудования ПЭВМ"));
ДатыПрофилактик.Добавить(Новый Структура("День, Название", 3, "Профилактика оборудования ИБП"));
ДатыПрофилактик.Добавить(Новый Структура("День, Название", 4, "Профилактика серверного оборудования"));
Для Каждого Элемент Из ДатыПрофилактик Цикл
Если День(ТекущаяДата()) = Элемент.День Тогда
Сообщить(СтрШаблон("Сегодня - %1",Элемент.Название));
КонецЕсли; КонецЦикла;
Критерии оценки
Задание считается выполненным при соблюдении следующих условий:
- Решение включает внешнюю обработку ПодсчетЧислаУникальныхСлов и выгрузку в формате dt с конфигурацией УправлениеИТФирмой;
- Обработка ПодсчетЧислаУникальныхСлов позволяет выявить уникальные слова в тексте, веденным пользователем;
- При запуске программы выводится поздравление, если на сегодня или на завтра приходится праздник.
Подсказка:
Чтобы вам было проще понять, что в итоге должно получиться, мы подготовили подсказки: анимационные изображения в формате gif или картинки. Чтобы их увидеть, кликните по ссылке