Вот такая задача... мож есть примеры или идеи у кого.. алгоритымы? .. Буду очень признателен за помощь:
Упорядочить элементы строк матрицы за падением их значений методом обмена. Найти 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 := 1to n dofor j := 1to n do
mx[i, j] := Random(10);
end;
{
Печатаем матрицу
}procedure Print(const mx: TMatrix);
var
i, j: Integer;
begin
writeln;
for i := 1to n dobegin
writeln;
for j := 1to n do write(mx[i, j]:3);
end;
writeln;
end;
{
Сортируем строку матрица с номером row методом "Пузырька"
}procedure SortRow(var mx: TMatrix; const row: Integer);
var
i, j, T: Integer;
beginfor i := n downto2dofor j := 1to i - 1doif mx[row, j] > mx[row, j + 1] thenbegin
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 := 1to 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 := 1to n do
p := p * mx[i, col];
SG := p;
end;
var
M: TMatrix;
i: Integer;
begin
clrscr;
Create(M);
Print(M);
// сортируем все строки матрицы
for i := 1to n do
SortRow(M, i);
Print(M);
writeln;
// считаем среднее арифметическое и геометрическое для столбцов
for i := 1to 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 но с этим я уже справлюсь, надеюсь (если не ттяжело можно и подкоректить)
Еще бы блок-схемку к этому чуду... и если есть у кого-то еще вариант решения этом задачки перед спасибо от своей одногрупницы
ЗЫ... как "спасибо" нажать?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.