Практика программирования (Бейсик, Си, Паскаль)



         

Задачи, советы и ответы - часть 4


int m,tmp;

for(m=j; m < j+k/2; m++)

{

tmp=a[m]; a[m] = a[2*j+k-m-1];

a[2*j+k-m-l]=tmp; }

}

Программа 4_04,pas

program pearl; uses crt; const

N=20; K=15; var

a:array [1..N] of integer;

i:integer;

procedure invertl(var a; j,k:integer);

var

m,tmp:integer;

aa:array [1..1] of integer absolute a;

begin {$R-}

for m:=j to j + k div 2 do begin

tmp:=aa[m];

aa[m]:=aa[2*j+k-m-1];

aa[2*j+k-m-l]:=tmp;

end;

{$R+} end;

begin clrscr;

writeln('Массив до перестановки : ') ;

for i:=l to N do

begin a[i]:=i;

write(a[i]:3);

end;

writeln;

invertl(a,1,K);

writeln('После перестановки в головной части :');

for i:=l to N do

write(a[i]:3);

writeln;

invertl(a,K+l,N-K);

writeln('После перестановки в хвостовой части :');

for i:=l to N do write(a[i]:3);

writeln; invertl(a,l,N);

writeln('После полной перестановки :');

for i:=l to N do

write(a[i]:3);

readln;

end.

Задание 4.05. Вывод массивов

Составить процедуру (функцию) вывода небольших целочисленных матриц размерности m x n с управлением по ширине колонок (w) и по местоположению на экране (row — строка, col — столбец, определяющие левый верхний угол матрицы). Предполагается, что матрица целиком помещается на экране и что ширина ее колонок не превосходит девяти позиций.

Совет 1 (общий)

В каждом алгоритмическом языке предусмотрена процедура типа window, позволяющая определить прямоугольную область вывода на экране. Однако пользоваться ей в данном случае нецелесообразно, т. к. придется запоминать параметры окна, существовавшие до обращения к процедуре вывода, затем устанавливать новые, а перед выходом из процедуры восстанавливать запомненные. В Си и Паскале, в принципе, такая возможность имеется (см. функцию gettextinf о), а в QBasic такие действия перекладываются на программиста. Все это сильно усложнит организацию процедуры. Будем считать, что в нашем распоряжении находится полный экран и никаких дополнительных окон вызывающая программа не создавала. Поэтому можно воспользоваться прямыми средствами управления позицией курсора на экране — LOCATE (QBasic) или gotoxy (Си, Паскаль).




Содержание  Назад  Вперед