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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2010, 11:24   #1
foxzibit123
Новичок
Джуниор
 
Регистрация: 20.07.2010
Сообщений: 2
По умолчанию Задача на массив

Дан двумерный массив n на n , нужно поменять местами диагональные элементы (например 1234 на 4321)
Пожалуйста помогите с массивами не очень разбираюсь(
foxzibit123 вне форума Ответить с цитированием
Старый 20.07.2010, 11:36   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Например, вот так можно:
Код:
for i:=1 to (n div 2) do
  begin
    j:=n-(i-1);
    a[i,i]:=a[i,i]+a[j,j];
    a[j,j]:=a[i,i]-a[j,j];
    a[i,i]:=a[i,i]-a[j,j]
  end;
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 21.07.2010, 19:21   #3
VektorAB
Пользователь
 
Регистрация: 13.05.2010
Сообщений: 29
По умолчанию

по главной или по побочной?
"Сегодня, в завтрашний день не все могут смотреть, вернее не только лишь все, мало кто может это сделать"
VektorAB вне форума Ответить с цитированием
Старый 21.07.2010, 20:18   #4
foxzibit123
Новичок
Джуниор
 
Регистрация: 20.07.2010
Сообщений: 2
По умолчанию

И по главной и по побочной.
foxzibit123 вне форума Ответить с цитированием
Старый 25.07.2010, 21:16   #5
VektorAB
Пользователь
 
Регистрация: 13.05.2010
Сообщений: 29
По умолчанию

Вот по главной. По побочной сами додумайте.

Код:
uses crt;
var
n,i,j:byte;
a:array[1..10,1..10] of integer;
begin
clrscr;
Write('Введите размерность матрицы(max=10): ');
Read(n);
Write('Массив до преобразования: ');
for i:=1 to n do
    begin
    Writeln;
            for j:=1 to n do
                begin
                     a[i,j]:=random(100)-50;
                     Write(a[i,j]:5)
                end
    end;
for i:=1 to n div 2 do
    begin
         a[i,i]:=a[i,i]+a[n-i+1,n-i+1];
         a[n-i+1,n-i+1]:=a[i,i]-a[n-i+1,n-i+1];
         a[i,i]:=a[i,i]-a[n-i+1,n-i+1]
    end;
Writeln;
Write('Массив до преобразования: ');
for i:=1 to n do
    begin
    Writeln;
            for j:=1 to n do
                     Write(a[i,j]:5)
    end;
readkey
end.
"Сегодня, в завтрашний день не все могут смотреть, вернее не только лишь все, мало кто может это сделать"
VektorAB вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на массив. spankyham Помощь студентам 6 15.04.2009 16:41
задача на массив Яша Помощь студентам 11 09.04.2009 18:47
Задача на массив KARUSHEV Помощь студентам 1 02.04.2009 09:42
задача на массив Яша Помощь студентам 3 31.03.2009 14:39
Задача. Массив. ViNcHeStEr Помощь студентам 2 15.06.2008 15:17