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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2010, 16:34   #11
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

А я и не предлагаю своей помощи...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 17.05.2010, 16:36   #12
DoDge_VipeR
Форумчанин
 
Аватар для DoDge_VipeR
 
Регистрация: 30.04.2010
Сообщений: 317
По умолчанию

а в чем сложность то ???
создаем одномерный размером в число строк матрицы. Туда заполняем минимальные элементы строк матрицы. Сортируем одномерный массив (быстрая сортировка, пузырьком и т.д.), при этом когда меняем местами элементы одномерного массива, меняем и местами и строки в матрице (элементы в одном столбце).
что из этого не понятно?
icq:627719[сто сорок четыре] - помогу с Pascal & Delphi!
DoDge_VipeR вне форума Ответить с цитированием
Старый 17.05.2010, 16:42   #13
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Вот именно почти так я и сделал, только массив содержал минимальный элемент строки и соответствующий этому элементу номер строки... Т.е. матрица содержала два столбца и количество строк, равное количеству строк исходной матрицы. Потом выполнялась сортировка строк по минимальным элементам... Куда уж проще-то....
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 17.05.2010 в 16:48.
Grag вне форума Ответить с цитированием
Старый 17.05.2010, 16:54   #14
DoDge_VipeR
Форумчанин
 
Аватар для DoDge_VipeR
 
Регистрация: 30.04.2010
Сообщений: 317
По умолчанию

вот вам ваша процедура
Код:
procedure sortM( var a:matrix;);
var
i,j:integer;
a_tmp:array[1..M_max] of real;
a_min:array[1..N_max] of real; 
t: real;
i,j,min: byte;
begin
for i:=1 to N_max do
  begin
    a_min[i]:=a[i,1]; {Считаем, что первый элемент в строке - наименший}
    for j:=2 to M_max do
      if a[i,j]<a_min[i] then {Если найден ещё меньший,}
        a_min[i]:=a[i,j]; {то "назначаем" наименьшим его}
  end;
  for i:=1 to N_max-1 do {Начинаем упорядочивать строки}
  begin
    min:=i;
    for j:=i+1 to N_max do {Находим номер минимального элемента в векторе наибольших элементов начиная с i-го}
      if a_min[j]<a_min[min] then
        min:=j;
    t:=a_min[min]; {Совершаем обмен i-го и минимального элемента в векторе и}
    a_min[min]:=a_min[i];
    a_min[i]:=t;
    for j:=1 to M_max do a_tmp[j]:=a[min,j]; {соответствующих строк в матрице}
    for j:=1 to M_max do a[min,j]:=a[i,j];
    for j:=1 to M_max do a[i,j]:=a_tmp[j];
  end;
end;
icq:627719[сто сорок четыре] - помогу с Pascal & Delphi!

Последний раз редактировалось DoDge_VipeR; 17.05.2010 в 16:59.
DoDge_VipeR вне форума Ответить с цитированием
Старый 17.05.2010, 16:58   #15
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

А вот кусочек моей программы, выполняющий сортировку строк матрицы
Код:
  FillChar(Vector,SizeOf(Vector),0);
  for str:=0 to Range-1 do
    begin
      Vector[0,str]:=str;
      Min:=MatrC[str,0];
      for stb:=1 to Range-1 do
        begin
          if Min>MatrC[str,stb] then Min:=MatrC[str,stb]
        end;
      Vector[1,str]:=Min
    end;
  for str:=0 to Range-2 do
    for xstr:=str+1 to Range-1 do
      begin
        if Vector[1,str]>Vector[1,xstr] then
          begin
            Min:=Vector[1,xstr];
            idx:=Vector[0,xstr];
            Vector[1,xstr]:=Vector[1,str];
            Vector[0,xstr]:=Vector[0,str];
            Vector[1,str]:=Min;
            Vector[0,str]:=idx
          end
      end;
  writeln;
  writeln('Sorting MatrixA');
  writeln;
  for str:=0 to Range-1 do
    begin
      for stb:=0 to Range-1 do
        begin
          MatrA[str,stb]:=MatrC[Vector[0,str],stb];
          write(' ',MatrA[str,stb])
        end;
      writeln
    end;
Я использовал в качестве промежуточной матрицы матрицу С, благо по условию той задачи там было три матрицы одинаковой структуры...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 17.05.2010 в 17:04.
Grag вне форума Ответить с цитированием
Старый 17.05.2010, 17:19   #16
master_olegi
 
Аватар для master_olegi
 
Регистрация: 17.05.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Grag Посмотреть сообщение
Уже проходил это недоразумение... Просто она имеет некоторый текстовый файл, в котором хранятся (естессно в текстовом виде) элементы массива. Открываем файл, читаем из него значения и заполняем массив... Геморройно все это...
Ничего геморройного в этом в принципе нет. Я просто смысла не понял, вот и спросил. Если просто считать из файла 9 чисел - тогда почему бы не забить массив рандомайзером и на этом успокоиться. Если же сортировку проводить как-нибудь с помощью типизированного файла - так это задача поинтереснее
Favour programming: Lazarus 0.9.28beta (gtk2-builded)+ FPC2.2.4 + MySQL5.1.36
master_olegi вне форума Ответить с цитированием
Старый 18.05.2010, 00:59   #17
Яна Сафронова
Пользователь
 
Регистрация: 11.04.2010
Сообщений: 15
По умолчанию

DoDge_VipeR огромнейшее Вам спасибо!!! И менно так как надо сделали!!!
Яна Сафронова вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка матрицы Eovin Помощь студентам 0 20.12.2009 15:36
Сортировка матрицы GOODMAN Microsoft Office Excel 3 09.07.2009 23:31
Сортировка матрицы counter Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 09.06.2009 00:00
c++ сортировка матрицы Aion Помощь студентам 10 15.05.2009 14:30