СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости




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

Дано натуральное число A>0. Требуется вывести такое минимально возможное нечётное натуральное число K, при котором сумма 1*2 + 3*4 + … + K*(K+1) окажется больше A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A,S,K AS INTEGER

INPUT A

S = 0

K = 1

WHILE S <= A

    K = K + 1

    S = S + K*(K+1)

WEND

PRINT K

END

a = int(input())

s = 0

k = 1

while s <= a:

    k = k + 1

    s = s + k*(k+1)

print(k)

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

var a, s, k: integer;

begin

    read(a);

    s := 0;

    k := 1;

    while s <= a do begin

        k := k+1;

        s := s+k*(k+1);

    end;

    writeln(k)

end.

алг

нач

    цел a, s, k

    ввод a

    s := 0

    k := 1

    нц пока s <= a

        k := k+1

        s := s+k*(k+1)

    кц

    вывод k

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int a, s, k;

    cin >> a;

    s = 0;

    k = 1;

    while (s <= a) {

        k = k+1;

        s = s+k*(k+1);

    }

    cout « k « endl;

    return 0;

}

 

 

 

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

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

2. Укажите два наименьших значения A, при которых программа выведет верный ответ.

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

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

Решение.

1. При вводе числа 15 программа выведет число 3.

2. Наименьшие значения A, при которых программа выведет верный ответ, равны 6 и 7.

3. Программа содержит две ошибки: неверная инициализация и неверный шаг изменения K. При инициализации значения переменных S и K не соответствуют друг другу. Чтобы устранить это несоответствие, можно исправить любое из двух начальных присваиваний. Таким образом, первую ошибку можно исправить двумя способами.

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

Первая ошибка, способ 1:

s := 0;

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

s := 2;

Первая ошибка, способ 2:

k := 1;

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

k := -1;

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

k := k+1;

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

k := k+2;

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

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

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

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

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

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

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

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

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

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

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

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 12 мая 2017 года Вариант ИН10504