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

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

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

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


Новичок
*

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

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


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

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

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

Сообщение отредактировано: irena - 20.10.2004 20:02
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 20.10.2004 21:13
Сообщение #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.


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

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


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

 



- Текстовая версия 28.07.2025 12:37
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"