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

Дано целое не­от­ри­ца­тель­ное число N. Не­об­хо­ди­мо вы­ве­сти два не­от­ри­ца­тель­ных целых числа, ко­то­рые при воз­ве­де­нии к квад­рат дадут ре­зуль­та­ты, наи­бо­лее близ­кие к N. На­при­мер, для N = 2016 нужно вы­ве­сти числа 44 и 45 (442 = 1936, 452 = 2025), а для N = 9 нужно вы­ве­сти числа 2 и 3. Для ре­ше­ния этой за­да­чи уче­ник на­пи­сал про­грам­му, но, к со­жа­ле­нию, его про­грам­ма  — не­пра­виль­ная.

Ниже эта про­грам­ма для Ва­ше­го удоб­ства при­ве­де­на на пяти язы­ках про­грам­ми­ро­ва­ния.

 

Бей­сикPython

DIM N, K AS INTEGER

INPUT N

K = 1

WHILE K*K <= N

  K = K + 1

WEND

PRINT (K-1)*(K-1), K*K

END

n = int(input())

k = 1

while k*k <= n:

    k = k + 1

print((k-1)*(k-1),k*k)

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

алг

нач

  цел n, k

  ввод n

  k := 1

  нц пока k*k <= n

    k := k + 1

  кц

  вывод (k-1)*(k-1), " ", k*k

кон

var n, k: integer;

begin

  read(n);

  k := 1;

  while k*k <= n do

    k := k + 1;

  writeln((k-1)*(k-1),' ',k*k)

end.

Си++

#include <iostream>

using namespace std;

    int main(){

    int n, k;

    cin >> n;

    k = 1;

    while (k*k <= n)

        k = k + 1;

    cout << (k-1)*(k-1) << k*k << endl;

    return 0;

}

 

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

 

1.  На­пи­ши­те, что вы­ве­дет эта про­грам­ма при вводе N = 2016.

2.  На­зо­ви­те зна­че­ние N, при вводе ко­то­ро­го про­грам­ма вы­ве­дет вер­ный ответ. Ука­жи­те этот ответ.

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

 

Об­ра­ти­те вни­ма­ние: Вам нужно ис­пра­вить при­ведённую про­грам­му, а не на­пи­сать свою. Вы мо­же­те толь­ко за­ме­нять оши­боч­ные стро­ки, но не мо­же­те уда­лять стро­ки или до­бав­лять новые. За­ме­нять сле­ду­ет толь­ко оши­боч­ные стро­ки: за ис­прав­ле­ния, внесённые в стро­ки, не со­дер­жа­щие оши­бок, баллы будут сни­жать­ся.

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

Ре­ше­ние.

1.  При вводе N = 2016 про­грам­ма вы­ве­дет числа 1936 и 2025.

2.  Про­грам­ма вы­ве­дет вер­ный ответ при N = 0. В от­ве­те будут числа 0 и 1.

3.  Про­грам­ма со­дер­жит две ошиб­ки:

1)  не­вер­ная ор­га­ни­за­ция цикла;

2)  не­вер­ный вывод ре­зуль­та­тов.

 

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

Пер­вая ошиб­ка:

while k*k <= n do

Ис­прав­лен­ная стро­ка:

while k*k < n do

Вто­рая ошиб­ка:

writeln((k-1)*(k-1),' ',k*k)

Ис­прав­лен­ная стро­ка:

writeln(k-1,' ',k)

 

В про­грам­мах на дру­гих язы­ках оши­боч­ные стро­ки и их ис­прав­ле­ния ана­ло­гич­ны.

 

За­ме­ча­ние. N = 0  — един­ствен­ное под­хо­дя­щее зна­че­ние. Про­грам­ма вы­во­дит квад­ра­ты вме­сто самих чисел. Для 0 и 1 числа сов­па­да­ют с квад­ра­та­ми, по­это­му при N = 0 и N = 1 дол­жен по­лу­чать­ся пра­виль­ный ре­зуль­тат. Од­на­ко при N = 1 из-за ошиб­ки в ор­га­ни­за­ции цикла вме­сто вер­но­го ре­зуль­та­та «0 1» вы­во­дит­ся «1 4», по­это­му пра­виль­ный ответ по­лу­ча­ет­ся толь­ко при N = 0.

В ра­бо­те до­ста­точ­но при­ве­сти пра­виль­ное зна­че­ние N и ответ про­грам­мы, по­дроб­ное обос­но­ва­ние не тре­бу­ет­ся.

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

В за­да­че тре­бу­ет­ся вы­пол­нить три дей­ствия.

1. Ука­зать ответ про­грам­мы при дан­ном вводе.

Это дей­ствие счи­та­ет­ся вы­пол­нен­ным, если ука­зан вер­ный ре­зуль­тат ра­бо­ты про­грам­мы при за­дан­ном вход­ном зна­че­нии. Эк­за­ме­ну­е­мый не обя­зан объ­яс­нять, как по­лу­чен этот ре­зуль­тат, до­ста­точ­но ука­зать вер­ное число.

2. Ука­зать при­мер вер­ной ра­бо­ты про­грам­мы.

Это дей­ствие счи­та­ет­ся вы­пол­нен­ным, если ука­за­но число, при вводе ко­то­ро­го вы­во­дит­ся вер­ный ре­зуль­тат, и сам этот ре­зуль­тат. Эк­за­ме­ну­е­мый не обя­зан по­яс­нять этот ре­зуль­тат, опи­сы­вать общую за­ко­но­мер­ность и объ­яс­нять ме­ха­низм ра­бо­ты про­грам­мы.

3. Найти и ис­пра­вить ошиб­ки в про­грам­ме.

Это дей­ствие счи­та­ет­ся вы­пол­нен­ным, если верно ука­за­ны обе ошиб­ки и пред­ло­же­ны вер­ные ва­ри­ан­ты ис­прав­ле­ния, при этом ни­ка­кие вер­ные стро­ки про­грам­мы не ука­за­ны в ка­че­стве не­вер­ных.

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

Ошиб­ка счи­та­ет­ся ис­прав­лен­ной, если вы­пол­не­ны оба сле­ду­ю­щих усло­вия:

 

а) пра­виль­но ука­за­на стро­ка с ошиб­кой;

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

 

Кри­те­рии оце­ни­ва­ния вы­пол­не­ния за­да­нияБаллы
Вы­пол­не­ны все три не­об­хо­ди­мых дей­ствия, и ни одна вер­ная стро­ка не ука­за­на в ка­че­стве оши­боч­ной.3
Не вы­пол­не­ны усло­вия, поз­во­ля­ю­щие по­ста­вить 3 балла. Имеет место одна из сле­ду­ю­щих си­ту­а­ций.

1. Вы­пол­не­ны два пер­вых дей­ствия, най­де­на и ис­прав­ле­на одна ошиб­ка в про­грам­ме, ни одна вер­ная стро­ка не на­зва­на оши­боч­ной.

2. Вы­пол­не­ны два пер­вых дей­ствия, най­де­ны и ис­прав­ле­ны две ошиб­ки в про­грам­ме, одна вер­ная стро­ка на­зва­на оши­боч­ной.

3. Вы­пол­не­но одно из пер­вых двух дей­ствий, най­де­ны и ис­прав­ле­ны две ошиб­ки в про­грам­ме, ни одна вер­ная стро­ка не на­зва­на оши­боч­ной.

2
Не вы­пол­не­ны усло­вия, поз­во­ля­ю­щие по­ста­вить 2 или 3 балла.

При этом имеет место один из сле­ду­ю­щих слу­ча­ев.

1. Вы­пол­не­ны два пер­вых дей­ствия. При этом не­су­ще­ствен­но, на­сколь­ко пра­виль­но вы­пол­не­но тре­тье дей­ствие.

2. Най­де­ны и ис­прав­ле­ны две ошиб­ки в про­грам­ме, не более чем одна вер­ная стро­ка на­зва­на оши­боч­ной. При этом не­су­ще­ствен­но, на­сколь­ко пра­виль­но вы­пол­не­ны дей­ствия 1 и 2.

3. Вы­пол­не­но одно из двух пер­вых дей­ствий. Ис­прав­ле­на одна из двух оши­бок. Не более чем одна вер­ная стро­ка на­зва­на оши­боч­ной.

1
Не вы­пол­не­ны усло­вия, поз­во­ля­ю­щие по­ста­вить 1, 2 или 3 балла.0
Мак­си­маль­ный балл3