Помощь - Поиск - Пользователи - Календарь
Полная версия: Манипуляции с матрицей
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
-UpRe_ID-
Тема такова:

берем любую матрицу [2*2].......[10*10]
Приравневаем каждый столбец и строчку к матрице и сравниваем их ....
в моем случае надо сравнить столбцы и выложить их с большего на меньший( в начале идет самый большой столбец потом средний и самый маленький). Для сравнения берем и прировняем каждый столбец к массиву ( складываем числа каждого массиваи сравниваем ( mas2>mas3>mas1 пример )
. вот rolleyes.gif
-UpRe_ID-
Цитата(-UpRe_ID- @ 4.07.2007 13:35) *

Тема такова:

берем любую матрицу [2*2].......[10*10]
Приравневаем каждый столбец и строчку к матрице и сравниваем их ....
в моем случае надо сравнить столбцы и выложить их с большего на меньший( в начале идет самый большой столбец потом средний и самый маленький). Для сравнения берем и прировняем каждый столбец к массиву ( складываем числа каждого массиваи сравниваем ( mas2>mas3>mas1 пример )
. вот rolleyes.gif


Забыл, используем функцию
Гость
Цитата(-UpRe_ID- @ 4.07.2007 13:49) *

Забыл, используем функцию


Ай нид хелп.... плиззз.... mega_chok.gif
Гость
Up,
что никто не знает?

*за вознагрождение
volvo
Цитата
что никто не знает?
При такой постановке вопроса - нет... Из того, что написано в первом посте понять ничего невозможно (в частности, что значит, по-твоему "Приравневаем каждый столбец и строчку к матрице ..."?)

Примеров наглядных тоже нет, так что...
Up
Я объяснил так как ним пояснили.... rolleyes.gif

Дело в том что нужно в матрице любого размера [1...10][1..10] нужно сравнить столбцы и выстроить их с наибольшего к наименьшему...

пример:
196 963
285 преобразуем- получаем 852
374 741

достаточно пояснил? rolleyes.gif
Up
Я объяснил так как ним пояснили.... rolleyes.gif

Дело в том что нужно в матрице любого размера [1...10][1..10] нужно сравнить столбцы и выстроить их с наибольшего к наименьшему...

пример:
196 963
285 преобразуем- получаем 852
374 741

достаточно пояснил? rolleyes.gif
volvo
Вот сама программа (работает на матрице 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.

Гость
Цитата(-UpRe_ID- @ 4.07.2007 13:35) *

Тема такова:

берем любую матрицу [2*2].......[10*10]
Приравневаем каждый столбец и строчку к матрице и сравниваем их ....
в моем случае надо сравнить столбцы и выложить их с большего на меньший( в начале идет самый большой столбец потом средний и самый маленький). Для сравнения берем и прировняем каждый столбец к массиву ( складываем числа каждого массиваи сравниваем ( mas2>mas3>mas1 пример )
. вот rolleyes.gif



воб ще то я написал что нуно использовать функцию.. nea.gif
volvo
Вообще-то я НЕ ВИЖУ, куда тут запихать функцию, а поскольку ты объясняешь так, как объясняли тебе - то я делаю так, как научили меня: функция должна использоваться тогда, когда надо возвращать результат. Причем, результат одного из перечислимых типов, поскольку тема создана в разделе для Turbo Pascal (т.е., не матрицу, скажем). Что будем возвращать, не подскажешь? Нет? Тогда используй процедуру...
Гость
ок, спб.)
С меня кефир* ;)


только тему еще не надо закрывать.
Гость
Я знаю почему функцию....
потому что задача коллективная.....
МЫ(наша группа) должна написать прогу, которая полностью перебирает матрицу и по строкам и по столбцам..
Гость
Напишите программу и пришлите ее текст на lex0mania@inbox.ru или gu.ru312@inbox.ru
до 17:00 18,06,2007.....
програмка не сложня..... очень даже легкая, мнесдыдно что я такое не могу написать.....
плизз ай нид хелп.

remuneration is guaranteed
UpRe_ID
пишем в личку
UpRe_ID
а иожно написать по моей схеме берем матрицу н и м размеров..... потом приравниваем столбец к масиву с помощью функции сравниваем их и выстраиваем по порядку, т. е. с большего на наименьший.....
вот .... Словарный запас в языке паскаля у меня маленький....
ну помогите п-та rolleyes.gif give_rose.gif rolleyes.gif
UpRe_ID
 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.

помогите отыскать лексические ошибки wacko.gif
volvo
Цитата
помогите отыскать лексические ошибки
Ты с синтаксическими сначала разберись...
UpRe_ID
такс....
такая вот просьба можете сделать так чтоб в праграмме не сисла в столбцах менялись местами , а столбцы.... wink.gif
UpRe_ID
Ай нид хелп,
плизз..!!!! give_rose.gif
compiler
Цитата
Ты с синтаксическими сначала разберись...
вот это откомпилируется smile.gif
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.

UpRe_ID
Помогите оч нуна, почему то мне прога выдает только один столбец упорядочный по порядку,а по делу должно больше
UpRe_ID
хелп
почему так
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.