|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.12.2012, 13:22 | #1 |
Новичок
Джуниор
Регистрация: 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. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
нужно исправить программу! | 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 |