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

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

Бей­сикPython

CONST n = 4

count = 0

maximum = 1000

FOR I = 1 TO n

    INPUT x

    IF X MOD 4 = 0 THEN

        count = count + 1

        IF x < maximum THEN

            maximum = x

        END IF

    END IF

NEXT I

IF count > 0 THEN

    PRINT count

    PRINT maximum

ELSE

    PRINT “NO”

END IF

n = 4

count = 0

maximum = 1000

for i in range(1, n + 1):

    x = int(input())

    if x % 4 == 0:

        count += 1

        if x < maximum:

            maximum = x

if count > 0:

    print(count)

    print(maximum)

else:

    print("NO")

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

const n = 4;

var i, x: integer;

var maximum, count: integer;

begin

     count := 0;

    maximum := 1000;

    for i:=1 to n do begin

         read(x);

         if x mod 4 = 0 then begin

            count := count + 1;

             if x < maximum then

                 maximum := x;

            end;

         end;

     if count > 0 then begin

        writeln(count);

        writeln(maximum);

    end

    else

        writeln('NO');

end.

алг

нач

    цел n = 4

    цел i, x

    цел maximum, count

    count := 0

    maximum := 1000

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

        ввод x

        если mod(x, 4) == 0 то

            count := count + 1

            если x < maximum то

                maximum := x

            все

        все

    кц

    если count > 0 то

        вывод count, нс

        вывод maximum

    иначе

        вывод "NO"

    все

кон

Си++

#include <iostream>

using namespace std;

 

int main(){

    const int n = 4;

    int x, maximum, count;

    count = 0;

    maximum = 1000;

    for (int i = 1; i <= n; i++) {

        cin >> x;

        if ( x % 4 == 0 ) {

            count++;

            if ( x < maximum )

                maximum = x;

        }

    }

    if ( count > 0 ) {

        cout << count << endl;

        cout << maximum;

    }

    else

        cout << "NO";

    return 0;

}

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

1.  На­пи­ши­те, что вы­ве­дет эта про­грам­ма при вводе по­сле­до­ва­тель­но­сти: 2 8 4 3.

2.  При­ве­ди­те при­мер такой по­сле­до­ва­тель­но­сти, со­дер­жа­щей хотя бы одно де­ля­ще­е­ся на­це­ло на 4 число, что при её вводе при­ведённая про­грам­ма, не­смот­ря на ошиб­ки, вы­ве­дет пра­виль­ный ответ.

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

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

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

Из­вест­но, что в тек­сте про­грам­мы можно ис­пра­вить ровно две стро­ки так, чтобы она стала ра­бо­тать пра­виль­но.

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

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

При­ме­ча­ние. 0 де­лит­ся на любое на­ту­раль­ное число.

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

Ре­ше­ние.

1.  При вводе по­сле­до­ва­тель­но­сти 2 8 4 3 про­грам­ма сна­ча­ла вы­ве­дет 2, затем 4.

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

 

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

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

maximum := 1000;

 

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

maximum := −1;

 

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

if ( x < maximum ) then

 

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

if ( x > maximum ) then

 

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

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

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

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

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

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

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

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

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

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

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

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

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