Требовалось написать программу, которая решает неравенство относительно x для любого ненулевого числа b и любого неотрицательного числа a и
введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.
| Бейсик | Python |
|---|---|
INPUT а, b, х IF а = 0 THEN IF b > 0 THEN PRINT "нет решений" ELSE PRINT "x>0 или x<0" ENDIF ELSE PRINT -a,"< x < 0"
| a = float(input()) b = float(input()) x = float(input()) if a == 0: if b > 0: print("нет решений") else: print("x > 0 или x <0") else: print(-a,'< x <0')
|
| Паскаль | Алгоритмический язык |
var a,b,x: real; begin readln(a,b,x); if a = 0 then if b > 0 then write ('нет решений') else write('x > 0 или x <0') else write(-a,'< x <0'); end.
| алг нач вещ a, b, x если a == 0 то если b > 0 то вывод 'нет решений' иначе вывод 'x > 0 или x <0' все иначе вывод -a,'< x <0' все кон |
| Си++ | |
#include <iostream> using namespace std; int main(void) { float a,b,x; cin >> a >> b,&x; if (a==0) if (b>0) cout << "нет решений"<< endl; else cout << "x>0 или x<0"<< endl; else cout << -a << "< x <0" << endl; }
| |
Последовательно выполните три задания:
1) Приведите пример таких чисел а, b, х, при которых программа неверно решает поставленную задачу.
2) Укажите, какая часть программы является лишней.
3) Укажите, как нужно доработать программу, чтобы не было случаев ее некорректной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
1) Значение
может быть не указано. Значение b может быть любым отрицательным числом, значение a — любым положительным. Также допустим ответ, что программа работает неправильно при любых положительных a и отрицательных
2) Лишняя часть: не нужно вводить х с клавиатуры; верно: readln (а, b) .
3) Возможная доработка: readln(a, b);
if а=0 then
if b>0 then
write('нет решений')
else
write('x>0 или x<0')
else
if b>0 then
write(-a,'< x <0')
else
write ('x>0 или x<',-a);
(могут быть и другие способы доработки).

