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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2011, 21:14   #1
giv93
Пользователь
 
Регистрация: 09.10.2011
Сообщений: 13
По умолчанию Pascal

Программа: Задана матрица NxM, где 1<n. Упорядочить элементы каждого нечетного столбца по убыванию, четного - по возрастанию.

Что изменить в коде чтобы элементы упорядочит не по столбцах а по строках?


Код:
program PascalGuru;
uses crt;
var A:array[1..100,1..100] of integer; {переменная массива}
    i,j,m,n:integer; {переменные для циклов}
    B:array[1..100] of integer;  {переменная массива}
    mm,ii:integer;
    swop:boolean;
    
{***sort***}
procedure exchange(var a,b:integer); {процедура обмена переменных }
var c:integer;
begin
c:=a; a:=b; b:=c; end; {конец процедуры обмена переменных }

{--------------------------------------------}
begin
write('M= '); readln (m); {считываем размер массива}
write('N= '); readln (n); {считываем размер массива}

writeln ('Vvedite elementy massiva A (>10): ');
for i:=1 to m do
for j:=1 to n do begin
write ('A[',i,',',j,']='); readln (A[i,j]); end; {считываем элементы массива}

clrscr;
write ('Vot vvedennyi vami massiv A: ');
for i:=1 to m do begin writeln;
for j:=1 to n do write (A[i,j]:4,' '); end;  {выводим массив на экран}


for j:=1 to n do  {проходим по всем столбцам}
begin
    mm:=m; {задаём размер столбца временной переменной}
    repeat {---начало сортировки}
    swop:=false;
    for i:=1 to mm-1 do
    if odd(j) then {если столбец нечётный}
               begin
                   if A[i,j]<A[i+1,j] then  {сортируем по убыванию}
                      begin
                      exchange(A[i,j],A[i+1,j]);
                      swop:=true;
                      end;
               end
              else  {если столбец чётный}
               begin
                    if A[i,j]>A[i+1,j] then {сортируем по возрастанию}
                      begin
                      exchange(A[i,j],A[i+1,j]);
                      swop:=true;
                      end;
               end;
    mm:=mm-1;
    until not swop; {***конец сортировки}
end;

writeln;writeln;
write ('Vot otsortirovannyi massiv A: ');
for i:=1 to m do begin writeln;
for j:=1 to n do write (A[i,j]:4,' '); end;  {выводим массив}



readln;
end.

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 26.11.2011 в 09:33.
giv93 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неудобство ABC Pascal и глюк Borland Pascal proser93 Помощь студентам 0 19.11.2011 19:01
Turbo Pascal и Free Pascal , в чем разница? antoxann Паскаль, Turbo Pascal, PascalABC.NET 31 09.11.2011 07:52
а free pascal не читает задачи которые написаны на turbo pascal? demonara Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 16:28
Перевод кода из Pascal в Object Pascal zemskov77 Общие вопросы Delphi 1 03.01.2009 09:37