+ Ответить в теме
Показано с 1 по 6 из 6

Тема: перемещение строк в матрице.Паскаль

  1. #1
    groth88 is on a distinguished road
    Регистрация
    15.04.2008
    Сообщений
    4
    Вес репутации
    0

    По умолчанию перемещение строк в матрице.Паскаль

    Помогите с паскалем
    "Дана матрица размера М х Н.Упорядочить её строки так,чтобы их минимальные элементы образовывали убывающую последовательность.
    Для отладки программы исходный массив сформировать с помощью генератора случайных чисел"

    Не могу понять как премещать строки в матрице и следовательно как их упорядочить по минимальному элементу...
    Помогите пожалуйста

  2. По умолчанию

    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Moderator Куратор
    system architect
    MOTOCoder is on a distinguished road
    Регистрация
    14.01.2008
    Адрес
    Россия, Псков
    Сообщений
    542
    Вес репутации
    8

    По умолчанию Re: перемещение строк в матрице.Паскаль

    Допустим, нужно поменять местами строки X и Y.
    Тогда создаем переменную, представляющую собой одномерный массив, по размеру равный размеру строки исходного массива. Дальше копируем поэлементно строку X в переменную, затем - строку Y в строку X, затем переменную в строку Y. При этом можно применить стандартный алгоритм сортировки обменом.
    Ни что так не ограничивает фантазию программиста, как компилятор...

  4. #3
    groth88 is on a distinguished road
    Регистрация
    15.04.2008
    Сообщений
    4
    Вес репутации
    0

    По умолчанию Re: перемещение строк в матрице.Паскаль

    О,точно...Спасибо огромное =)

    "При этом можно применить стандартный алгоритм сортировки обменом." - вот эту фразу не понял...Ибо не знаю что это за алгоритм

    А ещё вопрос,мне минимальный элемент строки сравнивать с минимальными элемнтами всех строк или только с мин. элементом предыдущей строки???
    Наверно со всеми??

  5. #4
    Moderator Куратор
    system architect
    MOTOCoder is on a distinguished road
    Регистрация
    14.01.2008
    Адрес
    Россия, Псков
    Сообщений
    542
    Вес репутации
    8

    По умолчанию Re: перемещение строк в матрице.Паскаль

    Вообще вот процедура сортировки, думаю разберетесь, что к чему:
    Код delphi:
    procedure Sort;
    begin
     for i:=N downto 1 do
      for j:=2 to i do
      begin
       k:=A[j-1];
       if K>A[j] then
       begin
        A[j-1]:=A[j];
        A[j]:=k;
       end;
      end;
    end;
    Ни что так не ограничивает фантазию программиста, как компилятор...

  6. #5
    groth88 is on a distinguished road
    Регистрация
    15.04.2008
    Сообщений
    4
    Вес репутации
    0

    По умолчанию Re: перемещение строк в матрице.Паскаль

    Вроде бы разобрался...

    Спасибо большое за помощь =)

  7. #6
    groth88 is on a distinguished road
    Регистрация
    15.04.2008
    Сообщений
    4
    Вес репутации
    0

    По умолчанию Re: перемещение строк в матрице.Паскаль


    begin {формирование одномерного массива из минимальных элементов}
    for i:=1 to m do
    begin
    min:=a[i,1];
    begin
    for j:=1 to n do
    begin
    if a[i,j]<=min then min:=a[i,j];
    b[i]:=min;
    end;
    end;
    end;
    end;

    begin {перестановка строк согласно одномерному массиву}
    for i:=m downto 1 do
    for k:=2 to i do
    begin
    if b[k]>b[k-1] then
    begin
    for j:=1 to n do
    begin
    c[k]:=a[k,j];
    a[k,j]:=a[k-1,j];
    a[k-1,j]:=c[k];
    end;
    end;
    end;

    одномерный массив вроде правильно формирует,а вот перестановка строк работает неправильно...Почему не пойму

    вот начало и конец проги,если вдруг понадобится
    program z10;
    uses crt;
    const m=8;
    n=9;
    var a: array [1..m,1..n] of real;
    i,k,j:integer;
    min:real;
    b: array [1..m] of real;
    c: array [1..n] of real;
    begin randomize;
    clrscr;
    for i:=1 to m do
    begin
    for j:=1 to n do
    begin
    a[i,j]:=random(10)+1;
    write(' ',a[i,j]:3:0);
    end;
    writeln;
    end;

    begin
    writeln;
    end;

    ............................................

    begin
    for i:=1 to m do
    begin
    for j:=1 to n do
    begin
    write(' ',a[i,j]:3:0);
    end;
    writeln;
    end;
    end;
    end;
    readkey;
    end.

+ Ответить в теме

Похожие темы

  1. [C++] Сравнить элементы массива в непрямоугольной матрице
    Задание такое: Из входного потока вводится непрямоугольная матрица целых чисел , i=1, ...m, j=1, ...n, ni. Значения m и n заранее не известны и...
    от mozg в разделе задачи на C и C++
  2. Сортировка строк(Паскаль)
    Вводится массив строк содержащий названия(фамилии) на русском требуется вывести его на экран в алфавитном порядке.Подскажите как это сделать.
    от gluik в разделе задачи на Паскале и Delphi
  3. помогите решить задачу по матрице!
    дана матрица 3*3.написать программу которая будет считать элементы побочной диагоналиюзараннее благодарю!
    от DEWER в разделе Решите мне задачку
  4. Поиск наименьшего пути в матрице...
    Очень требуется помощь в решении задачки... В двумерном массиве A(n,m), заполненным числами от 0 до 50, найти кратчайший путь от A(1,1) до A(n,m),...
    от Master_of_puppetS в разделе Решите мне задачку

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения