Create Module.bsl (#182)
This commit is contained in:
54
01_introduction_to_algorithms/1C/Module.bsl
Normal file
54
01_introduction_to_algorithms/1C/Module.bsl
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
|
||||||
|
#Область ОбработчикиКомандФормы
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура НайтиЧисло(Команда)
|
||||||
|
ИскомоеЧисло = 75;
|
||||||
|
Сообщение = Новый СообщениеПользователю;
|
||||||
|
|
||||||
|
КоличествоПопыток = БинарныйПоиск(ИскомоеЧисло);
|
||||||
|
|
||||||
|
Если КоличествоПопыток = Неопределено Тогда
|
||||||
|
ТекстСообщения = НСтр("ru = 'Число не входит в диапозон 1..100'");
|
||||||
|
Иначе
|
||||||
|
ШаблонСообщения = НСтр("ru = 'Число %1 найдено за %2 попыток'");
|
||||||
|
ТекстСообщения = СтрШаблон(ШаблонСообщения, ИскомоеЧисло, КоличествоПопыток);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Сообщение.Текст = ТекстСообщения;
|
||||||
|
Сообщение.Сообщить();
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Функция БинарныйПоиск(ИскомоеЧисло)
|
||||||
|
|
||||||
|
Массив = Новый Массив;
|
||||||
|
|
||||||
|
Для Счетчик = 1 По 100 Цикл
|
||||||
|
Массив.Добавить(Счетчик);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КоличествоПопыток = 0;
|
||||||
|
МинимальноеЧисло = Массив[0];
|
||||||
|
МаксимальноеЧисло = Массив[Массив.Количество() - 1];
|
||||||
|
Пока МинимальноеЧисло <= МаксимальноеЧисло Цикл
|
||||||
|
КоличествоПопыток = КоличествоПопыток + 1;
|
||||||
|
НайденноеЧисло = Цел((МинимальноеЧисло + МаксимальноеЧисло) / 2);
|
||||||
|
Если НайденноеЧисло = ИскомоеЧисло Тогда
|
||||||
|
Возврат КоличествоПопыток;
|
||||||
|
ИначеЕсли НайденноеЧисло > ИскомоеЧисло Тогда
|
||||||
|
МаксимальноеЧисло = НайденноеЧисло - 1;
|
||||||
|
Иначе // НайденноеЧисло < ИскомоеЧисло
|
||||||
|
МинимальноеЧисло = НайденноеЧисло + 1;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Неопределено;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
Reference in New Issue
Block a user