Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть_1.doc
Скачиваний:
24
Добавлен:
20.04.2015
Размер:
462.85 Кб
Скачать

3.5.3. Операторы цикла.

При построении алгоритмов, как мы видели выше, часто требуется так называемое вычисление в цикле, то есть повторение некоторой группы операций. Среди операторов цикла имеются две основные формы: циклы с фиксированным числом повторений и циклы с числом повторений до выполнения заданного условия.

Цикл первого вида имеет следующий формат:

for x=xmin to xmax step dx

(Группа операций)

next x

Переменная x называется счетчиком цикла и изменяется отxmin доxmax с шагом dx. Выход из цикла, то есть продолжение программы после оператора next x (следующийx),происходит приx=xmax+dx. Выход из цикла может быть сделан принудительно при выполнении некоторого условия. Тогда среди повторяющейся группы операций ставится следующий оператор:if (условие) then exit for. Если шаг переменной счетчикаdx имеет значение +1, то указание размера шагаstep dx может отсутствовать. Шагdx может быть отрицательным. В этом случае говорят, что имеется обратный цикл, и тогда начальное значение счетчикаx должно быть больше его конечного значения.

Цикл второго вида имеет следующий формат:

do

(Группа операций)

loop while (условие)

Этот цикл не имеет заданного количества повторений. Число повторений определяется выполнением условия, стоящего после оператора loop while (петля, пока). Оператор проверки выполнения условия может стоять также в первой строке цикла. Тогда формат цикла выглядит следующим образом:

do while (условие)

(Группа операций)

loop

Так же, как и в цикле for...next, в циклеdo...loop предусмотрено преждевременное прерывание, которое обеспечивается оператором:if (условие) then exit do. Если такой оператор предусмотрен по смыслу программы, то основное условие (while (условие)) может отсутствовать. Тогда этот цикл имеет форму:

do

(Группа операций 1)

if (условие) then exit do

(Группа операций 2)

loop

Отметим, что кроме цикла do...loop существует цикл аналогичной формы:

while (условие)

(Группа операций)

wend

В этом цикле основное условие не может быть опущено.

Внутри одного цикла может быть вложен другой цикл любого формата. Однако, если цикл for...next вложен внутри другого циклаfor...next, переменные счетчиков цикла должны быть разные.

3.6. Операторы ввода и вывода информации

3.6.1. Операторы ввода значений переменных с клавиатуры.

Для ввода значений переменных с клавиатуры имеется несколько операторов, употребляемых в зависимости от содержания вводимой информации и ее использования в программе. Простейший ввод делается с помощью оператора InputBox, имеющего следующий формат:InputBox (“Комментарий”).

Пример 3.1.

a=InputBox (“Введите значение a”)

Комментарий в операторе InputBox полностью копируется на экран и не является обязательным, однако без него на экране ввода будет ничего. Решите сами, удобно это или нет.

Пример 3.2.

a$=InputBox (“Введите значение строки a$”)

Для ввода значений массива нужно использовать цикл, как показано в примере 3.3, где вводятся 15 значений одномерного числового массива.

Пример 3.3.

Private Sub Command1_Click()

'Pr3_3 Поиск максимального элемента массива

Dim Vect(100) As Integer

Dim i As Integer: Dim c As Integer: Dim j As Integer: Dim n As Integer:

MsgBox ("Введите число элементов n массива Vect")

n = InputBox("n=") ‘Пусть n=15

For i = 1 To n

Vect(i) = InputBox("Vect(i)")

Print "i="; i, "Vect(i) = "; Vect(i)

Next i

Max = Vect(1)

For i = 1 To n

If Vect(i) > Max Then Max = Vect(i)

Next i

Print " А вот и результат: max="; Max

End Sub

В следующем примере показан ввод двумерного числового массива (матрицы). Матрица вводится по строкам.

Пример 3.4.

Private Sub Command1_Click()

'Ex3_4.

Cls

Dim Matrix(1 To 4, 1 To 3) As Integer

Dim i As Integer

Dim j As Integer

For i = 1 To 4

For j = 1 To 3

Print i; j,

Matrix(i, j) = InputBox("Matr")

Next j

Print "Строка "; i

Next i

Print "______________________"

Print

For i = 1 To 4

For j = 1 To 3

Print Matrix(i, j);

Next j

Print

Next i

End Sub

Кстати, в среде программирования Visual Basic 6.0 строчные и прописные буквы в операторах можно перепутать. Они будут автоматически восстановлены в соответствии с форматом языка. В именах переменных прописные буквы можно ставить для оформления текста. Ошибки в записи операторов сразу не определяются. Но они видны, так как ошибочный оператор не переводится в стандартный формат.

_______________________________________________________________________

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