1. Линейные алгоритмы – последовательность блоков, каждый из которых имеет по одному входу и одному выходу, и выполняется в программе один раз (рис. 2, 3).
Рассмотрим алгоритм линейной структуры на примере определения площади треугольника по трем известным сторонам а, b и с с использованием теоремы Герона (рис. 3):
, где
.
Рисунок 2 – Алгоритм линейной структуры Рисунок 3 – Алгоритм вычисления площади треугольника по трем сторонам
2. Алгоритм разветвляющегося вычислительного процесса – алгоритм, в котором в зависимости от значений некоторого признака производится выбор одного из нескольких направлений, называемых ветвями. В основе организации разветвления лежит проверка логического условия, которое может быть истинно или ложно. Частный вид логического условия – это операции типа =, ≠, >, <, ≥, ≤.
Примеры алгоритмов разветвляющейся структуры показаны на рис. 4 и 5.
Рисунок 4 – Развилка типа «Если...то...иначе» Рисунок 5 – Развилка типа «Если...то»
Решение квадратного уравнения ах2 + bх + с =0 (рис. 6).
В зависимости от значения подкоренного выражения D = b2 -4acискомые результаты могут быть получены из выражений:
, если D≥0,
, где
,
, если D<0.
Рисунок 6 – Блок-схема алгоритма вычисления корней квадратного уравнения
3. Алгоритм циклического вычислительного процесса включает в себя многократно повторяющиеся участки вычислений для различных значений данных. Циклические алгоритмы по способу организации выхода из цикла можно разделить на арифметические и итерационные. Количество повторений в первых заранее известно или может быть легко вычислено. Количество повторений во вторых – заранее неизвестно. Выход из них осуществляется обычно по достижении заданной точности при последовательном приближении к искомому значению. В таких алгоритмах часто последующий член вычисляют, производя математические операции над предыдущим. Эти вычисления осуществляются на всех шагах цикла по единой формуле, которая называется рекуррентной.
Одна из изменяющихся в арифметическом цикле переменных выбирается в качестве параметра цикла.
Для организации цикла необходимо выполнить три действия
· задать начальное значение параметра цикла;
· задать правило изменения параметра цикла;
· задать условие окончания цикла.
В зависимости от места нахождения условия циклы можно разделить на циклы с предусловием (рис. 7а) и циклы с постусловием (рис. 7б).
а) б)
Рисунок 7. Блок-схема арифметического цикла: а) с предусловием, б) с постусловием
Пример алгоритма арифметической циклической структуры:
вычислить сумму чисел, последовательно вводимых с клавиатуры (рис. 8, 9).
Рисунок 8 – Блок-схема циклического алгоритма вычисления суммы с использованием блоков «процесс» и «решение» Рисунок 9 – Блок-схема циклического алгоритма вычисления суммы с использованием блока «модификация»
ЗАДАНИЕ 1.
Задание. Решить неравенство ах > b (а, b –произвольные действительные числа).
Варианты условий:
1a) a= 0; b> 0 решений нет, например при b = 4; 0∙х > b;
1б) a= 0; b< 0; х – любое число, например при b = -4 0; 0∙х > -4;
2а) а>0; b>0 х>b/a;
2б) а>0; b<0 х>b/а;
3а) a<0; b>0 x<b/a;
3б) а<0; b<0 x<b/a;
При а > 0 и а < 0 решение не зависит от знака b.
ТЕХНОЛОГИЯ РАБОТЫ
При разработке блок-схемы можно использовать редактор диаграмм Microsoft Visio или текстовый процессор Microsoft Office. Методика выполнения работы приведена на рис. 10.
Рисунок 10 – Блок-схема решения неравенства
ЗАДАНИЕ 2.
Построить алгоритм определения квадранта декартовой системы, в котором находится точка с координатами X,Y.
ТЕХНОЛОГИЯ РАБОТЫ
Методика выполнения работы приведена на рис. 11.
Рисунок 11 – Блок-схема определения номера квадранта
ЗАДАНИЕ 3.
Составить алгоритм, имитирующий работу микрокалькулятора. После ввода двух чисел и символа соответствующего арифметического действия, например:2 2 * или 18.35 0.12 / над числами производится арифметическое действие и результат выводится на экран. Признаком конца работы является ввод любого символа отличного от +, -, * или /.
ТЕХНОЛОГИЯ РАБОТЫ
Методика выполнения работы приведена на рис. 12.
Рисунок 12 – Блок-схема алгоритма работы калькулятора
ЗАДАНИЕ 4.
Какие значения А и В будут выведены на экран в результате работы алгоритма на рис. 13?
Варианты ответов:
а) А=7, В=6;
б) А=6, В=2;
в) А=7, В=2;
г) Ошибка.
Рисунок 13 – Блок-схема алгоритма для задачи 4
ТЕХНОЛОГИЯ РАБОТЫ
На рис. 13 показана блок-схема алгоритм программы. Разберем работу алгоритма и найдем верное решение.
1) Присвоим значения переменным А и В (Блок 1).
2) В блоке 2 схемы алгоритма сравним значения 6<3+1, т. е. 6 не меньше 4, следовательно, переходим к блоку 4.
3) В блоке 4 – Значение В станет равно 5 (т. е. к предыдущему значение В =3 прибавим число 2). Переход к блоку 2.
4) Снова сравним значение 6<5+1, условие не выполняется, и переходим на блок 4. Значение В будет равно 7 (т. е. В=5+2=7). Переход к блоку 2.
5) Сравним значения А и В (6<6+1), условие выполняется переходим к блоку 3.
6) Вычислив значения А и В, получим А=6+1=7, В=7-1=6 – (Блок З).
7) На экране в результате работы алгоритма будут выведены числа 7 и 6 – Блок 5.
Правильный ответ – вариант а (см. рис. 13).
ЗАДАНИЕ 5.
Какие значения А и В будут выведены на экран в результате работы алгоритма на рис. 14?
Варианты ответов:
а) А=7, В=6;
б) А=6, В=2;
в) А=7, В=2;
г) Ошибка.
Рисунок 14 – Блок-схема алгоритма для задачи 5
ТЕХНОЛОГИЯ РАБОТЫ
1) Присвоим значения переменным А и В – (Блок 1).
2) В блоке 2 схемы алгоритма сравним значения 6>=3+1, т. е. 6 больше 4, следовательно, переходим к блоку 4.
3) В блоке 4 значение В станет равно 5 (т. е. к предыдущему значение В=3 прибавим число 2). Переход к блоку 2.
4) Снова сравним значение 6=5+1, условие выполняется, и переходим на блок 4. Значение В будет равно 7 (т. е. В=5+2=7). Переход к блоку 2.
5) Сравним значения А и В (6>=7+1), условие не выполняется – переходим к блоку 3.
6) Вычислив значения А и В получим А=6+1=7, В=7-1=6 – Блок 3.
7) На экране в результате работы алгоритма будут выведены числа 7 и 6 – Блок5.
Правильный ответ – вариант а (см. рис. 14).
ЗАДАНИЕ 6.
Дан фрагмент программы:
S:=0
нцдля i от 1 до 10
ввод а
S:=S+a
кц
S:=S/10
вывод S
Данная программа вычисляет:
а) остаток от деления на 10 заданного числа;
б) среднее из десяти чисел, введенных с клавиатуры;
в) сумму десяти чисел, введенных с клавиатуры;
г) долю последнего числа из десяти, введенных с клавиатуры.
ТЕХНОЛОГИЯ РАБОТЫ
Необходимо разобрать работу программы и найти правильный ответ.
1) Задана переменная S и ее начальное значение – 0.
2) Задан цикл, в котором переменная i изменяет свое значение от 1 до 10, т. е. цикл выполняется 10 раз.
3) Вводится значение переменной а (например, вводится число с клавиатуры).
4) Переменная S суммируется с переменной а и результат записывается опять в переменную S.
5) Конец цикла. Программа переходит к строке 2, увеличивает значение переменной i на 1 и сравнивает с 10, затем переходит к строке 3 (если i<=10) или к строке 6 (если i> 10).
6) В цикле переменная S каждый раз суммировалась с переменной а. Таким образом, после завершения цикла в переменной S накапливается сумма 10 чисел а. В строке 6 переменная S делится на 10 (количество чисел, введенных с клавиатуры). Следовательно, в программе сумма 10 чисел делится на 10, что представляет собой среднее из десяти чисел, введенных с клавиатуры. Правильный ответ б).
7) Вывод значения переменной S (например, на экран).
ЗАДАНИЕ 7.
В результате выполнения фрагмента алгоритма
ввод Х, А, В, С
Y:= X^A+B* sin (C)
вывод Y
При вводе значений Х, А, В, С, равных: 5, 2, 467 и 0 соответственно, значение Y будет равно…
а) 25
б) 492
в) 10
г) 49
ТЕХНОЛОГИЯ РАБОТЫ
Самостоятельно решите задачу.
ЗАДАНИЕ 8.
Вычислить значения Y по формуле:
ТЕХНОЛОГИЯ РАБОТЫ
Самостоятельно решите задачу. Составьте блок-схему алгоритма в одной из доступных вам программ.
ЗАДАНИЕ 9.
Какие значения А и В будут выведены на экран в результате работы алгоритма на рис. 15?
Варианты ответов:
а) А=5, В=2;
б) А=7, В=7;
в) А=41, В=66;
г) А=280, В=453.
Рисунок 15 – Блок-схема алгоритма для задачи 9
ТЕХНОЛОГИЯ РАБОТЫ
Необходимо самостоятельно разобрать работу алгоритма и найти верное решение задачи.