Вот такая задача... мож есть примеры или идеи у кого.. алгоритымы? .. Буду очень признателен за помощь:
Упорядочить элементы строк матрицы за падением их значений методом обмена. Найти f(a)-среднее арифмитическое значение элементов в кажом столпце матрицы F(a)- среднее геометрическое значение
Lortine
3.12.2006 19:53
ПО условию матрица 5 на 5
Lortine
3.12.2006 20:02
Сортировку оформить в виде процедуры а вычисление средних значений в виде функций...
Хелп плз Завтра сдавать....
Lortine
3.12.2006 20:33
Код
for k:=1 to n do for i:=2 to n do for j:=1 if a[k,j]<a[k,j-1] then begin t:=a[k,j]; a[k,j]:=a[k,j-1] a[k,j-1]:=t end;
Попробывал переделать метод сортировки обмена(пузырьковый) одномерного массива для матрицы...
Вопрос в том.. правилен ли метод сортировки и как правильно оформить процедуру среднего арифметического и геометрического значений чисел столпцов матрицы (уже после сортировки)?
Lortine
4.12.2006 1:15
Я так понял ответа не дождусь
klem4
4.12.2006 1:41
Цитата
Я так понял ответа не дождусь sad.gif
Не стоит так драматизировать :))
Вот разбирайся ;)
uses crt; const n = 3;
type TMatrix = array [1..n, 1..n] of Integer;
{ Заполняем матрицу случайными числами }
procedure Create(var mx: TMatrix); var i, j: Integer; begin Randomize; for i := 1 to n do for j := 1 to n do mx[i, j] := Random(10); end;
{ Печатаем матрицу }
procedure Print(const mx: TMatrix); var i, j: Integer; begin writeln; for i := 1 to n do begin writeln; for j := 1 to n do write(mx[i, j]:3); end; writeln; end;
{ Сортируем строку матрица с номером row методом "Пузырька" }
procedure SortRow(var mx: TMatrix; const row: Integer); var i, j, T: Integer; begin for i := n downto 2 do for j := 1 to i - 1 do if mx[row, j] > mx[row, j + 1] then begin T := mx[row, j]; mx[row, j] := mx[row, j + 1]; mx[row, j + 1] := T; end; end;
{ Среднее арифм. столбца col матрицы mx }
function SA(const mx: TMatrix; const col: Integer): Single; var i: Integer; sr: Single; begin sr := 0; for i := 1 to n do sr := sr + mx[i, col]; SA := sr / n; end;
{ Среднее геометр. столбца col матрицы mx }
function SG(const mx: TMatrix; const col: Integer): Single; var i: Integer; p: Single; begin p := 1; for i := 1 to n do p := p * mx[i, col]; SG := p; end;
var M: TMatrix; i: Integer;
begin clrscr;
Create(M); Print(M);
// сортируем все строки матрицы
for i := 1 to n do SortRow(M, i);
Print(M);
writeln;
// считаем среднее арифметическое и геометрическое для столбцов
for i := 1 to n do writeln('i = ', i, ' SA = ', SA(M, i):3:3, ' SG = ', SG(M, i):3:3);
readln; end.
Lortine
4.12.2006 3:58
Самый классный форум во всем рунете.!!!! Пасибки огромное, с меня пиво если увидимся Единственное надо было вывести посортированную матрицу и она должна быть 5 на 5 но с этим я уже справлюсь, надеюсь (если не ттяжело можно и подкоректить)
Еще бы блок-схемку к этому чуду... и если есть у кого-то еще вариант решения этом задачки перед спасибо от своей одногрупницы
ЗЫ... как "спасибо" нажать?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.