"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо, Ю.А. Быкадоров, Е.Н. Войтехович
Постановка задачи — первый этап решения задачи на компьютере. На нём выясняют, что уже известно, что требуется получить и какие условия нужно учитывать. Точная формулировка помогает не перепутать данные с ответом, избежать разных толкований и понять, что программа должна вводить и выводить. Только после этого удобно разрабатывать алгоритм и проверять его на подходящих данных.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Постановка задачи — первый этап решения задачи на компьютере, на котором устанавливают, что дано и что требуется получить. Иными словами, прежде чем искать способ решения, нужно договориться, какой вопрос задаёт условие и какой ответ будет ему соответствовать. Это нужно, чтобы не строить алгоритм для неверно понятой задачи.
Исходные данные — сведения, заданные для решения до начала вычислений. Это могут быть числа, слова или другие значения, которые поступают на вход программы. Их выделяют отдельно, чтобы понимать, что уже известно и какие сведения нельзя ошибочно назвать ответом.
Результат — сведения, которые требуется получить после решения задачи. Он может быть числом, набором значений или иным ответом на поставленный вопрос. Отличие простое: исходные данные уже известны, а результат ещё нужно найти, используя условие.
Условие задачи — описание связи между исходными данными и требуемым результатом, а также ограничений и дополнительных требований. Например, условие может указывать, что число должно быть положительным. Оно нужно, чтобы все одинаково понимали задачу и могли проверить правильность ответа.
Работу над компьютерной задачей начинают с выяснения её смысла, потому что отдельные слова условия не всегда сразу показывают, какой ответ нужен. Полезно пересказать задачу своими словами: назвать вопрос и описать, что будет считаться решением. Если такой пересказ звучит неясно, переходить к алгоритму рано: непонятность сохранится и в программе.
Затем из условия выделяют исходные данные и требуемый результат. Это разделение важно, поскольку одно и то же значение в одной задаче может быть задано, а в другой — искомо. Например, если дана площадь и требуется найти сторону, площадь относится к исходным данным, а сторона — к результату; смешение этих ролей меняет смысл решения.
После этого уточняют допустимые значения исходных данных и ограничения. Проверка нужна потому, что не каждое значение имеет смысл для конкретной задачи: длина не может быть отрицательной, а количество предметов обычно задаётся целым числом. Если ограничения указать заранее, можно понять, какие входные данные программа должна принимать и что делать с неподходящими значениями.
Далее выясняют, хватает ли сведений для единственного ответа. Если условие допускает несколько трактовок, добавляют предположения или уточняют формулировку. Например, вопрос о наибольшем числе может требовать сообщить само значение, но не уточнять, сколько раз оно встречается; такое различие нужно оговорить, иначе разные решения могут оказаться правильными по-разному.
В завершение составляют короткую и точную формулировку задачи. В ней должны быть понятны входные данные, выходные данные и требования к ним, потому что именно по ним позже строят обработку и оценивают ответ. Такая формулировка также даёт основу для проверки программы: можно заранее подобрать примеры допустимых и граничных значений.
| Элемент | На какой вопрос отвечает | Что указать |
|---|---|---|
| Исходные данные | Какие сведения заданы? | Величины и их допустимые значения |
| Требуемый результат | Что нужно получить? | Искомые величины или ответ |
| Ограничения | Какие значения допустимы? | Условия на исходные данные |
| Дополнительные предположения | Что принято считать заранее? | Уточнения, необходимые для однозначного решения |
Заполняйте таблицу, последовательно отвечая на вопросы во втором столбце. Так легче отделить известные значения от искомых и не забыть про ограничения. Если ответ на вопрос нельзя дать по условию, проверьте, нужно ли добавить предположение или уточнить задачу.
Условие: даны длина и ширина прямоугольника, требуется найти его площадь. Нужно сначала понять роли величин, а не сразу записывать вычисление. В условии предполагается, что длина и ширина заданы в одинаковых единицах измерения.
Ответ: исходными данными являются a и b, искомый результат — S, который находят умножением длины на ширину. Если требуется строго прямоугольник, нулевые значения сторон исключают; это уточнение делает условия задачи точнее.
Условие: заданы три числа, требуется определить наибольшее из них. Необходимо понять, что именно считать ответом: значение наибольшего числа или его положение среди введённых чисел. В этой постановке ищем само значение, а равные числа не мешают получить ответ.
Ответ: наибольшее из трёх заданных чисел. Если бы требовалось определить его номер или количество повторений, это следовало бы отдельно указать в условии. Такое уточнение предотвращает разные трактовки результата.
Условие: известны начальная скорость, время движения и ускорение тела; требуется найти пройденный путь. До вычислений нужно назвать величины и убедиться, что используемая модель подходит. Для примера рассматриваем прямолинейное равноускоренное движение с постоянным ускорением.
Ответ: исходными данными служат v₀, t и a, а искомым результатом — s. Формула применима при указанных предположениях и согласованных единицах; без уточнения модели условие может описывать другой вид движения.
Сразу начинать составлять алгоритм. Так поступают, когда торопятся перейти к вычислениям, не разобрав вопрос условия, и рискуют решить не ту задачу. Проверьте себя: можете ли вы одним предложением сказать, что требуется найти и что будет ответом? Если нет, сначала уточните смысл задачи.
Путать исходные данные с результатом. Ошибка возникает, если не разделить известные и неизвестные величины; тогда программа может обрабатывать не те значения. Для проверки выпишите отдельно, что дано в условии, и что требуется получить. Убедитесь, что искомая величина не записана как уже известная.
Не указывать ограничения на входные значения. Об этом забывают, когда предполагают, что любые числа одинаково подходят для решения. Однако отрицательная длина или дробное число предметов могут не иметь смысла. Спросите себя, какие входные значения допустимы, и явно запишите условия на них.
Оставлять неоднозначную формулировку. Она появляется, если не уточнить, например, что считать ответом при равных значениях или какая модель используется. В результате разные люди могут предложить разные, но внешне разумные решения. Проверьте постановку на несколько возможных толкований и добавьте предположения, устраняющие их.
Для постановки задачи нужно внимательно читать условие, различать известные и неизвестные величины и понимать обозначения. Эти умения помогают выделить данные и не потерять смысл вопроса. На следующем этапе результаты постановки используют при разработке алгоритма и программы: по ним определяют ввод, обработку и вывод.
Точная формулировка нужна и для проверки программы. С ней проще подобрать обычные, граничные и недопустимые данные и понять, каким должен быть ответ в каждом случае. Если проверка выявляет неясность, значит, постановку задачи стоит уточнить до дальнейшей работы.
Зачем постановка задачи нужна до составления алгоритма?
Она помогает точно понять, какой вопрос нужно решить и какой ответ считается правильным. Без этого можно составить алгоритм для другой задачи или не учесть важные условия.
Чем исходные данные отличаются от результата?
Исходные данные известны до вычислений и поступают на вход решения. Результат — это ответ, который требуется получить после обработки этих данных.
Нужно ли указывать ограничения на входные данные?
Да, ограничения показывают, какие значения допустимы, например могут ли числа быть отрицательными. Это помогает правильно выбрать способ решения и не допустить некорректной работы программы.
Что делать, если условие допускает несколько толкований?
Нужно выяснить, каких сведений не хватает, и сформулировать дополнительные предположения. Если возможно, следует уточнить условие, чтобы для него оставалось одно разумное толкование.
Как понять, что постановка задачи сформулирована достаточно точно?
По ней должно быть понятно, какие данные подаются на вход, что нужно получить и какие значения допустимы. Также должно быть ясно, как проверить, соответствует ли ответ условию.
21.1. Постановка задачи (этап 1)