Как взять выражение под знак корня N'ой степени?
| |
Saitei | Дата: Воскресенье, 09 Декабря 2012, 17:16 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Есть выражение вида(будем считать, что ^ - знак квадратного корня): S = ^(P(P-A)(P-B)(P-C); Помогите, пожалуйста. Понимаю - мелочь, но на деле я не смог найти реализацию. Нашёл лишь pow(); p.s. решаю задачкиДобавлено (09.12.2012, 17:05) --------------------------------------------- p.s. его если что надо будет извлечь Добавлено (09.12.2012, 17:16) --------------------------------------------- это делается так? : Code #include <iostream> #include <math.h> #include <conio.h> using namespace std;
int A=3, B=4, C=5, H=6;
int main() { int P = (A+B+C)/2; double S = P*(P-A)*(P-B)*(P-C); int V = (sqrt(S)*H)/3; cout<<"S="<<sqrt(S)<<'\n'; cout<<"P="<<P<<'\n'; cout<<"V="<<V<<'\n'; getch(); return 0; }
|
|
| |
Levrite | Дата: Воскресенье, 09 Декабря 2012, 17:27 | Сообщение # 2 |
участник
Сейчас нет на сайте
| Взять sqrt зразу для значения S религия не позволяет?
Code double S = sqrt(P*(P-A)*(P-B)*(P-C)); int V = (S*H)/3; cout<<"S="<<S<<'\n';
А если по теме, я так и не понял, что нужно сделать, условие задачи есть?
Сообщение отредактировал Levrite - Воскресенье, 09 Декабря 2012, 17:28 |
|
| |
RUNGOGET2THECHOPAH | Дата: Воскресенье, 09 Декабря 2012, 17:33 | Сообщение # 3 |
участник
Сейчас нет на сайте
| А чем тебе pow() не нравится? Вот же: Code double S = pow( double(P*(P-A)*(P-B)*(P-C)), 1.0/(double)N);
Сообщение отредактировал RUNGOGET2THECHOPAH - Воскресенье, 09 Декабря 2012, 17:34 |
|
| |
Saitei | Дата: Воскресенье, 09 Декабря 2012, 17:36 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Levrite, ха-ха, вопрос риторический)) Логика не позволила)) Конечно, вот: Вычислить объем пирамиды, основанием которой является треугольник, для значений A,B,C и H в контрольном примере. Для вычисления площади основания использовать формулу Герона: S = ^(P(P-A)(P-B)(P-C), где: P = (A+B+C)/2. Объём пирамиды: V = (SH)/3. Исходные данные взять из контрольного примера. Контрольный пример: A = 3, B = 4, C = 5, H = 6. Результат: V = 12Добавлено (09.12.2012, 17:36) ---------------------------------------------
Quote (RUNGOGET2THECHOPAH) А чем тебе pow() не нравится? Очень странным будет вопрос, но... sqrt() и pow(), как я понял, работают только с помощью math.h. А чем пользоваться лучше в этом плане? Этичнее, что ли?
|
|
| |
Levrite | Дата: Воскресенье, 09 Декабря 2012, 18:04 | Сообщение # 5 |
участник
Сейчас нет на сайте
| Quote (Saitei) Очень странным будет вопрос, но... sqrt() и pow(), как я понял, работают только с помощью math.h. А чем пользоваться лучше в этом плане? Этичнее, что ли? Вроде pow и sqrt это две разные функции, pow возводит в степень выражение, а sqrt берёт квадратный корень из выражения, так что выбирай что именно нужен возвести в степень или взять квадратный корень из числа.
|
|
| |
Archido | Дата: Воскресенье, 09 Декабря 2012, 20:46 | Сообщение # 6 |
Сэнсэй
Сейчас нет на сайте
| Quote (Saitei) чень странным будет вопрос, но... sqrt() и pow(), как я понял, работают только с помощью math.h. А чем пользоваться лучше в этом плане? Этичнее, что ли? Ну, в принципе, уже ответили на вопрос, но уточню: Sqrt - это когда берут только квадратный корень, только тогда и используют, т.к. это очевидно и сразу понятно любому, кто посмотрит на код. Pow - возведение в степень, корень - это тоже степень, но меньше единицы. Т.е. корень степени N равен 1/N "обычной" степени и таким образом с помощью pow можно взять почти любой корень (ну, в разумных пределах). Квадратный, таким образом, брать смысла не имеет.
Еще, кстати, возвести в любую степень можно следующим образом: "Result = exp(N * log(X));", где N - степень, а X - число. Это, правда, еще менее наглядно, но работает
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Воскресенье, 09 Декабря 2012, 20:50 |
|
| |
|