Цикл while i > 1 do begin означает что он будет выполняться до тех пор, пока i > 1. i изначально равно 7, и в конце каждого выполнения число уменьшается на единицу (i:=i-1). i div 2 означает деление числа на 2 с целым остатком. Исходя из вышесказанного имеем:
(Каждое выполнение цикла буду обозначать как №)
№1: 7>1 (Истина)
S:=0+3=3
i=6
№2: 6>1 (Истина)
S:=3+3=6
i:=5
№3: 5>1 (Истина)
S:=6+2=8
i:=4
№4: 4>1 (Истина)
S:=8+2=10
i:=3
№5: 3>1 (Истина)
S:=10+1=11
i:=2
№6: 2>1 (Истина)
S:=11+1=12
i:=1
№7: 1>1 (Ложь)
Вывод числа S со значением 12.
ответ: 12.
Поделитесь своими знаниями, ответьте на вопрос:
Идёт n-ая секунда года (31536000)определить какой по счёту день, час, минута и секунда. например: 1536036 секунда от начала года - это 17 дней 18 часов 40 минут 36 секунд. программа в pascal
var n:real;
d,h,m,s:integer;
begin
while (n <= 0) do Begin
write('Введите n (n > 0): ');
read(n);
end;
d := floor( n / ((60 * 60 * 24)) );
n := n - (60 * 60 * 24)*d;
h := floor( n / (60 * 60) );
n := n - (60 * 60)*h;
m := floor( n / 60 );
n := n - (60)*m;
s := floor(n);
write(d+' дней ',h+' часов ',m+' минут ', s+' секунд.');
end.