Другие языки программирования и технологии

Помогите с задачей на Pascal.

Требуется найти сумму всех диагоналей параллельных главной, матрицы 5х5, и найти среди них самую большую.
В матрице две диагонали.
Остальное видно линия параллельная главной диагонали и проведенная через элементы матрицы.
Их 9, потому можно тупо в массив загнать перечислением, если не охота играться с циклом.
s[1] := m[1,1]+m[2,2]+m[3,3]+m[4,4]+m[5,5];
...
s[8] := m[1,5];
s[9] := m[5,1];

Их сумма s[1]+...+s[9]
Самая большая все же цикл придется делать приняв max := s[1]
бежим по всем и если нашли больше max то max примет это значение
Потом вывести max
Рифат Бичурин
Рифат Бичурин
84 458
Лучший ответ
Manas Только Аллах Меня Судит В матрице 5Х5 их не 9 по-моему, и про перечисления то я понимаю, хотелось бы зависимость их индексов установить, но что-то пока добился только головной боли)
Manas Только Аллах Меня Судит И ещё судя по входным данным и выходным, одиночные элементы вверху и внизу от главной диагонали не считаются
100р
В зависимости от диагонали, т. е. откуда она проведена (с верхнего левого угла к правому нижнему или верхнего правого угла к левому нижнему) будет разные ответ. Допустим, у нас первый вариант. Всего 8 сумм диагоналей. Будет два вложенных цикла. Первый будет проходить как бы с "левого нижнего" угла матрицы к "левому верхнему". В него вложен цикл, подсчитывающий кол-во элементов.
Если сделать схематически, то это будет выглядить так для нижних диагоналей:
переменные:
а = 5 //сторона массива
м [a,a] //массив
с [a*2-2] //массив сумм диагоналей
i, j, k //счетчики
Код:
i:=a;
j:=1;
Пока (i>1) делать
{
пока (j < a) делать
{
с [i] = c[i] + м [1, j];
j:= j +1;
i:=i - 1;
}
}

Для верхних так же, только нужно поменять переменные. Можно ввести еще один цикл внешний, чтобы не копипастить код, но тогда придется вводить if'ы...
Manas Только Аллах Меня Судит Нет её не надо, надо найти сумму каждой диагонали параллельной ей
Manas Только Аллах Меня Судит Ну в смысле параллельной главной диагонали