#0
by Dil
Во встроенном языке 1С нет фунцкции вычисления квадратного корня из числа. Подскажите, как ее реализовать? Заранее благодарен
#13
by Старый программер
Из рассылки "В 1С-предприятии можно Всё?! Сторонний взгляд программиста." (не проверял:) ========= цитата ====================================== Как стало доподлинно известно в 1С можно извлечь корень. Ниже приведена функция факториала, которая с большой точностью рассчитывает корень определенной степени. Понятно что обычный корень имеет степень 2, основание - число из которого извлекаем корень. Функция Корень(Основание,Степень) Если Степень = 1 Тогда Возврат(Основание); КонецЕсли; Факториал = 1; Степень_ = 1; Сум = 0; СтепеньЕ = 1/Степень*Лог(Основание); Для ии = 1 по 28 Цикл Факториал = Факториал * ии; Степень_ = Степень_ * СтепеньЕ; Сум = Сум + Степень_/Факториал КонецЦикла; Возврат(1+Сум); КонецФункции ========= конец цитаты =================================
#14
by Темный Эльф
Процедура точно из типовой украинской БУ, из модуля проведения документа НачислениеИзноса.
#23
by gr13
Функция вычисляет квадратный корень числа: Функция КвКорень(Чсл) Попытка ScrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl"); ScrptCtrl.Language="vbscript"; ScrptCtrl.AddCode(" |Function GetSqr(x) | GetSqr = Sqr(x) |End Function |"); Рез=ScrptCtrl.Modules("Global").CodeObject.GetSqr(Чсл); Исключение Сообщить(ОписаниеОшибки); Возврат 0; КонецПопытки; Возврат Рез; КонецФункции //КвКорень
#25
by gr13
//****************************************************************** // КвaдpaтныйКopeнь(Apгумeнт) // // Пapaмeтpы: // Apгумeнт - нeoтpицaтeльнoe чиcлo // // Boзвpaщaeмoe Значeниe: // Квaдpaтный кopeнь Apгумeнтa // // Oпиcaниe // ПpeднaЗначeнa для иcчиcлeния квaдpaтнoгo кopня чиcлa c // пpимeнeниeм итepaциoннoгo мeтoдa Hьютoнa // Итepaции выПолняютcя дo дocтижeния тoчнocти, зaдaннoй // внeшнeй (публичнoй) Перемeннoй ДocтaтoчнaяToчнocть // Функция КвaдpaтныйКopeнь(Apгумeнт) // Oгpaничимcя oблacтью oпpeдeлeния функции Если Apгумeнт<0 Тогда // cooбщeниe oб oшибкe Сообщить("...","!"); Возврат ПолучитьПустоеЗначение; // Oтceчeм нoль ИначеЕсли Apгумeнт=0 Тогда Возврат 0; КонецЕсли; // Bыбepeм пepвoe пpиближeниe ПpeдыдущaяИтepaция = Apгумeнт/2; Для Cч=1 По КoличecтвoИтepaций Цикл Значeниe = 0.5*(ПpeдыдущaяИтepaция+ Apгумeнт/ПpeдыдущaяИтepaция); Если Значeниe<ПpeдыдущaяИтepaция Тогда Paзницa = ПpeдыдущaяИтepaция-Значeниe; Иначе Paзницa = Значeниe-ПpeдыдущaяИтepaция; КонецЕсли; Если Paзницa<ДocтaтoчнaяToчнocть Тогда Прервать; КонецЕсли; ПpeдыдущaяИтepaция=Значeниe; КонецЦикла; Значeниe = Окр(Значeниe,Макс(КoличecтвoЗнaкoв-Лог10(Значeниe),0)); Возврат Значeниe; КонецФункции // кoнeц функции КвaдpaтныйКopeнь //******************************************************************
#27
by smaharbA
//******************************************* Процедура Сформировать Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.Language="javascript"; Математика=Скрипт.Eval("Math"); Сообщить(Математика.random); Град=10; X=Град*Математика.PI/180; Сообщить(Математика.sin(X)); Сообщить(Математика.cos(X)); Сообщить(Математика.asin(X)); Сообщить(Математика.acos(X)); Сообщить(Математика.tan(X)); Сообщить(Математика.atan(X)); Сообщить(Математика.sqrt); Сообщить(Математика.log); Сообщить(Математика.PI); Сообщить(Математика.LN10); Скрипт.Eval("Переменная=new Number("+255+")"); Переменная=Скрипт.Eval("Переменная"); Сообщить(Переменная.toString); КонецПроцедуры
#28
by demin_alexander83
Зачем фигней маеться. В ряд тейлора или еще в какой-нибудь, который побыстрее сходится, и все...
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- CRM 1c8 "РАРУС" стоит покупать?
- Как найти документ по значению в табличной части?
- Что означает в плане счетов "только обороты"
- Как лучше контролировать, чтобы у новых документов был префикс?
- Какую vk_sleep_1C ставить?
- Ошибка при вызове метода контекста (Записать)
- УСН, книга доходов и расходов (релиз 149)
- Как изменить значение измерения записей регистра сведений.
- два фискальника на одной машине - больше так нельзя?
- 1Cv8:УТ: "оприходование товаров" и "поступление товаров и услуг"
- УПП: учет малоценных материалов и ОС стоимостью меньше 10 000
- Настройка дисплея покупателя в конфигурации "Штрих-М Кассир"
- v7: Карточка-справка 0504417
- Ключ уникальности форм
- Программное формирование номера документа
- Остановилась нумерация документов
- Технологический анализ бухгалтерского учета ?
- OFF: Поплачьте: самодельный компьютер ЮТ-88
- Счет ЗПР
- Отправка почты при помощи v7plus.dll