На PORTA.ru
ОГРОМНЫЙ выбор портативной техники:
MD-плееры CD-плееры MP3-плееры Кассетные плееры Диктофоны Радио Цифр. камеры Сотовые Дешевые ноутбуки |
||
Возведение в дробную степень
//В диалоговой форме - Лимит, Точность, СамоЧисло(неотрицательное) и //Степень.
//******************************************* Функция ЦелаяСтепень(а,б) Результат=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; <сообщил Пудель> -
Наверх -
|
В качестве благодарности за решение проблемы, щелкните здесь. Поддержите развитие сайта. Спасибо! |
Автор и разработчик: Кайгородов Андрей aka mszsuz. mszsuz@online.sinor.ru ICQ#33993114. Дата последнего обновления страницы: Friday 09.04.2004 16:52 |