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