У вас вопросы?
У нас ответы:) SamZan.net

Цикл ForNext в Visul Bsic Часто в программах требуется многократное выполнение одного или нескольких оператор

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 2.2.2025

Занятие 8 “Циклы в Visual Basic”

В настоящем занятии слушатель знакомится с основными циклическими конструкциями языкациклом с известным числом повторений For…Next и условным циклом Do…Loop.

1. Цикл For…Next в Visual Basic

Часто в программах требуется многократное выполнение одного или нескольких операторов. Для этого предназначены циклические конструкции или просто циклы. Когда программисту известно, какое число повторений данной группы операторов необходимо выполнить, можно воспользоваться циклической конструкцией For…Next.

Цикл For…Next является самой старой и самой простой циклической конструкцией Basic. Фрагмент блок-схемы, который реализует оператор For…Next, можно представить следующим образом:

Cинтаксис оператораFor…Next следующий:

For Cчетчик=Начальное значение To Конечное значение [Step шаг]

Операторы блока S

Next [счетчик]

Операторы блока называется телом цикла. Строка, начинающаяся с ключевого слова For, –заголовком цикла, строка с ключевым словом Next – концом цикла.

В начале выполнения цикла значение Счетчик устанавливается в Начальное значение. При каждом “проходе” цикла переменная Счетчик увеличивается на величину шага. Если она достигает Конечное значение, то цикл завершается и выполняются следующие за ним операторы.

Сделаем небольшой пример, чтобы на практике понять, как “работает” оператор For…Next.

На форму поместим одну командную кнопку cmdFor, а значение свойства Caption для нее зададим“For…Next”.

Составим код для командной кнопки cmdFor, включив в него цикл. В теле цикла поместим строкуPrint “Visual Basic”. Начальное значение счетчика зададим равное единице, конечное значение - 10, шаг 1.

Private Sub cmdFor_Click( )

Dim I As Integer

CLS

For I = 1 To 10 Step 1

Print “Visual Basic

Next I

End Sub

Сделайте этот код на компьютере и запустите проект на выполнение. Вы увидите, что на форме 10 раз распечаталась фраза “Visual Basic”.

Изменим теперь строку кода, соответствующую заголовку цикла, следующим образом: не будем указывать шаг.

For I = 1 To 10

Если теперь запустить проект и щелкнуть на командной кнопке, результат не изменится. Если в цикле не указывать шаг, то подразумевается, что он равен единице.

Произведем следующие изменения в коде. Шаг сделаем 2. Заголовок цикла станет такой:

For I = 1 To 10 Step 2

В результате работы измененной программы фраза Visual Basic распечатается на форме 5 раз.

Составьте три варианта цикла, чтобы фраза Visual Basic распечатывалась на форме 10 раз. Меняйте каждый раз начальное и конечное значения счетчика цикла и шаг. Проверьте их на компьютере.

Немного модифицируем наш проект следующим образом: не будем в коде задавать начальное и конечное значения счетчика цикла и его шаг, а будем запрашивать все эти значения с помощью функции InputBox.

Private Sub cmdFor_Click( )

Dim I As integer

Dim BeginZn As Single

Dim FinishZn As Single

Dim StepZn As Single

Cls

i = 0

BeginZn = 0

FinishZn = 0

StepZn = 0

BeginZn=InputBox(“Число”,“Начальное значение счетчика”)

FinishZn=InputBox(“Число”, “Конечное значение счетчика”)

StepZn = InputBox (“Число”, “Значение шага”)

For I = BeginZn To FinishZn Step StepZn

Print “Visual Basic”

Next I

End Sub

2. Вычисление степени числа два 

Попробуем сделать небольшой проект, в котором для введенного пользователем натурального показателя степени n вычислялось бы значение . Использовать при вычислении можно только действие умножение.

Начнем новый проект. На форму frmTwoPower поместим текстовое окно, в которое пользователь будет вводить значение показателя степени и метку с указанием для пользователя, что ему нужно сделать. Кроме этого пусть на форме будут две командные кнопки: cmdExit для выхода из проекта и cmdPowerдля вычисления степени.

Форма после описанных действий может выглядеть, например, так:

Для вычислений организуем цикл For…Next. Будем умножать на 2 накопленное произведение (n-1)раз:

For i = 1 To n - 1

TwoPower = 2 * TwoPower

Next i

TwoPower – это накопленное произведение, которое после завершения цикла и будет являться искомым значением, i – переменная цикла.

Очевидно, для вычислений нам понадобятся переменные. Объявим в разделе General формы следующие переменные:

Dim TwoPower As Long

Dim n As Integer

Dim i As Integer

Начальное значение переменной TwoPower (до циклапримем равным 2. Распечатывать результат расчетов можно, например, с помощью метода Print на форме. Вот как может выглядеть форма после того, как были произведены соответствующие расчеты и распечатан результат:

Распечатку результата расчета сделаем в отдельной процедуре Printer( ), а в процедуре для cmdPowerбудем ее вызывать.

Допишите процедуру для расчетов:

Private Sub cmdPower_Click( )

Call Printer

End Sub

Допишите процедуру, печатающую на форме результат расчетов.

Private Sub Printer( )

End Sub

Опробуйте работу проекта на компьютере.

3. Вычисление факториала натурального числа

Известно, что факториал натурального числа можно вычислить последовательным перемножением всех натуральных чисел, начиная с единицы до данного натурального числа:

N!=1 * 2 * 3 *…* (N - 1) * N

Сделайте небольшой проект с использованием цикла For…Next, в котором после задания пользователем значения натурального N будет рассчитываться значение N! Результат вычислений должен распечатываться на форме.

4. Условные циклы

Часто бывает так, что необходимо повторить операторы, выражающие совокупность действий, какое-то число раз, но сколько будет повторений заранее не известно. В жизни такого рода ситуации встречаются довольно часто. Например, вам необходимо дойти до двери комнаты, в которой вы находитесь, повторяя действие “сделай один шаг”. Сколько повторений вам придется сделать, заранее вы не знаете. Вы делаете повторения, пока не упретесь в дверь. В таких случаях количество повторений зависит от некоторого условия.

Условие выхода из цикла можно поставить в начале цикла, перед повторяющимися действиями. Такой цикл называется циклом с предусловием. Фрагмент блок-схемы, соответствующий этому типу цикла, выглядит следующим образом:

. . .

. . .

Условие B – это условие выхода из цикла, блок S – блок повторяющихся действий – тело цикла.

Условие выхода из цикла можно поставить в конце цикла, после повторяющихся операторов. Такой цикл называется циклом с послеусловием. Фрагмент блок-схемы, соответствующий этому типу цикла, выглядит следующим образом:

. . .

. . .

5. Оператор цикла DO…LOOP

С помощью оператора Do…Loop на языке Visual Basic можно реализовать цикл с предусловием и цикл с послеусловием.

Формат цикла с предусловием следующий:

Do [{While/Until} условие]

[Операторы блока S]

Loop

Формат цикла с послеусловием следующий:

Do

[Операторы блока S]

Loop [{While/Until} условие]

Цикл с предусловием никогда не выполняется в случае невыполнения условия. Цикл с послеусловием выполняется обязательно как минимум один раз, независимо от того, выполняется условие или нет.

Проверка условий выхода из цикла проводится с помощью ключевых слов While или Until. Эти слова придают одному и тому же условию противоположный смысл. Например, в цикле:

A = 1

Do

A = A + 1

Print “Visual Basic”

Loop While A < 11

условие выхода можно трактовать следующим образом: пока A меньше 11. Фраза Visual Basic будет печататься, пока значение переменной меньше одиннадцати (т. е. десять раз). А в цикле:

A = 1

Do

A = A + 1

Print “Visual Basic”

Loop Until A > 10

условие выхода можно трактовать так: пока значение переменной не стало больше десяти. И в том, и в другом случае фраза Visual Basic будет распечатываться 10 раз.

6. Усложнение проекта prjCycles

Давайте дополним проект prjCycles, который вы делали для иллюстрации “работы” цикла For…Next,таким образом, чтобы в этом проекте была представлена “работа” оператора Do…Loop для цикла с предусловием и для цикла с послеусловием. Дополним графический интерфейс пользователя еще двумя командными кнопками cmdAfter (значение свойства Caption “С послеусловием”) и cmdBefore(значение свойства Caption “С предусловием”) и меткой, комментирующей содержание этих командных кнопок.

Составьте код для cmdAfter. Пусть пользователь количество повторений печати на форме фразы Visual Basic задает с помощью функции InputBox и условие выхода из цикла формулируется с помощью слова While. Не забудьте объявить переменные. Сделайте их локальными.

Private Sub cmdAfter_Click( )

End Sub

Составьте код для cmdBefore. Пусть пользователь количество повторений печати на форме фразыVisual Basic задает с помощью функции InputBox и условие выхода из цикла формулируется с помощью слова While. Не забудьте объявить переменные. Сделайте их локальными.

Private Sub cmdBefore_Click( )

End Sub

Отладьте свой проект на компьютере и запишите на диск.

8. Арифметическая и геометрическая прогрессии

Известно, что арифметическая и геометрическая прогрессия – это последовательность, каждый следующий элемент которой больше предыдущего.

Арифметическую прогрессию можно представить следующим образом:

Следующий элемент получается из предыдущего прибавлением одного и того же числа (d). Таким образом, для вычисления n -го элемента прогрессии необходимо знать две величины: и d и его порядковый номер n.

Геометрическую прогрессию можно представить следующим образом:

Следующий элемент получается из предыдущего умножением на одно и то же число (d). Для вычисления n-го элемента прогрессии необходимо знать тоже две величины: и d и его порядковый номер n.

9. Задания

а) Ответьте на вопросы

Как “работает” цикл, если конечное значение счетчика цикла меньше, чем начальное?

Что происходит с циклом, если значение шага будет отрицательным?

б) Сделайте проект, в котором вычисляется степень числа 2, описанный в пункте 2 занятия, с использованием цикла For…Next.

в) Сделайте проект , в котором вычисляется факториал натурального числа N!, описанный в пункте 3 занятия.

г) Выполните задание.

Придумайте два варианта цикла с предусловием с использованием цикла Do…Loop, чтобы фраза Visual Basic распечатывалась 10 раз и запишите эти циклы на языке Visual Basic:

д) Сделайте фрагмент кода, в котором с помощью цикла Do… Loop находились бы и распечатывались на форме все положительные члены арифметической прогрессии, если a = 18, d = -3. Составьте в тетради процедуру для вычисления соответствующих членов прогрессии. Проверьте ее на компьютере.

е) Сделайте фрагмент кода, в котором с помощью цикла Do…Loop находились бы и распечатывались на форме все члены геометрической прогрессии, меньшие 500, если a = 4, d = 2. Составьте в тетради процедуру для вычисления соответствующих членов прогрессии. Проверьте ее на компьютере.

 

На главную страницу 

Сайт http://schools.keldysh.ru/vb/less/les8/lesson8.htm




1. тема фиксирует дату выполнения
2. Почему твердость оказалась пониженной Можно ли повысить твердость цементованного слоя до требуемого уровн
3. Основы эксплуатационной работы Билет 1
4. Порядок расследования профессиональных заболеваний
5. Stto государство и sttus политической состояние
6. Вариант 7 Шифр 91- Время отдыха стр
7.  Вторая половина XIX в
8. АСАНОВА АНАСТАСИЯ МИХАЙЛОВНА 2
9. 12 мес срыгивания 2 и более раза в день в течение 3 или более недель отсутствие позывов на рвоту кровавой
10. Анализ акцента литовца при произнесении русского текст