Исполнитель Робот
Формальный исполнитель
Исполнитель Удвоитель
Исполнитель Удвоитель
Что такое линейный алгоритм?
Ошибки в программах
Ошибки в программах
Что такое циклический алгоритм?
Выбор начального положения
Вложенные циклы
Вложенные циклы
Логические команды
Цикл с условием
Вложенные циклы
Управление исполнителями
Что такое разветвляющийся алгоритм?
Разветвляющийся алгоритм
Ветвление в неполной форме
Вложенное ветвление
Вложенное ветвление
Управление исполнителями
Пример задачи
Базовые алгоритмические конструкции
Цикл с постусловием
Анализ алгоритмов для Раздвоителя
308.22K
Category: programmingprogramming

Алгоритмы и программирование (7 класс)

1. Исполнитель Робот

Алгоритмы и программирование, 7 класс
1
Исполнитель Робот
стенка
Среда — это обстановка, в которой
работает исполнитель.
Система команд исполнителя (СКИ):
вверх
вправо
вниз
влево
Состояние исполнителя:
? Какие команды может
выполнить Робот?
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

2. Формальный исполнитель

Алгоритмы и программирование, 7 класс
2
Формальный исполнитель
Формальный исполнитель — это исполнитель,
который одну и ту же команду всегда понимает
однозначно и выполняет одинаково.
СКИ Робота
1. вверх
2. вправо
3. вниз
4. влево
?
443
Б
В
?
2114
К.Ю. Поляков, Е.А. Еремин, 2014
? Куда?
23321 А
? Как иначе?
Г
?
2334
?
21
Д
http://kpolyakov.spb.ru

3. Исполнитель Удвоитель

Алгоритмы и программирование, 7 класс
3
Исполнитель Удвоитель
Работает с одним числом и умеет выполнять с ним
две операции (команды):
1. прибавь 1
2. умножь на 2
Программа – это последовательность номеров
команд, которые нужно выполнить.
Программа 12211
2
1
3
начальное
число
К.Ю. Поляков, Е.А. Ерёмин, 2018
2
6
2
12
1
13
1
14
результат
http://kpolyakov.spb.ru

4. Исполнитель Удвоитель

Алгоритмы и программирование, 7 класс
4
Исполнитель Удвоитель
1. прибавь 1
2. умножь на 2
...
x
Какие числа можно получить?
• при целом x 0
x, x+1, x+2, …
• при целом x < 0
любые целые
Программа 1212
1
2
x
x+1
2(x+1)
1
2x+3
2
4x+6
? Могли ли получить 36? а 34?
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

5. Что такое линейный алгоритм?

Алгоритмы и программирование, 7 класс
5
Что такое линейный алгоритм?
В линейном алгоритме команды выполняются в том
порядке, в котором они записаны.
СКИ Робота:
закрасить
использовать Робот
алг Переход
нужно
подключить
нач
закрасить
исполнителя
вниз
закрасить
служебные
(зарезервированные)
влево
слова языка
закрасить
кон
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

6. Ошибки в программах

Алгоритмы и программирование, 7 класс
6
Ошибки в программах
Синтаксические: исполнитель не понимает команду, так
как она неверно записана.
закрась
налево
закрасить
влево
Логические: исполнитель понимает и выполняет
команды, но делает не то, что нужно.
К.Ю. Поляков, Е.А. Ерёмин, 2018
закрасить
влево
закрасить
http://kpolyakov.spb.ru

7. Ошибки в программах

Алгоритмы и программирование, 7 класс
7
Ошибки в программах
! Логические ошибки могут привести к отказу!
вниз
закрасить
вправо
закрасить
столкновение
со стенкой
При вычислениях: деление на 0.
Отладка – это поиск и исправление ошибок в
программе.
F8 – выполнение по шагам.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

8. Что такое циклический алгоритм?

Алгоритмы и программирование, 7 класс
8
Что такое циклический алгоритм?
начало
цикла
конец
цикла
нц 6 раз
вправо
закрасить
кц
Цикл – это многократное
выполнение некоторой
последовательности
действий.
тело
цикла
? А если ряд из 6000 клеток?
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

9. Выбор начального положения

Алгоритмы и программирование, 7 класс
9
Выбор начального положения
А
Б
В
Г Д
Е
Ж
З
? Куда привести
Робота перед
началом цикла?
нц 6 раз
вправо
закрасить
кц
нц 6 раз
закрасить
вправо
кц
в клетку Г
в клетку Д
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

10. Вложенные циклы

Алгоритмы и программирование, 7 класс
10
Вложенные циклы
Б
В
| закрасить ряд
нц 6 раз
вправо
закрасить
кц
К.Ю. Поляков, Е.А. Ерёмин, 2018
А
нц 4 раз
| закрасить ряд
| к следующему ряду
кц
комментарии –
пояснения для
человека
| к следующему ряду
вниз
нц 6 раз
влево
кц
Это циклы!
!
http://kpolyakov.spb.ru

11. Вложенные циклы

Алгоритмы и программирование, 7 класс
11
Вложенные циклы
Б
В
А
Вложенный цикл – это
цикл внутри другого
цикла.
нц 4 раз
| закрасить ряд
нц 6 раз
вправо
закрасить
кц
| к следующему ряду
вниз
нц 6 раз
влево
кц
кц
? Где остановится Робот?
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

12. Логические команды

Алгоритмы и программирование, 7 класс
12
Логические команды
Подойти к стене:
? Как управлять с пульта?
Что нужно уметь определять?
Логическая команда — это запрос, на который
исполнитель отвечает «да» или «нет».
логическое
сверху стена
сверху свободно
значение
справа стена
справа свободно
снизу стена
снизу свободно
слева стена
слева свободно
Обратная связь — это данные, которые передаются от
датчиков к управляющему устройству.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

13. Цикл с условием

Алгоритмы и программирование, 7 класс
13
Цикл с условием
Подойти к стене:
? А если нет
стенки?
алг До стены
нач
нц пока слева свободно
влево
кц
цикл выполняется,
кон
пока условие
истинно
Зацикливание — это ситуация, когда цикл
выполняется бесконечно.
? А если Робот рядом со стеной?
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

14. Вложенные циклы

Алгоритмы и программирование, 7 класс
14
Вложенные циклы
4 ряда неизвестной длины:
Б
нц 4 раз
| подзадача 1
| подзадача 2
кц
? Что это за подзадачи?
Закрасить ряд:
Перейти к следующему:
закрасить
нц пока справа свободно
вправо
закрасить
кц
нц пока слева свободно
вниз
нцвлево
пока слева свободно
кцвлево
кц
вниз
К.Ю. Поляков, Е.А. Ерёмин, 2018
? Что плохо?
http://kpolyakov.spb.ru

15. Управление исполнителями

15
Управление
исполнителями
§ 38. Разветвляющиеся
алгоритмы
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

16. Что такое разветвляющийся алгоритм?

Алгоритмы и программирование, 7 класс
16
Что такое разветвляющийся алгоритм?
Привести Робота в клетку Б
а)
б)
Б
Б
влево
вниз
? Как различить
два случая?
выполняется,
если условие
ложно
К.Ю. Поляков, Е.А. Ерёмин, 2018
вправо
вниз
условие
если слева свободно то
влево
выполняется,
вниз
если условие
иначе
истинно
вправо
вниз
все
http://kpolyakov.spb.ru

17. Разветвляющийся алгоритм

Алгоритмы и программирование, 7 класс
17
Разветвляющийся алгоритм
если слева свободно то
влево
вниз
иначе
вправо
вниз
все
начало
да
условие
действие 1
нет
действие 2
? Как улучшить?
если слева свободно то
влево
иначе
вправо
все
вниз
К.Ю. Поляков, Е.А. Ерёмин, 2018
конец
http://kpolyakov.spb.ru

18. Ветвление в неполной форме

Алгоритмы и программирование, 7 класс
18
Ветвление в неполной форме
а)
б)
? Как различить
Б
Б
вниз
влево
вниз
если слева свободно то
влево
все
вниз
иначе ничего
два случая?
начало
да
действие
условие
нет
пусто!
делать не нужно!
конец
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

19. Вложенное ветвление

Алгоритмы и программирование, 7 класс
19
Вложенное ветвление
а)
Б
вверх
б)
в)
Б
Б
вниз
влево
вниз
? Как отличить а от б и в?
если сверху свободно то а)
? Как отличить б от в?
если снизу свободно то б)
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

20. Вложенное ветвление

Алгоритмы и программирование, 7 класс
20
Вложенное ветвление
а)
Б
б)
в)
Б
если сверху свободно то
| работаем с задачей а
иначе
если снизу свободно то
| работаем с задачей б
иначе
| работаем с задачей в
все
все
К.Ю. Поляков, Е.А. Ерёмин, 2018
Б
вложенное
ветвление!
http://kpolyakov.spb.ru

21. Управление исполнителями

21
Управление
исполнителями
§ 39. Ветвления и циклы
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

22. Пример задачи

Алгоритмы и программирование, 7 класс
22
Пример задачи
? Когда остановиться?
? Как различить
два случая?
нц пока снизу свободно
если справа свободно то
вправо
иначе
вверх; вправо; вниз
все
закрасить
кц
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

23. Базовые алгоритмические конструкции

Алгоритмы и программирование, 7 класс
23
Базовые алгоритмические конструкции
Алгоритм решения любой задачи можно составить с
помощью трёх базовых конструкций — следования,
ветвления и цикла.
следование:
ветвление:
цикл:
начало
начало
начало
да
действие 1
действие 2
условие
действие 1
нет
действие 2
условие
да
тело цикла
нет
действие 3
конец
К.Ю. Поляков, Е.А. Ерёмин, 2018
конец
конец
http://kpolyakov.spb.ru

24. Цикл с постусловием

Алгоритмы и программирование, 7 класс
24
Цикл с постусловием
начало
? Может ли не выполниться
ни разу?
тело цикла
нет
условие
да
? Что происходит, если
условие истинно?
Пример: ввести число, которое
обязательно должно быть
положительным.
конец
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

25. Анализ алгоритмов для Раздвоителя

Алгоритмы и программирование, 7 класс
25
Анализ алгоритмов для Раздвоителя
1. вычти 1
2. раздели на 2
только для
чётных!
Алгоритм 1:
нц пока N не ноль
вычти 1
кц
Алгоритм 2:
нц пока N не ноль
если N - чётное то
раздели на 2
иначе
вычти 1
все
кц
К.Ю. Поляков, Е.А. Ерёмин, 2018
? Что делают?
N 0
? Какой лучше?
• по длине?
• по скорости?
http://kpolyakov.spb.ru
English     Русский Rules