Написать программу решения следующей : для каждой из матриц a(5,5) иb(8,8) вычислить сумму и количество отрицательных элементов, расположенных на главной диагонали и выше её. использовать подпрограмму. на паскале.
// PascalABC.NET 3.2, сборка 1425 от 22.04.2017 // Внимание! Если программа не работает, обновите версию!
function KS(a:array[,] of integer):(integer,integer); begin (var k,var s):=(0,0); for var i:=0 to a.RowCount-1 do for var j:=i to a.ColCount-1 do if a[i,j]<0 then (k,s):=(k+1,s+a[i,j]); Result:=(k,s) end;
begin var a:=MatrRandom(5,5,-50,50); a.Println(4); var r:=KS(a); Writeln('k=',r[0],', Sum=',r[1]); var b:=MatrRandom(8,8,-80,45); b.Println(4); r:=KS(b); Writeln('k=',r[0],', Sum=',r[1]); end.
//Как-то громоздко получилось, но я так вижу. Эх, выходные. const n=5; var a:array[1..n] of integer; b:array[0..8] of integer; ar:array[1..n] of integer; i,c,j:integer; begin randomize; writeln('Array:'); for i:=1 to n do begin a[i]:=random(8); write(a[i]:4); end; for i:=1 to n do begin; for j:=0 to 8 do if a[i]=j then inc(b[j]); end; for i:=1 to n do begin; for j:=0 to 8 do if (b[j]>1) and (a[i]=j) then a[i]:=9; if a[i]<>9 then begin; inc(c); ar[c]:=a[i]; end; end; writeln; for i:=0 to 8 do writeln(i,'=',b[i]); writeln; writeln('Final array:'); for i:=1 to n do if a[i]=9 then a[i]:=0;
for i:=1 to c do begin; a[i]:=ar[i]; write(a[i]:4); end; end.
1 - моделью 2 - меньше информации 3 - глобус, макет здания, муляж яблока, манекен 4 - рисунок, фотография 5 - знаковой 6 - смешанной 7 - автомобиль — техническое описание автомобиля, город — путеводитель по городу 8 - существенные признаки объекта-оригинала 9 - разные модели объекта 10 - физическая карта, график зависимости расстояния от времени, схема узора для вязания крючком, схема метро 11 - словесное описание, формула 12 - знаковой 13 - смешанной 14 - болт — чертеж болта, мелодия — нотная запись мелодии
// Внимание! Если программа не работает, обновите версию!
function KS(a:array[,] of integer):(integer,integer);
begin
(var k,var s):=(0,0);
for var i:=0 to a.RowCount-1 do
for var j:=i to a.ColCount-1 do
if a[i,j]<0 then (k,s):=(k+1,s+a[i,j]);
Result:=(k,s)
end;
begin
var a:=MatrRandom(5,5,-50,50); a.Println(4);
var r:=KS(a); Writeln('k=',r[0],', Sum=',r[1]);
var b:=MatrRandom(8,8,-80,45); b.Println(4);
r:=KS(b); Writeln('k=',r[0],', Sum=',r[1]);
end.
Пример
-9 -41 -6 -49 36
6 -7 -2 -1 28
22 -29 -20 -12 7
-11 -37 14 34 -41
-23 11 -9 -26 -46
k=11, Sum=-234
9 34 -68 -32 -43 -61 -19 -55
-66 3 -79 41 -47 27 -7 31
-71 -7 -26 28 -58 -2 -61 -77
-66 39 -39 -76 -13 2 21 6
-56 42 -61 1 -39 -69 -57 -2
-51 -79 -57 10 -10 -27 29 19
-48 -55 -56 -76 43 -32 29 -70
15 -71 -46 -37 23 -24 3 -22
k=23, Sum=-1010