Определите, что будет напечатано в результате выполнения программы (записанной ниже на разных языках программирования):
| Бейсик | Паскаль |
|---|---|
DIM N, S AS INTEGER N = 0 S = 1 WHILE S <= 1000 S = S * 2 N = N + 2 WEND PRINT N
| var n, s: integer; begin n := 0; s := 1; while s <= 1000 do begin s := s * 2; n := n + 2; end; write(n) end.
|
| Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main() { int n, s; n = 0; s = 1; while (s <= 1000) { s = s * 2; n = n + 2; } cout << n << endl; }
| алг нач цел n, s n := 0 s := 1 нц пока s <= 1000 s := s * 2 n := n + 2 кц вывод n кон |
| Python | |
n = 0 s = 1 while s <= 1000: s *= 2 n += 2 print(n)
| |
Цикл while выполняется до тех пор, пока истинно условие s ≤ 1000, т. е. переменная s определяет, сколько раз выполнится цикл.
Поскольку 29 < 1000 < 1024 = 210 , следовательно, цикл выполнится 10 раз. На 10-м шаге s станет равной 1024 и условие s ≤ 1000 окажется не выполненным, цикл прервется. Следовательно, значение n будет равно 10·2 = 20.
Ответ: 20.

