![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
viv |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите пожалуйста разобраться с задачей. Условие такое: в обеих матрицах а(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 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Код 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) потом записываем в обратном порядке. Не слишком хорошо в плане использования памяти, но зато просто. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
trminator |
![]()
Сообщение
#3
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
Можно еще это попробовать. Должно для любого n работать (проверял на паре тестов, вроде
![]() ![]() Код const n = 5; var a : array[1..n, 1..n] of byte; i, j : byte; { Процедура меняет местами два элемента } procedure exch(var l, m : byte); var t : byte; begin t := l; l := m; m := t end; begin { Ввод } for i := 1 to n do for j := 1 to n do read(a[i,j]); { Обработка } for i := 1 to n div 2 do exch(a[i,i], a[n-i+1, n-i+1]); { Вывод } for i := 1 to n do begin for j := 1 to n do write(a[i,j]:4); writeLn; end; end. Цитата Не понял, при чем тут подпрограммы Я тоже! Сообщение отредактировано: Oleg_Z - 5.10.2004 16:05 -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
viv |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Так по условию задачи даны две матрицы а(3х3) и b(5x5). Нужно проделать операции обмена с этими двумя матрицами. Я понимаю так, что пользователю предлагатеся ввести снача матрицу а, потом - b. В результате должно быть тоже две матрицы а и b. Вот например код для матрицы а.
Код Program matrica; const n=3; var a:array[1..n,1..n] of integer; b:array[1..n] of integer; i,j,t:integer; begin Writeln('Vvedite matr a:'); for i:=1 to n do begin for j:=1 to n do Readln(a[i,j]); end; WriteLn('Isxod massiv'); for i:=1 to n do begin for j:=1 to n do Write(a[i,j]:3); WriteLn; end; begin 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; WriteLn('Poluch massiv'); For i:=1 to n do begin for j:=1 to n do Write(a[i,j]:3); WriteLn; end; end; end. Как в программе сделать одновременно ввод, вывод, операцию обмена двух матриц? Я думаю, что нужно использовать процедуры и функции. Пожалуйста подскажите. |
Altair |
![]()
Сообщение
#5
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата Как в программе сделать одновременно ввод, вывод, операцию обмена двух матриц? ОДНОВРЕМЕННО??? Для этого как минимумнеолбходим многопроцессорный компьютер ![]() Или псевдомультизадачность. Что значит одновременно? Уточните! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
GoodWind |
![]()
Сообщение
#6
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Цитата Что значит одновременно? скорее всего просто в одной подпрограмме -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
![]() ![]() |
![]() |
Текстовая версия | 30.07.2025 4:26 |