ответ:
uses crt;
const max=100;
var matrix: array[1..max,1..max] of integer;
i,j,sum1,sum2,m: integer;
begin
clrscr;
randomize;
repeat
writeln('введите размерность квадратной матрицы ');
readln(m);
until m in [1..max];
for i: =1 to m do
for j: =1 to m do
matrix[i,j]: =random(25); //при необходимости замените на ручной ввод
for i: =1 to m do
begin
for j: =1 to m do
write(matrix[i,j]: 4);
writeln;
end;
sum1: =0; sum2: =0;
for i: =1 to m do
begin
sum1: =sum1+matrix[i,i];
sum2: =sum2+matrix[m-i+1,i];
end;
writeln('сумма элементов главной диагонали: ',sum1);
writeln('сумма элементов побочной диагонали: ',sum2);
readln;
end.
объяснение:
Поделитесь своими знаниями, ответьте на вопрос:
Между населенными пунктам a, b, c, d, e, f, z построены дороги протяженность которых в таблице(отсутствие числа в таблице означает, что прямой дороги между пунктами нет) a b c d e f z a 7 57 b 7 5 7 27 c 5 3 d 7 3 2 e 27 2 2 8 f 2 3 z 57 8 3 определить длину кратчайшего пути между пунктами aиz (при условии что передвигаться можно только по построенным дорогам) 1)21 2)24 3)42 4) 57 с подробным решением
1) из а только два пути - ab=7, az=57.
az слишком большой, для начала отбросим его.
идём по ab=7.
2) из b три пути: bc=5, bd=7, be=27.
be слишком большой, пока отбросим его.
2.1) рассмотрим для bc=5 :
из c есть только один путь, cd=3.
рассмотрим для cd :
из d есть db, но нам незачем возвращаться; значит остаётся de=2.
рассмотрим для de :
из е есть eb, но это возврат, есть ef=2 и ez=8
2.1.1) если мы идём по ef, то от f есть fz=3
в итоге, получается: a-b-c-d-e-f-z = 7+5+3+2+2+3 = 22
2.1.2) если в предпоследнем шаге пойти по ez=8, то получается a-b-c-d-e-z = 7+5+3+2+8 = 25
2.2) рассмотрим для bd=7
этим шагом мы как бы перескочим b-c-d
из d есть dc и de, идти в с нет смысла, так что идём в de=2
из е есть ef=2 и ez=8
2.2.1) для начала пойдём в ef=2, fz=3
получается a-b-d-e-f-z = 7+7+2+2+3 = 21
2.2.2) другой вариант, ez=8
получается a-b-d-e-z = 7+7+2+8 =24
ответ уже найдет, выделен жирным, но в других иногда нужно просмотреть абсолютно все пути.