6) (д.в. богданов) запишите число, которое будет выведено в результате работы программы: var a, b, с : integer; begin a : = 0; b : = 0; с : = 0; while 2 * a < 200 do begin b : = b + 3; c : = c - 1; a : = a + b + c end; write(a - 10) end.
Пусть a, b, c − число пассажиров каждой из маршруток. тогда, нужно во-первых: выяснить можно ли поделить пассажиров поровну между тремя маршрутками; во-вторых: если первое утверждение верно, то k : = (a + b + c) div 3; − число пассажиров, которое должно приходиться на 1 маршрутку sum : = 0; − счётчик пересаживаемых пассажиров da : = a - k; if da > 0 then sum : = sum + da; db : = b - k; if db > 0 then sum : = sum + db; dc : = c - k; if dc > 0 then sum : = sum + dc; − если разница числа пассажиров и количества, которое должно быть в маршрутке, число положительное, значит столько пассажиров из данной маршрутки необходимо пересадить. что то типа дальше сама
В данной программе изначально a=0, b=0, c=0.
Пока 2*a меньше 200 b увеличивается на 2, с уменьшается на 1, к a прибавляется b и c.
a b c
0 0 0
2 3 -1
6 6 -2
12 9 -3
20 12 -4
30 15 -5
42 18 -6
56 21 -7
72 24 -8
90 27 -9
110 30 -10
Выходим из цикла
Выводится a-10.
a=110; a-10=110-10=100.
Выводится 100.
ответ: 100