Const
M = 3;
N = 3;
Var
A:array[1..M,1..N]of real;
B:array[1..N]of integer;
i,j:integer;
Begin
WriteLn('Заполни массив ',M,'x',N);
For i:= 1 to M do
For j:= 1 to N do
Read(A[i,j]);
For j:= 1 to N do
For i:= 1 to M do
if (A[i,j]>0) then B[j]:=B[j]+1;
j:=N;
For i:= 1 to N-1 do
if (B[j]>B[i]) then j:=i;
WriteLn(j)
End.
Var a,b,c,p:real;
Begin
//Формула Герона
p:=(a+b+c)/2;
a:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln(a:2:3);
end.
Ответ:B-1=8 B-2=5 B-3=6 B-4=9
Объяснение:
B-1:
А-1
Б-1
Е-1
Д-3
В-1
Г-4
Ж-4
З-8
B-2:
А-1
Б-1
Д-1
Е-1
В-2
Г-3
Ж-2
З-5
В-3:
A-1
B-3
D-2
E-1
C-3
F-1
G-3
H-6
B-4
A-1
E-1
D-2
B-2
C-4
F-3
G-5
Понятно, что тут нужен цикл для суммирования четырех членов вида
A²ˣ⁺¹ / [(2*х+1)*B²ˣ], х = 1, 2, 3, 4 и тут есть два варианта. Первый - считать, как написано. И на сегодня это правильный вариант, поскольку видна исходная формула. Второй - завести две добавочные переменные, в одну поместить A³, во вторую В². А затем получать следующие степени, домножая каждый раз на А² и В соответственно. Но это растянет программу и скроет исходную формулу от восприятия, что затруднит поиск ошибок. К счастью, современная версия языка Pascal - PascalABC.NET - обзавелась операцией возведения в степень и на ней прграмма будет выглядеть очень просто.
===== PascalABC.NET =====
begin
var (a, b) := ReadReal2('Введите А и В:');
var y := SeqGen(4, x -> A ** (2 * x + 1) /
((2 * x + 1) * B ** (2 * x)), 1).Sum;
y.Println
end.