Турбо Паскаля нет, вставьте первым оператором Uses CRT
const n = 20;
var x: array[1..n] of real; i: integer; sp, sn: real;
begin Randomize; Write('Элементы массива: '); sp := 0; sn := 0; for i := 1 to n do begin x[i] := (Random(101) - 50) / 1.33; Write(x[i]:0:5, ' '); if x[i] > 0 then sp := sp + x[i] else if x[i] < 0 then sn := sn + x[i]{нули тоже сюда, они не мешают} end; Writeln(#13#10, 'Сумма положительных=', sp:0:5, ', отрицательных=', sn:0:5) end.
Три символа алфавита могут быть закодированы в системе счисления по основанию 3, т.е. в троичной системе счисления. При этом под первым номером кодируется число 0, которое записано по условию как , т.е. символ F кодируется нулем. Вторым номером кодируется число 1 и его запись по условию N, откуда мы узнаем, что символ N кодируется цифрой 1. Тогда оставшийся символ S кодируется цифрой 2. И действительно, третьей идет комбинация символов S. Любой член в последовательности кодов может быть получен путем перевода в троичную систему числа, на единицу меньшего номеру этого члена (поскольку отсчет кодов идет с нуля, а члены последовательности нумеруются с единицы). Проверим наше построение для контрольного значения n99=NFNSS. 98(3)=10122 -> NFNSS, что соответствует условию. Теперь само решение. 7) 6(3)=00020 -> FFFSF 27) 26(3)=00222 -> FFSSS 90) 89(3)=10022 -> NFFSS 101) 100(3)=10201 -> NFSFN 196) 195(3)=21020 -> SNFSF
const
n = 20;
var
x: array[1..n] of real;
i: integer;
sp, sn: real;
begin
Randomize;
Write('Элементы массива: ');
sp := 0; sn := 0;
for i := 1 to n do
begin
x[i] := (Random(101) - 50) / 1.33;
Write(x[i]:0:5, ' ');
if x[i] > 0 then sp := sp + x[i]
else if x[i] < 0 then sn := sn + x[i]{нули тоже сюда, они не мешают}
end;
Writeln(#13#10, 'Сумма положительных=', sp:0:5, ', отрицательных=', sn:0:5)
end.
Тестовое решение:
Элементы массива: 3.75940 21.80451 -16.54135 9.77444 10.52632 -7.51880 32.33083 -23.30827 12.03008 -3.00752 25.56391 24.81203 24.06015 -9.02256 -11.27820 34.58647 25.56391 9.02256 -27.06767 6.01504
Сумма положительных=239.84962, отрицательных=-97.74436