РУҚА
24

Шешімі: Исправление программы неравенства

ЕГЭ · Информатика · Тапсырма 24 · Бағдарламалау негіздері
КүрделіФИПИ3DA124Толық шешім≈ 5 минутТалдау 5 қадам
Условие

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

В программах на Паскале, Бейсике и Си при $a=0$ проверяется знак $b$, а при $a\ne0$ выводится решение $x>-b/a$.

Последовательно выполните три задания:
1) Приведите пример таких чисел $a$, $b$, $x$, при которых программа неверно решает поставленную задачу.
2) Укажите, какая часть программы является лишней.
3) Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. Можно указать любой способ доработки исходной программы.

Тапсырманы ашып, өзіңіз шешіңіз
Дальше ответЕгер әлі шешіп жатсаңыз – кеңестерден бастаңыз: олар жауапқа жетелейді, бірақ оны ашпайды.
К подсказкам

Шешім по шагам

5 қадам
1

Выберем $a=-1$, $b=2$, $x=3$. Исходное неравенство принимает вид $-x+2>0$, то есть $x<2$.

$$-x+2>0\Longleftrightarrow x<2$$
2

Программа при любом $a\ne0$ выводит $x>-b/a$. В выбранном примере она выведет $x>2$, что неверно: при делении на отрицательное число знак неравенства меняется.

$$-\dfrac{b}{a}=-\dfrac{2}{-1}=2$$
3

Лишним является ввод и хранение переменной $x$: программа не проверяет конкретное значение $x$, а выводит общий промежуток решений.

4

Для исправления нужно рассмотреть три случая: $a=0$, $a>0$ и $a<0$. При $a=0$ и $b>0$ подходит любое $x$, при $a=0$ и $b\leq0$ решений нет.

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

$$var\ a,b:\ real;\ begin\ readln(a,b);\ if\ a=0\ then\ if\ b>0\ then\ writeln('любое число')\ else\ writeln('нет решений')\ else\ if\ a>0\ then\ writeln('x>',-b/a)\ else\ writeln('x<',-b/a);\ end.$$
Жауап

Например, $a=-1$, $b=2$, $x=3$: программа ошибочно выводит $x>2$, хотя правильное решение — $x<2$. Лишними являются переменная $x$ и её ввод. Нужно добавить проверку знака $a$: при $a>0$ выводить $x>-b/a$, при $a<0$ — $x<-b/a$; случай $a=0$ обработать отдельно.

Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.

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

Не меняют знак неравенства при $a<0$.

Считают, что при $a=0$ и $b=0$ подходит любое число.

Называют лишним вывод шешімдер вместо ввода переменной $x$.

Закрепить приёмВ теме «Бағдарламалау негіздері» ещё 159 тапсырма — жауабымен және дәл осындай талдауымен.
Жаттығу

Тапсырманы қалай шешу керек 24 ЕГЭ, информатика

Бұл есептің талдауы келесіге бөлінген: 5 шагов: видно, откуда берётся каждое число и где теряется балл. Жауап есептеулердің жанында келтірілген, олардың орнына емес.

Задача из темы «Бағдарламалау негіздері»: в ней 160 задач, и у каждой есть такой же разбор. Тіркеу қажет емес.