<u>1. Вариант современного решения на современной версии языка Паскаль</u>
<em>// PascalABC.NET 3.3, сборка 1555 от 21.10.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:array[,] of integer:=(
( 2, 1,-1, 4),
(-3, 1,-4, 1),
( 2, 1, 2, 3),
( 2, 2, 5, 4),
(-3,-1,-3, 1));
Writeln('*** Исходная матрица ***');
a.Println(3); Writeln(3*a.ColCount*'-');
var s:=a.Col(2).Where(x->Abs(x)<=3);
Writeln('Элементов ',s.Count,', их сумма равна ',s.Sum)
end.
<u>Результат</u>
*** Исходная матрица ***
2 1 -1 4
-3 1 -4 1
2 1 2 3
2 2 5 4
-3 -1 -3 1
------------
Элементов 3, их сумма равна -2
<u>2. Вариант решения "Так писали наши дедушки и так нас учат в школе"</u>
const
m=5;
n=4;
a:array[1..m,1..n] of integer=(
( 2, 1,-1, 4),
(-3, 1,-4, 1),
( 2, 1, 2, 3),
( 2, 2, 5, 4),
(-3,-1,-3, 1));
procedure SumCol(m,k:integer; var p,s:integer);
var
i:integer;
begin
s:=0; p:=0;
for i:=1 to m do
if Abs(a[i,k])<=3 then begin
s:=s+a[i,k];
p:=p+1
end
end;
var
i,j,kol,sum:integer;
begin
Writeln('*** Исходная матрица ***');
for i:=1 to m do begin
for j:=1 to n do Write(a[i,j]:3);
Writeln
end;
for i:=1 to n do Write('---');
Writeln;
SumCol(m,3,kol,sum);
Writeln('Элементов ',kol,', их сумма равна ',sum)
end.
<u>Результат</u>
*** Исходная матрица ***
2 1 -1 4
-3 1 -4 1
2 1 2 3
2 2 5 4
-3 -1 -3 1
------------
Элементов 3, их сумма равна -2
var
a, m : integer;
begin
writeln('введите 8 чисел');
read(m);
for var i := 2 to 8 do begin
read(a);
if a > 0 then if a < m then m := a;
end;
writeln('наименьшее из чисел = ', m);
end.
0 не учитывается, если 0 тоже считать как положительное число то
"if a > 0" нужно заменить на "if a >= 0"
<em>// PascalABC.NET 3.3, сборка 1583 от 25.11.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var n:=ReadInteger('n=');
var a:=ArrRandom(n,-99,99); a.Println;
var b:=ArrRandom(n,-99,99); b.Println;
a.Zip(b,(x,y)->x*y).Println
end.
<u>Пример</u>
n= 13
-33 -22 -61 -21 24 -40 -30 77 46 19 -60 2 53
-99 27 90 -13 -17 19 76 -85 -18 4 91 -93 -59
3267 -594 -5490 273 -408 -760 -2280 -6545 -828 76 -5460 -186 -3127
begin
var a := MatrRandom(4, 8, -10, 40);
a.Println(4);
var s := a.ElementsByRow;
Writeln('Разница равна ', s.Max - s.Min)
end.
Вроде должно работать, если я правильно поняла задание