procedure PrintMatr;
var i, j : Integer;
begin
for i := 1 to m do
begin
for j := 1 to n do Write ( Matr [i,j]:5 );
Writeln;
end;
Writeln;
end;
begin ClrScr;
{Матрица бошланѓич ќийматларини ўќиш }
Assign (Fxnp,'FINP.DAT'); Reset (Finp);
for i := 1 to m do
begin
for j := 1 to n do Read (Finp, Matr[i,j]);
Readln(Finp);
end;
{--------------------------------------------------------------------}
Writeln ('Бошланѓич матрица:');
PrintMatr;
{--------------------------------------------------------------------}
{Матрицанинг симметрия вертикал ўќига нисбатан}
{ "кўзгули аксланиши " }
for j : = 1 to n div 2 do {1-дан ўртанчасигача устунларни}
{оламиз}
for i := 1 to m do { симметрик устунларни ўринлари }
begin {билан алмаштирамиз }
В := Matr[i,j];
Matr[i,j] := Matr[i,n-+l];
Matr[i,n-j+l] := В
end;
{---------------------------------------------------------------------------}
Writeln ('Ўзгартирилган матрица:);
PrintMatr;
end.
2-масала. Элементлари бутун сонлар бўлган n-тартибли квадрат матрица берилган. Ќуйидаги расмда кўрсатилгани каби матрицани «спирал» бўйича айланишини бажариб, элементлар ќийматларини чоп этинг.
«Спирал» бўйича айланишни бажариш учун индекслар ўзгариши ќонуниятини кўрсатувчи схемани кўрамиз:
Келтирилган схемага мос дастур ќуйидаги кўринишга эга:
9.6-дастур
program SpiralWrite;
uses Crt;
const n = 10; { Квадрат матрица тартиби }
type
TMatr = array [l..n, l..n] of Integer;
Do'stlaringiz bilan baham: |