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

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

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

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





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

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


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

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





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

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


Ну это вроде работает...

Program zr4;
const
n = 3;
Var
mas: array[1..n,1..n] of integer;
i,j : integer;
max1, max2 : integer;
Begin
max1 := 0;
max2 := 0;
for i := 1 to n do
for j := 1 to n do
begin
Readln(mas[i,j]);
max1 := mas[1,1];
end;
for i := 1 to n do
begin
if max1 < mas[i,i] then
max1 := mas[i,i];
end;
max2 := mas[1,3];
for i := 1 to n do
if max2 < mas[i,n+1-i] then
max2 := mas[i,n+1-i];
Writeln('max на главной = ', max1, ' max на побочной = ', max2);
end.


как менять столбцы с строками местами тоже вроде рассказали, да и найти несложно, однако как узнать координаты максимального и минимального елемнтов?


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(NightKroT @ 29.11.2007 2:26) *

однако как узнать координаты максимального и минимального елемнтов?

Для поиска max/min элементов используется довольно стандартная конструкция. Заводишь переменную для искомого значения, присваиваешь ей значение первого элемента, а потом проходишь по всему нужному множеству и сравниваешь. Если что-то встретилось большее/меньшее, то кладешь в нее и запоминаешь индекс.
Вот, например, поиск максимума на главной диагонали в массиве a:
ax:=a[1,1];
ix:=1;
for i:=2 to n do if a[i,i]>ax then begin
ax:=a[i,i];
ix:=i
end;

После этого само значение максимума лежит в ax, а его индекс в ix.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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