Алгоритмы и программирование

Содержание

Слайд 2

Алгоритмы и программирование

§ 51. Алгоритмы

Алгоритмы и программирование § 51. Алгоритмы

Слайд 3

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

I. Постановка задачи:
исходные данные? результаты?
II. Формализация
выделение

Этапы решения задач на компьютере I. Постановка задачи: исходные данные? результаты? II.
существенных данных
построение модели
запись на формальном языке
III. Разработка алгоритма
исходные данные → результаты
IV. Составление программы
= кодирование

Слайд 4

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

V. Тестирование и отладка программы
Тестирование – проверка работы

Этапы решения задач на компьютере V. Тестирование и отладка программы Тестирование –
программы на тестовых данных с известным ответом.
Отладка – исправление ошибок.
VI. Выполнение расчётов
для данных, для которых ответ неизвестен
VII. Анализ результатов
не противоречит теории? здравому смыслу?

Слайд 5

Алгоритм

Алгоритм — это точное описание последовательности действий некоторого исполнителя.

Дискретность — алгоритм состоит

Алгоритм Алгоритм — это точное описание последовательности действий некоторого исполнителя. Дискретность —
из отдельных команд, каждая из которых выполняется за конечное время.
Детерминированность (определённость) — при каждом запуске алгоритма с одними и теми же исходными данными получается один и тот же результат.
Понятность — алгоритм содержит только команды, входящие в систему команд исполнителя.

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

Слайд 6

Анализ алгоритмов: контрольная сумма

Задача 1. Контрольная сумма для пары 3-значных чисел:

768 156

14

11

8

контрольная

Анализ алгоритмов: контрольная сумма Задача 1. Контрольная сумма для пары 3-значных чисел:
сумма S

Найти: минимальное и максимальное значения контрольной суммы.

Min: первые цифры ≥ 1

S2 ≥ 2, S1 ≥ 0, S0 ≥ 0

100 100 ⇒ 20

Smin = 2

Слайд 7

Анализ алгоритмов: контрольная сумма

Max:

..999.

Коллизия — разным данным соответствует одна и та же

Анализ алгоритмов: контрольная сумма Max: ..999. Коллизия — разным данным соответствует одна
контрольная сумма.

900×900 ⇒ 20…991 (972)

Слайд 8

Анализ алгоритмов: контрольная сумма

Задача 3. Сколько существует пар чисел, для которых контрольная

Анализ алгоритмов: контрольная сумма Задача 3. Сколько существует пар чисел, для которых
сумма равна 421?

только 1+1

4=0+4=1+3=…=4+0

14=5+9=6+8=…=9+5

Слайд 9

Анализ алгоритмов: контрольная сумма

Задача 3. Сколько существует пар чисел, для которых контрольная

Анализ алгоритмов: контрольная сумма Задача 3. Сколько существует пар чисел, для которых
сумма равна 421?

10=1+9=2+8=…=9+1

9

11=2+9=3+8=…=9+2

8

18=9+9

12=3+9=4+8=…=9+3

7

...

1

10⋅1⋅45 = 450

9+8+7+6+5+4+3+2+1

Слайд 10

Анализ алгоритмов: контрольная сумма

Задача 4. Приведите пример значения, которое контрольная сумма принимать

Анализ алгоритмов: контрольная сумма Задача 4. Приведите пример значения, которое контрольная сумма
НЕ МОЖЕТ.

.ab|c|.

Вариант 1. Сумма средних разрядов S1 < 10.

.a|bc|.

Вариант 2. Сумма средних разрядов 10 ≤ S1 ≤ 18.

.ab|1.

.a|b|1.

3, 15, 187

15, 310, 817

101, 121, 181

221, 371, 591

20, 100, 292, …

Слайд 11

Анализ алгоритмов: бит чётности

Задача 6. К двоичному коду приписывается справа 0 или

Анализ алгоритмов: бит чётности Задача 6. К двоичному коду приписывается справа 0
1 так, чтобы количество единиц стало чётным.

1100110 1011001

данные

данные

Найдите блоки, переданные с ошибкой:

1100111 1001110 0011000

Слайд 12

Алгоритмы и программирование

§ 52. Оптимальные линейные программы

Алгоритмы и программирование § 52. Оптимальные линейные программы

Слайд 13

Что такое оптимальная программа?

Оптимальная программа — это самая лучшая программа по какому-то

Что такое оптимальная программа? Оптимальная программа — это самая лучшая программа по какому-то показателю.
показателю.

Слайд 14

Составление программы

Используя команды:
1. прибавь 1
2. умножь на 2
написать самую короткую

Составление программы Используя команды: 1. прибавь 1 2. умножь на 2 написать
программу, которая из 6 получает 28.

Ответ: 122

6

7

25

1

дерево вариантов

12

8

14

13

24

9

16

15

28

14

26

48

2

1

1

1

1

1

2

2

2

2

2

1

1

2

2

2

Слайд 15

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

28

27

14

26

13

7

1

1

1

2

2

2

2

Ответ: 122

25

13

1

2

12

6

1

1

1

нельзя делить на 2!

дерево вариантов

Составление программы (с конца) 28 27 14 26 13 7 1 1

Слайд 16

Алгоритмы и программирование

§ 53. Анализ алгоритмов с ветвлениями и циклами

Алгоритмы и программирование § 53. Анализ алгоритмов с ветвлениями и циклами

Слайд 17

Вспомним всё

Цикл — это многократное выполнение одинаковых действий. Цикл состоит из заголовка

Вспомним всё Цикл — это многократное выполнение одинаковых действий. Цикл состоит из
и тела цикла — тех команд, которые находятся внутри цикла и выполняются несколько раз.

Ветвление — это выбор одного из двух вариантов действий в зависимости от выполнения некоторого условия.

Слайд 18

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

Формальный исполнитель — это исполнитель, который одну и ту же команду

Исполнитель Робот Формальный исполнитель — это исполнитель, который одну и ту же
всегда понимает однозначно и выполняет одинаково.

Слайд 19

Анализ алгоритма для Робота

Робот выполнил программу и вернулся в ту же клетку.

Анализ алгоритма для Робота Робот выполнил программу и вернулся в ту же
Откуда он мог начать движение?

ПОКА <снизу свободно> вниз
ПОКА <слева свободно> влево
ПОКА <сверху свободно> вверх
ПОКА <справа свободно> вправо

F4

Слайд 20

Анализ алгоритма для Чертёжника

Чертёжник выполнил алгоритм (буквами n, a, b обозначены неизвестные

Анализ алгоритма для Чертёжника Чертёжник выполнил алгоритм (буквами n, a, b обозначены
числа) и вернулся в исходную точку. Укажите все возможные значения n.

сместиться на (-2, -11)
ПОВТОРИ n РАЗ
сместиться на (a, b)
сместиться на (27, 12)
сместиться на (-22, -7)

(-2, -11)

(dx, dy)

(-22, -7)

dx = 0 = -2 + n(a+27) – 22
dy = 0 = -11 + n(b+12) - 7

n(a+27)= 24
n(b+12)= 18

24: 1, 2, 3, 4, 6, 8, 12, 24

18: 1, 2, 3, 6, 9, 18

Слайд 21

Анализ алгоритма для Редактора

Какая строка получится в результате применения приведённой ниже программы

Анализ алгоритма для Редактора Какая строка получится в результате применения приведённой ниже
к строке, состоящей из 68 идущих подряд цифр 8?

ПОКА нашлось (222) ИЛИ нашлось (888)
ЕСЛИ нашлось (222)
ТО заменить (222, 8)
ИНАЧЕ заменить (888, 2)

888888888…8

2

2

2

8

68 - 8·8 = 4

8888 → 28

2

Слайд 22

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

1: ПОКА нашлось (222) ИЛИ нашлось (888)
ЕСЛИ нашлось

Анализ алгоритмов для Редактора 1: ПОКА нашлось (222) ИЛИ нашлось (888) ЕСЛИ
(222)
ТО заменить (222, 8)
ИНАЧЕ заменить (888, 2)

2: ПОКА нашлось (222) ИЛИ нашлось (888)
ЕСЛИ нашлось (888)
ТО заменить (888, 2)
ИНАЧЕ заменить (222, 8)

8888888888888888888

2228888888888

⇒ 88888888888

8888888888888888888

⇒ 2222228

Слайд 23

Конец фильма

ПОЛЯКОВ Константин Юрьевич
д.т.н., учитель информатики
ГБОУ СОШ № 163, г. Санкт-Петербург
kpolyakov@mail.ru
ЕРЕМИН

Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ № 163,
Евгений Александрович
к.ф.-м.н., доцент кафедры мультимедийной дидактики и ИТО ПГГПУ, г. Пермь
eremin@pspu.ac.ru