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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2012, 12:46   #1
Grizzz
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию обработать двумерный массив

я встретился с проблемой сортировки вот задание:
Элементы столбца с минимальной суммой расположить в обратном порядке. вот код :
Код:
uses crt;
const n=8;
m=9;
type matr= array [1..m,1..m] of real;
procedure obmen(var a,b:real); {обмен элементов}
    var tmp:real;
        begin
          tmp:=a;
          a:=b;
          b:=tmp;
        end;
Var a:matr;
    i,j,k:integer;
    sum1,sum2,sum3,min:real;
Begin
clrscr;
randomize;
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(19)-9;
   end;
  end;
for k:=1 to n*n do
for j:=1 to n do
for i:=1 to n do
 begin
  if (i<>n)and (a[i,j]>a[i+1,j]) then obmen(a[i,j],a[i+1,j])
     else
  if (j<>n)and(a[n,j]>a[1,j+1]) then obmen(a[n,j],a[1,j+1]);
 end;
 
 
                     {нахождение сумм}
                     
                     
for i:=1 to n do {сумма строк}
    for j:=1 to m do
        begin
        a[i,m]:=0;
        sum1:=a[i,1]+a[i,2]+a[i,3]+a[i,4]+a[i,5]+a[i,6]+a[i,7]+a[i,8];
        a[i,m]:=sum1;
        end;
for i:=1 to n do {сумма столбцов}
    for j:=1 to m do
        begin
        a[m,j]:=0;
        sum2:=a[1,j]+a[2,j]+a[3,j]+a[4,j]+a[5,j]+a[6,j]+a[7,j]+a[8,j];
        a[m,j]:=sum2;
        end;
for i:=1 to n do {общая сумма}
    for j:=1 to m do
        begin
        a[m,j]:=0;
        sum3:=a[1,j]+a[2,j]+a[3,j]+a[4,j]+a[5,j]+a[6,j]+a[7,j]+a[8,j];
        a[m,j]:=sum3;
        end;
 
for i:=1 to m do {вывод матрицы }
 begin
  for j:=1 to m do
  write(a[i,j]:6:2);
  writeln;
  writeln;
 end;
 
              {форматирование матрицы}
 
 for i:=1 to m do
     begin
          for j:=1 to m do
          begin
               min:=a[m,j];
               if a[m,j+1]<min then min:=a[m,j+1];
               if a[m,j]=min then
                   begin
                       for i:=1 to n do
                            for j:=1 to n do
                              obmen(a[i,j],a[n-i+1,j])
 
                   end;
     end;
     end;
for i:=1 to m do {вывод матрицы}
 begin
  for j:=1 to m do
  write(a[i,j]:6:2);
  writeln;
  writeln;
 end;
 
readln;
End.
у меня прога выводит только массив который "змейкой" и суммы. А Столбец с мин суммой не форматирует

Последний раз редактировалось Stilet; 05.11.2012 в 15:06.
Grizzz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработать массив чисел (stringgrid) в Delphi resultat Помощь студентам 2 29.03.2012 08:16
как обработать двумерный массив из файла _LEX_ Помощь студентам 6 02.01.2012 18:56
Как Быстро Обработать Массив? loh Общие вопросы C/C++ 7 24.12.2011 01:10
Две лабы: файл - обработать слова; массив - найти три наибольших элемента за один проход ( Delphi ) Emma_Imp Помощь студентам 5 26.12.2010 21:13
Помогите с решением, нужно обработать массив stare1983 Microsoft Office Excel 2 25.02.2009 21:06