Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторки_VBA.doc
Скачиваний:
37
Добавлен:
23.08.2019
Размер:
2.87 Mб
Скачать

Лабораторная работа № 7 Операторы цикла с предусловием и постусловием

ЦЕЛЬ РАБОТЫ: Изучение и применение операторов цикла с предусловием и постусловием.

Операторы цикла с предусловием:

a) Do While <условие> б)While <условие>

<операторы> < операторы >

[Exit Do] Wend

< операторы >

Loop

Работа: Тело цикла выполняется в том случае, если условие имеет значение истина. Если условие ложно, то управление в программе передается оператору, следующему за оператором цикла.

На блок схеме данные операторы изображаются следующим образом

Рисунок 1 – Операторы с предусловие Do While <условие><тело цикла> Loop; While <условие><тело цикла> Loop

Кроме описанных выше операторов с предусловием существует еще один оператор с предусловием:

Do Until <условие>

<операторы>

[Exit Do]

< операторы >

Loop

Работа: Тело цикла выполняется в том случае, если условие имеет значение ложь. Если условие истинно, то управление в программе передается оператору, следующему за оператором цикла.

На блок схеме этот оператор отображается следующим образом

Рисунок 2 – Операторы с предусловие Do Until<условие>< <тело цикла> Loop

Пример: Вводить числа, пока их сумма не превысит введенного числа m.

Данная задача решается с применением оператора с предусловием Do WhileLoop.

Public Sub uuu()

Dim x As Integer

Dim m As Integer

Dim s As Integer

Dim i As Integer

m = InputBox("Введите число m")

MsgBox ("Вводите числа")

i = 1

s = InputBox("Введите 1 число")

Do While s <= m

i = i + 1

x = InputBox("Введите " & i & "число")

s = s + x

Loop

MsgBox ("Количество введенных чисел " & i)

End Sub

Далее приведен код программы той же задачи, но с использованием цикла Do UntilLoop.

Public Sub uuu()

Dim x As Integer

Dim m As Integer

Dim s As Integer

Dim i As Integer

m = InputBox("Введите число m")

MsgBox ("Вводите числа")

i = 1

s = InputBox("Введите 1 число")

Do Until s > m

i = i + 1

x = InputBox("Введите " & i & "число")

s = s + x

Loop

MsgBox ("Количество введенных чисел " & i)

End Sub

Операторы цикла с постусловием

a) Do

<операторы>

[Exit Do]

< операторы >

Loop While <условие>

Работа: Выполняется тело цикла. Затем вычисляется условие. Если условие имеет значение истина, то опять выполняется тело цикла. Если условие ложно, то управление в программе передается оператору, следующему за оператором цикла.

На блок схеме данные оператор изображаются следующим образом

Рисунок 3 – Операторы с постусловие Do <тело цикла> Loop While<условие><

Далее приведен код программы, с использованием цикла DoLoop While.

Public Sub uuu()

Dim x As Integer

Dim m As Integer

Dim s As Integer

Dim i As Integer

m = InputBox("Введите число m")

MsgBox ("Вводите числа")

i = 0

s = 0

Do

i = i + 1

x = InputBox("Введите " & i & "число")

s = s + x

Loop While s <= m

MsgBox ("Количество введенных чисел " & i)

End Sub

б) Do

<операторы>

[Exit Do]

< операторы >

Loop Until <условие>

Работа: Выполняется тело цикла. Затем вычисляется условие. Если условие имеет значение ложь, то опять выполняется тело цикла. Если условие истинно, то управление в программе передается оператору, следующему за оператором цикла.

На блок схеме данные оператор изображаются следующим образом

Рисунок 4 – Операторы с постусловие Do <тело цикла> Loop Until<условие><

Ниже находится код все той же задачи, но с использованием последнего описанного цикла.

Public Sub uuu()

Dim x As Integer

Dim m As Integer

Dim s As Integer

Dim i As Integer

m = InputBox("Введите число m")

MsgBox ("Вводите числа")

i = 0

s = 0

Do

i = i + 1

x = InputBox("Введите " & i & "число")

s = s + x

Loop Until s > m

MsgBox ("Количество введенных чисел " & i)

End Sub

ЗАДАНИЕ:

Решить задачу согласно своему варианту, используя все 5 способов описания операторов цикла с предусловием и постусловием

Вари-

ант

Но-

мера

1,

2,

5,

6,

8,

9,

10,

11,

12,

13,

14,

7,

4,

3,

Начиная с какого номера n имеет место неравенство n!>xn, x - любое действительное число.

Вводить последовательность до тех пор, пока не встретятся три подряд идущих положительных числа. Тогда прервать ввод и сообщить, сколько во введенной последовательности было всего чисел.

Вводить последовательность до тех пор, пока не встретятся три подряд идущих положительных числа. Тогда прервать ввод и сообщить, сколько во введенной последовательности было положительных чисел.

Вводить последовательность до тех пор, пока не встретятся три подряд идущих положительных числа. Тогда прервать ввод и сообщить, сколько во введенной последовательности было отрицательных чисел.

Определить сколько натуральных подряд идущих четных чисел нужно сложить (найти минимальное число таких слагаемых), чтобы их сумма была больше введенного числа.

Дано натуральное N и первый член бесконечного ряда: Y1=1. Вычислить сумму членов бесконечного ряда, образованного по следующему рекуррентному соотношению: Yi=2*Yi-1 (то есть S=1+2+4+8+16+...). Вычисление суммы продолжать до тех пор, пока соблюдается условие |Yi-Yi-1|<N.

Последовательно вводятся числа до тех пор, пока во введенной совокупности не окажется три нуля. Вывести количество введенных чисел.

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

а) Верно ли, что сумма его цифр меньше А?

б) Верно ли, что произведение его цифр больше В?

в) Верно ли, что это число k-чзначное?

Дано натуральное число. Определить номер цифры 3 в нем, считая от конца числа. Если такой цифры нет, ответом должно быть число 0, если таких цифр в числе несколько — должен быть определен номер самой правой из них.

Дано натуральное число. Если в нем есть цифры "2" и "5", то определить, какая из них расположена в числе левее. Если одна или обе эти цифры встречаются в числе несколько раз, то должны быть рассмотрены самые левые из одинаковых цифр.

Дано натуральное число. Определить:

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

б) сумму его цифр;

в) произведение его цифр;

г) среднее арифметическое его цифр;

Дано натуральное число. Определить:

д) сумму квадратов его цифр;

e) сумму кубов его цифр;

ж) его первую цифру;

з) сумму его первой и последней цифр.

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

д) Верно ли, что его первая цифра не превышает 6?

e) Верно ли, что оно начинается и заканчивается одной и той же цифрой?

ж) Определить, какая из его цифр больше: первая или последняя.

Дано натуральное число. Определить:

а) количество цифр "3" в нем;

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

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