Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Оператор For… NextСтр 1 из 4Следующая ⇒
Это оператор арифметического цикла с предусловием. Иначе этот цикл называется циклом с параметром или циклом со счётчиком. Формат оператора: For с четчик = начальное значение То конечное значение [Step шаг ] [ операторы_1 ] [Exit For] [ операторы_2 ] Next [ счётчик ] Здесь счётчик – обязательный параметр. Числовая переменная, используемая в качестве параметра цикла (счётчика); начальное значение и конечное значение – соответственно начальное и конечное значение параметра цикла, обязательные параметры; шаг – шаг изменения значения счетчик после каждой итерации, параметр не является обязательным, по умолчанию используется значение 1; операторы – один или более операторов, выполняемых определённое число раз, параметр необязательный. Первая строка оператора представляет оглавление цикла, а совокупность операторов операторы – тело цикла. Из любого места тела цикла предусмотрен выход из цикла по инструкции Exit For, что позволяет в случае необходимости прервать цикл, не достигнув конечного значения параметра цикла. Процедура TestFor выводит целые числа от 1 в диапазон A1: J10 листа Excel по столбцам. В этой процедуре используются два цикла: внешний цикл с параметром цикла i и вложенный цикл с параметром цикла j. Option Explicit _________________________________________________ Sub TestFor() ‘Заполнение последовательными целыми числами от 1 ‘диапазона A1: J10 по столбцам Const m As Integer = 10 ‘ количество строк для заполнения Const n As Integer = 10 ‘ количество столбцов для заполнения Dim i As Integer ‘ параметр цикла – счётчик столбцов Dim j As Integer ‘ параметр цикла – счётчик строк
For i = 0 To n - 1 ' цикл по столбцам For j = 1 To m ' цикл по строкам Cells(j, i+1) = 10*I + j Next j Next i End Sub Результат выполнения процедуры TestFor: В приведённой ниже процедуре TestFor1 используются результаты выполнения процедуры TestFor и подсчитывается сумма нечётных чисел в диапазоне ячеек A1: J10 листа Excel. Ввиду специфики заполнения диапазона ячеек A1: J10 числами процедурой TestFor нечётные числа будут располагаться только в нечётных строках, поэтому суммирование производим только в них. Sub TestFor1() ' Подсчёт суммы нечётных чисел в диапазоне ячеек ' A1: J10 Const m As Integer = 10 ' количество строк в диапазоне A1: J10 Const n As Integer = 10 ' количество столбцов в диапазоне A1: J10 Dim i As Integer ' параметр цикла – счётчик столбцов Dim j As Integer ' параметр цикла – счётчик строк Dim Sum As Double ' сумма нечётных чисел
For i = 1 To m Step 2 ' цикл по строкам For j = 1 To n ' цикл по столбцам Sum = Sum + Cells(i, j) Next j Next i MsgBox (" Сумма нечётных членов равна ") & Sum End Sub Сделав небольшие изменения в процедуре TestFor1, можно подсчитать сумму нечётных чисел в произвольно заданном диапазоне в пределах ранее заполненной области A1: J10 листа Excel. Sub TestFor2() ' Подсчёт суммы нечётных чисел в заданном диапазоне ' в пределах области A1: J10 Dim m As Integer ' количество строк для расчёта ≤ 10 Dim n As Integer ' количество столбцов для расчёта ≤ 10 Dim i As Integer ' параметр цикла – счётчик столбцов Dim j As Integer ' параметр цикла – счётчик строк Dim Sum As Double ' сумма нечётных чисел
m = InputBox(" Ведите количество строк для расчёта ") n = InputBox(" Ведите количество столбцов для расчёта ") For i = 1 To m Step 2 ' цикл по строкам For j = 1 To n ' цикл по столбцам Sum = Sum + Cells(i, j) Next j Next i MsgBox (" Сумма нечётных членов равна ") & Sum End Sub В процедуре TestFor3 подсчитывается сумма нечётных чисел в заданном диапазоне чисел, причём числа формируются в цикле с нарастанием на 2. Option Explicit _________________________________________________ Sub TestFor3() ‘Подсчёт суммы нечётных чисел в заданном диапазоне
Dim i As Integer ' параметр цикла Dim m As Integer ' начальное значение диапазона Dim n As Integer ' конечное значение диапазона Dim Sum As Integer ' сумма нечётных чисел m = InputBox(" Введите начальное значение диапазона") n = InputBox(" Введите конечное значение диапазона") Sum = 0 ' не обязательно, так как при определении ' переменной Sum она инициализируется нулём If m Mod 2 = 0 Then m = m + 1 ' если ввели m чётное For i = m To n Step 2 'сумма нечётных чисел от m до n Sum = Sum + i Next i MsgBox Prompt: =" Сумма нечётных чисел в диапазоне от " & m & _ " до " & n & " равна " & Sum, Buttons: =vbExclamation, _ Title: =" Сумма нечётных чисел" End Sub В процедуре TestFor4 реализован алгоритм ввода данных с клавиатуры в ячейки рабочего листа, причём заполнение производится построчно, и подсчёт суммы и количества нечётных чисел. Sub TestFor4() Dim i As Integer ' счётчик строк Dim j As Integer ' счётчик столбцов Dim m As Integer ' количество чисел в строке Dim n As Integer ' количество чисел в столбце Dim Sum As Long ' сумма нечётных чисел Dim k As Integer ' количество нечётных чисел
n = InputBox(" Введите количество чисел в строке ") m = InputBox(" Введите количество чисел в столбце ") For i = 1 To m Step 1 ' цикл по строкам For j = 1 To n Step 1 ' цикл по столбцам Cells(i, j) = InputBox(" Введите значение в ячейку " & _ Chr(j + 64) & i, _ " Ввод данных в таблицу") If Abs(Cells(i, j)) Mod 2 = 1 Then ' число нечётное Sum = Sum + Cells(i, j) k = k + 1 End If Next j Next i MsgBox (" Сумма нечётных чисел = " & Sum & vbNewLine & _ " Число нечётных чисел= " & k) End Sub
|