- •Лабораторная работа №1 Анализ предметной области при разработке предметно ориентированного программного обеспечения
- •1. Цель работы
- •2. Методические указания
- •3. Содержание работы
- •Лабораторная работа № 2 Принципы проектирования пользовательского интерфейса
- •1. Цель работы:
- •2. Методические указания
- •3. Содержание работы
- •4. Контрольные вопросы
- •Лабораторная работа №3. Vba. Элементы управления
- •Оператор присвоения
- •Лабораторная работа № 4. Vba. Линейная программа на основе создания собственных диалоговых окон
- •Лабораторная работа № 5. Алгоритмы и программы разветвляющейся структуры
- •Лабораторная работа № 6. Vba. Цикл с параметром (For…Next)
- •Лабораторная работа № 7 Операторы цикла с предусловием и постусловием
- •Лабораторная работа № 8. Vba. Переключатели
- •Лабораторная работа №9. Vba: Списки
- •Лабораторная работа № 10. Подпрограммы и их применение
Лабораторная работа № 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 While …Loop.
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 Until … Loop.
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<условие><
Далее приведен код программы, с использованием цикла Do …Loop 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" в нем;
б) сколько раз в нем встречается цифра, равная последней;
в) количество четных цифр в нем.