Л3_Алгоритмические конструкции.ppt
- Количество слайдов: 30
АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ
Алгоритм линейной структуры Линейным называется такой алгоритмический процесс, при котором все этапы решения задачи выполняются в естественном порядке следования записи этих этапов. Для линейной структуры характерно, что порядок выполнения этапов не зависит n ни от исходных данных, n ни от результатов выполнения предыдущих этапов.
Пример: Этап 1. n Вычислить высоту треугольника, опущенную на сторону а, по известным значениям длин сторон a, b, c. n Входными данными являются длины сторон треугольника a, b, c (вещественного типа). n Выходным данным является значение высоты треугольника hа, опущенной на сторону а (вещественного типа).
Этап 2. Математическое описание решения задачи. Площадь треугольника можно вычислить по формуле (1) или по формуле Герона , (2) где ha – высота, опущенная на сторону a; a, b, c – длины сторон; p = (a+b+c)/2 – полупериметр треугольника.
Из выражений (1) и (2) получаем формулу для вычисления высоты треугольника: (3) Математическое описание решения задачи выполнено.
Этап 3. Разработка алгоритма решения задачи. Словесное описание алгоритма решения 1. Запросить значения длин сторон треугольника a, b, c. 2. Присвоить переменной р значение полупериметра треугольника p : = (a+b+c)/2 3. Присвоить переменной h значение высоты треугольника, опущенной на сторону а: 4. Сообщить значение высоты треугольника h.
Свойства команды присваивания: n Пока переменной не присвоено значение, она остается неопределенной (не положа не берут) n Значение, присвоенное переменной, сохраняется в ней вплоть до выполнения следующей команды присваивания этой переменной n Новое значение, присвоенное переменной, заменяет (затирает) ее предыдущее значение.
Графическое описание алгоритма. начало А Ввод a, b, c Вывод h А конец
Алгоритм разветвляющейся структуры Ветвлением или развилкой называется такой алгоритмический процесс, в котором выбор направления и характера обработки информации зависит от результатов проверки выполнения логического условия.
Каждое отдельное направление обработки информации называется ветвью. В зависимости от характера логического условия ветвящийся процесс может состоять из двух и более ветвей. Для данной алгоритмической структуры характерно, что в любой конкретный момент ее реализации осуществляется обработка только одной из ветвей, а выполнение остальных исключается.
Пример: Этап 1. n Найти корни квадратного уравнения вида ax 2+bx+c=0. n Входными данными являются коэффициенты a, b, c (вещественного типа) при степенях х. n Выходными данными являются значения корней Х 1, Х 2 (вещественного типа) или сообщение о невозможности решения.
Этап 2. Математическое описание решения задачи. Решение уравнения зависит от значений коэффициентов а, b, с: n если а = 0, b = 0, с = 0, то любое х — решение уравнения; {0=0} n если а = 0, b = 0, с <> 0, то уравнение действительных решений не имеет; {3=0} n если а = 0, b <> 0 , с <> 0, то это линейное уравнение, которое имеет одно решение х = -с/b; {3 x+5=0}
n если а <> 0 и d =b 2 - 4 ac < 0, то уравнение не имеет вещественных корней n если a<>0 и d=b 2 - 4 ac >= 0, то уравнение имеет два вещественных корня:
Этап 3. Разработка алгоритма решения задачи
Словесное описание алгоритма Запросить а, b, c Если а=0 то Если b=0 то Если с=0 то Сообщить «Решение – любое х» иначе Сообщить «Нет решений» кв { конец ветвления} иначе х: =-c/b, Сообщить х кв
Словесное описание алгоритма иначе d: =b 2 -4 ac Если d<0 то Сообщить «Нет вещественных корней» иначе Сообщить «Х 1=» , Х 1, «Х 2=» , Х 2 кв кв
Алгоритм циклической структуры Циклический процесс представляет собой алгоритмическую структуру, реализующую многократно повторяющиеся однотипные этапы обработки данных. Многократно повторяющийся участок алгоритма называется телом цикла. В качестве тела цикла могут выступать линейные, ветвящиеся и циклические структуры, а также сочетания этих структур.
При разработке алгоритма циклической структуры выделяют следующие понятия: n параметр цикла – величина, с изменением которой связано количество повторов; n начальное и конечное значения параметра цикла; n шаг цикла – значение, на которое изменяется параметр цикла при каждом повторении.
Составные части цикла: n Подготовка цикла: задание начального значения, определение конечного значения и шага изменения для параметра цикла. n Тело цикла: выполнение повторяющейся последовательности действий; n Увеличение (уменьшение) параметра цикла на величину шага n Проверка условия продолжения цикла.
В зависимости от способа завершения цикла различают: n циклы с заранее известным количеством повторений (цикл с параметром) n циклы с заранее неизвестным количеством повторений (итераций).
По способу организации проверки условия выхода из цикла различают: n циклы с предусловием (предварительная проверка условия повторения) n циклы с постусловием (проверка условия повторения после выполнения тела цикла)
Работа цикла с предусловием (ЭТО НЕ ОБОЗНАЧЕНИЕ В БЛОК-СХЕМЕ!!!) нет Проверка условия да Тело цикла Изменение параметра
Цикл с предусловием организует выполнение тела цикла заранее неизвестное число раз. Выход из цикла осуществляется, если некоторое логическое выражение окажется ложным. Т. к. условие проверяется в начале каждой итерации (прохода), то тело цикла может не выполниться ни разу.
Работа цикла с постусловием (ЭТО НЕ ОБОЗНАЧЕНИЕ В БЛОК-СХЕМЕ!!!) Тело цикла Изменение параметра нет Проверка условия да
Цикл с постусловием организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений (итераций). Тело цикла выполняется всегда хотя бы один раз. При истинности некоторого логического выражения осуществляется выход из цикла.
Работа цикла с параметром Задание начала, конца, проверка конца Тело цикла Изменение параметра
Пример: Этап 1. n Вычислить n! (n-факториал) n Входным данным является целое положительное число n. n Выходным данным является значение F=n!
Этап 2. Математическое описание решения задачи.
Этап 3. Разработка алгоритма решения задачи начало n F: =1 i<=n F: =F*i i: =i+1 F конец
Словесное описание алгоритма решения 1. Запросить значение n 2. Присвоить переменной F значение 1 3. Присвоить переменной i значение 1 4. Пока i<=n повторять: Присвоить переменной F значение F*i Присвоить переменной i значение i+1 5. Сообщить значение F.


