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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2012, 16:56   #1
КРИЖ
Пользователь
 
Регистрация: 08.03.2011
Сообщений: 44
По умолчанию перестановка столбцов матрицы по убыванию их элементной суммы(Pascal ABS)

помогите пожалуйста.
Написал код. Для перестановки столбцов по сумме их элементов, в убывающем порядке. При выводе выходит исходная матрица (если они и так расположенны в убывании) или матрица с двумя первыми столбцами,у которых элементы равны 0.Но 3 столбец переставлен
Код:
program qwert;
uses crt;
var a:array [1..3,1..3] of real;
    z:array [1..3] of real; //ячейка данного массива соответстувет сумме элементов в столбце
    b:array [1..3] of real; // ячейка для хранения столбца (для перестановки)
    sum:real;
    i,j,k:integer;
begin
randomize;
sum:=0;
for k:=1 to 3 do
                begin
                z[k]:=0
                end;
for i:=1 to 3 do
                begin
                for j:=1 to 3 do
                                begin
                                a[i,j]:=random(10)
                                end
                end;
for i:=1 to 3 do
                begin
                for j:=1 to 3 do
                                begin
                                write(a[i,j],' ')   //вывод матрицы заполненой случайными числами
                                end;
                writeln
                end;
writeln;
for j:=1 to 3 do
                    begin
                    for i:=1 to 3 do
                                  begin
                                  sum:=sum+a[i,j]
                                  end;
                    z[j]:=sum;
                    sum:=0;
                    end;
for i:=1 to 3 do
               begin
               write('сумма',' ',i,' ','столбца=',z[i],' ') // вывод суммы столбцов
               end;
writeln;
for k:=1 to 3 do
                begin
                     for j:=2 downto k do
                                         begin
                                         if z[j]<z[j+1] then
                                                            begin
                                                            for i:=3 downto 1 do begin
                                                                                  a[i,j+1]:=b[i];   // присваение значений столбца к строке
                                                                                  a[i,j+1]:=a[i,j]; //присвоение значений j столбца к j+1 столбцу
                                                                                  a[i,j]:=b[i]      // присвоение к j столбцу заначения j+1 столбца
                                                                                  end
                                                            end
                                         end
                end;
writeln;
for i:=1 to 3 do
                begin
                for j:=1 to 3 do
                              begin
                              write(a[i,j],' ')
                              end;
                writeln
                end
end.

Последний раз редактировалось Serge_Bliznykov; 28.05.2012 в 14:27.
КРИЖ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перестановка столбцов матрицы по заданному ключу Pretty_girl_666 Помощь студентам 9 17.08.2011 00:31
перестановка четных и нечетных столбцов матрицы Lowjedy Помощь студентам 1 10.05.2011 18:12
[ C/C++ ] Перестановка строк и столбцов zord Помощь студентам 2 18.11.2009 12:20
Перестановка столбцов bagfinder Паскаль, Turbo Pascal, PascalABC.NET 1 25.06.2009 19:28
Перестановка столбцов матрицы и строки. MaGWaY_minsk Помощь студентам 3 06.02.2009 00:55