По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Строка для Вычислить начинает содержать в себе вызовы функций с аргументом - извлеченным числом из предыдущей задачи.
Так куда мы "собеседуемся"-то? На какой оклад, какую позицию?
Или весь этот бред ради красного словца, потешить самолюбие найденным в интернете?
Так куда мы "собеседуемся"-то? На какой оклад, какую позицию?
Или весь этот бред ради красного словца, потешить самолюбие найденным в интернете?
МассивЧисел = СтрРазделить(ВходящаяСтрока, "абвгдеёжзиклмнопрстуфхшщьъыэюя!№;%:?*()_+-=@''", False);
СписокЧисел = Новый СписокЗначений;
СписокЧисел.ЗагрузитьЗначения(МассивЧисел);
СписокЧисел.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
МаксимальноеЧисло = СписокЧисел[0];
(6)
Процедура НайтиЧислоНаСервере(ВходящаяСтрока)
МассивЧисел = СтрРазделить(ВходящаяСтрока, "абвгдеёжзиклмнопрстуфхшщьъыэюя!№;%:?*()_+-=@''", False);
ТаблицаЧисел = Новый ТаблицаЗначений;
ТаблицаЧисел.Колонки.Добавить("Числа", Новый ОписаниеТипов("Число",,,Новый КвалификаторыЧисла("15")));
РазмерМассива = МассивЧисел.Количество();
ДобавитьРекурсивно(ТаблицаЧисел, РазмерМассива);
ТаблицаЧисел.ЗагрузитьКолонку(МассивЧисел, "Числа");
ТаблицаЧисел.Сортировать("Числа УБЫВ");
МаксимальноеЧисло = ТаблицаЧисел[0].Числа;
КонецПроцедуры
Процедура ДобавитьРекурсивно(ТаблицаЧисел, Размер)
Если Размер > 0 Тогда
ТаблицаЧисел.Добавить();
ДобавитьРекурсивно(ТаблицаЧисел, Размер - 1)
КонецЕсли;
КонецПроцедуры
Показать
(8)
Полноценный вывих мозга для потомков:
чтобы читать такие
И писать на 1С =)
Полноценный вывих мозга для потомков:
Процедура КнопкаВыполнитьНажатие(Кнопка)
ВходнаяСтрока = "09ы!!выв0000032323ав??@а678900ллл1212";
Разделители = СтрСоединить(СтрРазделить(ВходнаяСтрока, "0123456789", Ложь), "");
Коллекция = СтрРазделить(ВходнаяСтрока, Разделители, Ложь);
// Решение первого варианта
СтрокаКода = "Макс(" + СтрСоединить(Коллекция, ",") + ")";
Максимум = Вычислить(СтрокаКода);
Сообщить("Максимум = " + Максимум);
// Универсальный подход
Контекст = Новый Структура;
Контекст.Вставить("Коллекция", Коллекция);
Контекст.Вставить("ИндексТекущегоЭлемента", 0);
Контекст.Вставить("Максимум");
Контекст.Вставить("Есть17", Ложь);
Генератор = Новый Массив(Коллекция.Количество() + 1);
СтрокаКода = """""" + СтрСоединить(Генератор, " + ПочтиЛямбда(Контекст)");
Заглушка = Вычислить(СтрокаКода);
Сообщить("Максимум = " + Контекст.Максимум);
Сообщить("Есть делящиеся на 17 = " + Контекст.Есть17);
КонецПроцедуры
Функция ПочтиЛямбда(Контекст)
Коллекция = Контекст.Коллекция;
Индекс = Контекст.ИндексТекущегоЭлемента;
Контекст.ИндексТекущегоЭлемента = Контекст.ИндексТекущегоЭлемента + 1;
Элемент = Число(Коллекция[Индекс]);
Если Контекст.Максимум = Неопределено Или Контекст.Максимум < Элемент Тогда
Контекст.Максимум = Элемент;
КонецЕсли;
Если Элемент % 17 = 0 Тогда
Контекст.Есть17 = Истина;
КонецЕсли;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот