РУҚА
24

Исправление программы неравенства

ЕГЭ · Информатика · Задание 24 · Основы программирования
ПовышеннаяФИПИ3DA124Развёрнутое решение≈ 5 минут

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

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

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

Условие как в банке ФИПИ — открыть и сверить
Дайте развернутый ответ.

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

ПРОГРАММА НА ПАСКАЛЕ

ПРОГРАММА НА БЕЙСИКЕ

ПРОГРАММА НА СИ

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

INPUT a, b, x
IF a = 0 THEN
IF b > 0 THEN
PRINT "любое число"
ELSE
PRINT "нет решений"
ENDIF
ELSE
PRINT "x>", -b/a
ENDIF
END

void main(void)
{ float a,b,x;
scanf("%f%f%f",
&a,&b,&x);
if (a==0)
if (b > 0)
printf("любое число");
else
printf("нет решений");
else
printf("x>%f",-b/a);
}

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



Ответ

Это задание с развёрнутым решением: ответом считается запись хода решения, а не строка. Напишите решение на бумаге и сравните с разбором — там каждый шаг с обоснованием.

Открыть разбор
!
3 уровня: от лёгкого толчка до почти готового решения. Следующий открывается, когда прочитан предыдущий, — чтобы не перепрыгнуть сразу к ответу.
1Мягкая — с чего смотретьуровень 1 из 3

Что происходит с направлением знака неравенства при делении на отрицательное число?

2Наводящая — какие числа считатьуровень 2 из 3

При $a<0$ решение имеет вид $x<-b/a$, а при $a=0$ нужно отдельно рассмотреть знак $b$.

3Прямая — фактически решениеуровень 3 из 3

Например, при $a=-1$, $b=2$, $x=3$ программа выводит $x>2$, хотя исходное неравенство имеет решение $x<2$. Удалите ввод $x$ и добавьте ветвление по знаку $a$.

Всё равно не складывается?Полное решение с обоснованием каждого шага — на отдельной странице.
Открыть решение

Задание 24 ЕГЭ, информатика

Задача из темы «Основы программирования»: в ней 160 задач с ответом и разбором по шагам. В 24-м номере бланка — 80 задач.

Ответ можно проверить здесь же, а если не выходит — открыть подсказку или разбор. Регистрация не нужна.