type MCo = array[1..200] of longint; {строка массива - до 200 столбцов} DV = ^MCo; {указатель на строку массива} MR = array[1..150] of DV; {массив указателей на строки}
var a: MR; {Создается массив указателей на строки} n,m:longint;
procedure ShiftCycle(row: longint; k: longint); var i, j, e: longint; begin for i := 1 to k do begin e := a[row]^[m]; for j := m - 1 downto 1 do a[row]^[j + 1] := a[row]^[j]; a[row]^[1] := e end; end;
var i, j, e: longint;
begin ClrScr; writeln('Введите число строк и столбцов массива'); readln(n,m); writeln('Введите элементы массива'); for i := 1 to n do begin getmem(a[i], m * sizeof(longint)); {Фактическое выделение памяти под i-ю строку строку массива} writeln('Строка ',i,':'); for j := 1 to m do read(a[i]^[j]) end; writeln; for i := 1 to n do begin ShiftCycle(i, i); for j := 1 to m do write(a[i]^[j]:4); writeln; freemem(a[i], m * sizeof(longint)) {Освобождение памяти из-под i-й строки массива} end end.
var a, p0, p1, pa: array[1..n] of integer; i, ip0, ip1, ipa: integer;
begin write('Введите ', n, ' элементов массива: '); for i := 1 to n do read(a[i]); writeln; ip0 := 0; ip1 := 0; ipa := 0; for i := 1 to n do if a[i] > 0 then if (a[i] mod 2) = 0 then begin ip0 := ip0 + 1; p0[ip0] := a[i] end else begin ip1 := ip1 + 1; p1[ip1] := a[i] end else begin ipa := ipa + 1; pa[ipa] := a[i] end; write('Положительные четные: '); for i := 1 to ip0 do write(p0[i]:4); writeln; write('Положительные нечетные: '); for i := 1 to ip1 do write(p1[i]:4); writeln; write('Остальные: '); for i := 1 to ipa do write(pa[i]:4); writeln end.