РУҚА
24

Решение: Исправление решения линейного уравнения

ЕГЭ · Информатика · Задание 24 · Основы программирования
ПовышеннаяФИПИ8D5EEFРазвёрнутое решение≈ 8 минутРазбор в 4 шага
Условие

Требовалось написать программу, которая решает уравнение $ax+b=0$ относительно $x$ для любых действительных чисел $a$ и $b$, введённых с клавиатуры. Программист написал программу неправильно. Во всех трёх вариантах программы вводятся числа $a$, $b$ и $x$, затем сначала проверяется условие $b=0$, а при $b\ne0$ — условие $a=0$.

Последовательно выполните три задания: приведите пример таких чисел $a$, $b$, $x$, при которых программа неверно решает поставленную задачу; укажите лишнюю часть программы; укажите, как доработать программу, чтобы исключить неправильную работу.

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

4 шага
1

Возьмём $a=0$, $b=0$, например $x=1$. Тогда исходное уравнение имеет вид $0x+0=0$ и верно при любом действительном $x$, то есть имеет бесконечно много решений. Программа же попадает в первую ветвь и сообщает только $x=0$, поэтому решение задачи описывается неверно.

2

Переменная $x$ во вводе является лишней: её значение не используется для решения уравнения. Также лишним является отдельное присваивание результата в ветви $b=0$ как особого случая: при $a\ne0$ значение $x=-b/a$ и так равно нулю.

3

Сначала нужно проверить, равен ли коэффициент $a$ нулю. Если $a=0$ и $b=0$, решений бесконечно много; если $a=0$ и $b\ne0$, решений нет. При $a\ne0$ решение вычисляется по формуле $x=-b/a$.

Один из вариантов исправленной программы на Паскале:

$$\text{if } a=0 \text{ then if } b=0 \text{ then \text{«бесконечно много решений»} else \text{«нет решений»} else x=-b/a$$
Ответ

Пример: $a=0$, $b=0$, $x=1$; лишним является ввод переменной $x$ и отдельная обработка случая $b=0$ как первой ветви; нужно сначала проверять $a=0$, затем различать случаи $b=0$ и $b\ne0$, а при $a\ne0$ выводить $x=-b/a$.

Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Указать случай $b=0$, $a\ne0$ как ошибочный: в этом случае программа действительно выдаёт правильное решение $x=0$.

Забыть, что при $a=0$, $b=0$ уравнение имеет бесконечно много решений.

Предложить деление на $a$ без предварительной проверки, что $a\ne0$.

Не указать, что введённое значение $x$ не используется в вычислениях.

Закрепить приёмВ теме «Основы программирования» ещё 159 задач — с ответом и таким же разбором.
Тренироваться

Как решать задание 24 ЕГЭ, информатика

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

Задача из темы «Основы программирования»: в ней 160 задач, и у каждой есть такой же разбор. Регистрация не нужна.