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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2010, 21:40   #1
zevs116
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 21
По умолчанию Сортировка массива, pascal

Ребята, срочно нужна помощь, я пытался разобраться, но когда дошел до сортировки (ну хотябы методом "пузырька") вообще перестал соображать. вот задание:

Дана матрица 20х30. упорядочить ее строки по неубыванию их первых элементов.

есть соображения?
zevs116 вне форума Ответить с цитированием
Старый 27.09.2010, 21:43   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

есть---> 3.5$ и сделаю! аська в профиле
Цитата:
не вариант
тогда учебник в руки и вперед!!!
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 27.09.2010 в 21:59.
Mad_Cat вне форума Ответить с цитированием
Старый 27.09.2010, 21:48   #3
zevs116
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 21
По умолчанию

не вариант
zevs116 вне форума Ответить с цитированием
Старый 27.09.2010, 22:10   #4
chesser
Пользователь
 
Регистрация: 02.08.2010
Сообщений: 17
По умолчанию

Какой язык? А так, сравнивайте первые элементы соседних строк и, если внизу находится строка с меньшим первым элементом, то меняйте строки местами.
chesser вне форума Ответить с цитированием
Старый 28.09.2010, 09:17   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я пытался разобраться
Разборки в студию )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2010, 09:42   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну что Вы этого двоичника мучаете? Ну ясно же, что никаких разработок у него нет!

ладно, сделал чисто просто по приколу.
Причём, используя одну малоизвестную фишку Паскаля (смотри мой пост )

Код:
uses CRT;
Const
  NumRow = 20;
  NumCol = 30;
var
  i, j : integer;
  Mas : array[1..NumRow+1,1..NumCol] of integer;
begin

  Randomize;

  for i := 1 to NumRow do
    for j := 1 to NumCol do
      Mas[i, j] := Random(10);

  WriteLn('Исходная матрица:');
  for i := 1 to NumRow do begin
    for j := 1 to NumCol do
        Write(Mas[i, j]:2);
    WriteLn;
  end;
  WriteLn('------------------');


   {сортировка массива по неубыванию их первых элементов}
   for i:=1 to NumRow do
     for j:=i+1 to NumRow do
       if Mas[i,1]>Mas[j,1] then
         begin
           {строчка NumRow+1 используется исключительно для удобства
             обмена строчек межуд собой}
           Mas[NumRow+1] := Mas[i];
           Mas[i] := Mas[j];
           Mas[j] := Mas[NumRow+1]
         end;

  WriteLn('Матрица после сортировки:');
  for i := 1 to NumRow do begin
    for j := 1 to NumCol do
        Write(Mas[i, j]:2);
    WriteLn;
  end;

  readln;

end.
p.s. объяснять принципиально ничего не буду. Я и так слишком много сказал...

Последний раз редактировалось Serge_Bliznykov; 28.09.2010 в 09:49.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.09.2010, 21:18   #7
zevs116
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 21
По умолчанию прога

неа, были наработки, вы не подумайте, пост все было на бумаге, не было времени переписывать! вот начало у меня было такое:

program pr3;
mas=array[1..20;1..30] of real;
mas2=array[1..20] of real;
var A,B:mas; max:mas2; i,j:integer;

begin
for i:=1 to 20 do
begin
max[i]:=A[i,j];
for j:=1 to 30 do
if A[i,j]>max[i] then
max[i]:=A[i,j];
end;

а дальше хз. А в том готовом варианте, там используется этот пресловутый метод пузырьков??
zevs116 вне форума Ответить с цитированием
Старый 28.09.2010, 21:28   #8
zevs116
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 21
По умолчанию

блин, там ничего не катит, паскаль сразу строку не переносит, надо по отдельности..((

уф, разобрался, немного подправил, теперь все норм. если кому надо будет, вот конечный рабочий вариант:
Цитата:
uses CRT;
Const
NumRow = 20;
NumCol = 30;
var
i, j,n,k : integer;
Mas : array[1..NumRow,1..NumCol] of integer;
Mas2:array[1..20] of integer;
begin

Randomize;
{создание исходного массива}

for i := 1 to NumRow do
for j := 1 to NumCol do
Mas[i, j] := Random(10);

WriteLn('Исходная матрица:');
for i := 1 to NumRow do begin
for j := 1 to NumCol do
Write(Mas[i, j]:2);
WriteLn;
end;
WriteLn('------------------');


{сортировка массива по неубыванию их первых элементов}

for i:=1 to NumRow do
for j:=i+1 to NumRow do
if Mas[i,1]>Mas[j,1] then
begin
{метод "пузырьков"}
for n:=1 to 5 do
begin
Mas2[n] := Mas[i,n];
Mas[i,n] := Mas[j,n];
Mas[j,n] := Mas2[n];
end;
end;

WriteLn('Матрица после сортировки:');
for i := 1 to NumRow do begin
for j := 1 to NumCol do
Write(Mas[i, j]:2);
WriteLn;
end;

readln;

end.

Последний раз редактировалось zevs116; 28.09.2010 в 22:02.
zevs116 вне форума Ответить с цитированием
Старый 28.09.2010, 22:15   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) MAS2 в принципе не нужен...
Код:
x := Mas[i,n];
Mas[i,n] := Mas[j,n];
Mas[j,n] := x;
но это ещё полбеды..
А вот главное,
это ошибка.
что за for n:=1 to 5 do ?!!
Откуда 5 нарисовалась то?
Тогда уж поставьте NumCol

p.s. программу из пост #6 я проверял. Всё работает!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.09.2010, 22:23   #10
zevs116
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 21
По умолчанию

Оппа, как же не заметил то блин, я прост на небольших массивах работоспособность поверял. уже и девчонке отправил, ну ладно, думаю препод её не заметит)

а вот еще такое заданьице, почти тоже самое, только надо не по первым элементам сортировать, а по максимальному в строке. я там чуток кода кидал, как его туда всунуть?
zevs116 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива, таймер(pascal) Milashka_zp Помощь студентам 9 17.02.2010 16:27
Сортировка массива (Pascal) Kion Помощь студентам 4 07.10.2009 23:34
Сортировка массива методом вставок Pascal bpystep Помощь студентам 5 22.04.2009 01:13
Pascal - сортировка массива(файла?) kossner Помощь студентам 14 05.12.2008 14:57