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

