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

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

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

> Очень сложная задача на двухмерный массив (или матрицу?)
MAD-GTX
сообщение 19.02.2007 16:54
Сообщение #1


Новичок
*

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

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


Помогите пожалуйста с этой задачей если возможно сегодня(завтра у меня ПРЗ), в массивах не шарю совсем!

Дана матрица размером n X m. Переставляя её строки и столбцы,добиться того,чтобы наибольший элемент(или один из них) оказался в верхнем левом углу.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
MAD-GTX
сообщение 19.02.2007 17:59
Сообщение #2


Новичок
*

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

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


Спасибо за линк!Прочитал,но меня терзают смутные сомненья!
Если не трудно,ответьте удовлетворяет ли данный текст программы моей задаче?

const
n = 3;
m = 2;
maxValue = 150000.0;

var
matrix: array[1 .. n, 1 .. m] 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 m do
begin
T := matrix[i, 1];
for j := 2 to m do
matrix[i, j - 1] := matrix[i, j];
matrix[i, m] := T;
end;
end;

begin
writeln( 'Введите матрицу (построчно):' );
for iRow := 1 to n do
begin
WriteLn( 'Строка #', iRow );
for iColumn := 1 To m 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 m 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 m 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 m do
write( matrix[iRow, iColumn]:5:2 );
writeln;
end;
end.

.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Тёмный Эльф
сообщение 23.02.2007 21:18
Сообщение #3


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

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


а ты ее протестируй..и узнаешь, удовлетворяет она условию задачи или нет.....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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