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

