Как вычислить квадратный корень на 1С #216442


#0 by Dil
Во встроенном языке 1С нет фунцкции вычисления квадратного корня из числа. Подскажите, как ее реализовать? Заранее благодарен
#1 by insider
когда-то NS выкладывал, даже в одну строку. поиск включат - поищи
#2 by Господин ПЖ
Можно ВК пользовать...
#3 by Вильям
#4 by smaharbA
#5 by Вильям
офф: вот видишь, получил твое письмо, заглянул на форум, человеку помог...))
#6 by smaharbA
нафига ?
#7 by insider
ради такой ерунды ВК? мдя...
#8 by insider
ага, заглядывай почаще :)
#9 by Dil
Спасибо
#10 by MikleV
мнээ.а Pow только целочисленные поддерживает?
#11 by MikleV
+10 Sqrt(Numeric)
#12 by Feanor
Интересно, а число пи тоже можно в ряд разложить... гыыы))
#13 by Старый программер
Из рассылки "В 1С-предприятии можно Всё?! Сторонний взгляд программиста." (не проверял:) ========= цитата ====================================== Как стало доподлинно известно в 1С можно извлечь корень. Ниже приведена функция факториала, которая с большой точностью рассчитывает корень определенной степени. Понятно что обычный корень имеет степень 2, основание - число из которого извлекаем корень. Функция Корень(Основание,Степень) Если Степень = 1 Тогда Возврат(Основание); КонецЕсли; Факториал = 1; Степень_ = 1; Сум = 0; СтепеньЕ = 1/Степень*Лог(Основание); Для ии = 1 по 28 Цикл Факториал = Факториал * ии; Степень_ = Степень_ * СтепеньЕ; Сум = Сум + Степень_/Факториал КонецЦикла; Возврат(1+Сум); КонецФункции ========= конец цитаты =================================
#14 by Темный Эльф
Процедура точно из типовой украинской БУ, из модуля проведения документа НачислениеИзноса.
#15 by SnarkHunter
Они открыли для себя "либресс"...
#16 by smaharbA
да
#17 by Господин ПЖ
(6, 7) Что так категорично? Может еще что-нибудь из состава ВК пригодится...
#18 by smaharbA
математику получить из ОС безпроблемм...
#19 by Господин ПЖ
Через Microsoft Script Control?
#20 by smaharbA
да
#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;    КонецПопытки;    Возврат Рез; КонецФункции //КвКорень
#24 by gr13
короче( иди в поиск( (буковка Ya красненькая справа от темы...
#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нь //******************************************************************
#26 by gr13
правильно говорят- машинист справок не дает, все вопросы к yandex'у
#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С