"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо, Ю.А. Быкадоров, Е.Н. Войтехович
Получение решения задачи — этап, на котором разработанную программу выполняют на подходящих исходных данных и получают ответ. Он нужен, чтобы увидеть результат работы алгоритма на компьютере и проверить, отвечает ли он условию. Для этого готовят входные данные, запускают программу, записывают выходные данные и сравнивают их с ожидаемыми. Если ответы не совпадают, ищут причину и возвращаются к предыдущим этапам решения.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Получение решения задачи — выполнение разработанной программы на заданных исходных данных и получение результата. Это этап, на котором решение проверяется в действии, а не только существует в виде алгоритма или текста программы. Он нужен, чтобы узнать, какой ответ программа выдаёт для конкретного случая. Без выполнения нельзя убедиться, что программа действительно решает задачу.
Входные данные — значения, которые передают программе для решения задачи. Например, для программы, складывающей два числа, входными данными будут оба слагаемых. Именно от них зависит конкретный ответ, поэтому их выбирают согласно условию. Ошибочный ввод может привести к ответу, который не относится к поставленному вопросу.
Выходные данные — сведения, которые программа выдаёт как результат выполнения. Ими может быть число, слово или несколько значений — в зависимости от задачи. Выходные данные показывают итог работы программы на введённых значениях. Их записывают, чтобы затем проверить, соответствует ли ответ условию.
Тестовый пример — набор входных данных, для которого заранее известен ожидаемый результат. Например, можно подобрать числа, сумму которых легко вычислить вручную, и сравнить ответ программы с этим значением. Тесты помогают проверять программу не вслепую, а по понятному критерию. Несколько разных примеров дают более надёжную проверку.
Программу необходимо выполнить, потому что написанный код сам по себе ещё не показывает, получен ли правильный ответ. В алгоритме или программе может быть ошибка, которая станет заметна только при обработке данных. Кроме того, решение задачи предполагает конкретный результат, а не только описание действий для его получения. Поэтому после разработки следует запустить программу и проверить её работу.
Сначала подготовьте входные данные, затем запустите программу, получите выходные данные и запишите результат. Такой порядок помогает не перепутать, какие значения были введены и что именно выдала программа. Запись особенно полезна, если выполняется несколько запусков или сравниваются разные тесты. После этого можно спокойно сопоставить полученный ответ с ожидаемым.
Исходные данные выбирают с учётом условия, потому что ответ имеет смысл только для тех значений, о которых спрашивает задача. Если условие требует определить сумму двух чисел, вводить нужно именно эти числа, а не результат уже выполненного сложения. Следует соблюдать и ограничения задачи: например, допустимый диапазон значений или их количество. Иначе программа может выдать ответ на другой вопрос либо обработать ввод неверно.
Сопоставление фактического результата с ожидаемым позволяет проверить, правильно ли программа выполнила задачу. Ожидаемый ответ получают независимым способом: вычисляют вручную, используют известное свойство или разбирают простой пример. Если ответы совпали, тест пройден, но это ещё не доказывает правильность программы во всех случаях. Если они различаются, нужно выяснить, ошибочны ли исходные данные, алгоритм или его программная реализация.
При неверном результате не стоит менять числа наугад: так легко скрыть причину, не исправив её. Сначала проверьте правильность ввода и соответствие данных условию, затем рассмотрите алгоритм и программу. Найденную ошибку исправляют на том этапе, где она возникла, после чего снова выполняют программу. Повторная проверка показывает, помогло ли исправление и не появились ли другие ошибки.
| Действие | Что выполняют | Что проверяют |
|---|---|---|
| Подготовка входных данных | Выбирают и вводят значения по условию задачи. | Соответствуют ли данные вопросу и ограничениям задачи. |
| Запуск программы | Выполняют программу с подготовленными значениями. | Запустилась ли программа и обработала ли введённые данные. |
| Получение и запись результата | Считывают выходные данные и фиксируют их. | Понятно ли, какой ответ выдала программа. |
| Проверка результата | Сравнивают фактический ответ с ожидаемым. | Совпадает ли ответ с результатом независимой проверки. |
| Действия при обнаружении ошибки | Ищут причину, исправляют её и повторяют выполнение. | Устранена ли ошибка и верен ли ответ на повторных тестах. |
Пользуйтесь таблицей как последовательностью действий: переходите к следующей строке после выполнения предыдущей. В графе проверки указано, на что обратить внимание на каждом шаге. Если ответ не совпал с ожидаемым, вернитесь к проверке ввода и пройдите этапы снова.
Условие. Программа вычисляет сумму двух чисел. Выполнить её для чисел 3 и 5 и указать результат. Нужно не просто сложить числа, но и представить, какие данные получает программа и что она выдаёт. Здесь ожидаемый ответ легко проверить вручную.
Ответ: программа должна выдать 8. Проверка выполнена для одного набора данных, поэтому она подтверждает работу только на этом примере. Для более полной проверки можно запустить программу и с другими числами.
Условие. Программа определяет, является ли число чётным. Проверим её для числа 12, заранее указав ожидаемый ответ. Число чётное, если делится на 2 без остатка, поэтому ожидаем сообщение о чётности. Это правило даёт независимый способ проверить результат.
Ответ: ожидаемый и правильный для этого теста результат — число 12 является чётным. При несовпадении сначала проверьте, что введено именно 12. Если ввод верен, ищите ошибку в алгоритме или программе.
Условие. Программа находит наибольшее из трёх чисел. Её нужно проверить на нескольких наборах, включая равные числа и отрицательные значения. Эти случаи выбраны не случайно: при равенстве может неправильно обрабатываться сравнение, а работа с отрицательными числами проверяет, верно ли программа учитывает знак. Для каждого набора заранее определим наибольшее значение.
Ответ: правильные результаты для выбранных тестов — 7, 5 и −3. Если хотя бы один ответ отличается, зафиксируйте, на каком наборе возникло расхождение. Это поможет сузить поиск ошибки и повторить проверку после исправления.
Запускать программу с данными, не соответствующими условию задачи, — значит проверять не тот случай, о котором спрашивается. Так поступают, когда невнимательно читают условие или путают порядок вводимых значений. Сверьте каждый ввод с формулировкой задачи и её ограничениями. Если данные не подходят, подготовьте новый набор и выполните программу снова.
Проверять программу только на одном простом наборе опасно: он может не выявить ошибку, возникающую при равных или отрицательных значениях. Один удачный запуск иногда создаёт ложную уверенность в правильности. Подберите несколько тестов, которые отличаются друг от друга и проверяют разные случаи. Перед запуском запишите ожидаемые ответы, чтобы сравнение было осмысленным.
Считать любой выведенный ответ правильным — ошибка, потому что программа может выполнить неверный алгоритм и всё же показать правдоподобное значение. Так бывает, если результат принимают без независимой проверки. Спросите себя, каким способом можно получить ожидаемый ответ вручную или по правилу. Затем сравните его с выходными данными программы.
Менять исходные данные наугад после неверного ответа не помогает найти причину. Это делают, когда хотят получить совпадение, не проверив, где возникла ошибка. Сначала перепроверьте ввод, затем логику алгоритма и программу. После исправления повторите те же тесты и добавьте другие, чтобы убедиться, что результат стал верным.
Для получения решения уже должны быть известны условие задачи, входные и выходные данные, а также разработаны алгоритм и программа. Эти части определяют, что вводить, какой ответ ожидать и как компьютер должен его получить. Поэтому выполнение программы продолжает работу, начатую на предыдущих этапах решения. Если результат неверен, проверка помогает установить, к какому из этих этапов нужно вернуться.
Получение и проверка результата применяются при отладке программ — поиске и исправлении ошибок. Тестовые примеры позволяют проверить программу на заранее понятных ситуациях и затем повторить проверку после исправления. Тот же порядок используют при решении задач с помощью компьютера: подготовить данные, выполнить вычисления и оценить ответ. Так проверка связывает разработку программы с её практическим применением.
Что означает этап получения решения задачи?
Это выполнение программы на заданных входных данных с последующим получением результата. Полученный ответ нужно записать и проверить.
Почему недостаточно просто написать программу?
Пока программа не выполнена, неизвестно, какой ответ она выдаст для конкретных данных. Запуск помогает проверить, правильно ли реализован алгоритм и соответствует ли результат условию.
Как понять, что результат выполнения программы верный?
Сравните его с ожидаемым ответом, который можно получить независимо, например вручную или по известному примеру. Проверку лучше провести на нескольких наборах входных данных.
Зачем проверять программу на нескольких наборах данных?
Один пример не показывает, как программа поведёт себя в других ситуациях. Разные тесты, в том числе граничные и необычные случаи, помогают заметить ошибки, которые иначе остались бы скрыты.
Что делать, если программа выдаёт неверный ответ?
Сначала проверьте, правильно ли введены данные и соответствуют ли они условию. Если с ними всё верно, вернитесь к алгоритму и программе, найдите причину ошибки, исправьте её и повторите проверку.
24.6. Получение решения задачи (этап 5)