Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2007, 19:25   #1
евгения,
Пользователь
 
Регистрация: 25.05.2007
Сообщений: 13
Плохо матрица подскажите

Дана действительная квадратная матрица порядка 2n. Получить новую матриц, переставляя её блоки размера n*n по диагонали слева на право. пример
1-2 должно получиться 4-2
3-4 3-1
у меня в программе меняет все блоки . как исправить ошибку.
Program MATRISA;
const n=4;
var
i,j : integer;
A, B : ARRAY [1..2*n, 1..2*n] of integer;
Begin
writeln('matrica A');
for i:=1 to 2*n do
for i:=1 to 2*n do Begin
write ('A(',i,', ',j,')=');
read (A[i,j]);
end;

for i:=1 to 2*n do
for j:=1 to 2*n do
B[(i+n - 1) mod (2*n) + 1, (j+n - 1) mod (2*n) + 1] := A[i,j];

writeln('matrica B');
for i:=1 to 2*n do begin
for j:=1 to 2*n do
write(B[i,j]);
writeln;
end;
end.

евгения, вне форума Ответить с цитированием
Старый 06.06.2007, 08:38   #2
Трофимов Александр
Форумчанин
 
Аватар для Трофимов Александр
 
Регистрация: 03.11.2006
Сообщений: 321
По умолчанию

Попробуй заменить блок :
for i:=1 to 2*n do
for j:=1 to 2*n do
B[(i+n - 1) mod (2*n) + 1, (j+n - 1) mod (2*n) + 1] := A[i,j];
на:
for i:=1 to n do
for j:=1 to n do
begin
B[n+i,n+j]:=A[i,j];//в 4-й записываем 1
B[i,j]:=A[n+i,n+j];//в 1-й записываем 4
B[n+i,j]:=A[n+i,j];//в 3-й записываем 3
B[i,n+j]:=A[i,n+j];//в 2-й записываем 2-й
end;
Трофимов Александр вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
матрица {C++} Влдислаав3911 Помощь студентам 1 28.05.2008 02:36
Матрица Droid Общие вопросы Delphi 7 06.05.2008 20:14
матрица евгения, Помощь студентам 3 04.06.2007 20:31
матрица m4tr1x2222 Общие вопросы C/C++ 3 16.05.2007 08:07