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

Тре­бо­ва­лось на­пи­сать про­грам­му, ко­то­рая вво­дит с кла­ви­а­ту­ры ко­ор­ди­на­ты точки на плос­ко­сти (х, у  — дей­стви­тель­ные числа) и опре­де­ля­ет при­над­леж­ность точки за­штри­хо­ван­ной об­ла­сти. Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му не­пра­виль­но.

Пас­кальБей­сик

var х,у: real;

begin

readln(x,y);

if x*x+y*y >= 4 then

if у >= −2 then

if у <= x then

write('при­над­ле­жит')

else

write('не при­над­ле­жит')

end.

INPUT x, у

IF x*x+y*y >= 4 THEN

IF у >= −2 THEN

IF у <= x THEN

PRINT "при­над­ле­жит"

ELSE

PRINT "не при­над­ле­жит"

ENDIF

ENDIF

ENDIF

END

Си++Ал­го­рит­ми­че­ский язык
int main(void)

{ float x, у;

cin >> x >> y ;

if (x*x+y*y >= 4)

if (у >= −2)

if (у <= x)

cout << "при­над­ле­жит";

else

cout << "не при­над­ле­жит";

}

алг

нач

вещ х, у

ввод х, у

если x*x+y*y >= 4 то

если у >= −2 то

если у <= x то

вывод 1 при­над­ле­жит'

иначе

вывод 1 не при­над­ле­жит'

все

все

все

кон

Python

x = float(input())

y = float(input())

if x*x+y*y >= 4:

    if у >= −2:

        if у <= x:

            print("при­над­ле­жит")

        else:

            print("не при­над­ле­жит")

 По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее:

1.   Пе­ре­ри­суй­те и за­пол­ни­те таб­ли­цу, ко­то­рая по­ка­зы­ва­ет, как ра­бо­та­ет про­грам­ма при ар­гу­мен­тах, при­над­ле­жа­щих раз­лич­ным об­ла­стям (A, B, C, D, E, F, G и H).

Точки, ле­жа­щие на гра­ни­цах об­ла­стей, от­дель­но не рас­смат­ри­вать. В столб­цах усло­вий ука­жи­те "да", если усло­вие вы­пол­нит­ся, "нет", если усло­вие не вы­пол­нит­ся, "—" (про­черк), если усло­вие не будет про­ве­рять­ся, "не изв.", если про­грам­ма ведет себя по-раз­но­му для раз­ных зна­че­ний, при­над­ле­жа­щих дан­ной об­ла­сти. В столб­це "Про­грам­ма вы­ве­дет" ука­жи­те, что про­грам­ма вы­ве­дет на экран. Если про­грам­ма ни­че­го не вы­во­дит, на­пи­ши­те "—" (про­черк). Если для раз­ных зна­че­ний, при­над­ле­жа­щих об­ла­сти, будут вы­ве­де­ны раз­ные тек­сты, на­пи­ши­те "не изв". В по­след­нем столб­це ука­жи­те "да" или "нет".

 

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

 

Об­ластьУсло­вие 1

(x*x+y*y >= 4)

Усло­вие 2

(у >= −2)

Усло­вие 3

(у <= x)

Про­грам­ма вы­ве­детОб­ласть об­ра­ба­ты­ва­ет­ся верно
A
В
С
D
Е
F
G
Н
Спрятать решение

Ре­ше­ние.

Эле­мен­ты от­ве­та:

1.  

Об­ластьУсло­вие 1

(x*x+y*y >= 4)

Усло­вие 2

(у >= −2)

Усло­вие 3

(у <= x)

Про­грам­ма вы­ве­детОб­ласть об­ра­ба­ты­ва­ет­ся верно
Aнетнет
Вдаданетне при­над­ле­житда
Сдададапри­над­ле­житнет
Dнетнет
Едададапри­над­ле­житнет
Fдададапри­над­ле­житда
Gданетнет
Ндаданетне при­над­ле­житда

 

2.  Воз­мож­ная до­ра­бот­ка (Пас­каль):

if (х * х + у * у >= 4) and (у >= −2) and (у <= х) and (х <= 0) then

write('при­над­ле­жит ') else

write('не при­над­ле­жит')

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

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

Кри­те­рии оце­ни­ва­ния вы­пол­не­ния за­да­нияБаллы
За­да­ние вы­пол­не­но пол­но­стью:

1) Пра­виль­но за­пол­не­на вся таб­ли­ца.

2) На­пи­са­на пра­виль­но ра­бо­та­ю­щая про­грам­ма(ис­прав­ле­ны обе ошиб­ки), т.е. про­грам­ма для всех пар чисел x, y верно опре­де­ля­ет при­над­леж­ность точки за­кра­шен­ной об­ла­сти.

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

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

На­при­мер, вы­да­ет «при­над­ле­жит» для точек, у ко­то­рых (х в квад­ра­те плюс у в квад­ра­те мень­ше 4) и (у <== х), и (у >= -2), и (х > 0).

При этом не до­пус­ка­ет­ся, чтобы про­грам­ма не­пра­виль­но ра­бо­та­ла при тех вход­ных дан­ных, при ко­то­рых рань­ше ра­бо­та­ла пра­виль­но (даже если она при этом пра­виль­но стала ра­бо­тать при боль­шем ко­ли­че­стве вход­ных дан­ных, чем ис­ход­ная).

ИС­КЛЮ­ЧЕ­НИЕ! При на­пи­са­нии опе­ра­ций срав­не­ния до­пус­ка­ет­ся одно не­пра­виль­ное ис­поль­зо­ва­ние стро­гих/не­стро­гих не­ра­венств (счи­та­ет­ся не­су­ще­ствен­ной ошиб­кой, по­греш­но­стью за­пи­си). На­при­мер, вме­сто «х<=0» ис­поль­зу­ет­ся «х<0» (даже если про­грам­ма при этом стала не­вер­но ра­бо­тать при тех вход­ных дан­ных, при ко­то­рых рань­ше ра­бо­та­ла пра­виль­но). До­пус­ка­ет­ся, на­при­мер, такое ре­ше­ние: if х * х + у * у >= 4 then if у >= -2 then if у <= х then

write('при­над­ле­жит') else

write(1 не при­над­ле­жит 1)

else

write('не при­над­ле­жит')

else

write('не при­над­ле­жит')

Дей­ствие по за­пол­не­нию таб­ли­цы за­счи­ты­ва­ет­ся, даже если ошиб­ки есть, но не более, чем в одной стро­ке.

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