Синфой. нужно разделить на 3 файла. в первом должны быть функции ввода и вывода. во втором - формулы подсчета для нахождения биссектрис. в третьем - функция main.
//файл getput.cpp
#include
using namespace std;
void getl(double& a, double& b, double& c)
{
setlocale(lc_all,"rus");
cout < < "введите сторону а треугольника \n ";
cin > > a;
cout < < "введите сторону b треугольника \n ";
cin > > b;
cout < < "введите сторону c треугольника \n ";
cin > > c;
}
void putl(double l1, double l2, double l3)
{
setlocale(lc_all,"russian");
cout < < "первая биссектриса равна " < < l1 < < endl;
cout < < "вторая биссектриса равна " < < l2 < < endl;
cout < < "вторая биссектриса равна " < < l3 < < endl;
}
//
//файл с функциями
#include
double calcl(double a, double b, double c)
{
return (sqrt(b*c*((b+c)*(b+c))-pow(a,/(b+c);
}
double l(double a, double b, double c)
{
double l1,l2,l3;
l1 = calcl(a, b, c);
l2 = calcl(a, b, c);
l3 = calcl(a, b, c);
return l3;
}
//
/файл main.cpp
#include
using namespace std;
#include
double l1, l2, l3;
void getl(double& a, double& b, double& c);
void putl(double l1, double l2, double l3);
//double l(double a, double b, double c);
double calcl(double a, double b, double c);
int main()
{
setlocale(lc_all, "rus");
double a, b, c;
getl(a, b, c);
calcl(a, b, c);
putl(l1,l2,l3);
system("pause");
return 0;
}
//Pascal ABC.NET v3.1 сборка 1172
//По возрастанию
Const
n=55;
type
ty=array[1..n] of integer;
Var
ar:ty;
s:integer;
procedure quicksort(l,r:integer);
var i,j,x,temp:integer;
begin
i:=l; //левый конец
j:=r; //правый конец
x:=ar[random(r-l+1)+l];
repeat
while ar[i]<x do inc(i); //пока выбранный элемент больше всех, что левее его(всё норм), увеличивать индекс
while x<ar[j] do dec(j); //пока выбранный элемент меньше всех, что правее его(всё норм), уменьшать индекс
if i<=j then //если левый индекс меньше или равен правому-продолжать
begin
temp:=ar[i];
ar[i]:=ar[j];
ar[j]:=temp;
inc(i); //чтобы не запустить бесконечную рекурсию
dec(j);
end;
until i>=j;
if l<j then quicksort(l,i); //l-левый конец нового витка, j-правый
if r>i then quicksort(i,r); //r-левый конец нового витка, i-правый
end;
begin
randomize;
writeln('First array:');
for s:=1 to n do
begin
ar[s]:=random(n);
write(ar[s]:4);
end;
quicksort(1,n);
writeln;
writeln('Final array:');
ar.println;
end.
//По убыванию
Const
n=55;
type
ty=array[1..n] of integer;
Var
ar:ty;
s:integer;
procedure quicksort(l,r:integer);
var i,j,x,temp:integer;
begin
i:=l; //левый конец
j:=r; //правый конец
x:=ar[random(r-l+1)+l];
repeat
while ar[i]>x do inc(i); //пока выбранный элемент больше всех, что левее его(всё норм), увеличивать индекс
while x>ar[j] do dec(j); //пока выбранный элемент меньше всех, что правее его(всё норм), уменьшать индекс
if i<=j then //если левый индекс меньше или равен правому-продолжать
begin
temp:=ar[i];
ar[i]:=ar[j];
ar[j]:=temp;
inc(i); //чтобы не запустить бесконечную рекурсию
dec(j);
end;
until i>=j;
if l<j then quicksort(l,i); //l-левый конец нового витка, j-правый
if r>i then quicksort(i,r); //r-левый конец нового витка, i-правый
end;
begin
randomize;
writeln('First array:');
for s:=1 to n do
begin
ar[s]:=random(n);
write(ar[s]:4);
end;
quicksort(1,n);
writeln;
writeln('Final array:');
ar.println;
end.
2. Чтобы получить M[1] надо рассмотреть такой вариант:
14 = MAS[0]*3+X, где Х есть предыдущее значение элемента M[1], получим, что Х = 5 и изначально M[1] = 5
3. Зная второй элемент массива несложно получить и третий:
47 = MAS[1] * 3 + X = 14*3 +X, где Х есть предыдущее значение элемента M[2], получим, что Х = 5 и изначально M[2] = 5
4. Аналогично находим, что первоначальное значение М[3] = 1, а M[4] = 2
5. Значит массив изначально был такой:
3 5 5 1 2
Напишем код на Python для проверки:
MAS = [3,5,5,1,2]
print(MAS[0],sep=' ', end=' ')
for i in range(1,5):
MAS[i] +=MAS[i-1]*3
print(MAS[i],sep=' ', end=' ')
Результат:
3 14 47 142 428
ответ: 3 5 5 1 2