Ниже приведена программа записанная на трех языках программирования определите что будет напечатано
Определите, что будет напечатано в результате выполнения программы, записанной на рисунке на различных языках программирования.
Решение
Для решения задачи выполним программу по шагам, занося значения переменных в таблицу:
Выполняемый оператор | Истинность условия | Значение переменных | |
k | s | ||
k:=9 | - | 9 | - |
s:=43 | - | 9 | 43 |
s > 0 | да | 9 | 43 |
k:=k-1 | - | 8 | 43 |
s:=s-2*k | - | 8 | 27(=43-2*8) |
s > 0 | да | 8 | 27 |
k:=k-1 | - | 7 | 27 |
s:=s-2*k | - | 7 | 13(=27-2*7) |
s > 0 | да | 7 | 13 |
k:=k-1 | - | 6 | 13 |
s:=s-2*k | - | 6 | 1(=13-2*6) |
s > 0 | да | 6 | 1 |
k:=k-1 | - | 5 | 1 |
s:=s-2*k | - | 5 | -9(=1-2*5) |
s > 0 | нет | 5 | -9 |
writeln(k) | - | 5 | -9 |
Таким образом, значение переменной k после выполнения фрагмента алгоритма равно 5.
Задача 2
Определите, что будет напечатано в результате выполнения программы, записанной на рисунке на различных языках программирования.
Решение
Цикл закончится, когда $S$ станет меньше 230. Запишем значения $k$, $S$ и $(S+k)$ на каждом шаге цикла
№ шага | k | S | S+k |
0 | 5 | 1000 | 1005 |
1 | 10 | 995 | 1005 |
2 | 15 | 985 | 1000 |
3 | 20 | 970 | 990 |
4 | 25 | 950 | 975 |
5 | 30 | 925 | 955 |
6 | 35 | 895 | 930 |
7 | 40 | 860 | 900 |
8 | 45 | 820 | 865 |
9 | 50 | 775 | 825 |
10 | 55 | 725 | 780 |
11 | 60 | 670 | 730 |
12 | 65 | 610 | 675 |
13 | 70 | 545 | 615 |
14 | 75 | 475 | 550 |
15 | 80 | 400 | 480 |
16 | 85 | 320 | 405 |
17 | 90 | 235 | 325 |
18 | 95 | 145 | 240 |
Таким образом в результате будет напечатано число 240
Задача 3
Определите, что будет напечатано в результате выполнения программы, записанной на рисунке на различных языках программирования.
Решение
Для решения данной задачи определим количество итераций цикла. На каждой итерации значение переменной p уменьшается на 7. Каждый раз это число вычитается от текущего значения p. Так как начальное значение p равно 300 и условием выполнения цикла является p > 0, то общее число итераций будет равно цел (300/7)+1 = 43 (здесь цел (x/y) означает целую часть от деления x на y). Проверим это. Когда цикл выполнится 42 раза, значение переменной p будет равно 300 − 42 · 7 = 6. При этом значении условие p > 0 (6 > 0) будет истинным, а значит тело цикла будет выполнено ещё один раз. После чего значение переменной p станет равным −1, и так как условие p > 0 (−1 > 0) ложно, то будет осуществлён выход из цикла. То есть всего будет выполнено 43 итерации цикла.
Так как на каждой итерации значение переменной x увеличивается на 4 и начальное значение переменной x равно 0, то после выхода из цикла переменная x примет значение 43 · 4 = 172. Это число и будет выведено на экран.
Задача 4
При каком наименьшем числе, введённом в переменную a, после выполнения программы будет напечатано 24?
Решение
Для решения данной задачи определим количество итераций цикла. Для этого рассмотрим, как в результате выполнения алгоритма меняется значение переменной x. Начальное значение x = 0.На каждой итерации цикла значение переменной x увеличивается на 1, а после окончания цикла x = 24. Следовательно, всего было выполнено 24 итерации.
Теперь рассмотрим, как изменялось значение переменной p. Начальное значение p = 0. На каждой итерации цикла значение переменной p увеличивается на a. Так как всего было выполнено 24 итерации, то после выполнения цикла p = 0 + 24 · a = 24a. Так как цикл выполняется, пока условие p < 140 истинно, то выход из цикла осуществляется при p > 140.
Поэтому значение переменной a находим из условия 24a ≥ 140.
Отсюда a ≥ $5/$.
Можно отбросить значения переменной a, при котором будет выполнено 23 итерации. В этом случае должно выполняться условие 23a < 140, a < $6<2|/<23>$.
Значит, значение переменной a должно принимать значение только 6.
Следовательно, искомым наименьшим значением a является 6.
Решение перебором на С++:
Задача 5
При каком наибольшем числе, введённом в переменную a, после выполнения программы будет напечатано 44?
Решение
Заметим, что каждую итерацию цикла, х увеличивается на 4 при начальном значении 0. Чтобы его значение стало равно 44, потребуется 11 итераций цикла.
Переменная р каждый раз увеличивается на а, пока не станет больше либо равна 415. Тогда произойдёт выход из цикла, поскольку условие станет False. Мы знаем, что в цикле 11 итераций. Следовательно, на 10-ой итерации условие всё ещё было True, а на 11-ой стало False, тогда:
Для доступа к решениям необходимо включить уведомления от группы Турбо в вк — это займет буквально 10 секунд. Никакого спама, только самое важное и полезное для тебя. Ты всегда можешь запретить уведомления.
Читайте также: