Есть ответ 👍

4. У исполнителя Вычислитель две команды, которым присвоены номера: "1" - отнять 2; "2" - умножить на 3. Какое число получится, если к числу 2 применить команду 221 * 5. У исполнителя Вычислитель две команды, которым присвоены номера: "1" - прибавить 2; "2" - умножить на 3. Какое число получится, если к числу 5 применить команду 11211 *

283
408
Посмотреть ответы 1

Ответы на вопрос:


Непростая 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

Популярно: Информатика