Similar presentations:
Алгоритмы и программирование (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
programming