Циклические алгоритмыТиповые

advertisement
Циклические алгоритмы
Повторение - это многократное выполнение
одного или нескольких предписаний алгоритма.
Цикл - это оператор языка программирования, с
помощью которого это повторение будет
выполнять компьютер - исполнитель алгоритмов.
В языке Visual Basic циклы - многострочные
операторы двух видов:
•циклы с параметром (счетчиком)
•циклы с условием
Цикл с параметром
For Имя=Знач1 To Знач2 [Step Знач3]
Серия повторяющихся операторов
[Exit For]
Next [Имя]
где Имя - это имя переменной, которую
называют счетчиком;
Знач1 - начальное значение счетчика;
Знач2 -. конечное значение счетчика;
Знач3 - величина, на которую изменяется
значение счетчика при одном повторении
(шаг цикла);
Серия повторяющихся операторов - тело
цикла.
Циклы с предусловием
Цикл с предусловием, где Цикл с предусловием, где
Л.Выр - условие
Л.Выр - условие
продолжения цикла
завершения цикла
Do While Л. Выр
Операторы
[Exit Do]
Loop
Do Until Л. Выр
Операторы
[Exit Do]
Loop
Циклы с постусловием
Цикл с постусловием,
где Л.Выр - условие
продолжения цикла
Цикл с постусловием,
где Л.Выр - условие
завершения цикла
Do
Операторы
[Exit Do]
Loop While Л.Выр.
Do
Операторы
[Exit Do]
Loop Until Л.Выр
Особенности алгоритмов и программ
с накоплением
Сумма вычисляется всегда по такой формуле:
Сумма = сумма + очередное слагаемое
Произведение вычисляется всегда по такой
формуле:
Произведение = Произведение* очередной
сомножитель
Количество вычисляется по формуле:
Количество = Количество+1
Примечание: до вычисления этих величин в цикле
они должны быть подготовлены таким образом:
начальному значению суммы и количества надо
присвоить ноль, а произведению присвоить
единицу.
Особенности поиска экстремальных
значений
1. В начале за текущий минимум (максимум)
принимается значение функции при первом
значении аргумента, например, min=y(x1)
или max= y(x1).
2. Затем в цикле, начиная со второго значения
функции, производится его сравнение со
значением переменной min (max) и если
это число меньше min (больше max), то на
место min (max) записывается это число и
оно становится текущим минимумом
(максимумом).
Задача 1
Подсчитать сумму значений функции
Z=y*Ln(x)+x^3, здесь y=5, ввести y с
помощью окна ввода, х изменяется от
1 до 10 с шагом 0,5. Сумму вывести с
помощью окна вывода, а таблицу
значений функции вывести на лист
«Результат».
Блок – схема задачи 1
Начало
Ввод Y
i=2; S=0
X=1,10,0.5
Z = y * ln(x)+x3
S = S+Z
Вывод x , Z
i= i +1
Вывод S
Конец
Текст процедуры задачи 1
Sub Задача1()
Dim S As Single, Y As Single, Z As Single, _
x As Single, i As Integer, n As Integer
Y = Val(InputBox("Введите значение Y"))
Sheets("Лист1").Select
Range("A1").Value = "Аргумент Х"
Range("b1").Value = "Функция Z"
i = 2: S = 0
For x = 1 To 10 Step 0.5
Z = 2 * x ^ 3 - 5 * Log(x + 10)
Cells(i, 1).Value = x: Cells(i, 2).Value = Z
S = S + Z: i = i + 1
Next x
MsgBox " Cумма значений функции Z =" + Str(S)
End Sub
Задача 2
Составить проект программы вычисления
минимального значения функции

sin x, если x  3



y   x 4  1  2, если  1  x  3

x  12

, если x  1

x2 1

для x=-1.2, -1, 0.231, 3, 4.33, 5.22.
Блок – схема задачи 2
Начало
X=1.2
min=(x+12)/(x^2+1)
Повторять
x= -1.2 по
i от 2 до 6
Ввод x
Нет
Нет
y 
x  12
x2  2
Да
Да
-1x3
x>3
y  sin x
x4  1  2
y=
y<min
Нет
Вывод min
Конец
Да
Min=y
Текст процедуры задачи 2
Sub задача2()
Dim x As Single, y As Single, min As Single, i As Integer
x = -1.2: min = (x + 12) / (x ^ 2 + 1)
For i = 2 To 6
x = Val(InputBox("Введите " + Str(i) + " значение x "))
If x > 3 Then
y = Sin(x)
ElseIf x >= -1 And x <= 3 Then
y = Sqr(x ^ 4 + 1) + 2
Else
y = (x + 12) / (x ^ 2 + 2)
End If
If y < min Then min = y
Next i
MsgBox "Минимальное значение функции y =" + Str(min)
End Sub
Задача 3
Составить программу, в которой
вводятся с клавиатуры числа и
находится сумма неотрицательных
чисел . Ввод прекращается, если
вводится отрицательное число.
Блок – схема задачи 3
Начало
S=0
Нет
X0
Да
Ввод X
Да
X0
Нет
S=S+X
Вывод S
Конец
Блок схема задачи 3 с использованием цикла с предусловием
Текст процедуры задачи 3 (с
предусловием с ключевым словом While)
Sub задача3()
Dim X As Single, S As Single
S=0
Do While X >= 0
X = Val(InputBox(" Введите число"))
If X >= 0 Then S = S + X
Loop
MsgBox "Сумма = " + Str(S)
End Sub
Текст процедуры задачи 3 (с
предусловием с ключевым словом Until )
Sub задача3()
Dim X As Single, S As Single
S=0
Do Until X < 0
X = Val(InputBox(" Введите число"))
If X >= 0 Then S = S + X
Loop
MsgBox "Сумма = " + Str(S)
End Sub
Текст процедуры задачи 3 (с
постусловием с ключевым словом While )
Sub задача3()
Dim X As Single, S As Single
S=0
Do
X = Val(InputBox(" Введите число"))
If X >= 0 Then S = S + X
Loop While X >= 0
MsgBox "Сумма = " + Str(S)
End Sub
Текст процедуры задачи 3 (с
постусловием с ключевым словом Until )
Sub задача3()
Dim X As Single, S As Single
S=0
Do
X = Val(InputBox(" Введите число"))
If X >= 0 Then S = S + X
Loop Until X < 0
MsgBox "Сумма = " + Str(S)
End Sub
Задания для подготовки к
тестированию
Многократное использование одного и
того же участка программы
называется:
a. рекурсией;
b. отладкой;
c. обращением к подпрограмме;
d. итерацией;
e. циклическим процессом.
Правильный ответ к заданию 1
Многократное использование одного и
того же участка программы
называется:
a. рекурсией;
b. отладкой;
c. обращением к подпрограмме;
d. итерацией;
e. циклическим процессом.
Задание 2
По записанному на алгоритмическом языке
алгоритму подсчитать сумму квадратов
последовательности натуральных чисел.
Начало алг
S:=0
Нц для n от 2 до 4
S:=S+n*n
кц
кон алг
a. S=15
b. S=18
c. S=36
d. S=29
Правильный ответ к заданию 2
По записанному на алгоритмическом языке
алгоритму подсчитать сумму квадратов
последовательности натуральных чисел.
Начало алг
S:=0
Нц для n от 2 до 4
S:=S+n*n
кц
кон алг
a.
b.
c.
d.
S=15
S=18
S=36
S=29
Задание 3
Алгоритмическая структура какого типа
показана в словесном алгоритме?
Пока выполняется условие делать:
Серия операторов
Конец пока
a.
b.
c.
d.
цикл
ветвление
подпрограмма
линейная
Правильный ответ к заданию 3
Алгоритмическая структура какого типа показана в
словесном алгоритме?
Пока выполняется условие делать:
Серия операторов
Конец пока
a.
b.
c.
d.
цикл
ветвление
подпрограмма
линейная
Задание 3
Результатом выполнения алгоритма:
Ввод N
P=1
Повторять для K=1 до N
P=P*K
Конец повтора
Вывод P
при N=5 будет:
a. 5;
b. 115;
c. 120;
d. 20;
e. 130;
Правильный ответ к заданию 3
Результатом выполнения алгоритма:
Ввод N
P=1
Повторять для K=1 до N
P=P*K
Конец повтора
Вывод P
при N=5 будет:
a. 5;
b. 115;
c. 120;
d. 20;
e. 130;
Задание 4
Определите результат вычисления факториала,
представленного в словесном алгоритме:
N=3
K=1
N!=1
Пока K<=N делать:
N!=N!*K
K=K+1
Конец пока
Вывод N!
a. N!=9
b. N!=6
c. N!=3
d. N!=12
Правильный ответ к заданию 4
Определите результат вычисления факториала,
представленного в словесном алгоритме:
N=3
K=1
N!=1
Пока K<=N делать:
N!=N!*K
K=K+1
Конец пока
Вывод N!
a. N!=9
b. N!=6
c. N!=3
d. N!=12
Задание 5
Представленная программа выводит …
S=0
N=1
Пока (S+N)<X
Нц
S=S+N
N=N+1
Кц
Вывод S
Варианты ответов к заданию 5
a) Последнее значение суммы подряд
идущих натуральных чисел, начиная с
1, меньшее Х;
b) Минимальное значение суммы подряд
идущих натуральных чисел начиная
с1, большее Х;
c) Количество натуральных чисел,
меньших Х;
d) Все значения сумм подряд идущих
натуральных чисел, начиная с 1 до Х;
Правильный ответ к заданию 5
a) Последнее значение суммы подряд
идущих натуральных чисел, начиная с
1, меньшее Х;
b) Минимальное значение суммы подряд
идущих натуральных чисел начиная с1,
большее Х;
c) Количество натуральных чисел, меньших Х;
d) Все значения сумм подряд идущих
натуральных чисел, начиная с 1 до Х;
Задание 6
Данная программа
Нц для I=1 до N
Вывод A
A=A+D
Кц
выводит …
a)
b)
c)
d)
A чисел, начиная с N, с шагом D
Сумму D чисел, начиная с А, с шагом N
N чисел, начиная с А, с шагом D
Сумму A чисел, начиная с N, с шагом D
Правильный ответ к заданию 6
a)
b)
c)
d)
A чисел, начиная с N, с шагом D
Сумму D чисел, начиная с А, с шагом N
N чисел, начиная с А, с шагом D
Сумму A чисел, начиная с N, с шагом D
Задание 7
После выполнения фрагмента алгоритма
K=0
Нц для i от 1 до 5
Нц для j от 1 до i
k=k+1
кц
кц
Значение переменной k будет равно …
a)
b)
c)
d)
5
15
0
5
Правильный ответ к заданию 7
После выполнения фрагмента алгоритма
K=0
Нц для i от 1 до 5
Нц для j от 1 до i
k=k+1
кц
кц
Значение переменной k будет равно …
a)
b)
c)
d)
5
15
0
5
Download