Взаданной матрице a(n*n) найти минимум всех сумм абсолютных величин элементов матрицы по столбцам. использовать процедуры ввода и вывода элементов матрицы по строкам.
Const N = 3; Var A:array[1..N,1..N] of integer; i,j:integer; Min,S:real; Begin Randomize; WriteLn('Исходная матрица:'); For i:= 1 to N do Begin For j:= 1 to N do Begin A[i,j]:=random(21)-10; Write(A[i,j]:3,' ') End; WriteLn End; WriteLn; Min:=0; For i:= 1 to N do Min:=Min+Abs(A[i,1]); For j:= 2 to N do Begin S:=0; For i:= 1 to N do S:=S+Abs(A[i,j]); if S<Min then Min:=S; End; WriteLn('Min = ',Min); End.
Пример работы программы:
Исходная матрица: 8 3 0 1 3 -5 3 -10 -6
Min = 11
Агибалов428
23.02.2020
var a, b, c, i, j, n, ch:integer; s, p:array [1..10000] of integer; begin n:=30; for i:=1 to n do s[i]:=random(64000)-32000; writeln('Данный массив'); for i:=1 to n do write (s[i],' '); a:=s[1]; for i:=1 to n do if s[i]>a then a:=s[i]; for i:=1 to n do if s[i]=a then begin j:=j+1; p[j]:=i; end; c:=j; writeln; writeln('Полученный массив'); for i:=1 to n do begin ch:=0; for j:=1 to c do if i=p[j] then inc(ch); if ch=0 then write (s[i],' '); end; end. P.S. Надеюсь на благодарность и лучший ответ.
Владимир-Денисович1080
23.02.2020
А) берём 2 из трёх монет и взвешиваем их:если монеты весят одинаково, следовательно оставшаяся монета-лишняя, если одна монета легче другой, следовательно она фальшивая б) на каждую чашу весов ложим по две монеты. берём монеты с той чаши, которая легче и взвешиваем монеты-та что легче и есть фальшивая. г)на каждую чашу ложим по три монеты. чаша с фальшивой монетой окажется легче. а дальше как под (а) берём 2 из трёх монет и взвешиваем их:если монеты весят одинаково, следовательно оставшаяся монета-лишняя, если одна монета легче другой, следовательно она фальшивая) в)ложим на каждую чашу весов по 2 монеты. если монеты весят одинаково, то оставшаяся монета-лишняя, если одна чаша легче, то взвешиваем монеты, лежащие на ней , та монета что легче-фальшивая. (тут всё ок)
N = 3;
Var
A:array[1..N,1..N] of integer;
i,j:integer;
Min,S:real;
Begin
Randomize;
WriteLn('Исходная матрица:');
For i:= 1 to N do
Begin
For j:= 1 to N do
Begin
A[i,j]:=random(21)-10;
Write(A[i,j]:3,' ')
End;
WriteLn
End;
WriteLn;
Min:=0;
For i:= 1 to N do
Min:=Min+Abs(A[i,1]);
For j:= 2 to N do
Begin
S:=0;
For i:= 1 to N do
S:=S+Abs(A[i,j]);
if S<Min then Min:=S;
End;
WriteLn('Min = ',Min);
End.
Пример работы программы:
Исходная матрица:
8 3 0
1 3 -5
3 -10 -6
Min = 11