conts n=5
a:array[1..n,1..n] of integer;
t:integer;
....
for i:=1 to (n div 2) do
begin
t:=a[i,i];
a[i,i]:=a[n-i+1,n-i+1];
a[n-i+1,n-i+1]:=t;
end;
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
подпрограммы |
viv |
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
Помогите пожалуйста разобраться с задачей. Условие такое: в обеих матрицах а(3х3) и b(5х5) порядок следования элементов главной диагонали поменять на обратный. У меня получилось примерно так:
Код conts n=5 a:array[1..n,1..n] of integer; t:integer; .... for i:=1 to (n div 2) do begin t:=a[i,i]; a[i,i]:=a[n-i+1,n-i+1]; a[n-i+1,n-i+1]:=t; end; |
Altair |
Сообщение
#2
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Код const n=5; var a:array[1..n,1..n] of integer; b:array[1..n] of integer; begin for i:=1 to n do b[i]:=a[i,i]; {сохраняем диагональ} for i:=1 to n do a[i,i]:=b[6-n]; {пишем сохраненную диагональ в обратном порядке} end. Код не проверял! Я предлагаю следующий метод: сохраняем главную диагональ (а эл-ты гл. диаг. имеют одинаковый индекс i и j) потом записываем в обратном порядке. Не слишком хорошо в плане использования памяти, но зато просто. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Текстовая версия | 27.04.2024 23:24 |