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




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

Для заданного положительного вещественного числа A необходимо найти минимальное целое число K, при котором выполняется неравенство Для решения этой задачи ученик написал такую программу.

 

 

БейсикPython

DIM A, S AS DOUBLE

DIM K AS INTEGER

INPUT A

K = 0

S = 1

WHILE S >= A

K = K + 1

S = S + 1.0/K

WEND

PRINT K

END

a = float(input())

k = 0

s = 1

while s>=a:

    k = k + 1

    s = s + 1.0/k

print(k)

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

var a, s: real;

k: integer;

begin

read(a);

k := 0;

s := 1;

while s>=a do begin

k := k + 1;

s := s + 1.0/k;

end;

write(k);

end.

алг

нач

вещ a, s

цел k

ввод a

k := 0

s := 1

нц пока s>=a

k := k + 1

s := s + 1.0/k

кц

вывод k

кон

Си++

#include <iostream>

using namespace std;

int main(){

double a, s;

int k;

cin >> a;

k = 0;

s = 1;

while (s>=a) {

k = k + 1;

s = s + 1.0/k;

}

cout « k « endl;

return 0;

}

 

 

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

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

2. Сколько существует натуральных чисел А, при вводе которых программа выведет ответ 1?

3. Найдите в программе все ошибки (их может быть одна или несколько).

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

Решение.

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

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

2. Программа не выведет ответ 1 ни при каком вводе, то есть ответ на задание: 0. Примечание для проверяющего. При вводе A > 1 тело цикла не будет выполнено ни разу и программа выведет ответ 0. При A ≤ 1 происходит зацикливание.

3. Программа содержит две ошибки.

1) Неверная инициализация. Переменные s и k должны иметь одинаковые начальные значения: либо обе равны нулю, либо обе равны единице.

2) Неверное условие цикла.

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

k := 0;

s := 1;

Первый способ исправления. Вместо строки

k := 0;

записать

k := 1;

Второй способ исправления. Вместо строки

s := 1;

записать

s := 0;

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

while s>=a do begin

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

while s < a do begin

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