Поскольку тут речь о последовательности неизвестной длины, вводимой с клавиатуры до появления нуля, а условие позволяет для каждого вводимого числа сразу решить, должно ли оно входить в сумму, задача решается без использования массива и условие "<span>Количество чисел не превышает 1000" - это просто ловушка для наивных с тем, чтобы в случае использования массива длиной 1000 объявить затем решение неэффективным по памяти.
</span><em>1. Решение на современной версии Паскаля</em>
<em>PascalABC.NET 3.2, сборка 1389 от 01.03.2017</em>
<em>Внимание! Если программа не работает, обновите версию!</em>
begin
var s:=ReadSeqIntegerWhile(n->n<>0)
.Where(n->(n mod 3=0) and (n mod 10=6)).Sum;
Writeln('Сумма отобранных чисел равна ',s)
end.
<em>Пример</em>
15 36 26 72 25 96 83 0
Сумма отобранных чисел равна 132
<em>2. Решение "по-школьному"</em>
var
n,s:integer;
begin
s:=0;
repeat
Read(n);
if (n mod 3=0) and (n mod 10=6) then s:=s+n
until n=0;
Writeln('Сумма отобранных чисел равна ',s)
end.
<u>Пример</u>
15 36 26 72 25 96 83 0
Сумма отобранных чисел равна 132
Const
n = 40;
var
x: array[1..n] of integer;
i, k, s: integer;
begin
Randomize;
Writeln('Элементы массива');
k := 0; s := 0;
for i := 1 to n do
begin
x[i] := Random(50);
Write(x[i]:3);
end;
Writeln;
Writeln('Элементы со значением в интервале [7;10]');
for i := 1 to n do
if (x[i] >= 7) and (x[i] <= 10) then
begin
k := k + 1; s := s + x[i];
Write(x[i]:3)
end;
if k = 0 then Writeln('не найдены')
else Writeln(#13#10, ' Элементов:', k, ', среднее арифметическое=', s / k:5:3)
end.
Тестовое решение:
Элементы массива
24 33 36 29 12 7 5 36 3 48 40 40 46 6 10 23 33 3 38 48 29 37 11 40 44 16 17 18 34 38 33 39 9 0 41 37 42 2 40 31
Элементы со значением в интервале [7;10]
7 10 9
Элементов:3, среднее арифметическое=8.667
772=11000000100
-71=-1000111
284,375=100011100.011
Подставляешь вместо x 3 умножаешь и получается
y=3*3-(6+1);
y=9-7;
y=2
Ответ :2
<span>010000101 - правильный ответ.
</span>