4. У исполнителя Вычислитель две команды, которым присвоены номера: "1" - отнять 2; "2" - умножить на 3. Какое число получится, если к числу 2 применить команду 221 * 5. У исполнителя Вычислитель две команды, которым присвоены номера: "1" - прибавить 2; "2" - умножить на 3. Какое число получится, если к числу 5 применить команду 11211 *
283
408
Ответы на вопрос:
Непростая const n = 16; type r = record v: integer; p: integer end; mr = array[1..n] of r; function summofdigits(n: integer): integer; { сумма цифр в трехзначном числе } begin summofdigits : = (n div 100) + ((n mod 100) div 10) + (n mod 10) end; procedure swp(var a, b: r); { меняет местами элементы a и b } var t: r; begin t.v : = a.v; t.p : = a.p; a.v : = b.v; a.p : = b.p; b.v : = t.v; b.p : = t.p end; procedure shell(var a: mr; n: integer); { сортировка методом шелла } var i, j, step: integer; begin step : = n div 2; while step > 0 do begin for j : = n - step downto 1 do begin i : = j; while i < = n - step do begin if a[i].v > a[i + step].v then swp(a[i], a[i + step]); i : = i + step end end; step : = step div 2 end end; var a: array[1..n] of integer; b: mr; i: integer; begin randomize; writeln('*** исходные элементы массива ***'); for i : = 1 to n do begin a[i] : = random(900) + 100; b[i].v : = summofdigits(a[i]); b[i].p : = i; write(a[i]: 4) end; writeln; shell(b, n); writeln('*** по возрастанию суммы цифр элементы массива ***'); for i : = 1 to n do begin write(a[b[i].p]: 4) end; writeln end. тестовое решение: *** исходные элементы массива *** 862 244 599 379 595 840 551 151 614 383 185 893 131 172 139 256 *** по возрастанию суммы цифр элементы массива *** 131 151 244 172 551 614 840 139 256 185 383 862 595 379 893 599
Популярно: Информатика
-
66560912.12.2022 19:57
-
natalyabuben011128.08.2021 04:26
-
LizaIvaskevich04.08.2020 19:09
-
Ashmalikova28.03.2020 23:53
-
marga2304200220.11.2021 02:17
-
Есенин626105.01.2021 09:21
-
acivnatala12.12.2022 18:52
-
kotma1905.08.2022 19:30
-
katy26050512.06.2023 04:14
-
samaska16.03.2022 23:09