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

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

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

> Задача с матрицей
NightKroT
сообщение 28.11.2007 21:40
Сообщение #1





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

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


Здравствуйте! Учился я учился(нифига не делал тоесть), и вдруг оказалось что через неделю здавать програмирование(типа курсача тока за полгода). Ну это предыстория
Дана квадратная матрица, нужно найти максимальный элемент на главной диагонали, и минимальный на побочной(или как её там). Потом поменять местами сторчи и столбцы на которых они стоят. Найти макс/мин я то вроде могу, а вот поменять как? Подскажите кто может.
ЗЫ: Смеяться не надо.
ЗЫЫ: Если решение где-то есть на сайте, то тоже просьба не пинать, я только зарегился, а сроки ой как поджимают(до пятницы)

Сообщение отредактировано: NightKroT - 28.11.2007 21:42
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 29.11.2007 17:46
Сообщение #2


Гость






Не надо пытаться сделать все и сразу, разделяй задачу на подзадачи...

Смотри:

const n = 3;
var
mas: array[1..n,1..n] of integer;
i, j, ix_max, ix_min: integer;
x: integer;
Begin
{ Шаг №1 - вводим матрицу (я сделал генерацию случ. числами) }
for i := 1 to n do
for j := 1 to n do
{ Readln(mas[i,j]); }
mas[i, j] := random(10);

{ шаг №2 - распечатываем ее - для проверки правильности }
for i := 1 to n do begin
for j := 1 to n do
Write(mas[i,j]:4);
writeln;
end;

{ теперь устанавливаем индексы экстремумов в 1-цы }
ix_max := 1;
ix_min := 1;

{ А теперь проходим по... }
for i := 1 to n do begin
{ ... главной диагонали в поисках максимума }
if mas[ix_max, ix_max] < mas[i, i] then ix_max := i;

{ ... и побочной - в поисках минимума }
if mas[ix_min, n - ix_min + 1] > mas[i, i] then ix_min := i;
end;

{ полученные результаты распечатываем }
writeln('max na glavnou= ', mas[ix_max, ix_max],
'; max glavnoi lejit na koord ', ix_max,',',ix_max);
writeln('min na pobochnoi= ', mas[ix_min, n - ix_min + 1],
'; min na pobochnoi lejit na koord ', ix_min,',',n - ix_min + 1);

{ меняем местами сначала строки, где находятся минимум и максимум }
for i := 1 to n do begin
x := mas[ix_min, i]; mas[ix_min, i] := mas[ix_max, i]; mas[ix_max, i] := x;
end;

{ потом - столбцы, соответственно }
for i := 1 to n do begin
x := mas[i, n - ix_min + 1]; mas[i, n - ix_min + 1] := mas[i, ix_max]; mas[i, ix_max] := x;
end;

{ Ну, и проверяем }
for i := 1 to n do begin
for j := 1 to n do
Write(mas[i,j]:4);
writeln;
end;

end.



Сообщение отредактировано: volvo - 29.11.2007 17:47
 К началу страницы 
+ Ответить 

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


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

 



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