type my_array= array[0..2, 0..3] of real; {наш тип} procedure get_array(var ar: my_array); {ввод массива} var i, j: integer; begin for i:=low(ar) to high(ar) do for j:=low(ar[low(ar)]) to high(ar[low(ar)]) do readln( ar[i, j] ); end; procedure print_array(const ar: my_array); {вывод массива} var i, j: integer; begin for i:=low(ar) to high(ar) do begin for j:=low(ar[low(ar)]) to high(ar[low(ar)]) do write( ar[i, j] :8:2 ); writeln; end; end; function question(const ar: my_array):boolean; var s1, s2: real; i: integer; begin s1:= 0; s2:= 0; for i:=low(ar) to high(ar) do begin s1:= s1 + ar[i, low(ar[low(ar)])]; s2:= s2 + ar[i, high(ar[low(ar)])]; end; question:= (s1 > s2); {результат сравнения имеит тип boolean} end; procedure more(var ar: my_array); {удвоение элементов массива} var i, j: integer; begin for i:=low(ar) to high(ar) do for j:=low(ar[low(ar)]) to high(ar[low(ar)]) do ar[i, j]:= ar[i, j] + 2; end; procedure another(var ar: my_array); {изменение знака элементов массива} {процедуру можна ускорить используя побитовые операции, или нельзя:)} var i, j: integer; begin for i:=low(ar) to high(ar) do for j:=low(ar[low(ar)]) to high(ar[low(ar)]) do ar[i, j]:= -ar[i, j]; end; var A: my_array; {наш массив} begin get_array(A); writeln; {вводим массив} print_array(A); writeln; {что же мы ввели?} if question(A) then more(A) else another(A); {приобразовываем массив} print_array(A); {что получили?} writeln; end.