Задания
Версия для печати и копирования в MS Word
Тип Д24 C1 № 3637
i

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

 

Бей­сикPython

INPUT а, b, х

IF b = 0 THEN

PRINT "х > 0 или х <0"

ELSE

IF а>0 THEN

PRINT "х >0 или х<",-b

ELSE

PRINT -b,"<х<0"

ENDIF

ENDIF

END

a = float(input())

b = float(input())

x = float(input())

if b == 0:

    print("x > 0 или x < 0")

else:

    if a > 0:

        print('x > 0 или x <',-b)

    else:

        print(-b,'< x <0 ')

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

var a,b,x: real;

begin

readln(a,b,x);

if b = 0 then

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

else

if a > 0 then

write('x > 0 или x <',-b)

else

write(-b,'< x <0 ' ) ;

end.

алг

нач

    вещ a,b,x

    если b = 0 то

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

    иначе

    если a > 0 то

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

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

    все

    все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{ float a,b,x;

cin >> a >> b >> x ;

if (b==0)

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

else

if (a > 0)

cout << "x > 0 или x <" << -b << endl;

else

cout << -b << "< x <0" << endl;

}

 

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

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

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

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

Спрятать решение

Ре­ше­ние.

1)  а = −1, b = 0, x = 0.

Зна­че­ние х может быть не ука­за­но. Зна­че­ние a может быть любым от­ри­ца­тель­ным чис­лом. Также до­пу­стим ответ, что про­грам­ма ра­бо­та­ет не­пра­виль­но при любых от­ри­ца­тель­ных а и b = 0).

 

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

не нужно вво­дить х с кла­ви­а­ту­ры; верно: readln(a, b). Также не нужно за­да­вать пе­ре­мен­ную x при опи­са­нии пе­ре­мен­ных; верно var a,b:real.

 

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

readln(a, b);

if b = 0 then

if а > 0 then

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

else

write('нет ре­ше­ний')

else

if а > 0 then

write('х > 0 или х <', −b)

else

write(−b, '< х < 0 ' );

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

Спрятать критерии
Критерии проверки:

Кри­те­рии оце­ни­ва­ния вы­пол­не­ния за­да­нияБаллы
Пра­виль­но вы­пол­не­ны три пунк­та за­да­ния. при­ве­де­ны при­ме­ры чисел для ко­то­рых про­грам­ма ра­бо­та­ет не­кор­рект­но. Верно при­ве­де­на лиш­няя часть. При­ве­де­на вер­ная до­ра­бот­ка. В ра­бо­те (во фраг­мен­тах про­грамм) до­пус­ка­ет­ся на­ли­чие от­дель­ных син­так­си­че­ских оши­бок, не ис­ка­жа­ю­щих за­мыс­ла ав­то­ра ре­ше­ния.3
Пра­виль­но вы­пол­не­ны два дей­ствия из трёх.

2
Пра­виль­но вы­пол­не­но толь­ко одно дей­ствие из трёх, то есть либо толь­ко вы­пол­нен пункт 1, либо он не вы­пол­нен или вы­пол­нен не­вер­но и при­ве­де­на лиш­няя часть про­грам­мы или воз­мож­ная до­ра­бот­ка.1
Все пунк­ты за­да­ния вы­пол­не­ны не­вер­но (ответ на пункт 1 не при­ведён или при­ведён не­вер­но, ошиб­ки не най­де­ны или най­де­ны, но не ис­прав­ле­ны, или ис­прав­ле­ны не­вер­но).0
Мак­си­маль­ный балл3