Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2012, 13:22   #1
Virtual575
Новичок
Джуниор
 
Регистрация: 10.12.2012
Сообщений: 1
По умолчанию Нужно исправить программу по сортировкам.

Вот условие:
Дана действительная матрица A размерности (m x n) . Если среднее арифметическое элементов первой строки превышает среднее арифметическое элементов всей матрицы, то упорядочить столбцы матрицы по возрастанию максимальных элементов столбцов методом линейного выбора с обменом. В противном случае матрицу оставить без изменения.
Я незнаю как здесь упорядочить столбцы матрицы по возрастани макс. элементов методом линейного выбора с обменом..Помогите!!!

program VP_2;
uses CRT;
type
matr = array [1..50,1..50] of real;
var
vr : array [1..50] of real;
i, j, k, i_min, m, n, c : integer;
a, b : matr;
sr1, sr2, buf, min, max : real;
begin
clrscr; {ohcistka}
{vvod matrizi}
writeln('Vvedite razmernost matrizi:');
write('Chislo strok M:');readln(m);
write('Chislo stolbzov N:');readln(n);
for i:=1 to m do
for j:=1 to n do
begin
write('a[',i,j,']:');
readln(a[i,j]);
end;
clrscr;

{schitaem srednee arifmeticheskoe}
sr1:=0;
for i:=1 to n do
sr1:=sr1+a[1,i];
sr1:=sr1/n;

sr2:=0;
for i:=1 to m do
for j:=1 to n do
sr2:=sr2+a[i,j];
sr2:=sr2/(n*m);

if sr1>sr2 then
begin
for k:=1 to n do
begin
{sozdaem vektor iz elementov stolbzov}
for i:=1 to n do
vr[i]:=a[i,k];
{sortirovka}
for i:=1 to n-1 do
begin
min:=vr[i];
i_min:=i;
for j:=i to n do
if vr[j]>vr[j+1] then
begin
min:=vr[j];
i_min:=j;
end;
buf:=vr[i];
vr[i]:=min;
vr[i_min]:=buf;
end;
{sozdaem otsortirovannii stolbez}
for i:=1 to n do
b[i,k]:=vr[i];
end;

{vivod rezultata}
writeln( ' Ishodnaya matriza : ' );
for i:=1 to m do
begin
for j:=1 to n do
write(' ',a[i,j]:5:1);
writeln;
end;

writeln;
for j:=1 to n do
begin
max:=a[1,j];
for i:=1 to n do
if a[i,j]>max then
max:=a[i,j];
writeln(' Maximalnie elementi ',j,' stolbca : ',max) ;
b[i,j]:=max;
end;

writeln;
writeln( ' Otsortirovannaya matriza : ' );
for i:=1 to m do
begin
for j:=1 to n do
write(' ',b[i,j]:5:1);
writeln;
end;

end
else
writeln( ' Matriza ne izmenilas!!! ' );
readln;
end.

Последний раз редактировалось Virtual575; 10.12.2012 в 13:34.
Virtual575 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно исправить программу! Anna_S2dent Помощь студентам 7 30.09.2011 10:33
нужно исправить программу в с++ tymac9n Общие вопросы C/C++ 1 12.05.2011 14:53
нужно исправить программу в с++ tymac9n Помощь студентам 1 12.05.2011 00:13
нужно исправить программу) ilnar21 Помощь студентам 1 30.10.2010 22:42
Очень нужно исправить программу в Delphi !!! Grifon_666 Помощь студентам 0 12.05.2010 21:42