фрагмента программы:
Var k, s : integer;
BEGIN
s := 0;
k := 0;
while s<1024 do
begin
s := s+10;
k := k+1;
end;
write(k);
END.
Решение:
В программе использован цикл с предусловием, значит операции из тела цикла будут выполняться, пока условие истинно. Из сказанного следует, что выполнение цикла прекратится при s=1024 или любом большем числе. S каждый раз увеличивается на 10, следовательно ее значение всегда кратно 10. Необходимо определить число кратное 10, следующее после 1024 - это число 1030.
Переменная К считает количество таких чисел. К=1030/10=103.
Ответ: 103
В3. Определите, что будет напечатано в результате работы следующего
фрагмента программы:
var k, s: integer;
begin
s:=0;
k:=1;
while k < 11 do begin
s:=s+k;
k:=k+1;
end;
write(s);
end.
Решение:
Цикл закончится, когда К станет равна 11 (по условию К должна быть строго меньше 11 и при этом ее значение каждый раз увеличивается ровна на 1). Последнее значение К, участвующее в вычислениях будет = 10 (увеличение К производится после выполнения действия s:=s+k).
S является суммой всех значений К. Мы можем найти их сумму, прибавляя последовательно все числа: 1+2+3+4+5+6+7+8+9+10 = 55, а можем воспользоваться формулой нахождения суммы первых n элементов арифметической прогрессии: s=(a1+an)/2*n.
Тогда s=(1+10)/2*10=55
Ответ: 55
В3. Определите, что будет напечатано в результате работы следующего
фрагмента программы:
var n, s: integer;
begin
n := 1;
s := 0;
while n <= 101 do begin
s := s + 7;
n := n + 1
end;
write(s)
end.
Решение:
Цикл будет выполнен с последним значением n = 101, т.к. под условие не подходят значения начиная с 102. Переменная n является счетчиком, т.к. определяет, сколько раз будет выполнен цикл (при каждом выполнении тела цикла ее значение увеличивается на 1).
Из сказанного следует, что к начальному значению переменной S (0) семерка будет прибавлена 101 раз. S=0+7*101=707
Ответ: 707
Задания для тренировки:
Определите, что будет напечатано в результате работы следующих фрагментов программ:
1. var n, s:integer; begin n := 4; s := 0; while n <= 8 do begin s := s + n; n := n + 1 end; write(s) end. | 2. var n, s: integer; begin n := 0; s := 512; while s >= 0 do begin s := s - 20; n := n + 1 end; write(s) end. | 3. var n, s: integer; begin n := 24; s := 0; while n <= 28 do begin s := s + 20; n := n + 2 end; write(s) end. | 4. var n, s: integer; begin n := 4; s := 15; while s <= 250 do begin s := s + 12; n := n + 2 end; write(n) end. |
Комментариев нет:
Отправить комментарий