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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2011, 00:36   #1
OPEJI
Пользователь
 
Регистрация: 01.04.2011
Сообщений: 13
По умолчанию Задача на двумерный массив в паскале

Здравствуйте, нужна помощь, не знаю что дальше писать.
Текст задания: В массиве 6х8 вещественного типа расставить столбцы в порядке возрастания суммы элементов в них.
Вот то что я смог надумать
Код:
uses crt;
var
m:array [1..6,1..8] of real;
s:array [1..8] of real;
i,j:integer;
begin
randomize;
 for i:=1 to 6 do
  for j:=1 to 8 do
   m[i,j]:=random(99)+1;
for i:=1 to 6 do
 begin
  for j:=1 to 8 do
  write(m[i,j]:5:0);
  writeln;
 end;
writeln('----------------------------------');
 for j := 1 to 8 do begin
   for i := 1 to 6 do begin
     s[j] := s[j] + m[i,j];
end;
write('  ',s[j]);
end;
Я думаю надо как-то начать переставлять столбцы по возрастанию, но не знаю как это написать...
OPEJI вне форума Ответить с цитированием
Старый 26.05.2011, 21:14   #2
OPEJI
Пользователь
 
Регистрация: 01.04.2011
Сообщений: 13
По умолчанию

Вот что-то намудрил... сделал сортировку массива с суммами, как бы сделал сортировку столбцов, но криво работает(странно что иногда выдаёт правильный результат), помогите пожалуйста
Код:
uses crt;
var
m,a:array [1..6,1..8] of real;
s,s1:array [1..8] of real;
i,j,k:integer;
z,x:real;
begin
randomize;
 for i:=1 to 6 do
  for j:=1 to 8 do
   m[i,j]:=random(99)+1;
for i:=1 to 6 do
 begin
  for j:=1 to 8 do
  write(m[i,j]:5:0);
  writeln;
 end;
writeln('----------------------------------------');
 for j := 1 to 8 do begin
        for i := 1 to 6 do
            s[j] := s[j] + m[i,j];
write('  ',s[j]);
end;
s1:=s;
writeln;
for j:=1 to 8-1 do
      for i:=1 to 8-j do
         if S1[i] > S1[i+1] then
         begin
            z:=s1[i];
            s1[i]:=s1[i+1];
            s1[i+1]:=z;
            end;
for j := 1 to 8 do begin
write('  ',s1[j]);
end;
writeln;
writeln('----------------------------------------');
a:=m;
for i:=1 to 8 do
  for j:=i+1 to 8 do
   if s[i]=s1[j] then
     for k:=1 to 6 do begin
       x:=a[k,i];
       a[k,i]:=a[k,j];
      a[k,j]:=x;
      end;
for k:=1 to 6 do
 begin
  for j:=1 to 8 do
  write(a[k,j]:5:0);
  writeln;
 end;
end.
OPEJI вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача в Турбо Паскале на двумерный массив sasha55 Помощь студентам 20 15.05.2011 10:06
Двумерный массив на паскале Metal593 Помощь студентам 2 16.04.2010 23:35
Двумерный массив на Паскале ГлавБухОЙ Помощь студентам 0 18.12.2009 19:24
Двумерный массив в паскале makc101 Помощь студентам 3 30.11.2009 08:49