5-й вариант. Обратите внимание на условие: если a больше b, то вычислить a - b. В противном случае, т.е., если b больше или равно a, вычисляется b-a. Однако, в задаче неточность. Строка else b:=b-a должна выглядеть вот так: else a:=b-a. Иначе, в случае, если второе число больше или равно первому, то выводится первое, а результат вычислений нигде не используется и не показывается. В доказательство моих слов давайте рассмотрим два варианта 1) a=5; b=1 Условие выполняется, происходит вычисление 5-1, результат которого помещается в переменную a, которая потом выводится на экран. Т.е. на экране будет напечатано 4. 2) a=2; b=3 Условие не выполняется, переход к блоку else, где происходит вычисление 3-2, результат которого помещается в переменную b. Однако, на экран выводится переменная a, которая содержит двоечку. Таким образом, либо при постановке задачи допущена ошибка, либо в перечне допустимых вариантов отсутствует правильный ответ.
Const N = 3; M = 4; Var Z:array[1..N,1..M] of integer; i,j,B:integer; Begin Randomize; WriteLn('Исходный массив:'); For i:= 1 to N do Begin For j:= 1 to M do Begin Z[i,j]:=random(21)-10; Write(Z[i,j]:3,' ') End; WriteLn; End; WriteLn; WriteLn('Второй и четвёртый столбец переставлены:'); For i:= 1 to N do Begin B:=Z[i,2]; Z[i,2]:=Z[i,4]; Z[i,4]:=B; End; For i:= 1 to N do Begin For j:= 1 to M do Write(Z[i,j]:3,' '); WriteLn; End; End.