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

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

 

Бей­сикPython

INPUT x

cnt = 0

WHILE x > 0

cnt = cnt + x MOD 2

x = x \ 10

WEND

PRINT cnt

END

x = int(input())

cnt = 0

while x > 0:

    cnt = cnt+x % 2

    x = x // 10

print(cnt)

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

var x,cnt: integer;

begin

readln(x);

cnt := 0;

while x > 0 do

begin

cnt:=cnt + x mod 2;

x := x div 10

end;

writeln(cnt);

end.

алг

нач

цел x, cnt

ввод x

cnt := 0

нц пока x > 0

cnt := cnt+mod(x,2)

x := div(x, 10)

кц

вывод cnt

кон

Си++

#include <iostream>

using namespace std;

int main()

{

int x,cnt;

cin >> x;

cnt = 0;

while (x > 0)

{

cnt = cnt + x%2;

x = x /10;

}

cout « cnt « endl;

}

 

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

1.  На­пи­ши­те, что вы­ве­дет эта про­грам­ма при вводе числа 15.

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

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

 

Для каж­дой ошиб­ки:

1)  вы­пи­ши­те стро­ку, в ко­то­рой сде­ла­на ошиб­ка;

2)  ука­жи­те, как ис­пра­вить ошиб­ку, т. е. при­ве­ди­те пра­виль­ный ва­ри­ант стро­ки.

 

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

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

Ре­ше­ние.

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

1.  Про­грам­ма вы­ве­дет число 2.

 

2.  Про­грам­ма на­пе­ча­та­ет пра­виль­ный ответ при x=1.

 

3.  Пер­вая ошиб­ка. Не­вер­ный подсчёт ко­ли­че­ства цифр. Про­грам­ма не учи­ты­ва­ет зна­ча­щие нули.

Стро­ка с ошиб­кой:

cnt:=cnt + x mod 2;

Воз­мож­ный ва­ри­ант ис­прав­ле­ния:

cnt:=cnt + 1;

 

4.  Вто­рая ошиб­ка. Не­вер­ная об­ра­бот­ка числа x в цикле. Стро­ка с ошиб­кой:

x := x div 10;

Воз­мож­ный ва­ри­ант ис­прав­ле­ния:

x := x div 2;

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

Об­ра­ти­те вни­ма­ние! В за­да­че тре­бо­ва­лось вы­пол­нить че­ты­ре дей­ствия:

 

1) ука­зать, что вы­ве­дет про­грам­ма при кон­крет­ных вход­ных дан­ных (числе x);

2) ука­зать при­мер вход­ных дан­ных, при ко­то­рых про­грам­ма ра­бо­та­ет пра­виль­но;

3) ис­пра­вить первую ошиб­ку;

4) ис­пра­вить вто­рую ошиб­ку.

 

Каж­дое из дей­ствий 3 и 4 счи­та­ет­ся вы­пол­нен­ным, если:

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

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

 

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

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

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

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

Аналоги к заданию № 7769: 7796 Все