Разветвляющийся алгоритм. Ветвления
Пример 4. Если х>0, тогда вычислить: y = lg(x) + (a-d) / (d+b); иначе вычислить: y=sin(x)/(a + b) - b/d. Задание Написать программу разветвляющегося алгоритма примера 4. PROGRAM PR2; VAR a, b,d, x, y: real; BEGIN Writeln (‘ввести a, x, b, d’); Read (a, x, b, d); if x>0 then y: = ln(x)/ln(10) + (a-d)/(d+b) else y:=sin (x)/(a + b)-b/d; Writeln (’y=’, y: 7: 3); END. Задание Составить в виде блок-схемы линейный алгоритм примера 4.
Рис. 2. Блок-схема разветвляющегося алгоритма
В блок-схеме видно, что в зависимости от условия x>0 выполняется одна из ветвей алгоритма. После вычисления выводится результат. Разветвляющийся алгоритм предполагает проверку условий для выбора решения. Соответственно в алгоритме появятся две ветви для каждого условия. Пример 5. Словесный разветвляющийся алгоритм. Найти максимальное значение из трёх различных целых чисел, введенных с клавиатуры. Решение. Данный алгоритм предполагает проверку условия. Для этого выбирается любая из трёх переменных и сравнивается с другими двумя. Если она больше, то поиск максимального числа окончен. Если условие не выполняется, то сравниваются две оставшиеся переменные. Одна из них будет максимальной. Блок-схемы. Циклы Циклический алгоритм предусматривает повторение одной операции или нескольких операций в зависимости от условия задачи. Циклический алгоритм со счётчиком циклов Пример 6. В цикле вычислить значение функции z=x*y при условии, что одна из переменных «x»меняется в каждом цикле на единицу, а другая переменная «у»не меняется и может быть любым целым числом. В результате выполнения цикла при начальном значении переменной х=1 можно получить таблицу умножения. Алгоритм этой задачи приводится на рис. 3. Задание Составить в виде блок-схемы циклический алгоритм примера 6.
Рис.3. Блок-схема циклического алгоритма со счётчиком циклов
В примере 6 дано количество циклов. Пока не выполнится заданное количество циклов, повторение тела цикла продолжается. Задание Написать программу циклического алгоритма примера 6. PROGRAM PR3; Var x, y, z, i, n :integer; begin writeln (‘ввести x,y, количество циклов-n’); readln (x,y,n); for i:=1 to n do begin z:=x*y; writeln (‘x= ’, x, ‘ y= ’, y, ‘ z= ’, z); x:=x+1; End; End. ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|