Запишите число, которое будет напечатано в результате выполнения следующей программы. Для Вашего удобства программа представлена на пяти языках программирования.
| Бейсик | Python |
|---|---|
DIM S, N AS INTEGER S = 150 N = 0 WHILE S + N < 300 S = S − 5 N = N + 25 WEND PRINT N
| s = 150 n = 0 while s + n < 300: s = s − 5 n = n + 25 print(n)
|
| Паскаль | Алгоритмический язык |
var s, n: integer; begin s := 150; n := 0; while s + n < 300 do begin s := s − 5; n := n + 25 end; writeln(n) end.
| алг нач цел n, s s := 150 n := 0 нц пока s + n < 300 s := s − 5 n := n + 25 кц вывод n кон |
| Си++ | |
#include <iostream> using namespace std; int main() { int s = 150, n = 0; while (s + n < 300) { s = s − 5; n = n + 25; } cout << n << endl; return 0; }
| |
Цикл while выполняется до тех пор, пока истинно условие s+n < 300, т. е. сумма s и n определяет, сколько раз выполнится цикл.
Заметим, что два действия s := s − 5 и n := n + 25 можно объединить, так как цикл зависит от двух переменных. Таким образом, на каждой итерации добавляется 20.
Решим уравнение: 150 + x > 300. Цикл остановиться, когда x будет равен 160. Поэтому будет 8 итераций (160 : 20 = 8).
Найдём, что получится на 8-ой итерации: 0 + 25 * 8 = 200.
Ответ: 200.

