#include <iostream>
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
using namespace std;
double distance(double x1, double y1, double x2, double y2)
{
return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
int main() {
double ax, ay, bx, by, cx, cy;
double ab, ac, bc;
cout << "A: ";
cin >> ax >> ay;
cout << "B: ";
cin >> bx >> by;
cout << "C: ";
cin >> cx >> cy;
ab = distance(ax, ay, bx, by);
bc = distance(bx, by, cx, cy);
ac = distance(ax, ay, cx, cy);
// Используем свойство тупоугольности треугольника: a^2+b^2<c^2
if ((ab * ab + bc * bc < ac * ac) || (ab * ab + ac * ac < bc * bc) || (bc * bc + ac * ac < ab * ab))
// Площадь по формуле Герона
double hp = (ab + ac + bc) / 2; // Полупериметр
cout << "Square: " << sqrt(hp * (hp - ab) * (hp - ac) * (hp - bc)) << endl;
cout << max(max(ab, ac), bc) << ", "
<< (ab + ac + bc - min(min(ab, ac), bc) - max(max(ab, ac), bc)) << ", "
<< min(min(ab, ac), bc);
else cout << "Entered points cannot be vertices of an obtuse triangle";
return 0;
const N = 7;
const MAX = 10;
var a,b,c: array [1..N] of integer;
var d: array [1..N] of boolean;
var i,j,k,flag: integer;
begin
// Автозаполнение
randomize();
for i:=1 to N do
a[i]:=random(MAX+1);
b[i]:=random(MAX+1);
c[i]:=random(MAX+1);
d[i]:=false;
end;
// Вывод на экран
write('Массив a: ');
for i:=1 to N do write(a[i],' ');
write(сhr(10),'Массив b: ');
for i:=1 to N do write(b[i],' ');
write(сhr(10),'Массив c: ');
for i:=1 to N do write(c[i],' ');
// Поиск элементов, принадлежащих всем 3м массивам
write(сhr(10),'Элементы, принадлежащие всем трем массивам: ');
flag:=0;
// Следующий цикл проверяет, есть ли элемент a[i]
// в массиве b.
for j:=1 to N do
if (a[i]=b[j]) then
flag:=flag+1;
break;
// в массиве c.
if (a[i]=c[j]) then
// Если элемент найдет во всех трех массивах, в массиве d
// указывается, что данный элемент уже найден
if (flag=2) then d[i]:=true;
// В следующем цикле проверяется, был ли уже в массиве a
// элемент a[i]. Если был, и если он есть во всех трех массивах
// (условие d[k]), то флаг обнуляется и элемент не выводится
if (i>0) and (flag=2) then
for k:=i-1 downto 1 do
if (a[k]=a[i]) and (d[k]) then flag:=0;
if (flag=2) then write(a[i],' ');
end.
#include <iostream>
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
using namespace std;
double distance(double x1, double y1, double x2, double y2)
{
return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
int main() {
double ax, ay, bx, by, cx, cy;
double ab, ac, bc;
cout << "A: ";
cin >> ax >> ay;
cout << "B: ";
cin >> bx >> by;
cout << "C: ";
cin >> cx >> cy;
ab = distance(ax, ay, bx, by);
bc = distance(bx, by, cx, cy);
ac = distance(ax, ay, cx, cy);
// Используем свойство тупоугольности треугольника: a^2+b^2<c^2
if ((ab * ab + bc * bc < ac * ac) || (ab * ab + ac * ac < bc * bc) || (bc * bc + ac * ac < ab * ab))
{
// Площадь по формуле Герона
double hp = (ab + ac + bc) / 2; // Полупериметр
cout << "Square: " << sqrt(hp * (hp - ab) * (hp - ac) * (hp - bc)) << endl;
cout << max(max(ab, ac), bc) << ", "
<< (ab + ac + bc - min(min(ab, ac), bc) - max(max(ab, ac), bc)) << ", "
<< min(min(ab, ac), bc);
}
else cout << "Entered points cannot be vertices of an obtuse triangle";
return 0;
}
const N = 7;
const MAX = 10;
var a,b,c: array [1..N] of integer;
var d: array [1..N] of boolean;
var i,j,k,flag: integer;
begin
// Автозаполнение
randomize();
for i:=1 to N do
begin
a[i]:=random(MAX+1);
b[i]:=random(MAX+1);
c[i]:=random(MAX+1);
d[i]:=false;
end;
// Вывод на экран
write('Массив a: ');
for i:=1 to N do write(a[i],' ');
write(сhr(10),'Массив b: ');
for i:=1 to N do write(b[i],' ');
write(сhr(10),'Массив c: ');
for i:=1 to N do write(c[i],' ');
// Поиск элементов, принадлежащих всем 3м массивам
write(сhr(10),'Элементы, принадлежащие всем трем массивам: ');
for i:=1 to N do
begin
flag:=0;
// Следующий цикл проверяет, есть ли элемент a[i]
// в массиве b.
for j:=1 to N do
begin
if (a[i]=b[j]) then
begin
flag:=flag+1;
break;
end;
end;
// Следующий цикл проверяет, есть ли элемент a[i]
// в массиве c.
for j:=1 to N do
begin
if (a[i]=c[j]) then
begin
flag:=flag+1;
break;
end;
end;
// Если элемент найдет во всех трех массивах, в массиве d
// указывается, что данный элемент уже найден
if (flag=2) then d[i]:=true;
// В следующем цикле проверяется, был ли уже в массиве a
// элемент a[i]. Если был, и если он есть во всех трех массивах
// (условие d[k]), то флаг обнуляется и элемент не выводится
if (i>0) and (flag=2) then
for k:=i-1 downto 1 do
if (a[k]=a[i]) and (d[k]) then flag:=0;
if (flag=2) then write(a[i],' ');
end;
end.