главная диагональ --- это набор элементов с координатами (индексами) (i,i), где i∈[1, n]. n -- размерность матрицы, а вот как быть с транспонированием, например, трёхмерной матрицы? какой смысл оно имеет в этом случае? как составить условие обмена элементов? примечание: вообще состоит в том, чтобы сделать матрицу самосопряжённой, переписать такой вот код для случая произвольной конечной размерности: -- данный код для двумерной матрицы копирует одну её половину (если резать по диагонали) на вторую, при этом комплексно сопрягая элементы. а точнее -- в этом коде непонятно только условие обмена новое -то есть какие координаты поставить: если очередной matrixelement (в эту переменную получаем очередной элемент матрицы) имеет набор координат (x,).
Овсянкина407
11.10.2022
Program element_massiva5 var sum, i : integer; a : array [1..15] of integer; begin sum : = 0; writeln('введите 15 чисел массива'); for i: =1 to 15 do begin readln(a[i]); end ; sum: =a[1]+a[2]+a[3]+a[4]+a[5]; writeln(' ответ: ',sum); end.
dshi67orbru
11.10.2022
Такой вариант на простом паскале со стратегией жадность var n, s, i: integer; x: array[1..100]of integer; answer: string; begin readln(n); for i : = 1 to n do read(x[i]); readln(s); answer : = inttostr(s) + ' = '; for i : = n downto 1 do begin answer : = answer + inttostr(s div x[i]) + '*' + inttostr(x[i]); s : = s mod x[i]; if i > 1 then answer : = answer + ' + '; end; if s < > 0 then writeln('no') else writeln(answer); end. более полный и правильный вариант решения, но и куда более сложный //pascalabc.net 3.1 сборка 1200 uses system.collections.generic; uses system; var x : = new list< integer> ; c : = new list< tuple< string, integer> > ; procedure getparcelling(sum, step: integer; coefficients: string; count: integer); begin if step > = x.count then begin if sum = 0 then c.add((coefficients, count)); exit; end; if step < 0 then step : = 0; for var j : = 0 to (sum div x[step]) do begin var s : = ''; if j > 0 then begin if step > 0 then s += ' + '; s += inttostr(j) + '*' + inttostr(x[step]); end; getparcelling(sum - x[step] * j, step + 1, coefficients + s, count + j); end; end; begin x : = readarrinteger('x: ', readinteger('n ='; var sum : = readinteger('sum ='); getparcelling(sum, 0, '', 0); if c.count = 0 then writeln('no') else begin var min : = c.min(cc -> cc.item2); println(c.where(cc -> cc.item2 = min)); end; end.
главная диагональ --- это набор элементов с координатами (индексами) (i,i), где i∈[1, n]. n -- размерность матрицы, а вот как быть с транспонированием, например, трёхмерной матрицы? какой смысл оно имеет в этом случае? как составить условие обмена элементов? примечание: вообще состоит в том, чтобы сделать матрицу самосопряжённой, переписать такой вот код для случая произвольной конечной размерности: -- данный код для двумерной матрицы копирует одну её половину (если резать по диагонали) на вторую, при этом комплексно сопрягая элементы. а точнее -- в этом коде непонятно только условие обмена новое -то есть какие координаты поставить: если очередной matrixelement (в эту переменную получаем очередной элемент матрицы) имеет набор координат (x,).