powered by simpleCommunicator - 2.0.46     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Возведения в степень x^n ??
12 сообщений из 12, страница 1 из 1
Возведения в степень x^n ??
    #38881198
balabadmitriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как возвести в степень есть число 10 нужно возвести в степень !????
Подскажите пожалуйста!!
...
Рейтинг: 0 / 0
Возведения в степень x^n ??
    #38881202
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
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.
<xsl:template name="power">
   <xsl:param name="number"/>
   <xsl:param name="topower"/>
   <xsl:param name="curvalue" select="1"/>
   <xsl:param name="curpower" select="1"/>
   <xsl:choose>
       <xsl:when test="curpower &gt; topower">
            <xsl:value-of select="$n"/>
       </xsl:when>
       <xsl:otherwise>
            <xsl:call-template name="power">
                <xsl:param name="number" select="$number"/>
                <xsl:param name="topower" select="$topower"/>
                <xsl:param name="curvalue" select="$curvalue * $number"/>
                <xsl:param name="curpower" select="$curpower + 1"/>
             </xsl:call-template/>
       <xsl:otherwise>
    </xsl:choose>
</xsl:template>

<!-- 10^5 -->
            <xsl:call-template name="power">
                <xsl:param name="number" select="10"/>
                <xsl:param name="topower" select="5"/>
             </xsl:call-template/>
 
...
Рейтинг: 0 / 0
Возведения в степень x^n ??
    #38881210
balabadmitriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо !!
...
Рейтинг: 0 / 0
Возведения в степень x^n ??
    #38881473
balabadmitriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

Возвращает результат в $number???
...
Рейтинг: 0 / 0
Возведения в степень x^n ??
    #38881715
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возвращает в виде текста.

если нужно в переменную, то:
Код: xml
1.
2.
3.
4.
5.
6.
<xsl:variable name="pw">
    <xsl:call-template name="power">
        <xsl:param name="number" select="10"/>
        <xsl:param name="topower" select="5"/>
    </xsl:call-template/>
</xsl:variable>
...
Рейтинг: 0 / 0
Возведения в степень x^n ??
    #38884492
balabadmitriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,спасибо помогло !!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Возведения в степень x^n ??
    #39945670
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, но допустим, мне нужна не функция, а оператор возведения в степень. Например, "^"
Чтобы можно было в выражениях использовать. Иначе, говоря, нужно функцию от'mapp'ить на оператор. Или наоборот ))
...
Рейтинг: 0 / 0
Возведения в степень x^n ??
    #39945739
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оптимизация
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<xsl:template name="power">
   <xsl:param name="number"/>
   <xsl:param name="topower"/>
   <xsl:choose>
       <xsl:when test="topower = 0">
            <xsl:value-of select="1"/>
       </xsl:when>
       <xsl:otherwise>
            <xsl:variable name="prev">
                <xsl:call-template name="power">
                    <xsl:param name="number" select="$number"/>
                    <xsl:param name="topower" select="$topower - 1"/>
                 </xsl:call-template/>
            </xsl:variable>
            <xsl:value-of select="$prev * $number" />
       <xsl:otherwise>
    </xsl:choose>
</xsl:template>
...
Рейтинг: 0 / 0
Возведения в степень x^n ??
    #39945774
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_ , и где здесь оператор ?
...
Рейтинг: 0 / 0
Возведения в степень x^n ??
    #39948240
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оператора возведения в степень в xsl нет. Либо пользуйтесь тем, что тут есть, либо не пользуйтесь xsl.
...
Рейтинг: 0 / 0
Возведения в степень x^n ??
    #39948474
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

На XSLT 2 можно функцию запилить
...
Рейтинг: 0 / 0
Возведения в степень x^n ??
    #39990559
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОператора возведения в степень в xsl нет. Либо пользуйтесь тем, что тут есть, либо не пользуйтесь xsl https://www.w3.org/TR/xpath-functions-31/#func-overloading Operators such as "+" may be overloaded: they map to different underlying functions depending on the dynamic types of the supplied operands
Т.е. операторы в xls перегружаются.
Ну а перегрузка несуществующего оператора - это и есть создание нового оператора.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Возведения в степень x^n ??
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]