Помогите срочно решить следующую задачу(оформить с пояснениями). Задача: определите при...

0 голосов
32 просмотров

Помогите срочно решить следующую задачу(оформить с пояснениями).
Задача:
определите при каком наименьшем значении b в результате выполнения следующего алгоритма будет напечатано число 100
var a,b,t,k:integer;
function F(x:integer):integer;
begin
if x mod 2=0 then
F:=1;
else
F:=0;
end;
BEGIN
a:=100;
readln(b);
k:=0;
for t:=a to b do
begin
k:=k=F(t);
end;
write(k);
END.


Информатика (14 баллов) | 32 просмотров
0

Программа дана с ошибками. После исправления ошибок можно дать и ответ и пояснения.

0

Ответ, скорее всего, 298.

Дан 1 ответ
0 голосов

Наверное не k:=k=F(t); а k:=k+F(t);
тогда ответ: 298

---------------------------
Процедура F(x) дает 1, если х четное или 0, если х нечетное.
Далее программа подсчитывает сумму F(x)  (т.е. проще говоря количество четных чисел) от 100 до b.
Т.к. 100 само является четным числом, остается еще 99 четных чисел. 
Т.к. четные числа идут через один, то потребуется в два раза больше чисел:
99*2=198
100+198=298
т.е. 298 является тем числом, по достижении которого сумма F(x) станет равна 100.

(3.5k баллов)
0

спасибо, все верно