Пожалуйста, объяните подробно. Определите, что будет напечатано в результате работы...

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

Пожалуйста, объяните подробно. Определите, что будет напечатано в результате работы следующего фрагмента программы:

var k, s: integer;

begin

s:=0;

k:=1;

while s < 66 do begin

k:=k+3;

s:=s+k;

end;

write(k);

end.


Информатика (24 баллов) | 48 просмотров
Дан 1 ответ
0 голосов

Ну тут обычная программка с циклом, можно просто в лоб посмотреть, чтобы легче понять.
Нам дано, что s = 0, k = 1
Дальше цикл, пока s не станет больше или равен 66, он будет работать
А цикл делает следующее
Каждый раз прибавляет 3 к k и прибавляет это число k к s, чтобы получить заветные 66, а теперь рассмотрим в лоб, какие числа крутятся в программе:
Начало: 1,0 - 4,4 - 7,11 - 10, 21 - 13, 34 - 16, 50 - 19 - 69. Стоп цикла, так как число S стало больше 66 (69)
Дальше программа выводит на экран число k(19)
Ответ: 19.

(4.0k баллов)
0

Ниже записана программа. Получив на вход число x , эта программа печатает два числа, L и M. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 7.

var x, L, M: integer;

begin

    readln(x);

    L:=0; M:=0;

    while x > 0 do begin

        L:= L + 1;

        if x mod 2 = 0 then

            M:= M + (x mod 10) div 2;

        x:= x div 10;

    end;

    writeln(L); write(M);

end.