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

