Теоритический материал для задания №6 по информатике

Задание 6: Анализ программ с ветвлениями

Что такое программы с ветвлениями?

Программы с ветвлениями - это программы, которые могут выполнять различные действия в зависимости от выполнения определенных условий. Основной конструкцией ветвления является оператор "если" (if).

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

Ниже приведена программа, записанная на пяти языках программирования. Мы рассмотрим версию на алгоритмическом языке, так как она наиболее проста для понимания:

алг
нач
цел s, t
ввод s
ввод t
если s > 10 или t > 10
    то вывод "YES"
    иначе вывод "NO"
все
кон

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

(1, 2); (11, 2); (1, 12); (11, 12); (–11, –12); (–11, 12); (–12, 11); (10, 10); (10, 5)

Вопрос: Сколько было запусков, при которых программа напечатала «YES»?

Разбор задачи

Давайте разберем, как работает программа:

  • Вводятся два целых числа s и t
  • Если s > 10 ИЛИ t > 10 (хотя бы одно из чисел больше 10), выводится "YES"
  • В противном случае выводится "NO"

Анализ тестовых случаев

s t s > 10 t > 10 Результат
1 1 2 Нет Нет NO
2 11 2 Да Нет YES
3 1 12 Нет Да YES
4 11 12 Да Да YES
5 -11 -12 Нет Нет NO
6 -11 12 Нет Да YES
7 -12 11 Нет Да YES
8 10 10 Нет Нет NO
9 10 5 Нет Нет NO

Важные моменты при решении:

  • Внимательно читайте условие программы (в данном случае s > 10 ИЛИ t > 10)
  • Помните, что для вывода "YES" достаточно, чтобы хотя бы одно из условий было истинным
  • Отрицательные числа всегда меньше 10
  • Число 10 не удовлетворяет условию s > 10 или t > 10

Ответ и объяснение

Программа выведет "YES" в 5 случаях:

  • (11, 2) - потому что 11 > 10
  • (1, 12) - потому что 12 > 10
  • (11, 12) - потому что оба числа > 10
  • (-11, 12) - потому что 12 > 10
  • (-12, 11) - потому что 11 > 10

Второй тип задачи

Условие задачи

Ниже приведена программа, записанная на пяти языках программирования. Рассмотрим версию на алгоритмическом языке:

алг
нач
цел s, k
ввод s
ввод k
если s < 8 и k < 8
    то вывод "ДА"
    иначе вывод "НЕТ"
все
кон

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

(1, 1); (10, 8); (9, −12); (6, 6); (5, 15); (−10, −8); (−10, 11); (3, 1); (1, 8)

Вопрос: Сколько было запусков, при которых программа напечатала «ДА»?

Анализ условия

В этой задаче программа выводит "ДА" только если выполняются ОБА условия одновременно:

  • s < 8 (первое число меньше 8)
  • k < 8 (второе число меньше 8)

Важно отметить:

  • Используется логическое И (оба условия должны быть истинными)
  • Отрицательные числа всегда меньше 8
  • Число 8 не удовлетворяет условию "меньше 8"

Анализ тестовых случаев

s k s < 8 k < 8 s < 8 И k < 8 Результат
1 1 1 Да Да Да ДА
2 10 8 Нет Нет Нет НЕТ
3 9 -12 Нет Да Нет НЕТ
4 6 6 Да Да Да ДА
5 5 15 Да Нет Нет НЕТ
6 -10 -8 Да Да Да ДА
7 -10 11 Да Нет Нет НЕТ
8 3 1 Да Да Да ДА
9 1 8 Да Нет Нет НЕТ

Ответ и объяснение

Программа выведет "ДА" в 4 случаях:

  • (1, 1) - оба числа меньше 8
  • (6, 6) - оба числа меньше 8
  • (-10, -8) - оба числа меньше 8 (отрицательные числа всегда меньше 8)
  • (3, 1) - оба числа меньше 8

Ответ: 4

Важные моменты для решения подобных задач:

  • Внимательно определите тип логической операции (И/ИЛИ)
  • При операции И все условия должны выполняться одновременно
  • Помните, что отрицательные числа всегда меньше положительных
  • Проверяйте граничные случаи (например, число 8 в данной задаче)
  • Используйте таблицу для систематического анализа всех случаев