Тема такова:
берем любую матрицу [2*2].......[10*10]
Приравневаем каждый столбец и строчку к матрице и сравниваем их ....
в моем случае надо сравнить столбцы и выложить их с большего на меньший( в начале идет самый большой столбец потом средний и самый маленький). Для сравнения берем и прировняем каждый столбец к массиву ( складываем числа каждого массиваи сравниваем ( mas2>mas3>mas1 пример )
. вот
Up,
что никто не знает?
*за вознагрождение
Я объяснил так как ним пояснили....
Дело в том что нужно в матрице любого размера [1...10][1..10] нужно сравнить столбцы и выстроить их с наибольшего к наименьшему...
пример:
196 963
285 преобразуем- получаем 852
374 741
достаточно пояснил?
Я объяснил так как ним пояснили....
Дело в том что нужно в матрице любого размера [1...10][1..10] нужно сравнить столбцы и выстроить их с наибольшего к наименьшему...
пример:
196 963
285 преобразуем- получаем 852
374 741
достаточно пояснил?
Вот сама программа (работает на матрице 3*3)... Добавь ввод данных пользователем, и выбор размерности - будет работать так, как тебе нужно:
const
n = 3;
type
matrix = array[1 .. n, 1 .. n] of integer;
procedure sort_column(var ar: matrix; x: integer);
var i, j, T: integer;
begin
for i := 1 To n Do
for j := n downto i + 1 do
if ar[pred(j), x] < ar[j, x] then begin
T := ar[pred(j), x]; ar[pred(j), x] := ar[j, x]; ar[j, x] := T
end
end;
procedure sort_first_row(var ar: matrix);
var i, j, k, T: integer;
begin
for i := 1 To n Do
for j := n downto i + 1 do
if ar[1, pred(j)] < ar[1, j] then
for k := 1 to n do begin
T := ar[k, pred(j)]; ar[k, pred(j)] := ar[k, j]; ar[k, j] := T
end
end;
procedure print(const ar: matrix);
var i, j: integer;
begin
for i := 1 to n do begin
for j := 1 to n do write(ar[i, j]:3);
writeln;
end;
end;
const
a: matrix = (
(1, 9, 6), (2, 8, 5), (3, 7, 4)
);
var i: integer;
begin
for i := 1 to n do
sort_column(a, i);
print(a);
sort_first_row(a);
writeln;
print(a);
end.
Вообще-то я НЕ ВИЖУ, куда тут запихать функцию, а поскольку ты объясняешь так, как объясняли тебе - то я делаю так, как научили меня: функция должна использоваться тогда, когда надо возвращать результат. Причем, результат одного из перечислимых типов, поскольку тема создана в разделе для Turbo Pascal (т.е., не матрицу, скажем). Что будем возвращать, не подскажешь? Нет? Тогда используй процедуру...
ок, спб.)
С меня кефир* ;)
только тему еще не надо закрывать.
Я знаю почему функцию....
потому что задача коллективная.....
МЫ(наша группа) должна написать прогу, которая полностью перебирает матрицу и по строкам и по столбцам..
Напишите программу и пришлите ее текст на lex0mania@inbox.ru или gu.ru312@inbox.ru
до 17:00 18,06,2007.....
програмка не сложня..... очень даже легкая, мнесдыдно что я такое не могу написать.....
плизз ай нид хелп.
remuneration is guaranteed
пишем в личку
а иожно написать по моей схеме берем матрицу н и м размеров..... потом приравниваем столбец к масиву с помощью функции сравниваем их и выстраиваем по порядку, т. е. с большего на наименьший.....
вот .... Словарный запас в языке паскаля у меня маленький....
ну помогите п-та
program practic;
type
matrica= array [1..15,1..15] of real;
var a:matrica;
i, j, k, n , m : byte;
b:real;
begin
write ('m=');
readln (m);
write('n=');
readln (n);
for i:=1 to m do
for j:= to n do
begin
write (' a[',i,',',j,']=');
readln (a[i,j]);
end;
writeln(' matrica a');
for i:=1 to m do
begin
for j:=1 to n do
write (a[i,j] , '')
writeln
end;
for j:=1 to n do
for k:=1 m-1 do
for i:=1 to m-k do
if a[i,j]< a[i+1, j] then
begin
b:=a[i,j];
a[i, j];=a[i+1, j];
a[i+1,j];=b;
end;
writeln ('preobrazovanaya matrica a');
for i:=1 to m do
begin
for j:=1 to n do
write (a[i,j], ' ');
writeln;
end;
end.
такс....
такая вот просьба можете сделать так чтоб в праграмме не сисла в столбцах менялись местами , а столбцы....
Ай нид хелп,
плизз..!!!!
program practic;
type
matrica= array [1..15,1..15] of real;
var
a:matrica;
i, j, k, n , m : byte;
b:real;
begin
write ('m=');
readln (m);
write('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;
writeln(' matrica a');
for i:=1 to m do begin
for j:=1 to n do
write (a[i,j] , '');
writeln;
end;
for j:=1 to n do
for k:=1 to m-1 do
for i:=1 to m-k do
if a[i,j]< a[i+1, j] then begin
b:=a[i,j];
a[i, j]:=a[i+1, j];
a[i+1,j]:=b;
end;
writeln ('preobrazovanaya matrica a');
for i:=1 to m do begin
for j:=1 to n do
write (a[i,j], ' ');
writeln;
end;
readln;
read;
end.
Помогите оч нуна, почему то мне прога выдает только один столбец упорядочный по порядку,а по делу должно больше