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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2014, 23:16   #1
Ruqeyye
Пользователь
 
Регистрация: 08.01.2014
Сообщений: 14
По умолчанию Перестановку столбцов заменить на перестановку строк.

Помогите поменять код так, чтобы вместо столбцов поменялись местами строки. У меня что-то не получается. Буду очень благодарна за помощь(.

Вот как звучит задача:

Цитата:
Дана целочисленная матрица размера 6х9. Получить новую матрицу, получающуюся из данной перестановкой строк –
первой и последней, второй с предпоследней и т.д.;

Код:
const
  m = 6;
  n = 9;

var
  a: array[1..m, 1..n] of integer;
  i, j: byte;
  x: integer;

begin
  
  randomize;
  writeln('Исходная матрица:');
  for i := 1 to m do
  begin
    for j := 1 to n do
    begin
      a[i, j] := random(20);
      write(a[i, j]:4);
    end;
    writeln;
  end;
  for j := 1 to n div 2 do
    for i := 1 to m do
    begin
      x := a[i, j];
      a[i, j] := a[i, n - j + 1];
      a[i, n - j + 1] := x
    end;
  writeln('Перестановка столбцов:');
  for i := 1 to m do
  begin
    for j := 1 to n do
      write(a[i, j]:4);
  end;
end.
Ruqeyye вне форума Ответить с цитированием
Старый 03.02.2014, 23:42   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так устроит?

Код:
const
  m = 6;
  n = 9;

var
  a: array[1..m, 1..n] of integer;
  i, j: byte;
  x: integer;

begin
  
  randomize;
  writeln('Исходная матрица:');
  for i := 1 to m do
  begin
    for j := 1 to n do
    begin
      a[i, j] := random(20);
      write(a[i, j]:4);
    end;
    writeln;
  end;
  for i := 1 to m div 2 do
    for j := 1 to n do
    begin
      x := a[i, j];
      a[i, j] := a[m - i + 1,j];
      a[m - i + 1,j] := x
    end;
  writeln('После перестановки строк:');
  for i := 1 to m do
  begin
    for j := 1 to n do
      write(a[i, j]:4);
    WriteLn
  end;
  Readln
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.02.2014, 23:47   #3
Ruqeyye
Пользователь
 
Регистрация: 08.01.2014
Сообщений: 14
По умолчанию

Спасибо огромное!) Очень благодарна
Ruqeyye вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для матрицы из 3 столбцов и 7 строк отпечатать номера тех строк, в которых третий элемент больше суммы двух других элементов строк abramov Помощь студентам 2 03.12.2013 10:15
Выполнить перестановку в массиве так, чтобы сначала были записаны подряд пять первых положительных элементов массива Hrustik Общие вопросы C/C++ 6 18.06.2013 20:52
Задача на циклическую перестановку символов Shadowalker Паскаль, Turbo Pascal, PascalABC.NET 12 16.03.2013 11:18
как сделать перестановку слов в веденном предложении не повторяя одинаковые перестановки luybeznov Помощь студентам 3 22.05.2012 00:28
Даны 2-е матрицы размерностью 40,40. Выполнить перестановку первой и последней строки. V1rus.25 Паскаль, Turbo Pascal, PascalABC.NET 9 22.04.2012 11:06