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

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

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

var x, у: real;

begin

readln(x,y);

if x*x + y*y <= 25 then

if y <= 4 - x*x then

if y <= x+1 then

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

else

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

end.

INPUT х, у

IF x*x + у*у <= 25 THEN

IF y <= 4 - x*x THEN

IF y <= x + 1 THEN

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

ELSE

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

ENDIF

END IF

END IF

END

Си++Ал­го­рит­ми­че­ский язык

#include <iostream>

using namespace std;

int main (void) {

float x,y;

cin >> x >> y;

if (x*x + y*y <= 25)

if (y <= 4 - x * x)

if (y <= x + 1)

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

else

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

}

алг

нач

вещ х,у

ввод х,у

если х * х + у * у <= 25 то

если y <= 4 - x * x то

если y <= x + 1 то

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

иначе

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

все

все

все

кон

Python

x = float(input())

y = float(input())

if x*x + y*y <= 25:

    if y <= 4 - x * x:

        if y <= x + 1:

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

        else:

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

 

При про­вер­ке ра­бо­ты про­грам­ма вы­пол­ня­лась по шагам для не­ко­то­рых кон­троль­ных зна­че­ний x и y. при этом был за­пол­нен про­то­кол те­сти­ро­ва­ния, со­дер­жа­щий сле­ду­ю­щую ин­фор­ма­цию.

 

Об­ласть  — часть плос­ко­сти, ко­то­рой при­над­ле­жит про­ве­ря­е­мая точка (все воз­мож­ные об­ла­сти от­ме­че­ны на ри­сун­ке бук­ва­ми A, B, C, ... W).

 

Усло­вие 1, Усло­вие 2, Усло­вие 3  — ре­зуль­тат про­вер­ки со­от­вет­ству­ю­ще­го усло­вия (да или нет). Если усло­вие не про­ве­ря­лось, в про­то­кол за­пи­сы­вал­ся про­черк.

 

Вывод  — со­об­ще­ние, ко­то­рое вы­ве­ла про­грам­ма. Если про­грам­ма ни­че­го не вы­ве­ла, в про­то­кол за­пи­сы­вал­ся про­черк.

 

Верно  — ито­го­вое за­клю­че­ние (да или нет) о пра­виль­но­сти ре­зуль­та­та ра­бо­ты про­грам­мы при дан­ных зна­че­ни­ях x и y.

В ре­зуль­та­те не­ак­ку­рат­но­го об­ра­ще­ния про­то­кол был ис­пор­чен, ча­стич­но со­хра­ни­лось толь­ко три стро­ки:

 

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

(х*х+у*у <= 25)

Усло­вие 2 (y <= 4 - x * x)Усло­вие 3 (y <= x + 1)ВыводВерно
да
при­над­ле­житнет
нет нет

 

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

1.  Вос­ста­но­ви­те уце­лев­шие стро­ки про­то­ко­ла, за­пол­нив все клет­ки таб­ли­цы. Там, где со­дер­жа­ние вос­ста­нав­ли­ва­ет­ся не­од­но­знач­но, за­пи­ши­те любое воз­мож­ное зна­че­ние. На­при­мер, если для не­сколь­ких об­ла­стей по­лу­ча­ет­ся оди­на­ко­вая стро­ка таб­ли­цы, ука­жи­те в графе «Об­ласть» любую из этих об­ла­стей.

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

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

Ре­ше­ние.

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

 

ans:=false;

if x * x + y * y <= 25 then

begin

if (y <= x + 1) then

begin

if x <= 0 then ans := true;

if (x >= 0) and (y >= 0) and (y <= 4 - x * x) then ans:= true;

end;

if (x >= 0) and (y <= 4 - x * x) and (y >= x + 1) then ans := true;

end;

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

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

Кри­те­рии оце­ни­ва­ния вы­пол­не­ния за­да­нияБаллы
Вы­пол­не­ны все три дей­ствия3
Пра­виль­но вы­пол­не­ны два дей­ствия из трёх (ис­прав­ле­ны обе ошиб­ки, но в пунк­те 1 за­да­ния не при­ве­де­на таб­ли­ца (либо таб­ли­ца со­дер­жит ошиб­ки в двух и более стро­ках), либо при­ве­де­на таб­ли­ца (ко­то­рая со­дер­жит ошиб­ки не более чем в одной стро­ке), но ис­прав­ле­на толь­ко одна ошиб­ка про­грам­мы). При на­пи­са­нии опе­ра­ций срав­не­ния до­пус­ка­ет­ся одно не­пра­виль­ное ис­поль­зо­ва­ние стро­гих/не­стро­гих не­ра­венств (счи­та­ет­ся не­су­ще­ствен­ной ошиб­кой, по­греш­но­стью за­пи­си). На­при­мер, вме­сто «x>=5» ис­поль­зу­ет­ся «x>5»2
Пра­виль­но вы­пол­не­но толь­ко одно дей­ствие из трёх, т.е. либо толь­ко при­ве­де­на таб­ли­ца, ко­то­рая со­дер­жит ошиб­ки в не более чем одной стро­ке, либо таб­ли­ца не при­ве­де­на (или при­ве­де­на и со­дер­жит ошиб­ки более чем в одной стро­ке), но ис­прав­ле­на одна ошиб­ка про­грам­мы. При оце­ни­ва­нии этого за­да­ния на 1 балл до­пус­ка­ет­ся не учи­ты­вать кор­рект­ность ра­бо­ты про­грамм на точ­ках гра­ниц об­ла­стей (вме­сто не­стро­гих не­ра­венств в ре­ше­нии были ис­поль­зо­ва­ны стро­гие не­ра­вен­ства или на­о­бо­рот)1
Все пунк­ты за­да­ния вы­пол­не­ны не­вер­но (таб­ли­ца ана­ли­за пра­виль­но­сти ал­го­рит­ма не при­ве­де­на либо со­дер­жит ошиб­ки в двух и более стро­ках, про­грам­ма не при­ве­де­на либо ни одна из двух оши­бок не ис­прав­ле­на)0
Мак­си­маль­ный балл3