Similar presentations:
slides7-6
1. Управление исполнителями
§ 29. Алгоритмы и исполнители§ 30. Способы записи алгоритмов
§ 31. Примеры исполнителей
§ 32. Оптимальные программы
§ 33. Линейные алгоритмы
§ 34. Вспомогательные алгоритмы
§ 35. Циклические алгоритмы
§ 36. Переменные
§ 37. Циклы с условием
§ 38. Разветвляющиеся алгоритмы
§ 39. Ветвления и циклы
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
1
2. Управление исполнителями
2Управление
исполнителями
§ 29. Алгоритмы и исполнители
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
3. Что такое алгоритм?
Алгоритмы и программирование, 7 класс3
Что такое алгоритм?
Алгоритм – это порядок выполнения
действий.
Исполнитель – это устройство или
одушевлённое существо (человек),
способное понять и выполнить
команды, составляющие алгоритм.
Формальные исполнители: не понимают
Мухаммед ал-Хорезми
(и не могут понять) смысл команд.
(ок. 783–ок. 850 гг.)
Алгоритм — это точное описание порядка действий
некоторого исполнителя.
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
4. Исполнитель Робот
Алгоритмы и программирование, 7 класс4
Исполнитель Робот
стенка
Среда — это обстановка, в которой
работает исполнитель.
Система команд исполнителя (СКИ):
вверх
вправо
вниз
влево
Состояние исполнителя:
? Какие команды может
выполнить Робот?
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
5. Свойства алгоритма
Алгоритмы и программирование, 7 класс5
Свойства алгоритма
Дискретность — алгоритм состоит из отдельных команд,
каждая из которых выполняется ограниченное (не
бесконечное) время.
Понятность — алгоритм содержит только команды,
входящие в систему команд исполнителя.
Определённость — при каждом выполнении алгоритма
с одними и теми же исходными данными должен быть
получен один и тот же результат.
! Если какое-то свойство нарушено,
это не алгоритм!
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
6. Необязательные свойства алгоритма
Алгоритмы и программирование, 7 класс6
Необязательные свойства алгоритма
? Конечность (результативность) — для корректного
набора данных алгоритм должен заканчиваться с
некоторым результатом (не зацикливаться).
? Корректность — для допустимых исходных данных
алгоритм должен приводить к правильному результату.
? Массовость — алгоритм можно использовать для
решения множества однотипных задач с различными
исходными данными (решение «в буквах»).
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
7. Одна задача – много алгоритмов
Алгоритмы и программирование, 7 класс7
Одна задача – много алгоритмов
Задача. Вычислите
S = 1 + 2 + 3 + 4 + 5 + … + 99 + 100
? Как можно вычислять?
Решение К.Ф. Гаусса:
1 + 100 = 2 + 99 = 3 + 98 = …
= 50 + 51 = 101
S = 50 · 101 = 5050
? Какой алгоритм лучше? Почему?
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
8. Управление исполнителями
Алгоритмы и программирование, 7 класс8
Управление исполнителями
Ручное (непосредственное, «с пульта»):
! Можно и без плана!
Программное (по готовой программе):
бортовой
компьютер
Программа — это алгоритм,
записанный на языке, понятном
компьютеру.
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
9. Управление исполнителями
9Управление
исполнителями
§ 31. Примеры исполнителей
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
10. Формальный исполнитель
Алгоритмы и программирование, 7 класс10
Формальный исполнитель
Формальный исполнитель — это исполнитель,
который одну и ту же команду всегда понимает
однозначно и выполняет одинаково.
СКИ Робота
1. вверх
2. вправо
3. вниз
4. влево
?
443
Б
В
?
2114
К.Ю. Поляков, Е.А. Еремин, 2024
? Куда?
23321 А
? Как иначе?
Г
?
2334
?
21
Д
http://kpolyakov.spb.ru
11. Исполнитель Черепаха
Алгоритмы и программирование, 7 класс11
Исполнитель Черепаха
вперед 30
вправо 90
вперед 30
вправо 90
вперед 30
вправо 90
вперед 30
вправо 90
шагов
градусов
? Как нарисовать
окружность?
360
4
число
сторон
повтори 4 [ вперед 30 вправо 90 ]
повтори 12 [ вперед 50 вправо 45 ]
повтори 10 [ вперед 50 вправо 60 ]
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
12. Исполнитель Черепаха
Алгоритмы и программирование, 7 класс12
Исполнитель Черепаха
повтори 4 [ вперед 30 вправо 45 ]
незамкнутая ломаная
повтори 45 [ вперед 30 вправо 45
вправо 45]
повтори 12 [ вправо 15 вперед 30
вправо 45 ]
повтори 5 [ вправо 15 вперед 30
вправо 15 ]
повтори 15 [ вправо 80 вперед 30
влево 35 ]
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
13. Исполнитель Удвоитель
Алгоритмы и программирование, 7 класс13
Исполнитель Удвоитель
Работает с одним числом и умеет выполнять с ним
две операции (команды):
1. прибавь 1
2. умножь на 2
Программа – это последовательность номеров
команд, которые нужно выполнить.
Программа 12211
2
1
3
начальное
число
К.Ю. Поляков, Е.А. Ерёмин, 2024
2
6
2
12
1
13
1
14
результат
http://kpolyakov.spb.ru
14. Исполнитель Удвоитель
Алгоритмы и программирование, 7 класс14
Исполнитель Удвоитель
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?
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
15. Исполнитель Шифровальщик
Алгоритмы и программирование, 7 класс15
Исполнитель Шифровальщик
Если цепочка символов начинается с гласной
буквы, Шифровальщик переставляет
последнюю букву в начало слова, а если с
согласной, то меняет местами первую и
вторую буквы.
согласная
Этот алгоритм применили к слову КОТИК. Какое
слово получилось?
КОТИК ОКТИК
Этот алгоритм дважды применили к слову
КОТИК. Какое слово получилось?
КОТИК ОКТИК КОКТИ
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
16. Исполнитель Шифровальщик
Алгоритмы и программирование, 7 класс16
Исполнитель Шифровальщик
Если в цепочке символов чётное количество
букв, Шифровальщик добавляет в середину
слова букву Я, а если нечётное – удваивает
среднюю букву.
Этот алгоритм применили к слову КОТИК. Какое
слово получилось?
КОТИК КОТТИК
Этот алгоритм дважды применили к слову
КОТИК. Какое слово получилось?
КОТИК КОТТИК КОТЯТИК
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
17. Управление исполнителями
17Управление
исполнителями
§ 30. Способы записи
алгоритмов
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
18. Алгоритм «О»
Алгоритмы и программирование, 7 класс18
Алгоритм «О»
Словесная форма:
Даны два натуральных числа. Пока первое число не
меньше второго, заменять его на разность первого и
второго. Результат работы алгоритма — полученное
первое число.
a
b
Исходные данные
5
2
Шаг 1
3
2
Шаг 2
1
2
? Меняется ли b?
неоднозначность естественных языков
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
19. Алгоритм «О»
Алгоритмы и программирование, 7 класс19
Алгоритм «О»
По шагам:
Вход: два натуральных числа, a и b.
Шаг 1. Если a < b, перейти к шагу 4 (Стоп).
Шаг 2. Заменить a на a – b.
Шаг 3. Перейти к шагу 1.
Шаг 4. Стоп.
Результат: значение a.
не все знают русский язык
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
20. Алгоритм «О»
Алгоритмы и программирование, 7 класс20
Алгоритм «О»
Блок-схема:
Условные обозначения
начало
начало и конец алгоритма
a, b
a < b?
ввод и вывод данных
да
нет
условие (выбор)
операции с данными
a a–b
присвоить a
значение a – b
a
конец
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
21. Ручная прокрутка (трассировка)
Алгоритмы и программирование, 7 класс21
Ручная прокрутка (трассировка)
Вход: два натуральных числа, a и b.
Шаг 1. Если a < b, перейти к шагу 4.
Шаг 2. Заменить a на a – b.
Шаг 3. Перейти к шагу 1.
Шаг 4. Стоп.
Результат: значение a.
Действие
1 Вход
2 Шаг 1
3 Шаг 2
4 Шаг 1
5 Шаг 2
6 Шаг 1
7 Шаг 2
8 Шаг 1
9 Шаг 4
a < b?
a a–b
a < b?
a a–b
a < b?
a a–b
a < b?
Стоп
К.Ю. Поляков, Е.А. Ерёмин, 2024
Условие верно?
a
19
нет
14
нет
b
5
исходные данные
? Где ответ?
9
нет
4
да
http://kpolyakov.spb.ru
22. Переменные
Алгоритмы и программирование, 7 класс22
Переменные
Переменная — это величина, значение которой можно
изменять во время работы алгоритма.
Вход: два натуральных числа, a и b.
Шаг 1. Если a < b, перейти к шагу 4.
Шаг 2. Заменить a на a – b.
a a–b
Шаг 3. Перейти к шагу 1.
или
Шаг 4. Стоп.
a := a – b
Результат: значение a.
присваивание
значения
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
23. Языки программирования
Алгоритмы и программирование, 7 класс23
Языки программирования
Программа — это алгоритм, записанный на языке,
понятном компьютеру.
? Какой язык понимает компьютер?
Алгоритм «О»:
101110000000111100000000
101110110000010000000000
0011101111000011
0111110000000100
0010101111000011
1110101111111000
1100110100100000
? Что плохо?
сложно писать и понимать программы
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
24. Язык ассемблера
Алгоритмы и программирование, 7 класс24
Язык ассемблера
Машинные коды:
101110000000111100000000
101110110000010000000000
0011101111000011
0111110000000100
0010101111000011
1110101111111000
1100110100100000
Язык ассемблера:
mov ax, 15
mov bx, 4
m:
cmp ax, bx
jl end
sub ax, bx
jmp m
end: int 20h
Ассемблер — это программа, которая переводит
символьную запись команд в машинные коды.
! Машинные коды и язык ассемблера – это языки
низкого уровня (машинно-ориентированные)!
зависят от
непереносимость программ
процессора!
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
25. Языки высокого уровня
Алгоритмы и программирование, 7 класс25
Языки высокого уровня
1) легко понимаются человеком
2) не «привязаны» к командам конкретного процессора
Школьный алгоритмический язык:
цел a, b
a:=15
b:=4
нц пока a>=b
a:=a-b
кц
? Как процессор поймёт?
1010010100
Транслятор (переводчик) — это программа, которая
переводит программу на языке высокого уровня в
машинные коды.
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
26. Языки высокого уровня
Алгоритмы и программирование, 7 класс26
Языки высокого уровня
1957: FORTRAN = FORmula TRANslator
для решения научных задач
1972: С (Д. Ритчи, К. Томпсон)
С++, C#, Java, JavaScript, …
1991: Python (Г. ван Россум)
Для программирования сайтов:
PHP, JavaScript
Логическое программирование:
Prolog
Учебные языки:
BASIC, Паскаль, Школьный алгоритмический язык
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
27. Исполнитель Шифровальщик
Алгоритмы и программирование, 7 класс27
Исполнитель Шифровальщик
АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
А Б Б В
? Что делать с Я? Я А
ПРИВЕТ ВАСЯ
П Р
Р С
Расшифруйте:
АВМПЛП ЯБЛОКО
НПСЛПГЭ МОРКОВЬ
ЛМАЛТБ КЛЯКСА
К.Ю. Поляков, Е.А. Ерёмин, 2024
РСКГЁУ ГБТА
Шифр Цезаря
http://kpolyakov.spb.ru
28. Управление исполнителями
28Управление
исполнителями
§ 32. Оптимальные программы
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
29. Что такое оптимальная программа?
Алгоритмы и программирование, 7 класс29
Что такое оптимальная программа?
Оптимальная программа — это самая лучшая
программа по какому-то показателю.
? Как сравнить две программы?
Напишите две программы для Удвоителя:
3 … 7
? Всегда ли оптимальная программа лучше
других по всем критериям?
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
30. Составление программы
Алгоритмы и программирование, 7 класс30
Составление программы
Используя команды:
1. прибавь 1
2. умножь на 2
написать самую короткую программу, которая из 6
получает 28.
дерево
6
вариантов
14
28
15
26
13
14
16
8
12
7
9
25
24
1
2
48
6
Ответ: 122
7
1
12
2
1
14
8
2
13
24
1
2
1
2
1
2
1
2
9
16
15
28
14
26
25
48
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
31. Составление программы (с конца)
Алгоритмы и программирование, 7 класс31
Составление программы (с конца)
Ответ: 122
28
2
1
27
нельзя
делить
на 2!
25
26
26
1
2
13
7
1
2
1
25
13
12
12
6
13
7
27
14
1
13
дерево
вариантов
1
6
14
28
? Почему решение
«с конца» короче?
! Решение «с конца» короче, если в списке команд
есть необратимая операция (каждое целое число
можно умножить на 2, но не каждое делится на 2)!
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
32. Управление исполнителями
32Управление
исполнителями
§ 33. Линейные алгоритмы
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
33. Что такое линейный алгоритм?
Алгоритмы и программирование, 7 класс33
Что такое линейный алгоритм?
В линейном алгоритме команды выполняются в том
порядке, в котором они записаны.
СКИ Робота:
закрасить
использовать Робот
алг Переход
нужно
подключить
нач
закрасить
исполнителя
вниз
закрасить
служебные
(зарезервированные)
влево
слова языка
закрасить
кон
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
34. Ошибки в программах
Алгоритмы и программирование, 7 класс34
Ошибки в программах
Синтаксические: исполнитель не понимает команду, так
как она неверно записана.
закрась
налево
закрасить
влево
Логические: исполнитель понимает и выполняет
команды, но делает не то, что нужно.
К.Ю. Поляков, Е.А. Ерёмин, 2024
закрасить
влево
закрасить
http://kpolyakov.spb.ru
35. Ошибки в программах
Алгоритмы и программирование, 7 класс35
Ошибки в программах
! Логические ошибки могут привести к отказу!
вниз
закрасить
вправо
закрасить
столкновение
со стенкой
При вычислениях: деление на 0.
Отладка – это поиск и исправление ошибок в
программе.
F8 – выполнение по шагам.
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
36. Вычислительные задачи
Алгоритмы и программирование, 7 класс36
Вычислительные задачи
Задача. Сколько километров проехал
автомобиль за 2 часа, если его средняя
скорость равна 60 км/ч?
Массовость: решаем « в буквах».
время – t, скорость – v, расстояние – S
ввод
v, t
вывод
S
программа
Вход: v, t.
? Программа линейная?
Шаг 1. S v t.
Результат: значение S.
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
37. Вычислительные задачи
Алгоритмы и программирование, 7 класс37
Вычислительные задачи
алг Путь
вещественные – могут
быть с дробной частью!
нач
переменные
вещ v, t, S
вывод "Введите скорость: "
ввод v
вывод "Введите время: "
ввод t
S:=v*t
вывод "Расстояние: ", S
кон
! Это решение «в буквах»!
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
38. Управление исполнителями
38Управление
исполнителями
§ 34. Вспомогательные
алгоритмы
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
39. Зачем это нужно?
Алгоритмы и программирование, 7 класс39
Зачем это нужно?
? Какая ошибка?
вспомогательный
алгоритм
(процедура)
К.Ю. Поляков, Е.А. Ерёмин, 2024
алг Два сапога
нач
вызов
Сапог
вправо; вправо
вправо
Сапог
вызов
кон
алг Сапог
нач
вниз; закрасить
вниз; закрасить
вправо; закрасить
влево; вверх; вверх
кон
http://kpolyakov.spb.ru
40. Вспомогательные алгоритмы
Алгоритмы и программирование, 7 класс40
Вспомогательные алгоритмы
Вспомогательный алгоритм решает отдельную
задачу и может быть использован при
решении более сложных задач.
• чтобы он выполнился, его нужно вызвать:
Сапог
• возврат: после завершения его работы
управление передаётся следующей команде
вызывающего алгоритма
Сапог
вправо
К.Ю. Поляков, Е.А. Ерёмин, 2024
алг Сапог
нач
...
кон
F7 – по шагам c
входом в
процедуры.
http://kpolyakov.spb.ru
41. Два метода составления программ
Алгоритмы и программирование, 7 класс41
Два метода составления программ
1. Последовательное уточнение
(«сверху вниз»)
сначала:
потом:
алг Два сапога
нач
Сапог
вправо; вправо
вправо
Сапог
кон
алг Сапог
нач
...
кон
выделили части задачи,
для которых будем
писать процедуру
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
42. Два метода составления программ
Алгоритмы и программирование, 7 класс42
Два метода составления программ
2. «Снизу вверх» – сначала составить
процедуры, потом собрать основную
программу.
процедура:
Б
К.Ю. Поляков, Е.А. Ерёмин, 2024
алг Пара
нач
вправо
закрасить
влево; вверх
вправо
закрасить
вверх; вправо
вниз; вниз
кон
http://kpolyakov.spb.ru
43. Проектирование «снизу вверх»
Алгоритмы и программирование, 7 класс43
Проектирование «снизу вверх»
Сборка основной программы:
А Б В Г
алг ТриПары
нач
влево; влево
вверх; вправо
Пара
Пара
Пара
кон
К.Ю. Поляков, Е.А. Ерёмин, 2024
привести в удобную
начальную точку
http://kpolyakov.spb.ru
44. Управление исполнителями
44Управление
исполнителями
§ 35. Циклические алгоритмы
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
45. Что такое циклический алгоритм?
Алгоритмы и программирование, 7 класс45
Что такое циклический алгоритм?
начало
цикла
конец
цикла
нц 6 раз
вправо
закрасить
кц
Цикл – это многократное
выполнение некоторой
последовательности
действий.
тело
цикла
? А если ряд из 6000 клеток?
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
46. Блок-схема циклического алгоритма
Алгоритмы и программирование, 7 класс46
Блок-схема циклического алгоритма
начало
сделали 6 раз?
цикл – возврат
к предыдущей
команде
да
нет
вправо
loop – петля
тело
цикла
закрасить
конец
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
47. Выбор начального положения
Алгоритмы и программирование, 7 класс47
Выбор начального положения
А
Б
В
Г Д
Е
Ж
З
? Куда привести
Робота перед
началом цикла?
нц 6 раз
вправо
закрасить
кц
нц 6 раз
закрасить
вправо
кц
в клетку Г
в клетку Д
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
48. Вложенные циклы
Алгоритмы и программирование, 7 класс48
Вложенные циклы
Б
В
| закрасить ряд
нц 6 раз
вправо
закрасить
кц
К.Ю. Поляков, Е.А. Ерёмин, 2024
А
нц 4 раз
| закрасить ряд
| к следующему ряду
кц
комментарии –
пояснения для
человека
| к следующему ряду
вниз
нц 6 раз
влево
кц
Это циклы!
!
http://kpolyakov.spb.ru
49. Вложенные циклы
Алгоритмы и программирование, 7 класс49
Вложенные циклы
Б
В
А
Вложенный цикл – это
цикл внутри другого
цикла.
нц 4 раз
| закрасить ряд
нц 6 раз
вправо
закрасить
кц
| к следующему ряду
вниз
нц 6 раз
влево
кц
кц
? Где остановится Робот?
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
50. Управление исполнителями
50Управление
исполнителями
§ 36. Переменные
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
51. Зачем нужны переменные?
Алгоритмы и программирование, 7 класс51
Зачем нужны переменные?
Б
В
начальное
значение
изменение с
каждым шагом
длина ряда –
величина
переменная
N
N:=2
нц N раз
вправо
закрасить
кц
Как меняется N?
вниз
нц N раз
влево
кц
?
N:=N+1
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
52. Использование переменных
Алгоритмы и программирование, 7 класс52
Использование переменных
цел N
N:=2
нц 4 раз
нцN:=2
4 раз
нц N раз
вправо
закрасить
кц
вниз
нц N раз
влево
кц
N:=N+1
кц
К.Ю. Поляков, Е.А. Ерёмин, 2024
объявление
переменной
• тип переменной:
цел – целая
вещ – вещественная
лог – логическая
лит – строка символов
• допустимые операции
• сколько места выделить в
памяти
следующий
ряд на 1 клетку
длиннее
? Что плохо?
http://kpolyakov.spb.ru
53. Процедуры с параметрами
Алгоритмы и программирование, 7 класс53
Процедуры с параметрами
параметр
Если все ряды одинаковые (4 клетки):
алг Ряд(цел N)
нач
нц N
4 раз
вверх
закрасить
кц
кон
Использование:
алг Трапеция
нач
Ряд(5) | при N = 5
Ряд(4) | при N = 4
Ряд(3) | при N = 3
кон
К.Ю. Поляков, Е.А. Ерёмин, 2024
меняется!
! Это переменная!
? Что плохо?
добавить переход к
началу следующего
ряда!
http://kpolyakov.spb.ru
54. Процедуры с параметрами + переменные
Алгоритмы и программирование, 7 класс54
Процедуры с параметрами + переменные
К.Ю. Поляков, Е.А. Ерёмин, 2024
алг Трапеция
нач
цел N = 5
нц 3 раз
Ряд(N)
N:= N - 1
кц
кон
алг Ряд(цел N)
нач
нц N раз
вверх
закрасить
кц
нц N раз
вниз
кц
влево
кон
http://kpolyakov.spb.ru
55. Управление исполнителями
55Управление
исполнителями
§ 37. Циклы с условием
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
56. Что такое цикл с условием?
Алгоритмы и программирование, 7 класс56
Что такое цикл с условием?
Вход: два натуральных числа, a и b.
Шаг 1. Если a < b, перейти к шагу 4.
Шаг 2. Заменить a на a – b.
Шаг 3. Перейти к шагу 1.
Шаг 4. Стоп.
Результат: значение a.
? Это цикл?
? Число повторений известно?
? Когда завершится? a < b
? При каком условии продолжается?
К.Ю. Поляков, Е.А. Ерёмин, 2024
a b
http://kpolyakov.spb.ru
57. Логические команды
Алгоритмы и программирование, 7 класс57
Логические команды
Подойти к стене:
? Как управлять с пульта?
Что нужно уметь определять?
Логическая команда — это запрос, на который
исполнитель отвечает «да» или «нет».
логическое
сверху стена
сверху свободно
значение
справа стена
справа свободно
снизу стена
снизу свободно
слева стена
слева свободно
Обратная связь — это данные, которые передаются от
датчиков к управляющему устройству.
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
58. Цикл с условием
Алгоритмы и программирование, 7 класс58
Цикл с условием
Подойти к стене:
? А если нет
стенки?
алг До стены
нач
нц пока слева свободно
влево
кц
цикл выполняется,
кон
пока условие
истинно
Зацикливание — это ситуация, когда цикл
выполняется бесконечно.
? А если Робот рядом со стеной?
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
59. Вложенные циклы
Алгоритмы и программирование, 7 класс59
Вложенные циклы
4 ряда неизвестной длины:
Б
нц 4 раз
| подзадача 1
| подзадача 2
кц
? Что это за подзадачи?
Закрасить ряд:
Перейти к следующему:
закрасить
нц пока справа свободно
вправо
закрасить
кц
нц пока слева свободно
вниз
нцвлево
пока слева свободно
кцвлево
кц
вниз
К.Ю. Поляков, Е.А. Ерёмин, 2024
? Что плохо?
http://kpolyakov.spb.ru
60. Управление исполнителями
60Управление
исполнителями
§ 38. Разветвляющиеся
алгоритмы
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
61. Что такое разветвляющийся алгоритм?
Алгоритмы и программирование, 7 класс61
Что такое разветвляющийся алгоритм?
Привести Робота в клетку Б
а)
б)
Б
Б
влево
вниз
? Как различить
два случая?
выполняется,
если условие
ложно
К.Ю. Поляков, Е.А. Ерёмин, 2024
вправо
вниз
условие
если слева свободно то
влево
выполняется,
вниз
если условие
иначе
истинно
вправо
вниз
все
http://kpolyakov.spb.ru
62. Разветвляющийся алгоритм
Алгоритмы и программирование, 7 класс62
Разветвляющийся алгоритм
если слева свободно то
влево
вниз
иначе
вправо
вниз
все
начало
да
условие
действие 1
нет
действие 2
? Как улучшить?
если слева свободно то
влево
иначе
вправо
все
вниз
К.Ю. Поляков, Е.А. Ерёмин, 2024
конец
http://kpolyakov.spb.ru
63. Ветвление в неполной форме
Алгоритмы и программирование, 7 класс63
Ветвление в неполной форме
а)
б)
? Как различить
Б
Б
вниз
влево
вниз
если слева свободно то
влево
все
вниз
иначе ничего
два случая?
начало
да
действие
условие
нет
пусто!
делать не нужно!
конец
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
64. Вложенное ветвление
Алгоритмы и программирование, 7 класс64
Вложенное ветвление
а)
Б
вверх
б)
в)
Б
Б
вниз
влево
вниз
? Как отличить а от б и в?
если сверху свободно то а)
? Как отличить б от в?
если снизу свободно то б)
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
65. Вложенное ветвление
Алгоритмы и программирование, 7 класс65
Вложенное ветвление
а)
Б
б)
в)
Б
если сверху свободно то
| работаем с задачей а
иначе
если снизу свободно то
| работаем с задачей б
иначе
| работаем с задачей в
все
все
К.Ю. Поляков, Е.А. Ерёмин, 2024
Б
вложенное
ветвление!
http://kpolyakov.spb.ru
66. Управление исполнителями
66Управление
исполнителями
§ 39. Ветвления и циклы
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
67. Пример задачи
Алгоритмы и программирование, 7 класс67
Пример задачи
? Когда остановиться?
? Как различить
два случая?
нц пока снизу свободно
если справа свободно то
вправо
иначе
вверх; вправо; вниз
все
закрасить
кц
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
68. Базовые алгоритмические конструкции
Алгоритмы и программирование, 7 класс68
Базовые алгоритмические конструкции
Алгоритм решения любой задачи можно составить с
помощью трёх базовых конструкций — следования,
ветвления и цикла.
следование:
ветвление:
цикл:
начало
начало
начало
да
действие 1
действие 2
условие
действие 1
нет
действие 2
условие
да
тело цикла
нет
действие 3
конец
К.Ю. Поляков, Е.А. Ерёмин, 2024
конец
конец
http://kpolyakov.spb.ru
69. Цикл с постусловием
Алгоритмы и программирование, 7 класс69
Цикл с постусловием
начало
? Может ли не выполниться
ни разу?
тело цикла
нет
условие
да
? Что происходит, если
условие истинно?
Пример: ввести число, которое
обязательно должно быть
положительным.
конец
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
70. Анализ алгоритмов для Раздвоителя
Алгоритмы и программирование, 7 класс70
Анализ алгоритмов для Раздвоителя
1. вычти 1
2. раздели на 2
только для
чётных!
Алгоритм 1:
нц пока N не ноль
вычти 1
кц
Алгоритм 2:
нц пока N не ноль
если N - чётное то
раздели на 2
иначе
вычти 1
все
кц
К.Ю. Поляков, Е.А. Ерёмин, 2024
? Что делают?
N 0
? Какой лучше?
• по длине?
• по скорости?
http://kpolyakov.spb.ru
71. Управление исполнителями
71Управление
исполнителями
§ 40. Сложные условия
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
72. Сложные условия
Алгоритмы и программирование, 7 класс72
Сложные условия
Б
? Как найти нужный проход?
сверху свободно и снизу свободно
свободно и снизу свободно)
нц пока не(сверху
???
...
кц
нц пока сверху стена или снизу стена
...
кц
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
73. Сложные условия
Алгоритмы и программирование, 7 класс73
Сложные условия
Б
алг На Базу
нач
нц
пока сверху стена или снизу стена
вправо
нцвправо
пока сверху стена или снизу стена
кцвправо
вверх
Что плохо?
кц
закрасить
вверх
влево
закрасить
кон
влево
кон
?
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
74. Сложные условия
Алгоритмы и программирование, 7 класс74
Сложные условия
Б
алг На Базу
нач
вправо
нц пока сверху стена или снизу стена
закрасить
вправо
Что плохо?
кц
закрасить
вверх; закрасить
влево
кон
?
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
75. Сложные условия
Алгоритмы и программирование, 7 класс75
Сложные условия
Б
алг На Базу
вправо
нц пока сверху стена или снизу стена
если сверху стена и снизу стена
закрасить
все
вправо
кц
вверх; закрасить; влево
кон
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
76. Управление исполнителями
76Управление
исполнителями
§ 41. Алгоритмы с результатом
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
77. Алгоритмы с результатом
Алгоритмы и программирование, 7 класс77
Алгоритмы с результатом
Задача. Измерить неизвестную длину стенки и
вывести результат на экран, используя команду
вывод.
использовать Робот
алг Измерение
вспомогательный
нач
алгоритм
цел д
д:= Длина стенки
вывод "Длина стенки ", д
кон
Б
! Этот вспомогательный алгоритм возвращает
результат – число!
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
78. Алгоритмы с результатом
Алгоритмы и программирование, 7 класс78
Алгоритмы с результатом
результат
алгоритма –
целое число
Б
результат
алгоритма –
значение N
К.Ю. Поляков, Е.А. Ерёмин, 2024
алг цел Длина стенки
нач
нц пока слева свободно
влево
кц
нц пока слева стена
вниз
кц
вверх
цел N = 0
нц пока слева стена
вверх
N:=N+1
кц
влево
знач:= N
кон
http://kpolyakov.spb.ru
79. Конец фильма
Алгоритмы и программирование, 7 класс79
Конец фильма
ПОЛЯКОВ Константин Юрьевич
д.т.н., учитель информатики
ГБОУ СОШ № 163, г. Санкт-Петербург
[email protected]
ЕРЕМИН Евгений Александрович
к.ф.-м.н., доцент кафедры мультимедийной
дидактики и ИТО ПГГПУ, г. Пермь
[email protected]
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru
80. Источники иллюстраций
Алгоритмы и программирование, 7 класс80
Источники иллюстраций
1.
2.
3.
4.
nasa.gov
intel.com
иллюстрации художников издательства «Бином»
авторские материалы
К.Ю. Поляков, Е.А. Ерёмин, 2024
http://kpolyakov.spb.ru