Базовые структуры алгоритмов

27

Upload: ludazonova2908

Post on 14-Nov-2014

70 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Базовые структуры алгоритмов
Page 2: Базовые структуры алгоритмов

Этапы решения задач спомощью компьютера

Что такое алгоритм и его основные свойства

Способы записи алгоритмов

Основные структуры алгоритмов

Page 3: Базовые структуры алгоритмов

• Постановка задачи• Построение математической

модели• Разработка алгоритма• Составление программы на

языке программирования• Отладка и тестирование

программы• Анализ результатов

Page 4: Базовые структуры алгоритмов

АЛГОРИТМЫ

Page 5: Базовые структуры алгоритмов

— Что такое алгоритм?Что такое алгоритм?

— Это последовательность действий. Это последовательность действий.

—Для исполнителя

—Кто такой исполнитель?

—Тот, который исполняет команды алгоритма

—Для кого?

Page 6: Базовые структуры алгоритмов

Вот алгоритм , который составила

мачеха для Золушки:

Перемой-ка всю посуду.

Да натри полы повсюду,

Дров на месяц наколи,

Кофе на год намели,

Посади среди цветов

Сорок розовых кустов,

И, пока не подрастут,

Подметай дорожки тут

Page 7: Базовые структуры алгоритмов

• Исполнитель - это объект, умеющий выполнять определенный набор действий. (человек, животное, робот, компьютер).

• Система команд исполнителя (СКИ) – это все команды, которые исполнитель умеет выполнять.

• Среда исполнителя – обстановка, в которой функционирует исполнитель.

Page 8: Базовые структуры алгоритмов

• Алгоритм содержит несколько шагов.

• Шаг – отдельное законченное действие.

Page 9: Базовые структуры алгоритмов

АлгоритмАлгоритм – это конечная система – это конечная система команд, адресованных команд, адресованных

исполнителю, четко и однозначно исполнителю, четко и однозначно задающих процесс решения задающих процесс решения

задачи во всех деталяхзадачи во всех деталях

Page 10: Базовые структуры алгоритмов

Происхождение термина «АЛГОРИТМ» связывают с именем известного

узбекского математика и астронома ІХ века Мухаммеда аль-Хорезми

Page 11: Базовые структуры алгоритмов

Любую сложную задачу можно свести к выполнению конечного числа более простых задач.

Для многих задач существуют определенные правила, объясняющие исполнителю, как решать данную задачу.

•Рецепты приготовления пищи,

•Правила пользования электроприборами,

•Правила сложения и вычитания в столбик.

Page 12: Базовые структуры алгоритмов

Свойства алгоритмаСвойства алгоритма

• Дискретность (прерывность, раздельность) – разбиение алгоритма на шаги;

• Понятность – каждый шаг алгоритма должен быть понятен исполнителю;

• Результативность - получение результата за конечное число шагов;

• Массовость – использование алгоритма для решения однотипных задач.

• Формальность – возможность выполнять команды механически.

Это свойство позволяет поручить исполнение алгоритмов роботам, компьютерам и другим устройствам.

Page 13: Базовые структуры алгоритмов

ЗаданиеЗаданиеНазови исполнителей следующих видов Назови исполнителей следующих видов

работ:работ:• уборка мусора во дворе;уборка мусора во дворе;• обучение детей в школе;обучение детей в школе;• вождение автомобиля;вождение автомобиля;• ответ у доски;ответ у доски;• приготовление пищи;приготовление пищи;• печатание документа на принтерепечатание документа на принтере..Сформулируй СКИ для каждого из этих Сформулируй СКИ для каждого из этих

исполнителей, назови среду каждого исполнителей, назови среду каждого исполнителя.исполнителя.

Page 14: Базовые структуры алгоритмов

Способы описания Способы описания алгоритма:алгоритма:

• СловесныйСловесный ((письменно или устно);письменно или устно);

• ГрафическийГрафический (стрелками, (стрелками, рисунками, блок – схемами);рисунками, блок – схемами);

• Программный.Программный.

Page 15: Базовые структуры алгоритмов

Алгоритм Алгоритм ЭратросфенаЭратросфена

1.1. Выписать все натуральные числа от 1 Выписать все натуральные числа от 1 до до NN. Вычеркнуть 1.. Вычеркнуть 1.

2.2. Подчеркнуть наименьшее из Подчеркнуть наименьшее из неотмеченных чисел.неотмеченных чисел.

3.3. Вычеркнуть все числа, кратные Вычеркнуть все числа, кратные подчеркнутому на предыдущем шаге.подчеркнутому на предыдущем шаге.

4.4. Если в списке имеются еще не Если в списке имеются еще не отмеченные числа, то перейти к шагу отмеченные числа, то перейти к шагу 2.2.

5.5. Все подчеркнутые числа – простые.Все подчеркнутые числа – простые.

Page 16: Базовые структуры алгоритмов

Задача. Переправа.Задача. Переправа.

К берегу реки, где была лодка, вмещающая К берегу реки, где была лодка, вмещающая только двух человек, подошли два разбойника и только двух человек, подошли два разбойника и два путешественника. Разбойники не решались два путешественника. Разбойники не решались напасть на путешественников. В случае если на напасть на путешественников. В случае если на берегу останется один путешественник и два берегу останется один путешественник и два разбойника, они нападут на него. Как надо разбойника, они нападут на него. Как надо переправиться через реку разбойникам и переправиться через реку разбойникам и путешественникам, чтобы последние смогли путешественникам, чтобы последние смогли избежать нападения? избежать нападения?

Обозначения: П1 – первый путешественникОбозначения: П1 – первый путешественник П2 – второй путешественник;П2 – второй путешественник; Р1 – первый разбойник;Р1 – первый разбойник; Р2 – второй разбойник.Р2 – второй разбойник.

Page 17: Базовые структуры алгоритмов

№ Первый берег

Второй берег

Нач. П1 П2 Р1 Р2

1 П2 Р2 П1 Р1

П2 Р2 П1 Р1

2 П2 Р2 П1 Р1

П1 П2 Р2 Р1

3 Р2 П1 П2 Р1

Р2 П1 П2 Р1

4 Р2 Р1 П1 П2

Р1 Р2 П1 П2

5 Р1 Р2 Р1 Р2 П1 П2

Кон. П1 П2 Р1 Р2

Page 18: Базовые структуры алгоритмов

Блок-Блок-схемасхема

Начало или конец алгоритма Команда алгоритма

Ввод или вывод данных Проверка условия

. . . Повторение действий (цикл)

Page 19: Базовые структуры алгоритмов

Виды алгоритмов:Виды алгоритмов:

• ЛинейныйЛинейный – – содержит несколько шагов и содержит несколько шагов и все шаги выполняются последовательно все шаги выполняются последовательно друг за другом;друг за другом;

• Разветвляющийся Разветвляющийся – – порядок выполнения порядок выполнения шагов изменяется в зависимости от шагов изменяется в зависимости от некоторых условий;некоторых условий;

• ЦиклическийЦиклический – – определенная определенная последовательность шагов повторяется последовательность шагов повторяется несколько раз в зависимости от заданной несколько раз в зависимости от заданной величины (параметра цикла).величины (параметра цикла).

Page 20: Базовые структуры алгоритмов

Алгоритмические задачиАлгоритмические задачи

Задание. Задание. Волк, коза и капуста.Волк, коза и капуста.Старик должен переправить на лодке Старик должен переправить на лодке

через реку волка, козу и капусту. Лодка через реку волка, козу и капусту. Лодка может выдержать только старика и может выдержать только старика и одного «пассажира». В каком порядке одного «пассажира». В каком порядке старик перевезёт «пассажиров»? Не старик перевезёт «пассажиров»? Не забудь, что волк может съесть козу, а забудь, что волк может съесть козу, а коза – капусту. Найди два варианта коза – капусту. Найди два варианта решения.решения.

Page 21: Базовые структуры алгоритмов

Задание. Переправа. Задание. Переправа.

Два мальчика и двое взрослых должны Два мальчика и двое взрослых должны переправиться на другую сторону реки на переправиться на другую сторону реки на плоту, который выдерживает либо двух плоту, который выдерживает либо двух мальчиков, либо одного мальчика и одного мальчиков, либо одного мальчика и одного взрослого. Как осуществить переправу? взрослого. Как осуществить переправу? Найди несколько способов решения этой Найди несколько способов решения этой задачи.задачи.

Обозначения: 1м – один мальчик;Обозначения: 1м – один мальчик;

2м – два мальчика;2м – два мальчика;

1в – один взрослый.1в – один взрослый.

Page 22: Базовые структуры алгоритмов

Команда 1

Команда 2

Команда N

. . .

1. Линейные (простые)

Page 23: Базовые структуры алгоритмов

2.Разветвляющиеся

Условие

Серия 1 Серия 2

Да Нет

а) Полное ветвление

Page 24: Базовые структуры алгоритмов

2. Разветвляющиеся

Условие

Серия 1

Да Нет

б) Неполное ветвление

Page 25: Базовые структуры алгоритмов

3. Циклические

Счетчик цикла

Серия команд

а) арифметический цикл

Page 26: Базовые структуры алгоритмов

б) Логический цикл с предусловием

Условие

Да

Нет

Серия команд

Page 27: Базовые структуры алгоритмов

в) Логический цикл с послеусловием

Условие

Да

Нет

Серия команд