1)как объявить массив из 6 вещественных чисел. 2)как задать датчику случайных чисел диапазон от 1 до 3 3)операция вычисления остатка от целочисленного деления
Дерево игры - в прилагаемом файле. У игрока, делающего ход первым (Пети) есть выигрышная стратегия: первый ход должен быть +3 (в куче получится 13 камней). В этом случае при ходе второго игрока (Вани) +3 (в куче 16 камней) первый (Петя) выигрывает ходом *2 (в куче 32 камня); при ходе второго игрока (Вани) *2 (в куче 26 камней) первый (Петя) также выигрывает ходом *2 (в куче 52 камня). Второй игрок (Ваня) может выиграть только в случае, если первый (Петя) сделает начальный ход *2 (в куче 20 камней), следующий ход (Вани) *2 (в куче 40 камней) приводит к выигрышу.
var a: array[1..100] of real; i, n: integer; sum_pos, sum_neg: real; k_pos, k_neg: integer;
begin {ввод массива} if handsfree then n := random(20) + 5 else begin write('n = '); readln(n); end;
writeln('Данные массива:'); for i := 1 to n do begin if handsfree then begin a[i] := random(100) - 50; write(a[i], ' '); end else readln(a[i]); end; writeln();
{подсчет} sum_pos := 0; k_pos := 0; sum_neg := 0; k_neg := 0; for i := 1 to n do begin if a[i] > 0 then begin sum_pos := sum_pos + a[i]; k_pos := k_pos + 1; end;
У игрока, делающего ход первым (Пети) есть выигрышная стратегия: первый ход должен быть +3 (в куче получится 13 камней). В этом случае при ходе второго игрока (Вани) +3 (в куче 16 камней) первый (Петя) выигрывает ходом *2 (в куче 32 камня); при ходе второго игрока (Вани) *2 (в куче 26 камней) первый (Петя) также выигрывает ходом *2 (в куче 52 камня).
Второй игрок (Ваня) может выиграть только в случае, если первый (Петя) сделает начальный ход *2 (в куче 20 камней), следующий ход (Вани) *2 (в куче 40 камней) приводит к выигрышу.
handsfree = false;
var
a: array[1..100] of real;
i, n: integer;
sum_pos, sum_neg: real;
k_pos, k_neg: integer;
begin
{ввод массива}
if handsfree then
n := random(20) + 5
else begin
write('n = ');
readln(n);
end;
writeln('Данные массива:');
for i := 1 to n do
begin
if handsfree then begin
a[i] := random(100) - 50;
write(a[i], ' ');
end
else readln(a[i]);
end;
writeln();
{подсчет}
sum_pos := 0;
k_pos := 0;
sum_neg := 0;
k_neg := 0;
for i := 1 to n do
begin
if a[i] > 0 then
begin
sum_pos := sum_pos + a[i];
k_pos := k_pos + 1;
end;
if a[i] < 0 then
begin
sum_neg := sum_neg + a[i];
k_neg := k_neg + 1;
end;
end;
writeln('average (positives) = ', sum_pos / k_pos);
writeln('average (negatives) = ', sum_neg / k_neg);
end.