59
Алгоритмическ ая конструкция ЦИКЛ

алгоритм циклический

Embed Size (px)

Citation preview

Page 1: алгоритм циклический

Алгоритмическая конструкция

ЦИКЛ

Page 2: алгоритм циклический

Цикл представляет собой алгоритмическую

конструкцию, в которой многократно выполняется

одна и та же последовательность шагов, называемая телом цикла.

Page 3: алгоритм циклический

Каждое однократное исполнение тела цикла

называется итерацией. Если тело цикла было выполнено

N раз, говорят, что было произведено N итераций.

Page 4: алгоритм циклический

для того, чтобы определить момент

прекращения выполнения тела цикла, используется

условие цикла.

Page 5: алгоритм циклический

Если при истинности условия цикл продолжается, то такое

условие называется условием продолжения цикла. Иными

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

Page 6: алгоритм циклический

Если при истинности условия цикл завершается, то такое

условие называется условием завершения цикла. В этом

случае цикл продолжается до тех пор, пока условие цикла

не станет истинным.

Page 7: алгоритм циклический

Различают циклы с проверкой условия перед выполнением

очередной итерации и циклы с проверкой условия после выполнения очередной

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

Page 8: алгоритм циклический
Page 9: алгоритм циклический

Тело цикла с постусловием всегда выполнится хотя бы один

раз.В блок-схеме примера с

алгоритмом Евклида используется цикл с

предусловием завершения.

Page 10: алгоритм циклический

Условие завершения легко превратить в условие

продолжения и наоборот, применяя операцию отрицания

к содержащемуся в условии высказыванию.

Page 11: алгоритм циклический

В языках программирования высокого уровня существуют

различные операторы циклов, в том числе реализующие циклы с заранее заданным количеством

итераций, так называемые циклы со счетчиком.

Page 12: алгоритм циклический

Цикл со счетчиком состоит из заголовка и тела цикла. В

заголовке указывается начальное и конечное значение счетчика. На каждой итерации

значение счетчика автоматически увеличивается.

Цикл завершается, когда счетчик достигнет конечного значения.

Page 13: алгоритм циклический

Фактически, цикл со счетчиком представляет собой

разновидность цикла с предусловием продолжения,

заключающемся в том, что значение счетчика находится в

заданных границах.

Page 14: алгоритм циклический

Технология решения задачи на ЭВМ.

Page 15: алгоритм циклический

Часто задача, которую требуется решить, сформулирована не на

математическом языке. Для решения на компьютере ее сначала нужно привести к

форме математической задачи, а потом уже программировать.

Page 16: алгоритм циклический

Работа по решению таких задач с использованием

компьютера проходит через следующие этапы:

Page 17: алгоритм циклический

1. Постановка задачи.2. Математическая формализация.3. Построение алгоритма.4. Составление программы на языке программирования.5. Отладка и тестирование программы. 6. Проведение расчетов и анализ полученных результатов.

Page 18: алгоритм циклический

Эту последовательность называют

технологической цепочкой решения задачи

на ЭВМ.

Page 19: алгоритм циклический

На этапе постановки задачи должно быть четко

определено, что дано и что требуется найти.

Page 20: алгоритм циклический

Второй этап — математическая

формализация. Здесь задача переводится на язык математических формул, уравнений,

отношений.

Page 21: алгоритм циклический

Третий этап — построение алгоритма. Мы описывали

алгоритмы с помощью блок-схем.

Page 22: алгоритм циклический

Проследим все этапы технологической цепочки на примере конкретной

задачи.

Page 23: алгоритм циклический

1. Постановка задачи. Дано N кубиков, на которых написаны

разные буквы. Сколько различных N-буквенных слов

можно составить из этих кубиков (слова не обязательно

должны иметь смысл)?

Page 24: алгоритм циклический

Искомую целочисленную величину обозначим буквой F. Тогда постановка задачи

выглядит так:Дано:N Найти: F.

Page 25: алгоритм циклический

2. Математическая формализация. Получим расчетную формулу.

Сначала рассмотрим несколько конкретных примеров. Имеются два кубика с буквами И К . Ясно, что из них можно составить два

слова:ИК КИ

Page 26: алгоритм циклический

Добавим к ним третью букву С. Теперь число разных

слов будет в три раза больше предыдущего, т.е.

равно 6:ИКС КИС ИСК СКИ КСИ СИК

Page 27: алгоритм циклический

Если добавить четвертую букву, например А, то число

слов возрастет в четыре раза и станет равным 24: КИСА КИАС КСИА КСАИ КАИС КАСИ ИКСА ИКАО ИСКА ИСАК ИАКС ИАСК СКИА СКАИ СИКА СИАК САКИ САИК АКИС АКСИ АИКС АИСК

АСКИ АСИК.

Page 28: алгоритм циклический

Количество различных комбинаций из N предметов, получаемых изменением их

порядка, называется числом перестановок. Это число

выражается функцией от N, которая называется

факториалом и записывается так: N!

Page 29: алгоритм циклический

1!= 12! = 1х2 = 2З! = 1х2х3 = 64! = 1х2х3х4 = 245!= 1х2х3х4х5= 120и т.д.

Page 30: алгоритм циклический

Теперь вернемся к формулировке задачи. Если N обозначает

количество букв, a F — количество слов из этих букв, то

расчетная формула такая:F=N!= l2..N

Page 31: алгоритм циклический

Построение алгоритма. Поскольку алгоритм должен

быть независимым от данного значения N, то его нельзя

сделать линейным.

Page 32: алгоритм циклический

Дело в том, что для разных N надо выполнить разное число умножений. В таком случае с

изменением N линейная программа должна менять

длину.Алгоритм решения данной задачи будет циклическим.

Page 33: алгоритм циклический

Цикл — это команда исполнителю многократно

повторить указанную последовательность

команд.

Page 34: алгоритм циклический
Page 35: алгоритм циклический

Шаг Операция N F R Условие1 ввод N 3 - -2 F:=1 1 -3 R:=1 1

Page 36: алгоритм циклический

Шаг Операция N F R Условие1 ввод N 3 - -2 F:=1 1 -3 R:=1 14 R<=N 1<=3,да

Page 37: алгоритм циклический

Шаг Операция N F R Условие1 ввод N 3 - -2 F:=1 1 -3 R:=1 14 R<=N 1<=3,да5 F:=FxR 16 R:=R+1 2

Page 38: алгоритм циклический

Шаг Операция N F R Условие1 ввод N 3 - -2 F:=1 1 -3 R:=1 14 R<=N 1<=3,да5 F:=FxR 16 R:=R+1 27 R<=N 2<=3,да

Page 39: алгоритм циклический

Шаг Операция N F R Условие1 ввод N 3 - -2 F:=1 1 -3 R:=1 14 R<=N 1<=3,да5 F:=FxR 16 R:=R+1 27 R<=N 2<=3,да8 F:=FxR 29 R:=R+1 3

Page 40: алгоритм циклический

Шаг Операция N F R Условие1 ввод N 3 - -2 F:=1 1 -3 R:=1 14 R<=N 1<=3,да5 F:=FxR 16 R:=R+1 27 R<=N 2<=3,да8 F:=FxR 29 R:=R+1 310 R<=N 3<=3,да

Page 41: алгоритм циклический

Шаг Операция N F R Условие1 ввод N 3 - -2 F:=1 1 -3 R:=1 14 R<=N 1<=3,да5 F:=FxR 16 R:=R+1 27 R<=N 2<=3,да8 F:=FxR 29 R:=R+1 310 R<=N 3<=3,да11 F:=FxR 612 R:=R+1 413 R<=N 4<=3,нет14 вывод F 615 конец

Page 42: алгоритм циклический

Чтобы составить программу решения нашей задачи,

нужно научиться программировать циклы на

Паскале.

Page 43: алгоритм циклический

Отладка и тестирование. Под отладкой программы.

понимается процесс испытания работы программы

и исправления обнаруженных при этом ошибок.

Page 44: алгоритм циклический

Обнаружить ошибки, связанные с нарушением правил записи

программы на Паскале и Бэйсике (синтаксические и

семантические ошибки) помогает используемая

система программирования.

Page 45: алгоритм циклический

Пользователь получает сообщение об ошибке, исправляет ее и снова

повторяет попытку исполнить программу.

Page 46: алгоритм циклический

Тест — это конкретный вариант значений

исходных данных, для которого известен

ожидаемый результат.

Page 47: алгоритм циклический

Проведение расчетов и анализ полученных

результатов — этот этап технологической цепочки

реализуется при разработке практически полезных (не учебных)

программ.

Page 48: алгоритм циклический

Алгоритм ЕвклидаРассмотрим следующую задачу: требуется составить программу

определения наибольшего общего делителя (НОД) двух

натуральных чисел.

Page 49: алгоритм циклический

НОД(12,18)=6

Page 50: алгоритм циклический

Обозначим исходные данные как М и N. Постановка задачи выглядит следующим образом:Дано: M,N Найти: НОД(М,N).

Page 51: алгоритм циклический

На рисунке приведена блок-схема алгоритма Евклида. Структура

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

значения М и N не равны друг другу. Ветвление заменяет большее

из двух значений на их разность.

Page 52: алгоритм циклический
Page 53: алгоритм циклический

Шаг Операция M N Условие

1 Ввод М, N 32 24

Page 54: алгоритм циклический

Шаг Операция M N Условие

1 Ввод М, N 32 242 M≠N 32≠24, да

Page 55: алгоритм циклический

Шаг Операция M N Условие

1 Ввод М, N 32 242 M≠N 32≠24, да3 M>N 32>24,да4 M:=M-N 8

Page 56: алгоритм циклический

Шаг Операция M N Условие

1 Ввод М, N 32 242 M≠N 32≠24, да3 M>N 32>24,да4 M:=M-N 85 M≠N 8≠24, да6 M>N 8>24, нет7 N:=N-M 16

Page 57: алгоритм циклический

Шаг Операция M N Условие

1 Ввод М, N 32 242 M≠N 32≠24, да3 M>N 32>24,да4 M:=M-N 85 M≠N 8≠24, да6 M>N 8>24, нет7 N:=N-M 168 M≠N 8 ≠16, да9 M>N 8>16, нет10 N:=N-M 8

Page 58: алгоритм циклический

Шаг Операция M N Условие

1 Ввод М, N 32 242 M≠N 32≠24, да3 M>N 32>24,да4 M:=M-N 85 M≠N 8≠24, да6 M>N 8>24, нет7 N:=N-M 168 M≠N 8 ≠16, да9 M>N 8>16, нет10 N:=N-M 811 M≠N 8≠8, нет12 вывод M 813 конец

Page 59: алгоритм циклический

Общая схема

выбора диагноз

а