Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2009, 15:03   #1
Absent
Пользователь
 
Регистрация: 18.11.2007
Сообщений: 67
По умолчанию Работа с матрицей

Дана задача: Переместить местами строки матрицы в порядке убывания последних элементов строк; n=5, m=4. Вот что получилось у меня:
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
  SysUtils;

const
m=4;
n=5 ;
a: array[1..m,1..n] of integer = ((1,2,3,4,5),
                                 (3,5,2,7,8),
                                 (2,6,9,2,0),
                                 (4,5,7,2,8));
Var
i,j,d,z,str,max :integer;

begin
For z:=1 to m do
begin

max:=A[z,n];
str:=z;
For i:=z to m do
begin
if max<A[i,n] then
begin
max:=A[i,n];
str:=i;
end;
end;
For j:=1 to m do
begin
d:=A[z,j];
A[z,j]:=A[str,j];
A[str,j]:=d;
end;
end;
For i:=1 to m do
For j:=1 to n do
begin
write (A[i,j],' ');
if j=n then readln;
end;
readln;
end.

Написал, но не работает или работает но неправильно. Прошу помощи.
Absent вне форума Ответить с цитированием
Старый 05.04.2009, 15:15   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Почему у вас матрица в константах прописана? Вы же ее сортируете.

Код:
program Project2;
{$APPTYPE CONSOLE}
uses
  SysUtils;

const
m=4;
n=5 ;

Var
i,j,k,tmp,max :integer;
a: array[1..m,1..n] of integer = ((1,2,3,4,5),
                                 (3,5,2,7,8),
                                 (2,6,9,2,0),
                                 (4,5,7,2,8));
begin

// вывод исходной матрицы
for i:=1 to m do
 begin
 for j:=1 to n do
  write(A[i,j]:4);
 writeln;
 end;
writeln;
//---------

// сортировка
for i:=1 to m-1 do
 begin
 max := i;
 for j:=i+1 to m do
  if A[j,n]>A[max,n] then max := j;
 for k:=1 to n do
  begin
  tmp := A[max,k];
  A[max,k] := A[i,k];
  A[i,k] := tmp;
  end;

 end;

// вывод отсортированной матрицы
For i:=1 to m do
 begin
 For j:=1 to n do
  write(A[i,j]:4);
 writeln;
 end;
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.04.2009, 15:46   #3
Absent
Пользователь
 
Регистрация: 18.11.2007
Сообщений: 67
По умолчанию

Спасибо большое!
Absent вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с матрицей Panda Помощь студентам 1 06.07.2008 16:42
Работа с матрицей Absent Помощь студентам 1 24.05.2008 13:33
Работа с матрицей Absent Помощь студентам 3 17.05.2008 22:20
Задача с матрицей H[o][o]K Помощь студентам 1 15.12.2007 16:51