IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Преобразование матрицы, Сложная задача
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский

Репутация: -  0  +


Я еще плохо разбираюсь в массивах и у меня не получается решить эту задачу, помогите пожалуйста.

Назовем допустимым преобразованием матрицы смещение строк матрицы на одну снизу вверх и столбцов на один справа налево, при этом первая строка опускается вниз, а первый столбец становится последним. Дана действительная квадратная матрица порядка n. С помощью допустимых преобразований добиться того, чтобы элемент матрицы, обладающий наименьшим значением, располагался в левом верхнем углу матрицы.

Заранее благодарна

Сообщение отредактировано: irena -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






const
 n = 5;
 maxValue = 150000.0;

 { С этой матрицей я тестировал программу
 matrix: array[1 .. n, 1 .. n] Of real =
   ((3, 5, 8, 2, 9),
    (2, 7, 9, 1, 4),
    (5, 3, 8, 6, 8),
    (7, 4, 6, 9, 2),
    (5, 2, 7, 8, 4));
 }

var
 matrix: array[1 .. n, 1 .. n] Of real;
 min: real;
 iRow, iColumn: Integer;
 count_col, count_row: Integer;

{ Процедура сдвигает матрицу вниз }
procedure moveRow;
 var
   i, j: integer;
   T: real;
 begin
   for i := 1 to n do
     begin
       T := matrix[1, i];
       for j := 2 to n do
         matrix[j - 1, i] := matrix[j, i];
       matrix[n, i] := T;
     end;
 end;

{ Процедура сдвигает матрицу влево }
procedure moveColumn;
 var
   i, j: integer;
   T: real;
 begin
   for i := 1 to n do
     begin
       T := matrix[i, 1];
       for j := 2 to n do
         matrix[i, j - 1] := matrix[i, j];
       matrix[i, n] := T;
     end;
 end;

begin
 writeln( 'Введите матрицу (построчно):' );
 for iRow := 1 to n do
   begin
   WriteLn( 'Строка #', iRow );
   for iColumn := 1 To n do
     begin
       write( 'matrix[', iRow, ',', iColumn, '] =' );
       readln(matrix[iRow, iColumn])
     End;
   writeln;
   end;

 { Находим минимальное значение в матрице ... }
 min := maxValue;
 for iRow := 1 to n do
   for iColumn := 1 To n do
     if min > matrix[iRow, iColumn] then
       begin
         min := matrix[iRow, iColumn];
         { ... и запоминаем его позицию }
         count_row := iRow;
         count_col := iColumn
       end;

 { распечатываем исходную матрицу }
 for iRow := 1 to n do
   begin
   for iColumn := 1 To n do
     write( matrix[iRow, iColumn]:5:2 );
   writeln;
   end;

 WriteLn;

 { сдвигаем нужное число раз }
 {(вниз)}
 for iRow := 1 to Pred(count_row) Do moveRow;
 {(влево)}
 for iColumn := 1 to Pred(count_col) Do moveColumn;

 { распечатываем полученную матрицу }
 for iRow := 1 to n do
   begin
   for iColumn := 1 To n do
     write( matrix[iRow, iColumn]:5:2 );
   writeln;
   end;
end.


Все работает...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


А чё нужно поменять чтоб максимальный элемент был в верхнем левом углу а не минимальный?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
irena   Преобразование матрицы   20.10.2004 23:55
volvo   irena Уточнение: допустимая операция делает эти …   21.10.2004 0:12
irena   volvo по отдельности   21.10.2004 0:29
volvo   const  n = 5;  maxValue = 150000.0;  { С этой …   21.10.2004 1:13
loko   А чё нужно поменять чтоб максимальный элемент был …   8.05.2006 17:48
irena   Здорово! Только не понятно что такое Pred(coun…   21.10.2004 4:31
volvo   это получить предыдущее значение ( = count_row - …   21.10.2004 4:36
volvo   Я сделал для 10-ти элементов ... измени n на 100 и…   21.10.2004 4:53
volvo   Вот тут: { Находим минимальное значение в матрице…   8.05.2006 17:55
loko   Нужно находить не минимальное значение, а максимал…   8.05.2006 18:53
volvo   Да что ты говоришь? До какой же степени нужно …   8.05.2006 19:06
loko   вот ещё один последний вопрос по этой программе. Е…   8.05.2006 19:35
loko   Пожалуйста посмотрите что у меня в коде программы …   9.05.2006 13:47
Malice   Пожалуйста посмотрите что у меня в коде программы…   9.05.2006 17:23


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.04.2024 19:10
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name