Пятница, 29 Марта 2024, 14:36

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Как взять выражение под знак корня N'ой степени?
Как взять выражение под знак корня 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 - число. Это, правда, еще менее наглядно, но работает smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Воскресенье, 09 Декабря 2012, 20:50
Форум игроделов » Программирование » C/C++ » Как взять выражение под знак корня N'ой степени?
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг