В "классическом" языке Паскаль, как его описал Н.Вирт, есть только функции для возведения во вторую степень и извлечения квадратного корня. Поэтому для возведения в любую другую степень используют основное логарифмическое тождество
На паскале это записывается exp(b*ln(a))
В современных реализациях паскаля добавлена функция power(a,b), которая решает проблему.
Итак, "классическая запись" b:=a*a+c*c; { возможно также sqr(a)+sqr(b) } q:=exp(b*ln(cos(a+2.53*c)));
И запись современная b:=a*a+c*c; // возможно также sqr(a)+sqr(b) q:=power(cos(a+2.53*c),b);
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main()
{
setlocale(0, ""); // кириллица
stack <int> st;
cout << "ВВОД СТЕКА\n"
<< "Введите '0' для остановки\n";
while (true)
{
int c;
cin >> c;
if (c == 0)
{
break;
}
if (c < 0)
{
c = -1 * c;
}
st.push(c);
}
cout << "ВЫВОД СТЕКА\n";
while ( !( st.empty() ) )
{
cout << st.top() << '\n';
st.pop();
}
return 0;
}
Поэтому для возведения в любую другую степень используют основное логарифмическое тождество
На паскале это записывается exp(b*ln(a))
В современных реализациях паскаля добавлена функция power(a,b), которая решает проблему.
Итак, "классическая запись"
b:=a*a+c*c; { возможно также sqr(a)+sqr(b) }
q:=exp(b*ln(cos(a+2.53*c)));
И запись современная
b:=a*a+c*c; // возможно также sqr(a)+sqr(b)
q:=power(cos(a+2.53*c),b);