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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2009, 15:12   #1
ene21
Пользователь
 
Регистрация: 02.09.2009
Сообщений: 11
По умолчанию Сортировка матрицы. Pascal

Всем привет. Подскажите пожалуйста ход решения следующей задачи.
"Необходимо, написать программу, которая строит матрицу чисел ( максимально 10 на 10) и упорядочивает каждую строку по возрастанию элементов."
Собственно кусок, с непосредственным заданием исходной матрицы я написал...а как упорядочивать строки я не могу понять. Как простой, одномерный массив отсортировать я знаю, а как отдельно взятую строчку в двумерном???
ene21 вне форума Ответить с цитированием
Старый 09.09.2009, 15:24   #2
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

стучись в аську, я сделаю, ибо я так понимаю опыт работы с двумерными массивами 0.
fbus вне форума Ответить с цитированием
Старый 09.09.2009, 15:27   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как простой, одномерный массив отсортировать я знаю
Покажи, а я подправлю к сортировке по строкам..
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.09.2009, 21:33   #4
ene21
Пользователь
 
Регистрация: 02.09.2009
Сообщений: 11
По умолчанию

Одномерный массив я сортирую пузырьком. Незнаю пригодно ли это к двумерному массиву. Собственно вот код примера одномерки:
пузырек.JPG
ene21 вне форума Ответить с цитированием
Старый 09.09.2009, 21:58   #5
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

это одномерный. а где обещанный кусок двуменого?
fbus вне форума Ответить с цитированием
Старый 09.09.2009, 22:01   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Код:
// r - номер текущей строки
// row_count - количество строк
for r:=1 to row_count do
begin
   // Тут алгоритм сортировки одномерного массива
   // Только элементы будут не a[i], а a[r][i]
   // Например, if (a[r][i] > a[r][j])
   // Это конечно если матрица хранится у вас как: [строка][столбец]
   // Иначе, будет: if (a[i][r] > a[j][r])
end;
pu4koff вне форума Ответить с цитированием
Старый 09.09.2009, 22:13   #7
ene21
Пользователь
 
Регистрация: 02.09.2009
Сообщений: 11
По умолчанию

Насчет двумерного. Я смог решить лишь части задачи. Тоесть создать матрицу, заполнить ее с клавиатуры и все. А как сортировать - я совсем не знаю. Вообще каким методом сортируются строки? Пузырек например подойдет?
Если нужна часть кода, где задаеться двумерная матрица - то пожалуйста, вот он:
матрица.jpg
Правда у меня окошко больше не растягиваеться...кусочек с вводом количества строк не виден.
ene21 вне форума Ответить с цитированием
Старый 09.09.2009, 22:59   #8
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

ene21, при сохранение проекта у Вас должен быть фаил с расширением *.pas
Откройте этот фаил в "Блокноте" и Вы увидите исходный код Вашей программы, который намного удобнее обсуждать, нежели скриншоты.

Эт было вступление.....

Теперь, что касается темы.

Двумерный массив выглядит таким орбразом:

1 6 5 4 1 4
6 3 1 3 5 2
6 8 0 7 3 5
......
3 1 5 7 3 2

Так вот ваша задача отсортировать строки... Лень мне запускать Delphi(а паскаля у меня уже давно нету), такчто я в двух словах.

Код:
For x := 1 To [количество строк] Do
Begin
{Тут надо отсортировать строку.
Отличая от сортировки одномерного будет лишь в обращение.
К двумерному массиву нужно обращаться по двум индексам.
Massiv[строка, столбец];
Тобишь при сортировке номер строки будет изменяться внешним циклом}
End;
Фух, здорово если ктото чтото понял.....
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 10.09.2009, 09:34   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ene21
И что теперь нам твой код ручками набирать? Не судьба была выложить сюда не картинку а текст кода?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2009, 18:21   #10
cherr
 
Регистрация: 10.09.2009
Сообщений: 4
Радость

Ну вот, что-то вроде этого:
Код:
program sortirovka_massiva;
uses crt;
const
 x=5; y=5;
var
 m,n,i:byte;
 buf:integer;
 a:array [1..x,1..y] of integer;
begin
 for m:=1 to x do
  for n:=1 to y do
   begin
    writeln('a[',m,',',n,']: ');
    readln(a[m,n]);
   end;
  writeln; writeln('Entered:');
 for m:=1 to x do
  begin
   for n:=1 to y do
    write(a[m,n], ' ');
   writeln;
  end;
 for m:=1 to x do
  begin
   for i:=1 to (y-1) do
    for n:=i+1 to y do
     begin
      if (a[m,i]>a[m,n]) then
       begin
	    buf:=a[m,n];
	    a[m,n]:=a[m,i];
	    a[m,i]:=buf;
       end;
     end;
  end;
 writeln; writeln('Ready!');
 for m:=1 to x do
  begin
   for n:=1 to y do
    write(a[m,n], ' ');
   writeln;
  end;
 readkey;
end.

Последний раз редактировалось cherr; 10.09.2009 в 18:24.
cherr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка матрицы по спирали {pascal} Влдислаав3911 Помощь студентам 3 10.04.2012 22:05
Сортировка матрицы Dartchuwak Помощь студентам 4 06.04.2010 15:49
Сортировка матрицы GOODMAN Microsoft Office Excel 3 09.07.2009 23:31
Матрицы. Сортировка Ominous48 Паскаль, Turbo Pascal, PascalABC.NET 5 18.05.2009 11:51
c++ сортировка матрицы Aion Помощь студентам 10 15.05.2009 14:30