Есть рекурсивный вариант: например
double area(ll xa, ll ya, ll xb, ll yb, ll xc, ll yc){ double res = abs(xa * (yc - yb) + xb * (ya - yc) + xc * (yb - ya)) / 2.0; return res;<span>}
вот формула </span>res = abs(xa * (yc - yb) + xb * (ya - yc) + xc * (yb - ya))
здесь xa, ya ... - координаты
0 и 0 = 0
0 или 0 = 0
это 1 скобка
1 или 1 = 1
это 2ая скобка
0 и 1 = 0
итог
I изменяется от 23 до 4 с шагом -1.
//Pascal ABC.NET v3.1 сборка 1219
//Как я понял, количество очков случайно
Var
a,i,s:integer;
begin
randomize;
for i:=1 to 5 do
begin
a:=random(11);
writeln(i,' выстрел -',a);
s:=s+a;
end;
writeln('Сумма=',s);
if s=50 then writeln('Идет с Зиночкой в ресторан') else writeln('На тренировку в тир');
end.
Пример работы программы:
1 выстрел -3
2 выстрел -10
3 выстрел -7
4 выстрел -8
5 выстрел -0
Сумма=28
На тренировку в тир
Берешь сначала h, затем h-36%, и так делаешь, пока h не будет = 0, затем складываешь все результаты и получаешь ответ