С1
Требовалось написать программу, которая решает уравнение «ax+b=0» относительно x для любых чисел a и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.
ПРОГРАММА НА ПАСКАЛЕ |
ПРОГРАММА НА БЕЙСИКЕ |
ПРОГРАММА НА СИ |
var a, b, x: real;
begin
readln(a,b,x);
if b = 0 then
write('x = 0')
else
if a = 0 then
write('нет решений')
else
write('x =',-b/a);
end. |
INPUT a, b, x
IF b = 0 THEN
PRINT "x = 0"
ELSE
IF a = 0 THEN
PRINT "нет решений"
ELSE
PRINT "x=",-b/a
ENDIF
ENDIF
END |
void main(void)
{ float a,b,x;
scanf("%f%f%f", &a,&b,&x);
if (b==0)
printf("x=0");
else
if (a==0)
printf("нет решений");
else
printf("x=%f",-b/a);
} |
Последовательно выполните три задания:
1) Приведите пример таких чисел a, b, x, при которых программа неверно решает поставленную задачу.
2) Укажите, какая часть программы является лишней.
3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).