Задания
Версия для печати и копирования в MS Word

Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой с кла­ви­а­ту­ры счи­ты­ва­ет­ся на­ту­раль­ное число N, не пре­вос­хо­дя­щее 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.  На­пи­ши­те, что вы­ве­дет эта про­грам­ма при вводе числа 938.

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

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

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

Ре­ше­ние.

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

2.  Про­грам­ма ра­бо­та­ет верно для лю­бо­го числа, на­чи­на­ю­ще­го­ся с 1, в том числе для 1.

(До­ста­точ­но ука­зать любое такое число).

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

 

1)  ис­прав­ле­ние усло­вия про­дол­же­ния цикла на while (N > 9) do

2)  ис­прав­ле­ние ини­ци­а­ли­за­ции на sum := 0;, а усло­вие цикла на while (N >= 1) do или while (N > 0) do. При этом за­ме­на на while (N >= 0) do кор­рект­ной не яв­ля­ет­ся

3)  ис­прав­ле­ние усло­вия про­дол­же­ния цикла на while (N >= 1) do или while (N > 0) do и вывод зна­че­ния sum − 1.

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

Ука­за­ния по оце­ни­ва­нию.

 

Об­ра­ти­те вни­ма­ние! В за­да­че тре­бо­ва­лось вы­пол­нить три дей­ствия. Баллы за дан­ное за­да­ние на­чис­ля­ют­ся как сумма бал­лов за вер­ное вы­пол­не­ние каж­до­го дей­ствия.

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

2. Ука­за­но число, при ко­то­ром про­грам­ма ра­бо­та­ет верно.

3. Ука­за­ны все стро­ки (одна или более), в ко­то­рые нужно вне­сти ис­прав­ле­ния, и эти ис­прав­ле­нию вне­се­ны; при этом по­лу­че­на верно ра­бо­та­ю­щая про­грам­ма.

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

Об­ра­ти­те вни­ма­ние! Выбор оши­боч­ных строк может быть вы­пол­нен не един­ствен­ным спо­со­бом.

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

 

Кри­те­рии оце­ни­ва­ния вы­пол­не­ния за­да­нияБаллы
Пра­виль­но вы­пол­не­ны все три дей­ствия.3
Пра­виль­но вы­пол­не­ны два дей­ствия из трёх.2
Не вы­пол­не­ны усло­вия, поз­во­ля­ю­щие по­ста­вить 2 или 3 балла, од­на­ко вы­пол­не­но одна из сле­ду­ю­щих усло­вий.

1. Вы­пол­не­но одно дей­ствие из трёх.

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

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

Аналоги к заданию № 5372: 5436 9705 Все

Источники: