Определите, при каком наименьшем введённом значении переменной s программа выведет число 64. var s, n: integer; begin readln (s); n := 1; while s < 51 do begin 1) в конце программы выводится значение переменной n s := s + 5; 2) начальное значение переменной n равно 1 n := n * 2 3) на каждой итерации цикла значение переменной n увеличивается в 2 раза end; 4) поскольку 64 = 26, для того чтобы получить writeln(n) n=64, необходимо выполнить тело цикла 6 раз end. 5) при каждой итерации цикла значение переменной s увеличивается на 5, то есть после 6 итераций мы получим s=s0+6*5=s0+30, где s0 – введённое начальное значение s 6) цикл останавливается при условии s>=51, то есть при s0+30>=51 или s0>=21 7) Ответ: 21. Var s, n, i: integer; Begin For i:= 1 to 1000 do Begin S:= i; n := 1; while s < 51 do begin s := s + 5; n := n * 2 end; if n = 64 then writeln(i); end; end. При каком наибольшем введенном числе d после выполнения программы будет напечатано 55? var n, s, d: integer; begin readln(d); 1)начальные значения переменных s и n равны нулю n := 0; 2)шаг изменения переменной n равен 5, а шаг s := 0; изменения переменной s равен неизвестному while s <= 365 do begin значению d 3)для того, чтобы значение n стало равно 55, нужно s := s + d; увеличить его на 5 (с нуля) ровно 11 раз, поэтому цикл n := n + 5 выполнится ровно 11 раз 4)следовательно, s увеличится на d тоже 11 раз и end; станет равно 0 + 11·d = 11·d write(n) 5)чтобы цикл остановился на 11-м шаге, нужно end. выполнить условие 11·d > 365, при этом он не должен остановиться на 10-м шаге, то есть, 10·d <= 365, поэтому получаем два неравенства: 11·d > 365; 10·d <= 365 d>33,2; d<= 36,5 6)d – целое число – ограничено отрезком [34; 36], наибольшее из подходящих чисел равно 36 Получив на вход натуральное число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее натуральное число, при вводе которого алгоритм печатает сначала 5, а потом 16. var x, a, b: longint; 1)число разбивается на отдельные цифры в двенадцатеричной begin системе и на каждом шаге цикла отбрасывается последняя readln(x); цифра двенадцатеричной записи числа 2)если число нечётное, то последняя цифра добавляется к a, a := 0; b := 1; while x > 0 do begin если чётное – b умножается на эту цифру if x mod 2 > 0 then 3) чётность числа равносильна чётности его последней цифры в a := a + x mod 12 двенадцатеричной системе счисления 4) в переменной a окажется сумма всех нечётных цифр числа, а в else переменной b – произведение всех чётных цифр b := b * (x mod 12); 5) a нечётно, это может быть сумма из одной цифры 5 x := x div 12; 6) b больше 12, это произведение может быть построено из двух end; или более чётных чисел; writeln(a); write(b); 7)чтобы число было наименьшим, предположим, что чётных цифр две; одну из них нужно взять минимально возможную, то end. есть, 16 = 2 · 8 8)таким образом, двенадцатеричная запись числа состоит из цифр 2, 5 и 8, чтобы число было минимальным, расставим эти цифры в порядке возрастания и переведём число в десятичную систему: 25812 = 356. var x, a, b, s: longint; Begin For x:= 1 to 1000 do Begin S:= x; a := 0; b := 1; while s > 0 do begin if s mod 2 > 0 then a := a + s mod 12 else b := b * (s mod 12); s := s div 12; end; If ( a=5) and (b=16) then writeln(x); end; End. 356 389 629 640 752 772 818 Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 4, а потом 5. var x, L, M, Q: integer; begin readln(x); Q := 9; L := 0; while x >= Q do begin L := L + 1; x := x - Q; end; M := x; if M < L then begin нам нужно определить наибольшее число, M := L; при котором частное и остаток равны 4 и 5; L := x; для получения именно большего числа нам end; нужно взять как частное наибольшее из writeln(L); двух заданных чисел то есть 5 writeln(M); (соответственно, за остаток принять 4); end. поскольку делили на 9, искомое число равно 5 *9 + 4 = 49 var x0, x, L, M, Q: integer; begin for x0:=1 to 1000 do begin // readln(x); x := x0; Q := 9; L := 0; while x >= Q do begin L := L + 1; x := x - Q; end; M := x; if M < L then begin M := L; L := x; end; // writeln(L); // writeln(M); if (L = 4) and (M = 5) then writeln(x0); end; end. 1) при запуске программа выдаёт два числа – 41 и 49. В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от −10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых хотя бы одно число делится на 3, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Например, для последовательности из пяти элементов: 6; 2; 9; –3; 6 — ответ: 4 11. var x, y, count: longint; maxsum: longint; f: text; begin assign(f,'C:\17.txt'); reset(f); readln(f, x); maxsum := -20001; count := 0; while not eof(f) do begin readln(f, y); if (x mod 3 = 0) or (y mod 3 = 0) then begin count := count + 1; if x + y > maxsum then maxsum := x + y; end; x := y; end; writeln(count, ' ', maxsum); end. Алгоритм вычисления значения функции F(n), где n — натуральное число, задан следующими соотношениями: F(1) = 1; F(n) = n + F(n − 2), если n — нечётно, и n > 1; F(n) = n × F(n − 1), если n — чётно. Чему равно значение функции F(40)? var n: longint; function F(n: longint): longint; begin if n = 1 then F := 1 else if ((n mod 2) = 0) then F := n * F(n - 1) else if (((n mod 2) = 1) and (n > 1)) then F := n + F(n - 2); end; begin n := F(40); writeln(n); end. Результат работы программы — 16000. Алгоритм вычисления значения функции F(n), где n — целое неотрицательное число, задан следующими соотношениями: F(0) = 0; F(n) = F(n / 2), если n > 0 и при этом n чётно; F(n) = 1 + F(n − 1), если n нечётно. Назовите минимальное значение n, для которого F(n) = 12. var n: longint; i: integer; function F(n: longint): longint; begin if n = 0 then F := 0 else if (((n mod 2) = 0) and (n > 0)) then F := F(n div 2) else if ((n mod 2) > 0) then F := 1 + F(n - 1); end; begin i := 1; while F(i) <> 12 do i := i + 1; writeln(i); end. Результат работы программы — 4095.