СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости


Задания
Версия для печати и копирования в MS Word
Задание 24 № 3646

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

 

 

БейсикPython

INPUT a, b, x

IF b > 0 THEN

PRINT "x > ",a," или x<0"

ELSE

IF a > 0 THEN

PRINT "0 < x < ",a

ELSE

PRINT a," < x < 0"

ENDIF

ENDIF

END

a = float(input())

b = float(input())

x = float(input())

if b > 0:

    print('x > ', a, ' или x < 0')

else:

    if a > 0:

        print('0 < x <', a)

    else:

        print(a, '< x < 0 ')

ПаскальАлгоритмический язык

var a,b,x: real;

begin

readln(a,b,x);

if b>0 then

write ('x > ', a, ' или x < 0')

else

if a > 0 then

write ('0 < x <', a)

else

write (a, '< x < 0 ');

end.

алг

нач

    вещ a,b,x

    ввод a,b,x

    если b > 0 то

        вывод "x > ", a, " или x < 0"

    иначе

    если a > 0 то

        вывод "0 < x <", a

    иначе вывод a, "< x < 0 "

    все

    все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{ float a,b,x;

cin >> a >> b >> x;

if (b > 0)

cout << "x > " << a << "или x < 0'" << endl;

else

if (a>0)

cout << "0 < x <" << a << endl;

else

cout << a << "< x < 0" << endl;

}

 

 

Последовательно выполните три задания:

1) Приведите пример таких чисел а, b, х, при которых программа неверно решает поставленную задачу.

2) Укажите, какая часть программы является лишней.

3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

Решение.

1) a = −11, b = 1, x = 0.

Значение x может быть не указано. Значение а может быть любым отрицательным числом, зна¬чение b — любым положительным. Также допустим ответ, что программа работает неправильно при любых положительных b и отрицательных а.

2) Лишняя часть:

не нужно вводить х с клавиатуры; верно: readln(a, b).

3) Возможная доработка:

readln(а, b);

if b > 0 then

if а > 0 then

write('х >', а, 'или х < 0')

else

write('х < ', а, 'или х > 0')

else

if а > 0 then

write('0 < х <', а)

else

write(а,' < х < 0');

(могут быть и другие способы доработки).