SlideShare a Scribd company logo
1 of 59
Алгоритмическая
конструкция
ЦИКЛ
Цикл представляет собой
алгоритмическую
конструкцию, в которой
многократно выполняется
одна и та же
последовательность шагов,
называемая телом цикла.
Каждое однократное
исполнение тела цикла
называется итерацией. Если
тело цикла было выполнено
N раз, говорят, что было
произведено N итераций.
для того, чтобы
определить момент
прекращения выполнения
тела цикла, используется
условие цикла.
Если при истинности условия
цикл продолжается, то такое
условие называется условием
продолжения цикла. Иными
словами, цикл продолжается,
пока условие цикла истинно.
Если при истинности условия
цикл завершается, то такое
условие называется условием
завершения цикла. В этом
случае цикл продолжается до
тех пор, пока условие цикла
не станет истинным.
Различают циклы с проверкой
условия перед выполнением
очередной итерации и циклы с
проверкой условия после
выполнения очередной
итерации. Первые называются
циклами с предусловием,
вторые - с постусловием.
Тело цикла с постусловием
всегда выполнится хотя бы один
раз.
В блок-схеме примера с
алгоритмом Евклида
используется цикл с
предусловием завершения.
Условие завершения легко
превратить в условие
продолжения и наоборот,
применяя операцию отрицания
к содержащемуся в условии
высказыванию.
В языках программирования
высокого уровня существуют
различные операторы циклов, в
том числе реализующие циклы с
заранее заданным количеством
итераций, так называемые циклы
со счетчиком.
Цикл со счетчиком состоит из
заголовка и тела цикла. В заголовке
указывается начальное и конечное
значение счетчика. На каждой
итерации значение счетчика
автоматически увеличивается. Цикл
завершается, когда счетчик
достигнет конечного значения.
Фактически, цикл со счетчиком
представляет собой
разновидность цикла с
предусловием продолжения,
заключающемся в том, что
значение счетчика находится в
заданных границах.
Технология решения
задачи на ЭВМ.
Часто задача, которую требуется
решить, сформулирована не на
математическом языке. Для
решения на компьютере ее
сначала нужно привести к
форме математической задачи,
а потом уже программировать.
Работа по решению таких
задач с использованием
компьютера проходит
через следующие этапы:
1. Постановка задачи.
2. Математическая формализация.
3. Построение алгоритма.
4. Составление программы на
языке программирования.
5. Отладка и тестирование
программы.
6. Проведение расчетов и анализ
полученных результатов.
Эту последовательность
называют
технологической
цепочкой решения задачи
на ЭВМ.
На этапе постановки
задачи должно быть четко
определено, что дано и
что требуется найти.
Второй этап —
математическая
формализация. Здесь
задача переводится на
язык математических
формул, уравнений,
отношений.
Третий этап — построение
алгоритма. Мы описывали
алгоритмы с помощью
блок-схем.
Проследим все этапы
технологической цепочки
на примере конкретной
задачи.
1. Постановка задачи. Дано N
кубиков, на которых написаны
разные буквы. Сколько
различных N-буквенных слов
можно составить из этих
кубиков (слова не обязательно
должны иметь смысл)?
Искомую целочисленную
величину обозначим буквой
F. Тогда постановка задачи
выглядит так:
Дано:N Найти: F.
2. Математическая формализация.
Получим расчетную формулу.
Сначала рассмотрим несколько
конкретных примеров. Имеются
два кубика с буквами И К . Ясно,
что из них можно составить два
слова:
ИК КИ
Добавим к ним третью
букву С. Теперь число разных
слов будет в три раза
больше предыдущего, т.е.
равно 6:
ИКС КИС ИСК СКИ КСИ СИК
Если добавить четвертую
букву, например А, то число
слов возрастет в четыре раза и
станет равным 24: КИСА КИАС
КСИА КСАИ КАИС КАСИ ИКСА
ИКАО ИСКА ИСАК ИАКС ИАСК
СКИА СКАИ СИКА СИАК САКИ
САИК АКИС АКСИ АИКС АИСК
АСКИ АСИК.
Количество различных
комбинаций из N предметов,
получаемых изменением их
порядка, называется числом
перестановок. Это число
выражается функцией от N,
которая называется
факториалом и записывается
так: N!
1!= 1
2! = 1х2 = 2
З! = 1х2х3 = 6
4! = 1х2х3х4 = 24
5!= 1х2х3х4х5= 120
и т.д.
Теперь вернемся к формулировке
задачи. Если N обозначает
количество букв, a F — количество
слов из этих букв, то расчетная
формула такая:
F=N!= l2..N
Построение алгоритма.
Поскольку алгоритм должен
быть независимым от данного
значения N, то его нельзя
сделать линейным.
Дело в том, что для разных N
надо выполнить разное число
умножений. В таком случае с
изменением N линейная
программа должна менять
длину.
Алгоритм решения данной
задачи будет циклическим.
Цикл — это команда
исполнителю многократно
повторить указанную
последовательность
команд.
Шаг Операция N F R Условие
1 ввод N 3 - -
2 F:=1 1 -
3 R:=1 1
Шаг Операция N F R Условие
1 ввод N 3 - -
2 F:=1 1 -
3 R:=1 1
4 R<=N 1<=3,да
Шаг Операция N F R Условие
1 ввод N 3 - -
2 F:=1 1 -
3 R:=1 1
4 R<=N 1<=3,да
5 F:=FxR 1
6 R:=R+1 2
Шаг Операция N F R Условие
1 ввод N 3 - -
2 F:=1 1 -
3 R:=1 1
4 R<=N 1<=3,да
5 F:=FxR 1
6 R:=R+1 2
7 R<=N 2<=3,да
Шаг Операция N F R Условие
1 ввод N 3 - -
2 F:=1 1 -
3 R:=1 1
4 R<=N 1<=3,да
5 F:=FxR 1
6 R:=R+1 2
7 R<=N 2<=3,да
8 F:=FxR 2
9 R:=R+1 3
Шаг Операция N F R Условие
1 ввод N 3 - -
2 F:=1 1 -
3 R:=1 1
4 R<=N 1<=3,да
5 F:=FxR 1
6 R:=R+1 2
7 R<=N 2<=3,да
8 F:=FxR 2
9 R:=R+1 3
10 R<=N 3<=3,да
Шаг Операция N F R Условие
1 ввод N 3 - -
2 F:=1 1 -
3 R:=1 1
4 R<=N 1<=3,да
5 F:=FxR 1
6 R:=R+1 2
7 R<=N 2<=3,да
8 F:=FxR 2
9 R:=R+1 3
10 R<=N 3<=3,да
11 F:=FxR 6
12 R:=R+1 4
13 R<=N 4<=3,нет
14 вывод F 6
15 конец
Чтобы составить программу
решения нашей задачи,
нужно научиться
программировать циклы на
Паскале.
Отладка и тестирование. Под
отладкой программы.
понимается процесс
испытания работы программы
и исправления обнаруженных
при этом ошибок.
Обнаружить ошибки, связанные
с нарушением правил записи
программы на Паскале и
Бэйсике (синтаксические и
семантические ошибки)
помогает используемая
система программирования.
Пользователь получает
сообщение об ошибке,
исправляет ее и снова
повторяет попытку исполнить
программу.
Тест — это конкретный
вариант значений
исходных данных, для
которого известен
ожидаемый результат.
Проведение расчетов и
анализ полученных
результатов — этот этап
технологической цепочки
реализуется при
разработке практически
полезных (не учебных)
программ.
Алгоритм Евклида
Рассмотрим следующую задачу:
требуется составить программу
определения наибольшего
общего делителя (НОД) двух
натуральных чисел.
НОД(12,18)=6
Обозначим исходные данные
как М и N. Постановка задачи
выглядит следующим
образом:
Дано: M,N Найти: НОД(М,N).
На рисунке приведена блок-
схема алгоритма Евклида.
Структура алгоритма — цикл-
пока с вложенным ветвлением.
Цикл повторяет выполнение,
пока значения М и N не равны
друг другу. Ветвление заменяет
большее из двух значений на их
разность.
Шаг Операция M N Условие
1 Ввод М, N 32 24
Шаг Операция M N Условие
1 Ввод М, N 32 24
2 M≠N 32≠24, да
Шаг Операция M N Условие
1 Ввод М, N 32 24
2 M≠N 32≠24, да
3 M>N 32>24,да
4 M:=M-N 8
Шаг Операция M N Условие
1 Ввод М, N 32 24
2 M≠N 32≠24, да
3 M>N 32>24,да
4 M:=M-N 8
5 M≠N 8≠24, да
6 M>N 8>24, нет
7 N:=N-M 16
Шаг Операция M N Условие
1 Ввод М, N 32 24
2 M≠N 32≠24, да
3 M>N 32>24,да
4 M:=M-N 8
5 M≠N 8≠24, да
6 M>N 8>24, нет
7 N:=N-M 16
8 M≠N 8 ≠16, да
9 M>N 8>16, нет
10 N:=N-M 8
Шаг Операция M N Условие
1 Ввод М, N 32 24
2 M≠N 32≠24, да
3 M>N 32>24,да
4 M:=M-N 8
5 M≠N 8≠24, да
6 M>N 8>24, нет
7 N:=N-M 16
8 M≠N 8 ≠16, да
9 M>N 8>16, нет
10 N:=N-M 8
11 M≠N 8≠8, нет
12 вывод M 8
13 конец
Общая
схема
выбора
диагноз
а

More Related Content

What's hot

лекция 3. программирование циклов
лекция 3. программирование цикловлекция 3. программирование циклов
лекция 3. программирование цикловstudent_kai
 
Алгоритмы на ruby: жадные алгоритмы
Алгоритмы на ruby: жадные алгоритмыАлгоритмы на ruby: жадные алгоритмы
Алгоритмы на ruby: жадные алгоритмыEvgeny Smirnov
 
A Method of Reducing Computational Complexity in Verification of Programming ...
A Method of Reducing Computational Complexity in Verification of Programming ...A Method of Reducing Computational Complexity in Verification of Programming ...
A Method of Reducing Computational Complexity in Verification of Programming ...Iosif Itkin
 
теория рекурсивных функций
теория рекурсивных функцийтеория рекурсивных функций
теория рекурсивных функцийMariya_Lastochkina
 
язык програмирования
язык програмированияязык програмирования
язык програмированияOlegmingalev1997
 

What's hot (6)

алгоритм
алгоритмалгоритм
алгоритм
 
лекция 3. программирование циклов
лекция 3. программирование цикловлекция 3. программирование циклов
лекция 3. программирование циклов
 
Алгоритмы на ruby: жадные алгоритмы
Алгоритмы на ruby: жадные алгоритмыАлгоритмы на ruby: жадные алгоритмы
Алгоритмы на ruby: жадные алгоритмы
 
A Method of Reducing Computational Complexity in Verification of Programming ...
A Method of Reducing Computational Complexity in Verification of Programming ...A Method of Reducing Computational Complexity in Verification of Programming ...
A Method of Reducing Computational Complexity in Verification of Programming ...
 
теория рекурсивных функций
теория рекурсивных функцийтеория рекурсивных функций
теория рекурсивных функций
 
язык програмирования
язык програмированияязык програмирования
язык програмирования
 

Viewers also liked

список день рождения
список день рождениясписок день рождения
список день рожденияKhydosilova
 
конвенция оон о правах ребенка
конвенция оон о правах ребенкаконвенция оон о правах ребенка
конвенция оон о правах ребенкаnatalywiktorowna
 
школа начинающ препод
школа начинающ преподшкола начинающ препод
школа начинающ преподgricuk
 
высшая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...
высшая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...высшая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...
высшая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...OLGA_2017
 
первая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...
первая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...первая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...
первая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...OLGA_2017
 
высшая методист
высшая методиствысшая методист
высшая методистOLGA_2017
 
высшая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...
высшая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...высшая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...
высшая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...OLGA_2017
 
первая методист
первая методистпервая методист
первая методистOLGA_2017
 
первая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...
первая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...первая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...
первая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...OLGA_2017
 
Общие рекомендации
Общие рекомендацииОбщие рекомендации
Общие рекомендацииOLGA_2017
 
генетика тест
генетика тестгенетика тест
генетика тестgricuk
 
список день рождения
список день рождениясписок день рождения
список день рожденияKhydosilova
 
пробный файл для размещения в блоге
пробный файл для размещения в блогепробный файл для размещения в блоге
пробный файл для размещения в блогеNatalia Khokhlova
 
пробный файл для размещения в блоге
пробный файл для размещения в блогепробный файл для размещения в блоге
пробный файл для размещения в блогеNatalia Khokhlova
 
план деятельности гпоу умк
план деятельности гпоу  умкплан деятельности гпоу  умк
план деятельности гпоу умкgricuk
 
презентация1
презентация1презентация1
презентация1gricuk
 
Seven funny things i’ve said in spanish
Seven funny things i’ve said in spanishSeven funny things i’ve said in spanish
Seven funny things i’ve said in spanishRobert Boog
 
Making Good: Diversity and Equality in the Maker Movement
Making Good: Diversity and Equality in the Maker MovementMaking Good: Diversity and Equality in the Maker Movement
Making Good: Diversity and Equality in the Maker MovementLeah Buechley
 

Viewers also liked (20)

список день рождения
список день рождениясписок день рождения
список день рождения
 
клип маки (2)
клип маки (2)клип маки (2)
клип маки (2)
 
конвенция оон о правах ребенка
конвенция оон о правах ребенкаконвенция оон о правах ребенка
конвенция оон о правах ребенка
 
школа начинающ препод
школа начинающ преподшкола начинающ препод
школа начинающ препод
 
высшая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...
высшая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...высшая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...
высшая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...
 
первая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...
первая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...первая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...
первая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...
 
высшая методист
высшая методиствысшая методист
высшая методист
 
высшая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...
высшая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...высшая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...
высшая педагог психолог, соц педагог, педагог-организатор, педагог доп образо...
 
первая методист
первая методистпервая методист
первая методист
 
первая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...
первая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...первая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...
первая преподаватель, мастер по, руководитель фв, тренер преподаватель, препо...
 
Общие рекомендации
Общие рекомендацииОбщие рекомендации
Общие рекомендации
 
генетика тест
генетика тестгенетика тест
генетика тест
 
список день рождения
список день рождениясписок день рождения
список день рождения
 
пробный файл для размещения в блоге
пробный файл для размещения в блогепробный файл для размещения в блоге
пробный файл для размещения в блоге
 
пробный файл для размещения в блоге
пробный файл для размещения в блогепробный файл для размещения в блоге
пробный файл для размещения в блоге
 
план деятельности гпоу умк
план деятельности гпоу  умкплан деятельности гпоу  умк
план деятельности гпоу умк
 
презентация1
презентация1презентация1
презентация1
 
Curriculum Upgrade & Amplify Exercise
Curriculum Upgrade & Amplify ExerciseCurriculum Upgrade & Amplify Exercise
Curriculum Upgrade & Amplify Exercise
 
Seven funny things i’ve said in spanish
Seven funny things i’ve said in spanishSeven funny things i’ve said in spanish
Seven funny things i’ve said in spanish
 
Making Good: Diversity and Equality in the Maker Movement
Making Good: Diversity and Equality in the Maker MovementMaking Good: Diversity and Equality in the Maker Movement
Making Good: Diversity and Equality in the Maker Movement
 

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

12.факультативное занятие по информатике метод математической индукции
12.факультативное занятие по информатике метод математической индукции12.факультативное занятие по информатике метод математической индукции
12.факультативное занятие по информатике метод математической индукцииKirrrr123
 
Алгоритмическая конструкция Повторение
Алгоритмическая конструкция ПовторениеАлгоритмическая конструкция Повторение
Алгоритмическая конструкция ПовторениеAndrey Dolinin
 
Алгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияАлгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияEvgeny Smirnov
 
практика 8
практика 8практика 8
практика 8student_kai
 
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Positive Hack Days
 
алгоритмизация
алгоритмизацияалгоритмизация
алгоритмизацияisva69
 
Оператор цикла с параметром.
Оператор цикла с параметром.Оператор цикла с параметром.
Оператор цикла с параметром.EmmachkaBabul
 
итерация и рекурсия
итерация и рекурсияитерация и рекурсия
итерация и рекурсияNick535
 
04 динамическое программирование - основные концепции
04 динамическое программирование - основные концепции04 динамическое программирование - основные концепции
04 динамическое программирование - основные концепцииFedor Tsarev
 
Михаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеLidia Pivovarova
 
22 pascal urok_6
22 pascal urok_622 pascal urok_6
22 pascal urok_6Ann Eres
 
практика 3
практика 3практика 3
практика 3student_kai
 

Similar to алгоритм циклический (20)

12.факультативное занятие по информатике метод математической индукции
12.факультативное занятие по информатике метод математической индукции12.факультативное занятие по информатике метод математической индукции
12.факультативное занятие по информатике метод математической индукции
 
8 2-4-3
8 2-4-38 2-4-3
8 2-4-3
 
Алгоритмическая конструкция Повторение
Алгоритмическая конструкция ПовторениеАлгоритмическая конструкция Повторение
Алгоритмическая конструкция Повторение
 
Алгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияАлгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсия
 
практика 8
практика 8практика 8
практика 8
 
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
 
While1
While1While1
While1
 
Diskretn analiz
Diskretn analizDiskretn analiz
Diskretn analiz
 
Diskretn analiz
Diskretn analizDiskretn analiz
Diskretn analiz
 
алгоритмизация
алгоритмизацияалгоритмизация
алгоритмизация
 
Оператор цикла с параметром.
Оператор цикла с параметром.Оператор цикла с параметром.
Оператор цикла с параметром.
 
итерация и рекурсия
итерация и рекурсияитерация и рекурсия
итерация и рекурсия
 
циклы
циклыциклы
циклы
 
p01.pdf
p01.pdfp01.pdf
p01.pdf
 
04 динамическое программирование - основные концепции
04 динамическое программирование - основные концепции04 динамическое программирование - основные концепции
04 динамическое программирование - основные концепции
 
Михаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделирование
 
22 pascal urok_6
22 pascal urok_622 pascal urok_6
22 pascal urok_6
 
8 оператор цикла с параметром
8 оператор цикла с параметром8 оператор цикла с параметром
8 оператор цикла с параметром
 
5
55
5
 
практика 3
практика 3практика 3
практика 3
 

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

  • 2. Цикл представляет собой алгоритмическую конструкцию, в которой многократно выполняется одна и та же последовательность шагов, называемая телом цикла.
  • 3. Каждое однократное исполнение тела цикла называется итерацией. Если тело цикла было выполнено N раз, говорят, что было произведено N итераций.
  • 4. для того, чтобы определить момент прекращения выполнения тела цикла, используется условие цикла.
  • 5. Если при истинности условия цикл продолжается, то такое условие называется условием продолжения цикла. Иными словами, цикл продолжается, пока условие цикла истинно.
  • 6. Если при истинности условия цикл завершается, то такое условие называется условием завершения цикла. В этом случае цикл продолжается до тех пор, пока условие цикла не станет истинным.
  • 7. Различают циклы с проверкой условия перед выполнением очередной итерации и циклы с проверкой условия после выполнения очередной итерации. Первые называются циклами с предусловием, вторые - с постусловием.
  • 8.
  • 9. Тело цикла с постусловием всегда выполнится хотя бы один раз. В блок-схеме примера с алгоритмом Евклида используется цикл с предусловием завершения.
  • 10. Условие завершения легко превратить в условие продолжения и наоборот, применяя операцию отрицания к содержащемуся в условии высказыванию.
  • 11. В языках программирования высокого уровня существуют различные операторы циклов, в том числе реализующие циклы с заранее заданным количеством итераций, так называемые циклы со счетчиком.
  • 12. Цикл со счетчиком состоит из заголовка и тела цикла. В заголовке указывается начальное и конечное значение счетчика. На каждой итерации значение счетчика автоматически увеличивается. Цикл завершается, когда счетчик достигнет конечного значения.
  • 13. Фактически, цикл со счетчиком представляет собой разновидность цикла с предусловием продолжения, заключающемся в том, что значение счетчика находится в заданных границах.
  • 15. Часто задача, которую требуется решить, сформулирована не на математическом языке. Для решения на компьютере ее сначала нужно привести к форме математической задачи, а потом уже программировать.
  • 16. Работа по решению таких задач с использованием компьютера проходит через следующие этапы:
  • 17. 1. Постановка задачи. 2. Математическая формализация. 3. Построение алгоритма. 4. Составление программы на языке программирования. 5. Отладка и тестирование программы. 6. Проведение расчетов и анализ полученных результатов.
  • 19. На этапе постановки задачи должно быть четко определено, что дано и что требуется найти.
  • 20. Второй этап — математическая формализация. Здесь задача переводится на язык математических формул, уравнений, отношений.
  • 21. Третий этап — построение алгоритма. Мы описывали алгоритмы с помощью блок-схем.
  • 22. Проследим все этапы технологической цепочки на примере конкретной задачи.
  • 23. 1. Постановка задачи. Дано N кубиков, на которых написаны разные буквы. Сколько различных N-буквенных слов можно составить из этих кубиков (слова не обязательно должны иметь смысл)?
  • 24. Искомую целочисленную величину обозначим буквой F. Тогда постановка задачи выглядит так: Дано:N Найти: F.
  • 25. 2. Математическая формализация. Получим расчетную формулу. Сначала рассмотрим несколько конкретных примеров. Имеются два кубика с буквами И К . Ясно, что из них можно составить два слова: ИК КИ
  • 26. Добавим к ним третью букву С. Теперь число разных слов будет в три раза больше предыдущего, т.е. равно 6: ИКС КИС ИСК СКИ КСИ СИК
  • 27. Если добавить четвертую букву, например А, то число слов возрастет в четыре раза и станет равным 24: КИСА КИАС КСИА КСАИ КАИС КАСИ ИКСА ИКАО ИСКА ИСАК ИАКС ИАСК СКИА СКАИ СИКА СИАК САКИ САИК АКИС АКСИ АИКС АИСК АСКИ АСИК.
  • 28. Количество различных комбинаций из N предметов, получаемых изменением их порядка, называется числом перестановок. Это число выражается функцией от N, которая называется факториалом и записывается так: N!
  • 29. 1!= 1 2! = 1х2 = 2 З! = 1х2х3 = 6 4! = 1х2х3х4 = 24 5!= 1х2х3х4х5= 120 и т.д.
  • 30. Теперь вернемся к формулировке задачи. Если N обозначает количество букв, a F — количество слов из этих букв, то расчетная формула такая: F=N!= l2..N
  • 31. Построение алгоритма. Поскольку алгоритм должен быть независимым от данного значения N, то его нельзя сделать линейным.
  • 32. Дело в том, что для разных N надо выполнить разное число умножений. В таком случае с изменением N линейная программа должна менять длину. Алгоритм решения данной задачи будет циклическим.
  • 33. Цикл — это команда исполнителю многократно повторить указанную последовательность команд.
  • 34.
  • 35. Шаг Операция N F R Условие 1 ввод N 3 - - 2 F:=1 1 - 3 R:=1 1
  • 36. Шаг Операция N F R Условие 1 ввод N 3 - - 2 F:=1 1 - 3 R:=1 1 4 R<=N 1<=3,да
  • 37. Шаг Операция N F R Условие 1 ввод N 3 - - 2 F:=1 1 - 3 R:=1 1 4 R<=N 1<=3,да 5 F:=FxR 1 6 R:=R+1 2
  • 38. Шаг Операция N F R Условие 1 ввод N 3 - - 2 F:=1 1 - 3 R:=1 1 4 R<=N 1<=3,да 5 F:=FxR 1 6 R:=R+1 2 7 R<=N 2<=3,да
  • 39. Шаг Операция N F R Условие 1 ввод N 3 - - 2 F:=1 1 - 3 R:=1 1 4 R<=N 1<=3,да 5 F:=FxR 1 6 R:=R+1 2 7 R<=N 2<=3,да 8 F:=FxR 2 9 R:=R+1 3
  • 40. Шаг Операция N F R Условие 1 ввод N 3 - - 2 F:=1 1 - 3 R:=1 1 4 R<=N 1<=3,да 5 F:=FxR 1 6 R:=R+1 2 7 R<=N 2<=3,да 8 F:=FxR 2 9 R:=R+1 3 10 R<=N 3<=3,да
  • 41. Шаг Операция N F R Условие 1 ввод N 3 - - 2 F:=1 1 - 3 R:=1 1 4 R<=N 1<=3,да 5 F:=FxR 1 6 R:=R+1 2 7 R<=N 2<=3,да 8 F:=FxR 2 9 R:=R+1 3 10 R<=N 3<=3,да 11 F:=FxR 6 12 R:=R+1 4 13 R<=N 4<=3,нет 14 вывод F 6 15 конец
  • 42. Чтобы составить программу решения нашей задачи, нужно научиться программировать циклы на Паскале.
  • 43. Отладка и тестирование. Под отладкой программы. понимается процесс испытания работы программы и исправления обнаруженных при этом ошибок.
  • 44. Обнаружить ошибки, связанные с нарушением правил записи программы на Паскале и Бэйсике (синтаксические и семантические ошибки) помогает используемая система программирования.
  • 45. Пользователь получает сообщение об ошибке, исправляет ее и снова повторяет попытку исполнить программу.
  • 46. Тест — это конкретный вариант значений исходных данных, для которого известен ожидаемый результат.
  • 47. Проведение расчетов и анализ полученных результатов — этот этап технологической цепочки реализуется при разработке практически полезных (не учебных) программ.
  • 48. Алгоритм Евклида Рассмотрим следующую задачу: требуется составить программу определения наибольшего общего делителя (НОД) двух натуральных чисел.
  • 50. Обозначим исходные данные как М и N. Постановка задачи выглядит следующим образом: Дано: M,N Найти: НОД(М,N).
  • 51. На рисунке приведена блок- схема алгоритма Евклида. Структура алгоритма — цикл- пока с вложенным ветвлением. Цикл повторяет выполнение, пока значения М и N не равны друг другу. Ветвление заменяет большее из двух значений на их разность.
  • 52.
  • 53. Шаг Операция M N Условие 1 Ввод М, N 32 24
  • 54. Шаг Операция M N Условие 1 Ввод М, N 32 24 2 M≠N 32≠24, да
  • 55. Шаг Операция M N Условие 1 Ввод М, N 32 24 2 M≠N 32≠24, да 3 M>N 32>24,да 4 M:=M-N 8
  • 56. Шаг Операция M N Условие 1 Ввод М, N 32 24 2 M≠N 32≠24, да 3 M>N 32>24,да 4 M:=M-N 8 5 M≠N 8≠24, да 6 M>N 8>24, нет 7 N:=N-M 16
  • 57. Шаг Операция M N Условие 1 Ввод М, N 32 24 2 M≠N 32≠24, да 3 M>N 32>24,да 4 M:=M-N 8 5 M≠N 8≠24, да 6 M>N 8>24, нет 7 N:=N-M 16 8 M≠N 8 ≠16, да 9 M>N 8>16, нет 10 N:=N-M 8
  • 58. Шаг Операция M N Условие 1 Ввод М, N 32 24 2 M≠N 32≠24, да 3 M>N 32>24,да 4 M:=M-N 8 5 M≠N 8≠24, да 6 M>N 8>24, нет 7 N:=N-M 16 8 M≠N 8 ≠16, да 9 M>N 8>16, нет 10 N:=N-M 8 11 M≠N 8≠8, нет 12 вывод M 8 13 конец