1)
Function check7(a As Range) As Integer
Dim r As Range
Dim i As Integer
For Each r In a
i = i + 1 - Sgn((Abs(r) + 3) Mod 10)
Next
check7 = i
End Function
Excel VBA
2)
А что здесь программировать-то?
Задача сводится к с следующей: Дано два ящика и 7 мячиков. Сколькими можно разместить эти 7 мячиков в этих двух ящиках?
Бросаем все мячики в первый ящик (это первое размещение), затем перекладываем по одному мячика из первого ящика во второй.
Получаем варианты:
7|0
6|1
5|2
4|3
3|4
2|5
1|6
Итого 7 вариантов (варианта 0|7 быть не может, поскольку двузначное число с нуля не начинается).
В общем-то и без вычислений всем очевидно, что разместить 7 мячиков в двух ящиков ровно 7.
Что должна вычислять программа?
//Я так понял, что под порядком "неубывания" вы имеете ввиду порядок возрастания...
//Поскольку вы не указали исходный массив, я его сгенерировал, а также вывел на экран, чтобы можно было проверить результаты
const
size = 10;
x = -100;
y = 100;
var
arr: array[1..size] of integer;
counter, sum, positiveNumbers, negativeNumbers: integer;
increase: boolean;
begin
randomize;
counter := 0;
sum := 0;
positiveNumbers := 0;
negativeNumbers := 0;
increase := true;
writeln('Массив:');
for var i := 1 to size do
begin
arr[i] := random(x, y);
writeln(i, ') ', arr[i]);
if (arr[i] > 0) then
begin
counter := counter + 1;
positiveNumbers := positiveNumbers + 1;
sum := sum + arr[i];
end
else
negativeNumbers := negativeNumbers + 1;
end;
writeln();
if (counter > 0) then
writeln('1) Среднее арифметическое всех положительных элементов массива = ', sum / counter)
else
writeln('1) Положительных элементов массива не было (0)');
if (positiveNumbers > negativeNumbers) then
writeln('2) В массиве больше положительных элементов')
else if (positiveNumbers = negativeNumbers) then
writeln('2) В массиве одинаковое количество положительных и отрицательных элементов')
else
writeln('2) В массиве больше отрицательных элементов');
for var j := 1 to size - 1 do
begin
if (arr[j] > arr[j + 1]) then
begin
increase := false;
break;
end;
end;
if (increase) then
writeln('3) Элементы расположены в порядке возрастания')
else
writeln('3) Элементы не расположены в порядке возрастания');
end.