Обработка диапазона ячеек. Вложенные циклы FOR.
Задача. Заполнить диапазон ячеек случайными числами и в полученном диапазоне подсчитать количество отрицательных элементов.
Как обрабатывать одномерный диапазон ячеек (строку или столбец) вы уже знаете. Делается это с помощью цикла FOR и объекта Cells(i,j), которые помогают последовательно обработать все ячейки строки или столбца.
При решении задач на двумерный диапазон ячеек, необходимо понять, что двумерный диапазон ячеек есть одномерный диапазон одномерных диапазонов ячеек, т.е. одномерный диапазон строк или одномерный диапазон столбцов. Следовательно, необходимо два цикла FOR. Один будет работать с одномерным диапазоном (строкой или столбцом), другой повторять все эти действия для всех строк или столбцов.
Алгоритм решения:
1. Запросим размерности диапазона, который необходимо заполнить случайными числами N – количество строк в диапазоне, M –количество столбцов в диапазоне;
2. Организуем два цикла FOR: внутренний цикл будет обрабатывать строку диапазона (присваивать каждой ячейке случайное значение и подсчитывать количество K отрицательных элементов), внешний – перебирать строки.
Блок-схема:
Программа:
Задача. Начиная с активной ячейки, заполнить двумерный диапазон ячеек
случайными числами из промежутка (-15;20). Вывести суммы тех столбцов
диапазона, которые меньше первого элемента столбца.
Алгоритм решения:
1. Запросить с клавиатуры размерности диапазона;
2.
Для заполнения диапазона случайными числами из промежутка (-15;20) воспользуемся формулойInt((верхняя граница – нижняя граница + 1) * Rnd() + нижняя граница)
3.
Организуем
два цикла
FOR
. Внутренний цикл будет
обрабатывать столбец, и подсчитывать
S
сумму элементов столбца. После
того как сумма
S
будет подсчитана, необходимо ее
сравнить с первым элементом этого же столбца. Если
S
< первого элемента, то вывести
S
в тот же столбец, на две строки
ниже.
Внешний
цикл будет повторять все вышеописанные действия для каждого столбца.
Блок-схема:
Программа:
! Распространенные ошибки. В данной задаче переменная S должна обнуляться перед входом в каждый столбец, т.е.
перед внутренним циклом FOR, иначе сумма будет
накапливаться постоянно, и будет подсчитана сумма всех элементов матрицы.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.