Помощь - Поиск - Пользователи - Календарь
Полная версия: Манипуляции с матрицей
Форум «Всё о Паскале» > 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
хелп
почему так
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.