Предмет: Информатика,
автор: Bleach7x7
Для заданного положительного вещественного числа 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. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Ответы
Автор ответа:
0
1)2
2)Для начала об ошибке:Дело в том, что программа дважды прибавляет 1 к сумме прогрессии.
1.6
3)k:=1 меняем на k:=2
writeln(k) меняем на writeln(k-2)
//Однако, есть одна проблема. Если число a меньше или равно 1, программа возвращает 0. В начале прогрессии в любом случае будет 1, а потом уже 1/2 1/3 и т.д..
2)Для начала об ошибке:Дело в том, что программа дважды прибавляет 1 к сумме прогрессии.
1.6
3)k:=1 меняем на k:=2
writeln(k) меняем на writeln(k-2)
//Однако, есть одна проблема. Если число a меньше или равно 1, программа возвращает 0. В начале прогрессии в любом случае будет 1, а потом уже 1/2 1/3 и т.д..
Похожие вопросы
Предмет: Математика,
автор: danilavojtro44
Предмет: Другие предметы,
автор: mariapvl2010
Предмет: Қазақ тiлi,
автор: aminaestaeva1
Предмет: Биология,
автор: dashulyabesedi
Предмет: История,
автор: Angellka