Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Оператор For… Next






Это оператор арифметического цикла с предусловием. Иначе этот цикл называется циклом с параметром или циклом со счётчиком.

Формат оператора:

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


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.01 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал