1 of 17

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

2 of 17

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

  • Нередко встречаются ситуации, когда мы стоим перед выбором и принимаем решение в зависимости от ситуации, то есть выполняем одну из двух последовательностей действий, в зависимости от того, выполняется некоторое условие или нет.

3 of 17

Полная форма ветвления

если <условие>

то <действия 1>� иначе <действия 2>

все

условие

действия 1

действия 2

+

4 of 17

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

  • Разветвляющийся алгоритм (ветвление) — это алгоритм, в котором в зависимости от результата проверки условия, выполняется либо одна, либо другая последовательность действий.
  • Каждый из путей ведет к общему выходу — концу ветвления.

5 of 17

Неполная форма ветвления

если <условие>

то <действия>�все

условие

действия

+

6 of 17

Задача 1

  • Было проведено 4 запуска программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:

(10, 6); (7, 6); (2, 9); (5, 7).

  • Сколько было запусков, при которых программа напечатала “NO”?

ввод s; ввод t�если s > 4 и t > 4� то вывод “YES”� иначе вывод “NO”�все

7 of 17

Задача 1

  • Пары чисел: (10, 6); (7, 6); (2, 9); (5, 7).
  • Условие: s > 4 и t > 4

s

t

s > 4

t > 4

s > 4 И t > 4

Вывод

10

6

7

6

2

9

5

7

1

1

1

1

0

1

1

1

1

YES

1

YES

0

NO

1

YES

8 of 17

СКИ Робот

  • Для каждой клетки Робот может проверить наличие стен вокруг клетки и признак закрашенности.
  • Команды проверки условий:

слева стена слева свободно�справа стена справа свободно�сверху стена сверху свободно�снизу стена снизу свободно

клетка закрашена клетка чистая

9 of 17

Задача 2. В соседнюю клетку

справа свободно?

вправо

вниз�вправо�вверх

да

нет

если справа свободно� то вправо� иначе вниз; вправо; вверх�все

10 of 17

Задача 3

  • Робот находится в клетке А, ему надо попасть в клетку Б. В конце коридора точно есть выход либо вниз, либо вверх.
  • Алгоритм должен работать для любого файла обстановки: 4.3.1.fil и 4.3.2.fil.
  • Сохраните файл под именем 4.3.kum.

11 of 17

Задача 3

сверху свободно?

вверх�вправо�вниз

вниз�вправо�вверх

да

нет

вправо�вправо�вправо

12 of 17

Задача 3

использовать Робот

алг ветвление

нач

вправо; вправо; вправо

если сверху свободно

то вверх; вправо; вниз

иначе вниз; вправо; вверх

все

кон

13 of 17

Задача 4

  • Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:

(3, –3); (7, 6); (–4, 1); (2, 9); (12, 7);� (–11, 4); (–8, 13); (10, 9); (6, 5).

  • Сколько было запусков, при которых программа напечатала “YES”?

ввод s; ввод t�если s > 4 и t > 2� то вывод “YES”� иначе вывод “NO”�все

14 of 17

Задача 5

  • Робот находится в клетке А. Клетка с трех сторон окружена стенами. С какой-то одной стороны точно есть выход, где — неизвестно. Роботу надо попасть в клетку Б, закрасить ее и�вернуться в клетку А.
  • Например:
  • если справа свободно
  • то вправо; закрасить; влево
  • все
  • Загрузите поочередно обстановку из файлов 4.5.1.fil, 4.5.2.fil, 4.5.3.fil, 4.5.4.fil. Ваш алгоритм должен работать для любой обстановки.
  • Сохраните файл под именем 4.5.kum.

15 of 17

Задача 6

  • Запишите алгоритм для Робота, чтобы он переместиться из А в Б. �Робот не может ходить сквозь стенки.
  • Загрузите обстановку из�файла 4.6.fil.
  • Сохраните файл под�именем 4.6.kum.

16 of 17

Домашнее задание. Задача 7

  • У исполнителя Программист две команды, которым присвоены номера:

1. вычти 3�2. умножь на 4

  • Первая из них уменьшает число на экране на 3, вторая — увеличивает число в 4 раза.
  • Составьте алгоритм получения из числа 1 числа 49, содержащий не более 5 команд.

17 of 17

Домашнее задание. Задача 8

  • Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:

(–1, 6); (2, 8); (0, 3); (9, –9); (4, 4); (2, 7); (8, –2); (7, 7); (4, 1).

  • Сколько было запусков, при которых программа напечатала “YES”?

ввод s; ввод t�если s > 3 или t < 7� то вывод “YES”� иначе вывод “NO”�все