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

На вход про­грам­мы по­сту­па­ют 4 не­от­ри­ца­тель­ных целых числа, не пре­вы­ша­ю­щие 1000, среди ко­то­рых могут быть оди­на­ко­вые. Нужно на­пи­сать про­грам­му, ко­то­рая вы­во­дит ко­ли­че­ство чисел, не крат­ных 3, и мак­си­маль­ное из этих чисел. Если среди вход­ных дан­ных нет чисел, не крат­ных трёх, про­грам­ма долж­на вы­ве­сти слово «NO». Про­грам­мист на­пи­сал про­грам­му не­пра­виль­но.

Бей­сикPython

COUNT = 0

MAXIMUM = 1000

FOR I = 1 TO 4

    INPUT X

    IF X MOD 3 <> 0 THEN

        COUNT = COUNT + 1

        IF X > MAXIMUM THEN

            MAXIMUM = I

        END IF

    END IF

NEXT I

IF COUNT > THEN

    PRINT COUNT

    PRINT MAXIMUM

ELSE

    PRINT “NO”

END IF

count = 0

maximum = 1000

for i in range(4):

    x = int(input())

    if x % 3 != 0:

        count = count + 1

        if x > maximum:

            maximum = i

if count > 0:

    print(count)

    print(maximum)

else:

    print("NO")

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

var i, x: integer;

var maximum, count: integer;

begin

     count := 0;

    maximum := 1000;

    for i:=1 to 4 do begin

         read( x );

         if x mod 3 <> 0 then begin

            count := count + 1;

             if x > maximum then

                 maximum := i;

            end;

         end;

     if count > 0 then begin

        writeln(count);

        writeln(maximum);

     end

    else

        writeln('NO');

end.

алг

нач

цел i, x

цел maximum, count

count := 0

maximum := 1000

нц для i от 1 до 4

ввод x

если mod(x, 3) <> 0 то

count := count + 1

если x > maximum то

maximum := i

все

все

кц

если count > 0 то

вывод count, нс

вывод maximum

иначе

вывод "NO"

все

кон

Си++

#include <iostream>

using namespace std;

 

int main(){

    int i, x, maximum;

    int count = 0;

    maximum = 1000;

    for (i=1; i<= 4; i++) {

        cin >> x;

        if ( x % 3 != 0 ) {

             count = count + 1;

             if ( x > maximum ) maximum = i;

            }

        }

     if ( count > 0 ) {

        cout << count << endl;

        cout << maximum;

    }

    else

        cout << "NO";

     return 0;

}

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

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

2.  При­ве­ди­те при­мер такой по­сле­до­ва­тель­но­сти, со­дер­жа­щей число, крат­ное 3, при вводе ко­то­рой про­грам­ма вы­ве­дет пра­виль­ный ответ.

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

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

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

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

Ре­ше­ние.

1.  При вводе числа 7 15 8 21 про­грам­ма сна­ча­ла вы­ве­дет 2, затем 1000.

2.  При­ме­ры чисел, при вводе ко­то­рых про­грам­ма вы­во­дит кор­рект­ный ответ: 2 3 4 1000.

Ком­мен­та­рий для экс­пер­тов. Про­грам­ма вы­во­дит сна­ча­ла ко­ли­че­ство чисел, не­крат­ных 3, затем вы­во­дит 1000. Либо кор­рект­но ра­бо­та­ет при от­сут­ствии в ряду таких чисел.

 

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

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

maximum := 1000;

 

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

maximum := 0;

 

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

maximum := i;

 

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

maximum := x;

 

По­яс­не­ние для экс­пер­та.

В не­пра­виль­ной вер­сии ал­го­ритм ни­ко­гда не зай­дет в усло­вие из­ме­не­ния мак­си­му­ма, т. к. в пе­ре­мен­ной maximum уже за­пи­са­но мак­си­маль­ное зна­че­ние. Если же ис­пра­вить ини­ци­а­ли­за­цию пе­ре­мен­ной maximum (ошиб­ка 1), то в дан­ной пе­ре­мен­ной будет хра­нит­ся ин­декс счи­тан­но­го числа, что не­вер­но. По­это­му не­об­хо­ди­мо в ка­че­стве но­во­го зна­че­ния пе­ре­мен­ной maximum ука­зать счи­тан­ное зна­че­ние x (ошиб­ка 2).

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

Не­зна­чи­тель­ной опис­кой, не вли­я­ю­щей на оцен­ку, сле­ду­ет счи­тать от­сут­ствие слу­жеб­ных слов и зна­ков после со­дер­жа­тель­ной части ис­прав­ле­ния

 

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

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

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

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

Это дей­ствие счи­та­ет­ся вы­пол­нен­ным, если ука­зан при­мер числа, при вводе ко­то­ро­го вы­во­дит­ся вер­ное со­об­ще­ние (вер­ные зна­че­ния), при­чем ре­зуль­та­том ра­бо­ты про­грам­мы не может быть стро­ка «NO». Уче­ник не обя­зан ука­зы­вать, что будет вы­ве­де­но, и объ­яс­нять, как ра­бо­та­ет про­грам­ма.

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

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

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

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

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

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

место одна из сле­ду­ю­щих си­ту­а­ций.

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

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

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

2
Не вы­пол­не­ны усло­вия, поз­во­ля­ю­щие по­ста­вить 2 или 3 балла. При этом имеет место один из сле­ду­ю­щих слу­ча­ев.

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

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

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

1
Не вы­пол­не­ны усло­вия, поз­во­ля­ю­щие по­ста­вить 1, 2 или 3 балла. 0
Мак­си­маль­ный балл3
Источник: ЕГЭ — 2018. До­сроч­ная волна. Ва­ри­ант 2