![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
[ <операторы 1> ]
...
[ ElseIf <условие n> Then
[ <операторы n> ]…
[ Else ]
[< ИначеОператоры >]]
End If
Порядок выполнения: вычисляется значение <условие>. Оно может принимать значения TRUE (Истина) или FALSE (Ложь). Если <условие> принимает значение TRUE, то выполняются [< операторы 1 >], в противном случае, т.е. значение <условие> FALSE, [ <операторы 2> ] (операторы ветки Else).
Изображение в блок – схеме:
![]() |
Public Sub prog2() Dim x As Double Dim s As String x=Worksheets(1).Range("A1") If x > 0 Then s = "положительное" ElseIf x = 0 Then s = "ноль" Else s = "отрицательное" End If Worksheets(1).Range("C2")=s End Sub | Описание переменной строкового типа Ввод значения переменной х. Значение располагается на Листе1 (Worksheets(1)) в ячейке А1 (Range ("A1")). Условный оператор. Если условие принимает значение True (Истина), то выполняется оператор присваивания ветки Then (s=”положительное”) и завершается условный оператор, в противном случае проверяется второе условие: x=0. Если условие True, то s присваивается значение “нуль”, иначе – “отрицательное”. Вывод результата–s–на лист1 в ячейку С2. |
Рисунок 7 - Блок-схема программы prog2
? Найдите и исправьте ошибки (если есть) в следующих фрагментах программ:
а) If a>0 Then x=0 б) If a>0 Then x=0 Else x=1 End If
Else x=1
End If
? Найдите и исправьте ошибки (если есть) в следующем фрагменте программы. Изобразите блок-схему данного фрагмента:
If t > 0 Then
x = 1
ElseIf t < 0 Then
x = -1
Else
х = 1
End If
End If
? Составьте программу и изобразите ее блок-схему (на листах в конце тетради) для решения следующей задачи: по введенным координатам точки плоскости укажите в каком квадранте (координатной четверти) она расположена. В случае ее принадлежности осям вывести соответствующее сообщение.
2.3 Оператор цикла с параметром (For…Next)
Оператор цикла For позволяет повторять группу операторов заданное число раз.
Синтаксис: For <счётчик_цикла> = <начало> To <конец> [ Step <шаг>]
<тело цикла>
[ Exit For ]
...
Next [<счётчик_цикла>]
где <счётчик_цикла> — числовая переменная;
<начало> - начальное значение (выражение) переменной <счётчик_цикла>;
<конец> - заключительное значение (выражение) переменной <счётчик_цикла>;
<тело цикла> - это последовательность операторов, которая будет выполнена заданное число раз.
Порядок выполнения: переменной <счётчик_цикла> присваивается значение <начало> и проверяется условие: <начало > £ <конец >; если условие неверно, то <тело цикла > не выполняется и управление передается на оператор, следующий за Next. Если же условие выполняется, то выполняется <тело цикла>, затем значение <счётчик_цикла > изменяется на значение <шаг > (увеличится в случае положительного значения <шаг >, и уменьшается при отрицательном значении <шаг >). Данный процесс будет выполняться пока значение <счётчик_цикла > не достигнет значения <конец > (если шаг положителен, цикл завершится, когда впервые выполнится условие: < счетчик_цикла> <конец >. Если шаг цикла отрицателен, условие его завершения: < счетчик_цикла> <конец >). Досрочно завершить цикл For…Next можно и с помощью оператора Exit For. Такие операторы могут быть расположены в тех местах тела цикла, где требуется из него выйти, не дожидаясь выполнения условия завершения.
Изображение в блок-схемах:
?
![]() |
а) t = 10: f = 0 б) y = 0
For i = 1 To 5 For i = 2 To 10 Step 2
f = f + I y = y + i
f = t + I Next i
Next I y=_____, i=_____
t=_____, f=_____, i=______
Пример: вычислить n-ый член последовательности, заданной формулой , если
.
Public Sub prog3() Dim n As Byte Dim an As Integer,a1 As _ Integer, a2 As Integer n=CByte(InputBox("n =")) a1 = 1: a2 = 1 For i = 3 To n an = a1 + a2 a1 = a2: a2 = an Next i MsgBox an End Sub | Описание переменной типа Byte Ввод значения переменной n (номера элемента последовательности) через окно ввода и преобразование введенного значения к типу Byte Присваивание начальных значений переменным а1 и а2 (двоеточием разделяются операторы, записанные на одной строке) Организация цикла For…Next, в котором счетчик i изменяется от 3 до n с шагом 1 Вычисление следующего члена последовательности как сумму двух предыдущих Изменение последнего и предпоследнего значений последовательности на данный момент Увеличение счетчика на 1 (конец тела цикла) |
Блок-схема программы:
Рисунок 8 - Блок-схема программы prog3
? Изобразите блок-схему для следующей программы и укажите, какую задачу она решает:
Public Sub pp()
n = CInt(InputBox("n="))
a = 0: b = 0
For i = 100 To n Step -1
If i Mod 2 = 0 Then
a = a + i
Else
b = b + 1
End If
Next i
MsgBox Abs(a - b)
End Sub
______________________________________________________________
______________________________________________________________
? Составьте программу и изобразите ее блок-схему (на листах в конце тетради) для решения следующей задачи: вычислите разность между суммой и произведением первых n натуральных чисел (значение n вводится).
2.4 Циклы с предусловием и постусловием
Циклы данного вида используются, когда заранее не известно сколько раз будет выполняться тело цикла.
Циклы с предусловием (Do While…Loop, While…Wend, Do Until…Loop) представлены в таблице 13, а операторы циклов с постусловием (Do…Loop While, Do…Loop Until) - в таблице 14.
Отличие циклов с предусловием от циклов с постусловием заключается в том, что тело цикла первых может не выполниться ни разу, в то время как тело цикла с постусловием всегда выполнится хотя бы один раз.
Таблица 13 – Циклы с предусловием
Синтаксис | Do While < условие > < тело цикла > [Exit Do] … Loop | While <условие > < тело цикла> Wend | Do Until < условие> <тело цикла > [Exit Do] … Loop |
Порядок выполнения | <Тело цикла> будет выполняться в том случае, когда <условие > имеет значение истина (TRUE) (цикл продолжается при истинном значении <условия >). Если <условие > ложно (FALSE), то выполняются операторы, стоящие за циклом. В первом случае есть возможность досрочного выхода из цикла (это реализовано через Exit Do). | <Тело цикла > выполняется до тех пор, пока <условие > не примет значение истина (цикл продолжается при ложном значении <условия >). Есть возможность досрочного выхода из цикла (это реализовано через Exit Do). | |
Изображение в блок-схемах | ![]() | ![]() |
? Какое значение примут указанные переменные в результате выполнения следующего фрагмента программы:
а) n = 5: s = 0 Do While n <= 10 n = n + 1 s = s + n Loop | б) n = 5: s = 0 Do Until n >= 10 n = n + 1 s = s + n Loop |
n=________, s=________ | n=________, s=________ |
Таблица 14 - Циклы с постусловием
Синтаксис | Do < тело цикла > [Exit Do] … Loop While <условие> | Do <тело цикла> [Exit Do] … Loop Until <условие> |
Порядок выполнения | <Тело цикла> будет выполняться в том случае, когда <условие> имеет значение истина (цикл продолжается при истинном значении <условия >). Если < условие > ложно, то выполняются операторы, стоящие за циклом. Предоставлена возможность досрочного выхода из цикла (это реализовано через Exit Do). | <Тело цикла> выполняется до тех пор, пока <условие> не примет значение истина (цикл продолжается при ложном значении <условия >). Есть возможность досрочного выхода из цикла (это реализовано через Exit Do). |
Изображение в блок-схемах | ![]() | ![]() |
? Какое значение примут указанные переменные в результате выполнения следующего фрагмента программы:
а) n = 9: s = 0 Do n = n - 1 s = s + n Loop While n >= 5 | б) n = 9: s = 0 Do n = n - 1 s = s + n Loop Until n >= 5 |
n=________, s=________ | n=________, s=________ |
Пример: организовать ввод последовательности целых чисел, пока их сумма не превысит целого числа m. Вывести количество введенных чисел.
Public Sub prog4() Dim x As Integer, m As Integer Dim s As Integer Dim i As Integer m=InputBox("Введите число m") i = 1 s =InputBox("Введите 1 число") Do While s <= m i = i + 1 x=InputBox("Введите " & i & "число") s = s + x Loop MsgBox ("Количество чисел " & i) End Sub | Ввод предельного числа Номер вводимого числа последовательности Ввод первого числа последовательности Цикл с предусловием: тело цикла выполняется пока условие s<=m имеет значение Истина (TRUE) Тело цикла: увеличение номера на 1 ввод очередного (i-го) значения добавление введенного значения к предыдущему значению суммы Конец тела цикла Вывод значения переменной i |
![]() |
Рисунок 9 - Блок-схема программы prog4
? Составьте программы и изобразите их блок-схемы (2 программы: используя один цикл с предусловием и один с постусловием) для решения следующей задачи: вычислите произведение первых n натуральных чисел (значение n вводится).
Дата публикования: 2015-10-09; Прочитано: 517 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!