Лабораторная работа №6. Циклический алгоритм: цикл с постусловием
Предварительные сведения
Общий вид оператора цикла с постусловием следующий:
Do
Группа команд (тело цикла)
Loop Until <условие>
Тело цикла выполняется хотя бы один раз и до тех пор, пока логическая конструкция, стоящая в <условии>, принимает значение «ложь».
Пример 1
Найти сумму отрицательных значений функции у = sin(2x)/cos(4x) для x, изменяющегося на отрезке [1; 10] с шагом 0,5.
Выполнение:
1 Создайте форму, содержащую две метки и одну кнопку (рис. 34).
![]() |
2 Алгоритм, реализующий вычисление суммы отрицательных значений функции, имеет следующий вид:
Private Sub CommandButton1_Click()
Dim x As Single 'входная переменная
Dim s As Double 'выходная переменная
Dim y As Double 'значение функции
s = 0 'обнуление суммы
x = 1 'начальное значение х
Do 'начало цикла
y = Sin(2 * x) / Cos(4 * x) 'вычисление значения функции
If y < 0 Then
s = s + y 'вычисление суммы отрицательных значений
End If
x = x + 0.5 'переход к следующему значению х
Loop Until x > 10 'конец цикла
MsgBox("Сумма отрицательных значений=" & s)
End Sub
3 Блок-схема к этому алгоритму приведена в приложении 2, стр. 127.
Пример 2
Найти первый член последовательности ln(9n/n2), меньший 0, для n, изменяющегося следующим образом: n =1,2,3,….
Выполнение:
1 Экранная форма имеет вид (рис. 35).
![]() |
2 Алгоритм работы программы:
Private Sub CommandButton1_Click()
Dim n As Integer 'входная переменная
Dim y As Double 'значение функции
n = 1 'первое значение n
Do 'начало цикла
y = Log(9 * n / n ^ 2) 'вычисление значения функции
n = n + 1 'переход к следующему значению n
Loop Until y < 0 'конец цикла
MsgBox("Первый отрицательный y равен " & y) 'печать y
End Sub
3 Блок-схема этого алгоритма:
![]() |
4 Результат работы программы приведен на рис. 36.
Пример 3
Напечатать квадраты чисел, вводимых с клавиатуры. Как только введено отрицательное число, напечатать его квадрат, затем ввод и печать прекратить.
Выполнение:
1 Экранная форма имеет вид (рис. 37).
![]() |
Рис. 37. Окно формы для примера 3 лабораторной работы № 6
2 Алгоритм печати квадратов чисел:
Private Sub CommandButton1_Click()
Dim x As Integer, y As Integer
Do
x = InputBox("Введите число х")
ListBox1.AddItem (Str(x))
y = x ^ 2
ListBox2.AddItem (Str(y))
Loop Until x < 0
End Sub
3 Блок-схема к данному алгоритму:
![]() |
4 Результат работы программы приведен на рис. 38.
Рис. 38. Результат работы программы для примера 3
лабораторной работы № 6
Варианты
1
Вывести
на печать значения функции , находящиеся в
интервале (0,3; 0,7) для х, изменяющегося на отрезке [4; –6] с шагом
–0,2.
2
Найти
первый член последовательности , меньший 0,
для n, изменяющегося
следующим образом: n=1; 2; 3;….
3
Вывести
на печать положительные значения функции для
х, изменяющегося на отрезке [2; 12] с шагом 1,2.
4 Напечатать модули чисел, вводимых с клавиатуры. Как только введено положительное число, напечатать его модуль, затем ввод и печать прекратить.
5
Найти
сумму отрицательных значений функции для х,
изменяющегося на отрезке [–5; 12] с шагом 0,4.
6
Вывести
на печать отрицательные значения функции для
х, изменяющегося на отрезке [9; –20] с шагом –0,9.
7 Напечатать числа, вводимые с клавиатуры. Как только введено четное число, напечатать его, затем ввод и печать прекратить.
8
Вывести
на печать положительные значения функции
для x, изменяющегося на
отрезке [12; 1] с шагом –1,2.
9
Вывести
на печать значения функции , большие 2,
для x, изменяющегося на отрезке [3; –8] с шагом –0,9.
10
Вывести
на печать положительные значения функции
для x, изменяющегося на
отрезке [5; –10] с шагом –1,4.
11
Вывести
на печать значения функции для x,
изменяющегося на отрезке [-3; 3] с шагом 0,3.
12 Напечатать кубы чисел, вводимых с клавиатуры. Как только введено отрицательное число, напечатать его куб, затем ввод и печать прекратить.
13
Вывести
на печать значения функции , большие 1,
для x, изменяющегося на отрезке [3; 8] с шагом 0,9.
14
Найти
первый отрицательный член последовательности для
n, изменяющегося
следующим образом: n=1; 2; 3;….
15
Hайти
сумму положительных значений функции для х,
изменяющегося на отрезке [–6; 13] с шагом 0,5.
16
Hайти
произведение значений функции , больших 2,
для х, изменяющегося на отрезке [-3; 8] с шагом 0,2.
17 Напечатать числа, вводимые с клавиатуры. Как только введено нечетное число, напечатать его, затем ввод и печать прекратить.
18
Hайти
произведение отрицательных значений функции для
х, изменяющегося на отрезке [–8; 15] с шагом 0,7.
19 Напечатать квадратные корни из модулей чисел, вводимых с клавиатуры. Как только введено отрицательное число, напечатать корень из его модуля, затем ввод и печать прекратить.
20
Найти
первый член последовательности , меньший 0,
для n, изменяющегося
следующим образом: n=1; 2; 3;….
21
Вывести
на печать квадрат суммы отрицательных значений функции для x, изменяющегося на
отрезке [–1; 20] с шагом 0,8.
22 Напечатать квадраты чисел, вводимых с клавиатуры. Как только введено кратное трем число, напечатать его квадрат, затем ввод и печать прекратить.
23
Найти
первый отрицательный член последовательности для
n, изменяющегося
следующим образом: n = 1; 2; 3;….
24
Hайти
произведение положительных значений функции для
х, изменяющегося на отрезке [–7; 10] с шагом 0,35.
25
Hайти
сумму отрицательных значений функции для х,
изменяющегося на отрезке [–5; 5] с шагом 0,5.
26
Вывести
на печать значения функции , меньшие 3, для
x, изменяющегося на отрезке [–4; 10] с шагом 0,2.
27 Напечатать числа, вводимые с клавиатуры. Как только введен ноль, напечатать его, затем ввод и печать прекратить.
28
Найти
первый член последовательности , меньший 1,
для n, изменяющегося
следующим образом: n = 1; 2; 3;….
29 Напечатать модули чисел, вводимых с клавиатуры. Как только введено кратное пяти число, напечатать его модуль, затем ввод и печать прекратить.
30
Hайти
модуль суммы отрицательных значений функции для
x, изменяющегося на отрезке [–14; 10] с шагом 0,25.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.