h1

Сортировка положительных элементов массива по возрастанию. Замена элементов главной и побочной диагоналей

Январь 6, 2010

Данная задача была выполнена на заказ с сайта http://www.cyberforum.ru. Задание звучало следующим образом:

Дан массив 10х10. Отсортировать положительные элементы массива по возрастанию, оставив на своих местах отрицательные элементы. Поменять элементы главной и побочной диагоналей. Исходный код:

uses Crt;
const n = 10;
m = 10;
var a: array[1..n,1..m] of integer;
a1: array[1..n*m,0..2] of integer;
i,j,i1,t1,t2,t3,k: integer;
begin
ClrScr;
randomize;
{Vvodim massiv}
writeln(‘ishodnaya matrica: ‘);
for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:=Random(20)-3;
a1[(i-1)*m+j,0]:=a[i,j];
a1[(i-1)*m+j,1]:=i;
a1[(i-1)*m+j,2]:=j;
Write(a[i,j]:4);
end;
Writeln;
end;
{Sortiruem dopolnitelniy massiv}
for i:=1 to n*m-1 do begin
for j:=i+1 to n*m do begin
if (a1[i,0]>a1[j,0]) and (a1[i,0]>=0) and (a1[j,0]>=0) {otricatelnie ne berem}
then begin
t1:=a1[i,0]; t2:=a1[i,1]; t3:=a1[i,2];
a1[i]:=a1[j];
a1[j,0]:=t1; a1[j,1]:=t2; a1[j,2]:=t3;
end;
end;
end;
{Vozvrashaem v ishodniy massiv otsortirovannie znacheniya}
j:=0; i:=1;
for i1:=1 to n*m do begin
Inc(j);
if j>m then begin
j:=1;
Inc(i);
end;
a[i,j]:=a1[i1,0];
end;
{zamena glavnoi i pobochnoi diagonalei}
for i:=1 to n do begin
k:=a[i,i];
a[i,i]:=a[i,n+1-i];
a[i,n+1-i]:=k;
end;
{kontrolnii vivod}
Writeln(‘obrabotannaya matrica: ‘);
for i:=1 to n do begin
for j:=1 to m do begin
Write(a[i,j]:4);
end;
Writeln;
end;
readkey;
end.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: