Дана правильная шестиугольная пирамида с плоским углом при вершине пирамиды 45 градусов и стороной основания а = 2.
Пусть боковое ребро рано L.
По теореме косинусов:
2 = √(L² + L² - 2*L*L*cos45°) = √(2L² - L²√2) = x(√(2 -√2)).
Отсюда боковое ребро равно: L = 2/(√(2 - √2)).
Проведём осевое сечение через боковые рёбра.
В сечении - равнобедренный треугольник, высота Н его равна высоте пирамиды. Основание равно 2 стороны а.
H = √(L² - a²) = √((4/(2 - √2)) - 4) = 2√(√2 - 1)/(√(2 - √2).
Площадь основания So = 3a²√3/2 = 6√3.
Объём V пирамиды равен:
V = (1/3)SoH = (1/3)*6√3*(2√(√2 - 1)/(√(2 - √2)) = 4√3*(√(√2 - 1)/(√(2 - √2)).
Если выполнить действия полученной формулы, то получим:
V ≈ 5,82590126 .
1) #include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
srand(static_cast <unsigned> (time(NULL)));
int n = rand() % 16 + 5;
double * a = new double [ n ];
cout << "Дан массив [" << n << "]:" << endl;
cout.precision(2);
double s = 0, p = 1;
int imin = 0, imax = 0;
for (int i = 0; i < n; i++)
{
bool f;
do
{
a[ i ] = static_cast <double> (rand() % 1999 - 999) / 100;
int j = i - 1;
f = false;
while (!f && j >= 0)
{
f = a[ i ] == a[ j ];
j--;
}
} while (f);
cout << fixed << setw(8) << a[ i ];
if (a[ i ] > 0)
s += a[ i ];
if (fabs(a[ i ]) < fabs(a[ imin ]))
imin = i;
if (fabs(a[ i ]) > fabs(a[ imax ]))
imax = i;
}
cout << endl;
if (!s)
cout << "Положительных элементов нет" << endl;
else
cout << "Сумма положительных элементов: " << fixed << s << endl;
if (abs(imin - imax) < 2)
cout << "Между максимальным по модулю и минимальным по модулю нет элементов";
else
{
if (imin > imax)
{
imin ^= imax;
imax ^= imin;
imin ^= imax;
}
for (int i = imin + 1; i < imax; i++)
p *= a[ i ];
cout.precision(6);
cout << "Произведение элементов между макс. и мин. по модулю элементами: "
<< fixed << p;
}
cin.get();
delete [ ] a;
return 0;
}
2) прости не могу ответить