Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб6_VisualBasic.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
894 Кб
Скачать
☆

1.3. Оператор цикла Do...Loop

Оператор Do…Loop повторяет выполнение набора инструкций, пока Условие имеет значение True (случай While) или пока оно не примет значение True (случай Until).

Синтаксис:

1) Do While Условие

[Инструкции]

Loop

Условие проверяется до входа в цикл. Если результатом проверки условия является значение Истина, то выполняются Инструкции, и вновь проверяется условие. Если результатом проверки условия является значение Ложь, то происходит выход из цикла и переход на оператор, расположенный после служебного слова Loop.

Возможна ситуация, при которой Инструкции не выполняются ни разу. Она возникает в том случае, если при первой проверке условия оно оказывается ложным.

2) Do

[Инструкции]

Loop While Условие

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

3) Do Until Условие

[Инструкции]

Loop

4) Do

[Инструкции]

Loop Until Условие

Эти две разновидности конструкции цикла Do...Loop аналогичны рассмотренным ранее, но отличаются тем, что цикл выполняется до тех пор, пока условие ложно, а не истинно.

Примеры использования конструкций приведены ниже.

Пример. Вычислить сумму бесконечного ряда , пока члены ряда больше eps >0.

Dim k As Integer, y As Single, S As Single, eps As Single

eps = InputBox ("Введите число eps>0")

S = 0

k = 1

Do While k / (3 * k ^ 2 + 5) > eps

S = S + k / (3 * k ^ 2 + 5)

k = k+1

Loop

MsgBox "Сумма ряда равна " & CStr(S)

Пример. Следующий код обеспечивает повторение цикла до тех пор, пока в поле ввода диалогового окна не будет введен пароль Привет.

Dim Password As String

Do

Password = InputBox ("Введите пароль")

Loop Until Password = "Привет"

1.4. Выход из цикла Exit For / Exit Do

С помощью операторов Exit... можно осуществить досрочный выход из цикла вне зависимости от значения, которое имеет в данный момент условие выхода.

Пример.

Dim n As Integer

n = 10

Do While n > 1

Print n

n = n – 1

If n = 5 Then Exit Do ' Если счётчик = 5, то выходим из цикла Loop

2. Упражнения

Упражнение 1

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

Реализация проекта

1. Создайте новый проект.

2. Поместите на форму надпись, текстовое поле и две кнопки.

3. Установите следующие значения свойств объектов:

Класс объектов

Обозначение объекта по умолчанию

Свойство

Значение

Form

Form1

Caption

Числа, кратные пяти

Label

Label1

Caption

Двузначные числа, кратные пяти

TextBox

Text1

Name

TxtChisla

Text

MultiLine

True

CommandButton

Command1

Name

CmdShow

Caption

Вывести числа

Command2

Name

CmdExit

Caption

Выход

Замечание.

По умолчанию предполагается, что текстовое поле служит для ввода/вывода одной строки текста. Свойство MultiLine элемента управления TextBox позволяет настроить объект таким образом, что он будет использоваться для ввода/вывода нескольких строк. При установленном значении True текст автоматически переносится по словам на несколько строк. При вводе информации в поле для перехода на новую строку необходимо использовать клавишу Enter.

Ваша форма примет вид (рис. 6.1):

Рис. 6.1

4. В окне редактора кода введите следующие процедуры обработки событий для кнопок:

5. Сохраните и протестируйте проект (рис. 6.2).

Рис. 6.2

Упражнение 2

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

Реализация проекта

1. Создайте новый проект.

2. Поместите на форму две надписи, два текстовых поля и две кнопки.

3. Установите следующие значения свойств объектов:

Класс объектов

Обозначение объекта по умолчанию

Свойство

Значение

Form

Form1

Caption

Делители числа

Label

Label1

Caption

Натуральное число

Label2

Caption

Его делители

TextBox

Text1

Name

TxtChislo

Text

Text2

Name

TxtDeliteli

Text

MultiLine

True

ScrollBars

2 - Vertical

CommandButton

Command1

Name

CmdShow

Caption

Найти делители

Command2

Name

CmdExit

Caption

Выход

Замечание.

Cвойство ScrollBars элемента управления TextBox используется, если свойство MultiLine имеет значение True и размер поля не позволяет отобразить заданный в свойстве Text текст. Свойство может принимать одно из следующих значений: 0-None – полоса прокрутки отсутствует, 1-Horizontal – горизонтальная полоса прокрутки, 2-Vertical – вертикальная полоса прокрутки, 3-Both – горизонтальная и вертикальная полосы прокрутки.

Ваша форма примет вид (рис. 6.3):

Рис. 6.3

4. В окне редактора кода введите следующие процедуры обработки событий для кнопок:

5. Сохраните и протестируйте проект (рис. 6.4).

Рис. 6.4

6. Модифицируйте программу так, чтобы дополнительно определялось количество делителей.

7. Сохраните и протестируйте проект.

Упражнение 3

Создадим программу табулирования функции y = sin x на отрезке [a, b] с шагом h.

Реализация проекта

1. Создайте новый проект.

2. Поместите на форму четыре надписи, четыре текстовых поля и две кнопки (рис. 6.5):

Рис. 6.5

3. Установите следующие значения свойств объектов:

Класс объектов

Обозначение объекта по умолчанию

Свойство

Значение

Form

Form1

Caption

Табулирование функции

Label

Label1

Caption

Табулирование функции y=sin x на отрезке [a, b] с шагом h

Alignment

2 - Center

Label2

Caption

a

Label3

Caption

b

Label4

Caption

h

TextBox

Text1

Name

TxtA

Text

Text2

Name

TxtB

Text

Text3

Name

TxtH

Text

Text4

Name

TxtTab

Text

MultiLine

True

ScrollBars

2 - Vertical

CommandButton

Command1

Name

CmdShow

Caption

Выполнить

Command2

Name

CmdExit

Caption

Выход

4. В окне редактора кода введите следующий код:

5. Сохраните и протестируйте проект (рис. 6.6).

Рис. 6.6

Упражнение 4

Создадим программу, которая определяет количество цифр введенного натурального числа.

Реализация проекта

1. Создайте новый проект.

2. Поместите на форму две надписи, два текстовых поля и две кнопки.

3. Установите следующие значения свойств объектов:

Класс объектов

Обозначение объекта по умолчанию

Свойство

Значение

Form

Form1

Caption

Количество цифр числа

Label

Label1

Caption

Натуральное число

Label2

Caption

Количество цифр числа

TextBox

Text1

Name

TxtChislo

Text

Text2

Name

TxtKol

Text

Locked

True

CommandButton

Command1

Name

CmdKol

Caption

Определить количество цифр

Command2

Name

CmdExit

Caption

Выход

В аша форма примет вид (рис. 6.7):

Рис. 6.7

4. Подсчет количества цифр начнем с последней цифры числа. На очередном шаге цикла счетчик цифр увеличим на единицу, а число уменьшим в 10 раз (тем самым мы избавляемся от последней цифры числа). Далее с получившимся числом проделаем ту же последовательность действий и т.д., пока число не станет равным нулю.

В окне редактора кода введите следующие процедуры обработки событий для кнопок:

5. Рассмотрим выполнение этой программы при нажатии на кнопку в пошаговом режиме для числа 847954:

n

k

847954

0

84795

1

8479

2

847

3

84

4

8

5

0

6

6 . Сохраните и протестируйте проект (рис. 6.8).

Рис. 6.8

7. Модифицируйте программу так, чтобы определялась:

а) сумма цифр числа;

б) первая цифра числа; например, для числа 7265 это цифра 7;

в) количество четных цифр числа;

г) наибольшая цифра числа;

д) сколько раз данная цифра встречается в числе;

е) перевертыш данного числа; например, для числа 7265 это число 5627.

8. Сохраните и протестируйте проект.

Упражнение 5

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

Реализация проекта

1. Создайте новый проект.

2. Поместите на форму две надписи, текстовое поле и кнопку.

3. Установите следующие значения свойств объектов:

Класс объектов

Обозначение объекта по умолчанию

Свойство

Значение

Form

Form1

Caption

Простое или составное

Label

Label1

Caption

Введи натуральное число, большее 1

Label2

Caption

TextBox

Text1

Name

TxtChislo

Text

CommandButton

Command1

Name

CmdCount

Caption

Определить

Ваша форма примет вид (рис. 6.9):

Рис. 6.9

4. В окне редактора кода введите следующий код:

5 . Сохраните и протестируйте проект (рис. 6.10, 6.11).

Рис. 6.10 Рис. 6.11

Упражнение 6

Разработаем программу нахождения наибольшего общего делителя двух неотрицательных чисел.

Алгоритм Евклида

Алгоритм Евклида – это алгоритм нахождения наибольшего общего делителя (НОД) двух целых неотрицательных чисел.

Пусть x и y – одновременно не равные нулю целые неотрицательные числа, и пусть x ≥ y. Если y = 0, то НОД(x, y) = x, а если y ≠ 0, то для чисел x, y и r, где r – остаток от деления x на y, выполняется равенство НОД(x, y) = НОД(y, r). 

Например, пусть x = 48, а y = 18.

НОД(48, 18) = НОД(18, 12) = НОД(12,6) = НОД(6, 0) = 6.

Реализация проекта

1. Создайте новый проект.

2. Поместите на форму три надписи, три текстовых поля и две кнопки (рис. 6.12).

Рис. 6.12

3. Установите следующие значения свойств объектов:

Класс объектов

Обозначение объекта по умолчанию

Свойство

Значение

Form

Form1

Caption

Наибольший общий делитель

Label

Label1

Caption

Первое число

Label2

Caption

Второе число

Label3

Caption

Наибольший общий делитель

TextBox

Text1

Name

TxtChislo1

Text

Text2

Name

TxtChislo2

Text

Text3

Name

TxtNOD

Text

Locked

True

CommandButton

Command1

Name

CmdCount

Caption

Вычислить

Command2

Name

CmdExit

Caption

Выход

4. В окне редактора кода введите следующие процедуры обработки событий для кнопок:

5. Сохраните и протестируйте проект (рис. 6.13).

Рис. 6.13

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]