На Горох
Информатика, 9 класс

25.8. Получение решения задачи (этап 5)

"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо, Ю.А. Быкадоров, Е.Н. Войтехович

Объяснение темы В оглавлении: 25.8. Получение решения задачи (этап 5)

Кратко о теме

Получение решения задачи — этап, на котором программу запускают с подготовленными исходными данными и получают ответ. Компьютер выполняет команды алгоритма, но сам факт завершения программы ещё не доказывает, что ответ верен. Поэтому результат сравнивают с ожидаемым и проверяют программу на нескольких тестах: обычных, граничных и особых. Если обнаружена ошибка, выясняют её причину, исправляют программу и проводят проверку заново.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

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

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

Тестовый пример — набор входных данных, для которого заранее известен правильный результат. Например, для сложения чисел 3 и 5 ожидаемая сумма равна 8. Такой пример нужен, чтобы сопоставить ответ программы с известным ответом. Несколько разных тестов позволяют проверить работу в разных ситуациях.

Тестирование программы — проверка её работы на тестовых примерах, в том числе с разными допустимыми входными данными. При этом смотрят, правильно ли программа обрабатывает обычные и особые случаи. Тестирование помогает обнаружить ошибки до того, как решением воспользуются для других данных. Оно не заменяет проверку алгоритма, но показывает, как программа работает на выбранных примерах.

Как это устроено

Перед запуском подготовьте исходные данные: выясните, какие именно значения требуются программе и в каком виде их вводить. Это нужно потому, что программа ожидает данные определённого типа и порядка, заданных условием и алгоритмом. Проверьте также ограничения: например, допустимый диапазон чисел. Если ввести неподходящие значения или перепутать порядок, даже верная программа может дать неожиданный результат.

После ввода данных компьютер последовательно выполняет команды алгоритма и использует эти значения в вычислениях. Каждая команда преобразует данные или проверяет условие, а последующие команды работают с полученными значениями. В результате программа формирует ответ, предусмотренный её алгоритмом. Поэтому важно, чтобы запущена была нужная версия программы и все данные были введены полностью.

Полученный ответ нужно сопоставить с ожидаемым или проверить непосредственно по условию задачи. Это необходимо, потому что отсутствие сообщения об ошибке означает лишь, что программа смогла завершиться, но не гарантирует правильность вычислений. Для простого теста ожидаемый ответ можно вычислить самостоятельно. В более сложном случае проверьте, выполняет ли выведенное значение требование задачи.

Одного запуска обычно недостаточно: программа может верно работать на одних данных и ошибаться на других. Поэтому подготовьте несколько тестов: обычные входные значения, граничные допустимые значения и случаи, которые проверяют особые условия. Например, при проверке определения чётности стоит рассмотреть не только обычное число, но и ноль. Такой набор помогает увидеть, не пропущена ли часть возможных ситуаций.

Если ответ не совпал с ожидаемым, не исправляйте программу наугад. Сначала убедитесь, что тестовые данные введены правильно, затем проследите ход алгоритма и найдите команду, где возникает расхождение. Ошибка может быть в данных, в самом алгоритме или в его программной записи. После исправления снова запустите программу и повторите проверки: это покажет, устранена ли причина и не появились ли новые ошибки.

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

Этап проверкиЧто выполняютНа что обратить внимание
Подготовка данныхВыбирают значения для проверки.Данные допустимы и соответствуют условию.
Ввод данныхВводят значения в требуемом формате.Не перепутаны порядок, тип и количество значений.
Выполнение программыЗапускают программу и получают ответ.Выполнена нужная версия программы, ввод завершён.
Проверка результатаСравнивают ответ с ожидаемым или условием.Совпадает ли результат с правильным ответом.
Исправление ошибок и повторная проверкаНаходят причину, исправляют и снова запускают программу.Устранена ли ошибка и проходят ли остальные тесты.

Используйте таблицу как последовательность действий: переходите к следующему этапу, когда предыдущий выполнен. В последнем столбце собраны вопросы для самопроверки. Если результат не прошёл проверку, вернитесь к данным, алгоритму или программе, а затем повторите запуск.

Разбор задач

Задача 1. Программа вычисляет сумму двух чисел. Проверим её на входных данных 3 и 5. Для такого теста правильный ответ можно определить независимо от программы. Это позволяет сразу заметить расхождение, если программа выполнит сложение неверно.

  1. Вводим первое число 3 и второе число 5, соблюдая формат, который ожидает программа.
  2. До запуска вычисляем ожидаемую сумму: 3 + 5 = 8. Это контрольный результат для выбранного теста.
  3. Запускаем программу и сравниваем её ответ с числом 8. Если она вывела 8, этот тест пройден; если вывела другое значение, нужно искать ошибку.

Ответ: на входных данных 3 и 5 правильный результат равен 8. Совпадение подтверждает работу программы только для этого теста, поэтому для надёжной проверки понадобятся и другие пары чисел. Например, можно проверить отрицательные числа, если они разрешены условием. Каждый раз заранее определяйте ожидаемый результат.

Задача 2. Программа определяет, является ли число чётным. Проверим положительное чётное и нечётное число, а также ноль. Здесь недостаточно взять два похожих значения: проверка должна показать, как программа обрабатывает разные варианты. Для каждого ввода заранее установим правильный ответ.

  1. Выбираем три допустимых теста: 4, 7 и 0. Числа 4 и 7 проверяют разные варианты положительных значений, а ноль — особый случай.
  2. Определяем ожидаемые ответы: 4 делится на 2 без остатка, значит, оно чётное; 7 — нечётное; 0 также считается чётным.
  3. Запускаем программу отдельно на каждом числе и сверяем сообщение или значение с ожидаемым. Если хотя бы один ответ отличается, проверяем условие и способ его записи в программе.

Ответ: правильные результаты для 4, 7 и 0 — «чётное», «нечётное» и «чётное». Три теста проверяют разные случаи, но не обязательно охватывают все возможные ограничения задачи. Если программа не принимает отрицательные числа, их не включают в тесты; если принимает, стоит проверить и их.

Задача 3. Программа находит наибольшее из трёх чисел. Проверим разные расположения максимума, равные числа и отрицательные значения. Такое сочетание тестов важно, потому что ошибка может скрываться не в самом сравнении, а в порядке обработки значений или равенстве. Сначала составим набор случаев и заранее определим, какое число должно быть ответом.

  1. Проверяем разные расположения максимума, например наборы (9, 2, 4), (2, 9, 4) и (2, 4, 9). Во всех трёх случаях правильный ответ равен 9.
  2. Проверяем равные значения, например (5, 5, 5), и отрицательные числа, например (−8, −3, −6). Ожидаемые ответы — 5 и −3 соответственно.
  3. Сравниваем ответы программы с ожидаемыми для каждого набора. Если результат неверен, проверяем, учтены ли все три числа и корректно ли алгоритм сравнивает отрицательные и равные значения.

Ответ: правильный максимум в приведённых наборах равен 9, 9, 9, 5 и −3. Если программа ошиблась только в одном случае, это помогает сузить поиск: например, неверный ответ при равных числах указывает на особенность обработки равенства. Затем проверьте исходные данные и ход алгоритма. После исправления повторите все тесты, а не только тот, на котором обнаружилась ошибка.

Типичные ошибки

Проверять программу только на одном примере — недостаточно: ошибка может проявляться лишь при других или граничных данных. Так поступают, потому что первый успешный запуск кажется доказательством правильности. Проверьте себя: составьте несколько тестов, которые отличаются значениями и проверяют особые случаи. Убедитесь, что программа верно обработала каждый из них.

Считать любой выведенный ответ правильным — значит пропустить ошибку в алгоритме или программе. Ответ появляется даже тогда, когда вычисление выполнено неверно, поэтому сам факт вывода ничего не доказывает. Сравните его с заранее известным результатом или проверьте по условию. Если объяснить, почему ответ удовлетворяет условию, не получается, проверка не завершена.

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

Не запускать программу повторно после исправления — значит не проверить, помогло ли изменение. Ошибку могли понять неверно, исправление могло затронуть другие части программы или создать новую проблему. После правки снова запустите тест, на котором обнаружили сбой, а затем остальные подготовленные тесты. Только совпадение результатов с ожидаемыми показывает, что проверка пройдена.

Связь с другими темами

Получение решения опирается на предыдущие действия: нужно понять условие задачи, определить исходные и результативные данные, разработать алгоритм и записать его в виде программы. Если любой из этих элементов неясен, запуск не гарантирует правильного ответа. Проверка результата и тестирование пригодятся при создании программ и поиске ошибок. Эти умения особенно важны при решении сложных вычислительных задач, где вручную проверить каждый ответ трудно.

Что запомнить

  • Исходные данные должны соответствовать условию задачи.
  • Программа преобразует введённые данные по заданному алгоритму.
  • Полученный результат необходимо проверять.
  • Одного тестового примера недостаточно для надёжной проверки.
  • Тесты должны охватывать обычные и особые случаи.
  • После исправления ошибки программу проверяют повторно.

Частые вопросы по теме

Зачем проверять результат, если программа завершилась без ошибок?

Программа может завершиться штатно, но выполнить неверный алгоритм или неправильно обработать данные. Поэтому ответ сравнивают с ожидаемым либо проверяют, удовлетворяет ли он условию задачи.

Как выбрать данные для тестирования программы?

Берите допустимые по условию данные, которые показывают обычные ситуации и возможные особые случаи. Полезно проверить граничные значения и разные варианты расположения данных.

Почему нельзя ограничиться одним тестовым примером?

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

Что делать, если программа выдаёт неправильный ответ?

Сначала проверьте, правильно ли введены данные и соответствуют ли они условию. Затем разберите алгоритм и программу, исправьте найденную ошибку и снова выполните тесты.

Нужно ли повторно запускать программу после исправления ошибки?

Да. Повторный запуск позволяет проверить, устранена ли причина неверного ответа. Кроме того, исправление могло повлиять на другие случаи, поэтому стоит пройти тесты заново.

Спросить по теме параграфа

25.8. Получение решения задачи (этап 5)

Эта же тема в других учебниках

21.6. Получение решения задачи (этап 5) "Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо, Ю.А. Быкадоров, Е.Н. Войтехович 22.6. Получение решения задачи (этап 5) "Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо, Ю.А. Быкадоров, Е.Н. Войтехович 23.7. Получение решения задачи (этап 5) "Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо, Ю.А. Быкадоров, Е.Н. Войтехович 24.6. Получение решения задачи (этап 5) "Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо, Ю.А. Быкадоров, Е.Н. Войтехович 28.6. Получение решения задачи (этап 5) "Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо, Ю.А. Быкадоров, Е.Н. Войтехович

Учебник

Оглавление →
Предмет
Информатика
Класс
9 класс
Учебник
"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо, Ю.А. Быкадоров, Е.Н. Войтехович