Для возведения числа в степень в 1С 8.х есть встроенная функция
pow(основание, степень);
Возвращает результат возведения основания в указанную степень.
* основание: число
* степень: число
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//Возведем число 5 в степень 3 Результат = pow(5,3); //Результат = 125 // Вычисление объема шара по значению радиуса Pi=3.1415926535897932; Радиус=3; V=4*Pi*Pow(Радиус,3)/3; Сообщить("Объем шара с радиусом "+Радиус+" равен "+Формат(V,"ЧДЦ=2")); //Пример расчета сложного процента используя POW Функция СложныйПроцент(Кредит, Ставка, Срок = 1) Возврат Кредит*Pow(1 + Ставка/100, Срок); КонецФункции |
Возведение в дробную степень
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
//В диалоговой форме - Лимит, Точность, СамоЧисло(неотрицательное) и //Степень. Функция ЦелаяСтепень(а,б) Результат=1; Для К=1 По б Цикл Результат=Результат*а; КонецЦикла; Возврат Результат; КонецФункции Функция ЗнаковПослеТочки(Стр) Перем К; Номер=Найти(Стр,"."); Если Номер=0 Тогда Возврат 0; КонецЕсли; НачалоНулей=Номер+1; Для К=Номер+1 По СтрДлина(Стр) Цикл Если Сред(Стр,К,1)<>"0" Тогда НачалоНулей=К; КонецЕсли; КонецЦикла; Возврат Макс(НачалоНулей-Номер,0); КонецФункции Функция Знак(Ч) Если Ч=0 Тогда Возврат 0; ИначеЕсли Ч>0 Тогда Возврат 1; Иначе Возврат -1; КонецЕсли; КонецФункции Функция Корень10ВСтепени(Ч,Степень) Перем а,б; Если Степень<0 Тогда Сообщить("Степень <0"); КонецЕсли; _10ВСтепени=ЦелаяСтепень(10,Степень); Если _10ВСтепени>1 Тогда а=0; б=Лимит; РезА=Ч-ЦелаяСтепень(а,_10ВСтепени); РезБ=Ч-ЦелаяСтепень(б,_10ВСтепени); Пока 1=1 Цикл Текущее=(а+б)/2; Рез=Ч-ЦелаяСтепень(Текущее,_10ВСтепени); Если Знак(Рез)*Знак(РезА)<0 Тогда б=Текущее; Иначе а=Текущее; КонецЕсли; Если (а-б<Точность) И (а-б>-Точность) Тогда Возврат Текущее; КонецЕсли; КонецЦикла; ИначеЕсли Степень=1 Тогда Возврат Ч; Иначе Возврат 1; КонецЕсли; КонецФункции Функция Степень_xyz(f,x,y,z) Возврат ЦелаяСтепень(f,x)*ЦелаяСтепень(f,y)/Корень10ВСтепени(f,z); КонецФункции Функция ПоложительнаяДробнаяСтепень(а,ПоказательСтепени) Перем Знак; ЦелаяЧасть=Число(Строка(Цел(ПоказательСтепени))); ДрЧасть=Сред(ПоказательСтепени,СтрДлина(Строка(ЦелаяЧасть))+2); ВерхДробной=Число(СтрЗаменить(ДрЧасть,".","")); Если ВерхДробной>0 Тогда ДлинаДробной=ЗнаковПослеТочки(Строка(ПоказательСтепени)); Иначе ДлинаДробной=0; КонецЕсли; x=ЦелаяСтепень(а,ЦелаяЧасть)*Корень10ВСтепени(ЦелаяСтепень(а,ВерхДробной),ДлинаДробной); Возврат x; КонецФункции Функция Степень(а,б) Если б<0 Тогда НашаА=1/а; НашаБ=-б; Иначе НашаА=а; НашаБ=б; КонецЕсли; Сообщить(ПоложительнаяДробнаяСтепень(НашаА,НашаБ)); Возврат ПоложительнаяДробнаяСтепень(НашаА,НашаБ); КонецФункции Лимит=9999999; Точность=0.001; //<сообщил Пудель> |