Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.23 Mб
Скачать
  1. С формировать квадратную матрицу по заданному образцу:

1 1 1 … 1 1 1 0 1 1 … 1 1 0 0 0 1 … 1 0 0 ………………………… 0 0 1 … 1 0 0 0 1 1 … 1 1 0 1 1 1 … 1 1 1

program prac2;

const N=10;

const Z=N/2;

const Z2=-Z;

var x,y:real;

begin

y:=Z2;

while y<=Z do

begin

x:=Z2;

while x<=Z do begin

if abs(y)>=abs(x) then write(1) else write(0);

x:=x+1;

end;

writeln;

y:=y+1;

end;

readln;

end.

3. Путём перестановки элементов квадратной вещественной матрицы добиться того, чтобы её максимальный элемент находился в левом верхнем углу, следующий по величине – в позиции (2;2) , следующий по величине – в позиции (3;3) и т. д., заполнив таким образом всю диагональ.

program prac3;

const N=7;

var x,y,i,xm,ym:byte;

A:array[1..N,1..N] of real;

t:real;

begin

randomize;

xm:=N;

ym:=1;

for y:=1 to N do

for x:=1 to N do A[x,y]:=random(100)/10;

for i:=1 to N do

begin

for y:=1 to N do

for x:=1 to N do

if (A[x,y]>A[xm,ym]) and ((x<>y) or (x>i)) then

begin

xm:=x;

ym:=y;

end;

t:=A[i,i];

A[i,i]:=A[xm,ym];

A[xm,ym]:=t;

xm:=N;

ym:=1;

end;

for y:=1 to N do

begin

for x:=1 to N do write(A[x,y]:0:1,' ');

writeln;

end;

readln;

end.

program prac3;

const N=7;

var x,y,y1,y2,i,i1,xm,ym:byte;

A:array[1..N,1..N] of real;

t:real;

begin

randomize;

xm:=N;

ym:=1;

i1:=0;

for y:=1 to N do

for x:=1 to N do A[x,y]:=random(100)/10;

for i:=1 to N do

begin

y1:=0;

y2:=2;

for y:=1 to i1 do

begin

for x:=1 to y1 do

if A[x,y]>A[xm,ym] then

begin

xm:=x;

ym:=y;

end;

for x:=y2 to N do

if A[x,y]>A[xm,ym] then

begin

xm:=x;

ym:=y;

end;

inc(y1);

inc(y2);

end;

for y:=i to N do

for x:=1 to N do

if A[x,y]>A[xm,ym] then

begin

xm:=x;

ym:=y;

end;

t:=A[i,i];

A[i,i]:=A[xm,ym];

A[xm,ym]:=t;

xm:=N;

ym:=1;

inc(i1);

end;

for y:=1 to N do

begin

for x:=1 to N do write(A[x,y]:0:1,' ');

writeln;

end;

readln;

end.

З анятие №13: Решение задач на обработку двумерных массивов. Использование матриц в качестве параметров в подпрограммах.

  1. Для каждого столбца прямоугольной целочисленной матрицы определить сумму модулей его элементов, а затем сгруппировать столбцы в порядке возрастания этих сумм.

program prac1;

uses crt;

const N=7;

const N1=N-1;

var A:array[1..N,1..N] of real;

i,x,y,maxx:byte;

max,md:real;

begin

clrscr;

randomize;

for y:=1 to N do begin

for x:=1 to N do begin

A[x,y]:=random(1000)/100;

write(A[x,y]:0:2,' ');

end;

writeln;

end;

writeln;

for i:=1 to N1 do

begin

max:=0;

for y:=1 to N do max:=max+abs(A[i,y]);

maxx:=i;

x:=i+1;

while x<=N do

begin

md:=abs(A[x,1]);

for y:=2 to N do md:=md+abs(A[x,y]);

if md>max then

begin

max:=md;

maxx:=x;

end;

inc(x);

end;

write(max:0:2,' ');

for y:=1 to N do begin

max:=A[i,y];

A[i,y]:=A[maxx,y];

A[maxx,y]:=max;

end;

end;

writeln;

writeln;

for y:=1 to N do begin

for x:=1 to N do write(A[x,y]:0:2,' ');

writeln;

end;

readln;

end.

  1. В квадратной матрице найти наибольший элемент среди элементов, расположенных на главной и побочной диагоналях, после чего обменять его местами с наименьшим элементом, смежным с пересечением этих диагоналей.Примечание. Если - нечетное, то на пересечении указанных диагоналей находится один элемент, при четном с точкой пересечения смежны 4 элемента.

program prac2;

uses crt;

const N=9;

const Z=trunc(N/2+1);

const Z2=N-Z;

var A:array[0..N,0..N] of real;

maxx,maxy,minx,miny,t,x,y:byte;

sw:real;

begin

clrscr;

randomize;

for y:=0 to N do begin

for x:=0 to N do

begin

A[x,y]:=random(1000)/100;

write(A[x,y]:0:2,' ');

end;

writeln;

end;

writeln;

for y:=0 to N do

begin

if A[maxx,maxy]<A[y,y] then begin

maxy:=y;

maxx:=y;

end;

t:=N-y;

if A[maxx,maxy]<A[t,y] then begin

maxx:=t;

maxy:=y;

end;

end;

minx:=Z2;

miny:=Z2;

for y:=Z2 to Z do

for x:=Z2 to Z do

if A[minx,miny]>A[x,y] then

begin

minx:=x;

miny:=y;

end;

sw:=A[minx,miny];

A[minx,miny]:=A[maxx,maxy];

A[maxx,maxy]:=sw;

for y:=0 to N do begin

for x:=0 to N do

begin

write(A[x,y]:0:2,' ');

end;

writeln;

end;

writeln('Vipolnil Kovrigin Anatoliy');

readln;

end.