Вопрос по информатике:
Для заданного положительного вещественного числа A необходимо найти максимальное целое число K, при котором выполняется неравенство 1+1/2+...+1/K<A . Для решения этой задачи ученик написал такую программу:
var a, s: real;
k: integer;
begin
read(a);
k := 1;
s := 1;
while s < a do begin
s := s + 1.0/k;
k := k + 1;
end;
write(k);
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 1.2.
2. Приведите пример числа, при вводе которого программа выведет правильный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
- 04.09.2018 00:43
- Информатика
- remove_red_eye 14490
- thumb_up 50
Ответы и объяснения 1
1)2
2)Для начала об ошибке:Дело в том, что программа дважды прибавляет 1 к сумме прогрессии.
1.6
3)k:=1 меняем на k:=2
writeln(k) меняем на writeln(k-2)
//Однако, есть одна проблема. Если число a меньше или равно 1, программа возвращает 0. В начале прогрессии в любом случае будет 1, а потом уже 1/2 1/3 и т.д..
- 04.09.2018 13:30
- thumb_up 4
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.