*** КАНАЛ ЮТЬЮБ ***
ЕГЭ по информатике -> ЕГЭ 2018 -> ЕГЭ 2018 — 8
Запишите число, которое будет напечатано в результате выполнения следующей программы.
1 2 3 4 5 6 7 8 9 10 11 | var s, n: integer; begin s := 260; n := 0; while s > 0 do begin s := s - 15; n := n + 2 end; writeln(n) end. |
-
Рассмотрим алгоритм:
- Цикл зависит от значения переменной s, которая изначально равна 260. В цикле переменная s постоянно меняет свое значение, уменьшаясь на 15.
- Цикл завершит свою работу когда s <= 0. Значит, необходимо посчитать сколько чисел 15 «войдет» в число 260, иными словами:
260 / 15 ~ 17,333...
s > 0
, то увеличим полученное число на единицу: 17 + 1 = 18 итераций цикла Проверим: 17 * 15 = 255 (< 260) 18 * 15 = 270 (> 260)
n = 18 * 2 = 36
Результат: 36
Определите, что будет напечатано в результате выполнения программы:
1 2 3 4 5 6 7 8 9 10 11 | var s, i: integer; begin i := 1; s := 105; while s > 5 do begin s := s - 2; i := i + 1 end; writeln(i) end. |
- Рассмотрим алгоритм. Цикл зависит от переменной s, которая уменьшается каждую итерацию цикла на 2.
- В цикле также присутствует счетчик — переменная i, которая увеличится на единицу ровно столько раз, сколько итераций (проходов) цикла. Т.е. в результате выполнения программы распечатается значение, равное количеству итераций цикла.
- Поскольку условие цикла зависит от s, нам необходимо посчитать, сколько раз сможет s уменьшиться на 2 в цикле. Для удобства подсчета изменим условие цикла на
while s > 0
; так как мы s уменьшили на 5, соответственно, изменим и 4-ю строку наs:=100
(105-5):
... s := 100; while s > 0 do begin ...
100 / 2 = 50 -> количество итераций цикла
50 + 1 = 51
Результат: 51
Определите значение переменной c после выполнения следующего фрагмента программы. Ответ запишите в виде целого числа.
1 2 3 4 5 6 7 | a:=-5; c:=1024; while a<>0 do begin c:=c div 2; a:=a+1 end; |
Результат: 32
Запишите число, которое будет напечатано в результате выполнения следующей программы.
1 2 3 4 5 6 7 8 9 10 11 | var s,n: integer; begin s:=1; n:=80; while s < 75 do begin s:=s + 5; n:=n - 4 end; writeln(n) end. |
-
Рассмотрим алгоритм:
- На экран выводится значение переменной n, которая изначально равна 80.
- В программе есть цикл, каждая итерация которого уменьшает n на 4.
- Условие цикла перестанет «работать», когда S >= 75.
- Поскольку S изначально равно 1, то для удобства изменим на S:=0, а условие цикла заменим на S < 74. Тогда условие перестанет работать при S >= 74:
- Посчитаем количество итераций цикла:
1 2 3 4 5 6 | ... s:=0; n:=80; while s < 74 do begin ... |
шагов цикла >= 74/5 шагов цикла >= 14,8 берем наименьшее возможное значение: 15 шагов
4 * 15 = 60;
80 - 60 = 20
Результат: 20
Запишите число, которое будет напечатано в результате выполнения следующей программы:
1 2 3 4 5 6 7 8 9 10 11 | var s, n: integer; begin s := 0; n := 170; while s + n < 325 do begin s := s + 25; n := n - 5 end; writeln(s) end. |
-
Рассмотрим алгоритм:
- В результате выполнения программы на экран выводится значение переменной s.
- Переменная s меняется в цикле, условие которого зависит от суммы двух слагаемых:
s + n < 325
s:= s + 20 т.е. s + 25 - n
s < 325
325 - 170 = 155 возьмем 7 итераций: 7 * 20 = 140 возьмем 8 итераций: 8 * 20 = 160
8 * 25 = 200
Результат: 200
ЕГЭ по информатике -> ЕГЭ 2018 -> ЕГЭ 2018 - 8