Решение на c++:
#include <iostream>
#include <ctime>
int main()
{
int N, i, a, b, k1 = 0, k2 = 0, s1 = 0, s2 = 0;
int A[10000];
std::cin >> a >> b >> N;
srand(time(0));
for (i = 0; i < N; i++)
{
A[i] = rand()%(b-a+1)+a;
if (A[i] < 50)
{
k1++;
s1 += A[i];
}
else
{
k2++;
s2 += A[i];
}
std::cout << A[i] << " ";
}
std::cout << std::endl << ((k1 == 0) ? 0 : (s1*1./k1)) << " ";
std::cout << ((k2 == 0) ? 0 : (s2 * 1. / k2)) << " ";
return 0;
}
a, b, c, d: real;
procedure Plo(s: string; x, y, z: real);
var
sq: real;
begin
if ((y + z - x) > 0) and ((x + z - y) > 0) and ((x + y - z) > 0) then
begin
sq := 0.25 * (sqrt((x + y + z) * (y + z - x) * (x + z - y) * (x + y - z)));
writeln('Площадь треугольника со сторонами ', s, ' = ', sq:0:3);
end else writeln('Треугольник со сторонами ', s, ' не существует');
end;
begin
write('a=');readln(a);
write('b=');readln(b);
write('c=');readln(c);
write('d=');readln(d);
Plo('a,b,c', a, b, c);
Plo('a,b,d', a, b, d);
Plo('a,c,d', a, c, d);
Plo('b,c,d', b, c, d);
end.