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

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

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

DIM N AS LONG

INPUT N

sum = 1

WHILE N > 1

N = N \ 10

sum = sum + 1

WEND

PRINT sum

END

var N: longint;

sum: integer;

begin

readln(N);

sum := 1;

while N > 1 do

begin

N := N div 10;

sum := sum + 1;

end;

writeln(sum);

end.

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

#include <iostream>

using namespace std;

int main()

{

long int N;

int sum;

cin >> N;

sum = 1;

while (N > 1)

{

N = N / 10;

sum = sum + 1;

}

cout << sum << endl;

}

алг

нач

цел N, sum

ввод N

sum := 1

нц пока N > 1

N := div(N, 10)

sum := sum + 1

КЦ

вывод sum

КОН

 

Python

n = int(input())

sum = 1

while n > 1:

    n //= 10

    sum += 1

print(sum)

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

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

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

3.  Ука­жи­те одно число для ко­то­ро­го эта про­грам­ма будет ра­бо­тать верно.

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

Ре­ше­ние.

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

 

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

2.  Ошиб­ки со­дер­жат­ся в двух стро­ках про­грам­мы:

1)  Пе­ре­мен­ная sum из­на­чаль­но долж­на быть ини­ци­а­ли­зи­ро­ва­на нулём, то есть sum = 0;

2)  Усло­вие в цикле долж­но быть N > 0, а не N > 1.

3.  При­мер числа, для ко­то­ро­го про­грам­ма даёт вер­ный ответ: 1.

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

Кри­те­рии оце­ни­ва­ния вы­пол­не­ния за­да­нияБаллы
Вы­пол­не­ны все три дей­ствия.3
Пра­виль­но вы­пол­не­ны два дей­ствия из трёх (ис­прав­ле­ны обе ошиб­ки, но в пунк­те 1 за­да­ния не при­ве­де­на таб­ли­ца (либо таб­ли­ца со­дер­жит ошиб­ки в двух и более стро­ках), либо при­ве­де­на таб­ли­ца (ко­то­рая со­дер­жит ошиб­ки не более чем в одной стро­ке), но ис­прав­ле­на толь­ко одна ошиб­ка про­грам­мы). При на­пи­са­нии опе­ра­ций срав­не­ния до­пус­ка­ет­ся одно не­пра­виль­ное ис­поль­зо­ва­ние стро­гих/не­стро­гих не­ра­венств (счи­та­ет­ся не­су­ще­ствен­ной ошиб­кой, по­греш­но­стью за­пи­си). На­при­мер, вме­сто «x<=19» ис­поль­зу­ет­ся «x<19».2
Пра­виль­но вы­пол­не­но толь­ко одно дей­ствие из трёх, т.е. либо толь­ко при­ве­де­на таб­ли­ца, ко­то­рая со­дер­жит ошиб­ки в не более чем одной стро­ке, либо таб­ли­ца не при­ве­де­на (или при­ве­де­на и со­дер­жит ошиб­ки более чем в одной стро­ке), но ис­прав­ле­на одна ошиб­ка про­грам­мы. При оце­ни­ва­нии этого за­да­ния на 1 балл до­пус­ка­ет­ся не учи­ты­вать кор­рект­ность ра­бо­ты про­грамм на точ­ках гра­ниц об­ла­стей (вме­сто не­стро­гих не­ра­венств в ре­ше­нии были ис­поль­зо­ва­ны стро­гие не­ра­вен­ства или на­о­бо­рот).1
Все пунк­ты за­да­ния вы­пол­не­ны не­вер­но (таб­ли­ца ана­ли­за пра­виль­но­сти ал­го­рит­ма не при­ве­де­на либо со­дер­жит ошиб­ки в двух и более стро­ках, про­грам­ма не при­ве­де­на, либо ни одна из двух оши­бок не ис­прав­ле­на).0
Мак­си­маль­ный балл3
Источник: РЕШУ ЕГЭ — Пред­эк­за­ме­на­ци­он­ная ра­бо­та 2014 по ин­фор­ма­ти­ке