Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгор_ТХТК_пособие.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.6 Mб
Скачать

1.2 Структуры алгоритмов

Основные структуры алгоритмов - это ограниченный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий. Такие структуры рекомендуются при использовании так называемого структурного подхода к разработке алгоритмов и программ. Структурный подход предполагает использование только нескольких основных структур, комбинация которых дает все многообразие алгоритмов и программ.

1.2.1 Алгоритм линейной структуры

Алгоритм линейной структуры (следование) - алгоритм, в котором все действия выполняются последовательно друг за другом. Такой порядок выполнения действий называется естественным.

П ример 1.1 Ввести длины a, b, c трех сторон треугольника. Вычислить его площадь, используя формулу Герона: S=(p*(p-a)(p-b)(p-c))½, где p – полупериметр треугольника (р=(а+b+c)/2). Для того чтобы рассчитать S, необходимо иметь численные значения р, а, b, c. Можно рассчитать р по формуле, а вот значения а, b, c должны быть заданы заранее, иначе задачу решить невозможно.

Пример 1.2 Вычислить значение функций Y и Z. Исходные данные: a, b, c. Y и X должны быть определены раньше, чем Y и Z так как входят в расчетную формулу для Y и для Z.

1.2.2 Алгоритм разветвляющейся структуры

На практике редко удается представить схему алгоритма решения задачи в виде линейной структуры. Часто в зависимости от каких- либо значений промежуточных результатов необходимо организовать вычисление либо по одним, либо по другим формулам. Ветвление - такая схема, в которой предусмотрено разветвление указанной последовательности действий на два направления в зависимости от итога проверки заданного условия. В схемах такой структуры используется логический блок.

Пример 1.3 Рассчитать Y

Разработка алгоритма. В этой задаче должно быть задано Х. Далее анализируется Х. Если Х<0, то вычисляется по первой формуле, если это условие не выполняется, то выполняется второе условие X 0, так как условия Х<0 и X 0 взаимоисключающие, и Y вычисляется по первой формуле.

Рисунок 1.5- Схема алгоритма разветвляющей структуры

Пример 1.4. На плоскости с центром в начале координат проведена окружность радиусом R. Пользователь вводит координаты (X, Y) некоторой точки. Следует вывести на дисплей ответ: находится ли эта точка внутри (в том числе и на границе) круга, или вне его.

1.2.3 Алгоритм циклической структуры

Алгоритмы, отдельные действия в которых многократно повторяются, называются алгоритмами циклической структуры (повторение) Совокупность действий алгоритма, связанную с повторением, называют циклом.

Для организации циклов в алгоритмах необходимо предусмотреть:

- подготовку цикла – задание начальных значений переменным цикла перед первым его выполнением;

- тело цикла – действия, повторяемые в цикле для различных значений переменных цикла;

- модификацию/изменение значений переменных цикла перед каждым новым его повторением;

- управление циклом – проверку условия продолжения/окончания цикла и переход на повторение цикла или его окончание

В зависимости от того, где осуществляется проверка условия продолжения или окончания цикла, последний относится к виду:

- цикла с предусловием, когда цикл начинается с проверки условия продолжения цикла;

- цикла с постусловием, когда условие проверяется после выполнения тела цикла.

Рисунок 1.7 – Общие схемы циклического алгоритма

Пример 1.5 Определить средний рост студентов в группе.

Разработка алгоритма. Исходной информацией для решения ими задачи являются число студентов в группе и рост каждого студента. В этой задаче мы встречаемся с распространенной задачей расчета суммы. Сумма получается путем накопления слагаемых в какой-либо переменной. Накопление осуществляется в цикле. Начальному значению суммы присваиваемся значение ноль. В цикле к текущему значению суммы прибавляется значение очередного слагаемого S = S + R.

Ч исло студентов в группе обозначим N. Это и исходная величина. В переменной S будем накапливать сумму. Зададим S значение мот, Подсчет номера студента будем осуществлять в переменной i. Начнем с первого студента i = 1. Вводим рост первого студента. К предыдущему значению суммы i, т.е. нулю, прибавим рост первого студента и результат присвоим переменной S. Перейдем к следующему шагу i =.i + 1 = 1 + 1 = 2. У переменной i теперь, значение 2. Выполним проверку выхода из цикла. Если i не превысило еще значения N, то мы возвращаемся к блоку 5 и вводим рост следующего студент. К предыдущему значению суммы, а это рост первого студента, прибавляем рост второго студента и результат записываем в переменную S. В переменной S теперь будет храниться сумма двух значений: рост первого студента и рост второго студента. Далее переходим к следующему шагу. Цикл повторится N раз и в переменной S накопится сумма всех значений ростов студентов (рисунок 1.8).

Средний рост определяем по формуле S = S/N. Необходимо обратить внимание на форму записи данного выражения. В правой и в левой части этого выражения наименование одной и той же переменной.

П ример 1.6 Вычислить значение функции Y=Sin(X) для аргумента, изменяющегося в некотором диапазоне Xk ≤X≥ Xn

Границы диапазона и шаг его прохождения вводить с клавиатуры. Выводить на экран соответствующие значения аргумента и функции.

Рис. 1.9 – Схема примера 1.6