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

