Скачать презентацию ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ И ПРОГРАММЫ ОСНОВНЫЕ ПОНЯТИЯ Процесс Скачать презентацию ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ И ПРОГРАММЫ ОСНОВНЫЕ ПОНЯТИЯ Процесс

Циклические алгоритмы.ppt

  • Количество слайдов: 25

ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ И ПРОГРАММЫ ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ И ПРОГРАММЫ

ОСНОВНЫЕ ПОНЯТИЯ Процесс называется циклическим, если в нем имеет место многократное вычисление по одним ОСНОВНЫЕ ПОНЯТИЯ Процесс называется циклическим, если в нем имеет место многократное вычисление по одним и тем же формулам, причем каждый раз вычисление производится после подстановки в эти формулы новых исходных значений. Переменная, управляющая движением циклического вычислительного процесса, называется переменной цикла. Параметрами цикла называются конкретные значения переменной цикла, определяющие характеристики циклического процесса (начальное и конечное значение переменной цикла, шаг изменения).

ТИПЫ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ В зависимости от способа изменения переменной цикла, от способа контроля окончания ТИПЫ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ В зависимости от способа изменения переменной цикла, от способа контроля окончания цикла, от способа получения окончательного результата различают следующие основные типы циклических алгоритмов: 1. Простой цикл а) простой цикл; б) простой цикл со счетчиком. 2. Цикл с переадресацией. 3. Итерационный цикл. 4. Комбинированные циклы а) циклы с накоплением; б) вложенные циклы; в) комбинированные сложные циклы.

ПРОСТОЙ ЦИКЛ Простым циклом называется такой вид цикла, когда известен закон изменения переменной цикла, ПРОСТОЙ ЦИКЛ Простым циклом называется такой вид цикла, когда известен закон изменения переменной цикла, причем переменная цикла совпадает с аргументом вычисляемых математических зависимостей, а число повторений цикла заранее известно. Признаки простого цикла. 1. Способ изменения переменной цикла заключается в том, что каждое ее последующее значение вычисляется на основаниипредыдущегопореккурентнойформуле, например 2. Результаты вычислений получаем и выводим на печать при каждом прохождении цикла. 3. Контроль окончания цикла осуществляется сравнением текущего значения переменной цикла с ее конечным значением.

Пример 1. Вычислить таблицу значений функции для аргумента х, изменяющегося от xn до xk Пример 1. Вычислить таблицу значений функции для аргумента х, изменяющегося от xn до xk с шагом dx. Блок 2 называется начальной частью циклического алгоритма. В этом блоке задается начальное значение переменной цикла. Блоки 3 -5 – это тело цикла, с их помощью реализуется циклический вычислительный процесс. Выполнение операторов тела цикла называется его итерацией. Блок 6 – это логическая часть цикла. Этот блок в зависимости от результата проверки условия обеспечивает выход из цикла или очередное прохождение тела цикла. начало 1 xn, xk, dx 2 x=xn 3 y=x 2 4 x, y 5 x=x+dx Да 6 x<=x k 7 Нет конец

Пример 2. По линии электропередач постоянного напряжения передается электроэнергия мощностью начало 1 U, Rл Пример 2. По линии электропередач постоянного напряжения передается электроэнергия мощностью начало 1 U, Rл R 2 Rн=0 где U – напряжение в начале линии; RН – сопротивление нагрузки; RЛ – сопротивление линии. Рассчитать таблицу зависимости 3 4 Rн, Р 5 Rн=Rн+ R изменяя RН от 0 до 10 RЛ с шагом R. Да 6 Rн<= 10 Rл Нет 7 конец

ПРОСТОЙ ЦИКЛ СО СЧЕТЧИКОМ Так количество выполнений цикла в простом цикле может быть вычислено ПРОСТОЙ ЦИКЛ СО СЧЕТЧИКОМ Так количество выполнений цикла в простом цикле может быть вычислено заранее, то контроль за окончанием цикла можно организовать путем подсчета уже выполненных циклов и сравнением этого количества с наперед заданным. При наличии параметров переменной цикла xn, xk, dx число итераций определяется по формуле: Простой цикл со счетчиком – это такой вид цикла, когда известно общее число циклов и вводится дополнительная переменная-счетчик, учитывающая число осуществленных проходов по телу цикла, а выход из данной структуры алгоритма осуществляется при достижении значением счетчика заданной величины. Алгоритм простого цикла со счетчиком можно реализовать двумя способами.

1 способ. В этом примере вводится дополнительная специальная переменная i, которая называется счетчиком, она 1 способ. В этом примере вводится дополнительная специальная переменная i, которая называется счетчиком, она становится переменной цикла. То есть в простом цикле со счетчиком происходит разделение переменной цикла и математического аргумента. Все остальные признаки простого цикла сохраняются, а закон изменения переменной цикла меняется. Реккурентная формула в этом случае принимает вид: начало 1 xn, xk, dx 2 x=xn i=1 3 Нет i<= N 4 Да y=sin(x) 5 x, y 6 x=x+dx i=i+1 7 конец

2 способ. Цикл организован с помощью блока модификации. Этот блок объединяет в себе функции 2 способ. Цикл организован с помощью блока модификации. Этот блок объединяет в себе функции трех блоков: 1) присвоение начального значения переменной цикла; 2) изменение ее текущего значения; 3) проверка условия выхода из цикла. начало 1 2 xn, xk, d x x=xn 3 i=1, N, 1 4 y=sin(x) 5 x, y 6 x=x+dx 7 конец

ЦИКЛЫ С НАКОПЛЕНИЕМ В циклах с накоплением требуется накопить значение суммы или произведения некоторой ЦИКЛЫ С НАКОПЛЕНИЕМ В циклах с накоплением требуется накопить значение суммы или произведения некоторой последовательности. Для этого используется переменная-накопитель. начало 1 Ввод N В случае накопления суммы ее начальным значением должен быть 0 (нуль). 2 При накоплении произведения начальным значением накопителя должна быть 1 (единица). 3 Пример 1. Накопление суммы Вычислить сумму N слагаемых по формуле S=0 i=1 Да S=S+1/ i i=i+1 4 i<=N Нет 5 Вывод S 6 конец

ЦИКЛЫ С НАКОПЛЕНИЕМ Пример 2. Накопление произведения начало 1 Ввод M Вычислить значение факториала ЦИКЛЫ С НАКОПЛЕНИЕМ Пример 2. Накопление произведения начало 1 Ввод M Вычислить значение факториала М! 2 М!=1*2*3*4*…. . *М P=1 i=1 3 Да P=P* i i=i+1 4 i<= M 5 Нет Вывод P 6 конец

ИТЕРАЦИОННЫЕ ЦИКЛЫ Итерационным называется такой вид простого цикла, который обладает следующими признаками: 1. Количество ИТЕРАЦИОННЫЕ ЦИКЛЫ Итерационным называется такой вид простого цикла, который обладает следующими признаками: 1. Количество повторений цикла заранее неизвестно, так как выход из цикла определяется полученным результатом. 2. Значения, полученные в текущем цикле, становятся исходными данными для следующего цикла. 3. Окончательное значение результата одновременно с выходом из цикла. получается

Пример 1. Определить номер того члена ряда, абсолютная величина которого не превышает некоторого заданного Пример 1. Определить номер того члена ряда, абсолютная величина которого не превышает некоторого заданного малого числа (10 -3 > > 10 -4). Это формула общего члена ряда, с помощью которой можно найти значение любого члена ряда, подставляя вместо n номер члена ряда и величину Х.

Задача сводилась бы к простому вычислению очередного члена ряда до достижения условия выхода из Задача сводилась бы к простому вычислению очередного члена ряда до достижения условия выхода из цикла, но: 1) В знаменателе формулы общего члена есть факториал; 2) Требуется (-1) возводить в степень. Как мы уже знаем, накопление факториала – это отдельный циклический процесс, что усложняет решение задачи. В некоторых языках программирования напрямую возвести в степень (-1) просто невозможно, нужно применять специальные методы. Решить эти проблемы можно с помощью нахождения рекуррентной формулы. Рекуррентная формула для ряда – это выражение, связывающее любые два соседних члена ряда.

Найдем рекуррентную формулу для заданного ряда. Un, Un+1 – предыдущий и последующий члены ряда Найдем рекуррентную формулу для заданного ряда. Un, Un+1 – предыдущий и последующий члены ряда (соседи). Преобразования в формуле ведутся с учетом того, что: 1) При делении показатели степеней вычитаются. 2) Старшее значение факториала необходимо разложить до младшего.

Теперь, зная предыдущий член ряда и рекуррентную формулу, можно найти следующий член ряда, повторяя Теперь, зная предыдущий член ряда и рекуррентную формулу, можно найти следующий член ряда, повторяя эти действия до достижения заданной точности. Х – аргумент. Е – точность. U – значение члена ряда. n – номер члена ряда. начало 1 Ввод X, E 2 U=X n=1 Нет 3 |U|>E Да 5 4 Вывод n, U U=U*(-X/(n+1)) n=n+1 6 конец

Пример 2. Вычислить сумму членов ряда. Вычисления вести до тех пор, пока абсолютная величина Пример 2. Вычислить сумму членов ряда. Вычисления вести до тех пор, пока абсолютная величина разности между двумя соседними членами ряда не станет меньше некоторой малой величины (10 -3> >10 -4). Х – аргумент. Е – точность. U 1, U 2 – предыдущий и последующий члены ряда (соседи). S – сумма членов ряда. n – номер члена ряда. начало Ввод X, Е n=1 U 1=X S=0 S=S+U 1 U 2=U 1* (-Х/(n+1)) U 1=U 2 n=n+1 Нет Да Вывод S, n конец

ПОНЯТИЕ О МАССИВЕ Пусть требуется решить задачу табулирования функции для неупорядоченной последовательности аргумента Х, ПОНЯТИЕ О МАССИВЕ Пусть требуется решить задачу табулирования функции для неупорядоченной последовательности аргумента Х, насчитывающей сто элементов Х 1, Х 2, …, Х 100 которые требуется сохранить до конца работы программы. Так как при отсутствии закономерности изменения аргумента рекуррентную формулу составить невозможно, то в таком случае простой цикл неприменим. Для решения задачи необходимо ввести некоторую закономерность искусственно. Всю заданную последовательность значений организуют в структуру, называемую массивом, и обозначают общим именем, а каждое отдельное значение последовательности обозначается тем же именем с уточнением порядкового номера. Тогда в общем виде отдельное значение аргумента с номером i называется элементом массива и обозначается, например, Хi.

Массивом называется совокупность данных одного типа, объединенных общим именем и структурированных системой индексов. Характеристики Массивом называется совокупность данных одного типа, объединенных общим именем и структурированных системой индексов. Характеристики массива: • тип – общий тип всех элементов массива; • размерность (ранг) – количество индексов массива; • диапазон изменения индекса (индексов) – определяет количество элементов в массиве. Одномерный массив – это массив, в котором элементы нумеруются одним индексом. Если в массиве хранится таблица значений (матрица), то такой массив называется двумерным, а его элементы нумеруются двумя индексами – номером строки и столбца соответственно.

Обратиться к каждому элементу массива можно по номеру (индексу или нескольким индексам). В качестве Обратиться к каждому элементу массива можно по номеру (индексу или нескольким индексам). В качестве индекса элемента массива используется целая константа или переменная целочисленного типа. Элементы массива называют переменными с индексами (индексированными переменными). Использование элементов массива в качестве обычных переменных не дает существенной выгоды. Массивы ценны тем, что их индексы сами могут быть переменными или выражениями, обеспечивая доступ не к одному элементу, а к последовательности элементов. Обработка массивов производится при изменении индексов элементов. Например, следующие переменные удобно применять для просмотра в цикле элементов (или групп элементов) массива А: A i — для всех элементов; A 2 i — для элементов, стоящих на четных местах; А 2 i-1 — для элементов, стоящих на нечетных местах.

ЦИКЛЫ С ПЕРЕАДРЕСАЦИЕЙ Так как элементы массива в области памяти записаны подряд, то индекс ЦИКЛЫ С ПЕРЕАДРЕСАЦИЕЙ Так как элементы массива в области памяти записаны подряд, то индекс элемента связан с адресом ячейки памяти, в которой он расположен. Изменение индекса элемента вызывает изменение адреса ячейки, то есть переадресацию. Циклы, в которых закономерность изменения управляющей переменной состоит в переадресации, называются циклами с переадресацией. Тогда решение задачи о табулировании функции примет вид, представленный на блок-схеме. Значение функции Y в каждом цикле последовательно записывается в одну и ту же ячейку памяти, при этом предыдущее значение результата уничтожается. начало 1 N, X 2 i=1, N 3 Y=sin(xi) 4 Xi, Y 5 конец X – массив из N элементов

Признаки цикла с переадресацией 1. Количество выполнений циклов известно заранее. 2. Математическая закономерность изменения Признаки цикла с переадресацией 1. Количество выполнений циклов известно заранее. 2. Математическая закономерность изменения аргумента отсутствует. 3. Обработке подлежит совокупность значений аргумента, сведенная в упорядоченный массив. 4. В качестве переменной цикла используются индексы элементов массива. 5. Алгоритм носит черты простого цикла со счетчиком. 6. Для сохранения в памяти всех результатов вычислений необходимо организовать массив и заполнять его в цикле в процессе решения задачи. начало 1 N, X 2 i=1, N 3 Yi=sin(xi) 4 Xi, Yi 5 конец X , Y – массивы из N элементов

Пример 4. Определить диаметр вала d в расчете на изгиб в отдельных сечениях. начало Пример 4. Определить диаметр вала d в расчете на изгиб в отдельных сечениях. начало 1 M, 2 Известно, что вал изготовлен из стали марки ст. 45 и кг/см 2. Значения приведенного момента в разных частях вала – 150, 190, 250, 180, 140, 110, 80 кг/см 2. Отпечатать таблицу значений и d. i=1, 7 3 4 Mi, d 5 конец M – массив из 7 элементов

ВЛОЖЕННЫЕ ЦИКЛЫ В теле любого циклического алгоритма могут находиться циклы. При этом цикл, содержащий ВЛОЖЕННЫЕ ЦИКЛЫ В теле любого циклического алгоритма могут находиться циклы. При этом цикл, содержащий в себе другой, называют внешним, а цикл, находящийся в теле первого, – внутренним (или вложенным). Правила организации внешнего и внутреннего цикла такие же, как и для простого цикла. Обратите внимание – при составлении алгоритмов вложенных циклов необходимо соблюдать следующее дополнительное условие: Все действия внутреннего цикла должны полностью располагаться в теле внешнего цикла. i=N 1, N 2, 1 операторы j=M 1, M 2, 1 тело внутреннего цикла Выход из цикла

При вложении циклов внутренний цикл выполняется полностью от начального до конечного значения параметра при При вложении циклов внутренний цикл выполняется полностью от начального до конечного значения параметра при неизменном значении параметра внешнего цикла. Затем значение параметра внешнего цикла изменяется на величину шага, и опять от начала и до конца выполняется вложенный цикл. И так до тех пор, пока значение параметра внешнего цикла не станет больше конечного значения, определенного во внешнем цикле.