Type M = array[,] of integer; // двумерный динамический V = array[1..2] of integer; // одномерный статический
function nPos(pm: M): integer; var i, j, p: integer; begin p := 0; for i := 0 to Length(pm, 0) - 1 do for j := 0 to Length(pm, 1) - 1 do if pm[i, j] > 0 then p := p + 1; nPos := p end;
function nNeg(pm: M): integer; var i, j, p: integer; begin p := 0; for i := 0 to Length(pm, 0) - 1 do for j := 0 to Length(pm, 1) - 1 do if pm[i, j] < 0 then p := p + 1; nNeg := p end;
procedure GetV(A: M; var C: V); begin C[1] := nPos(A); C[2] := nNeg(A) end;
procedure InitM(var A: M); var i, j: integer; begin for i := 0 to Length(A, 0) - 1 do for j := 0 to Length(A, 1) - 1 do A[i, j] := random(100) - 50 end;
procedure PrintM(A: M); var i, j: integer; begin for i := 0 to Length(A, 0) - 1 do begin for j := 0 to Length(A, 1) - 1 do write(A[i, j]:4); writeln end end;
var A1, A2, A3: M; B1, B2, B3: V; n1, m1, n2, m2, n3, m3: integer;
begin Randomize; writeln('Введите число строк и столбцов массива'); readln(n1, m1); SetLength(A1, n1, m1); InitM(A1); Writeln('массив А1'); PrintM(A1); GetV(A1, B1); writeln('Количество положительных ', B1[1], ', количество отрицательных ', B1[2]); writeln('Введите число строк и столбцов массива'); readln(n2, m2); SetLength(A2, n2, m2); InitM(A2); Writeln('массив А2'); PrintM(A2); GetV(A2, B2); writeln('Количество положительных ', B2[1], ', количество отрицательных ', B2[2]); writeln('Введите число строк и столбцов массива'); readln(n3, m3); SetLength(A3, n3, m3); InitM(A3); Writeln('массив А3'); PrintM(A3); GetV(A3, B3); writeln('Количество положительных ', B3[1], ', количество отрицательных ', B3[2]); end.
Тестовый прогон:
Введите число строк и столбцов массива 3 3 массив А1 6 11 -46 24 -41 36 44 9 18 Количество положительных 7, количество отрицательных 2 Введите число строк и столбцов массива 2 4 массив А2 37 -4 -2 43 -18 36 0 44 Количество положительных 4, количество отрицательных 3 Введите число строк и столбцов массива 5 2 массив А3 5 -15 49 -1 -40 35 -33 -9 -22 -31 Количество положительных 3, количество отрицательных 7
begin writeln('Введите начальное значение, конечное значение и шаг '); readln(a, b, h); x := a; while x <= b do begin writeln(x:5:2,' ',2 * cos(x) - 1:10:7); x := x + h end end.
M = array[,] of integer; // двумерный динамический
V = array[1..2] of integer; // одномерный статический
function nPos(pm: M): integer;
var
i, j, p: integer;
begin
p := 0;
for i := 0 to Length(pm, 0) - 1 do
for j := 0 to Length(pm, 1) - 1 do
if pm[i, j] > 0 then p := p + 1;
nPos := p
end;
function nNeg(pm: M): integer;
var
i, j, p: integer;
begin
p := 0;
for i := 0 to Length(pm, 0) - 1 do
for j := 0 to Length(pm, 1) - 1 do
if pm[i, j] < 0 then p := p + 1;
nNeg := p
end;
procedure GetV(A: M; var C: V);
begin
C[1] := nPos(A);
C[2] := nNeg(A)
end;
procedure InitM(var A: M);
var
i, j: integer;
begin
for i := 0 to Length(A, 0) - 1 do
for j := 0 to Length(A, 1) - 1 do
A[i, j] := random(100) - 50
end;
procedure PrintM(A: M);
var
i, j: integer;
begin
for i := 0 to Length(A, 0) - 1 do
begin
for j := 0 to Length(A, 1) - 1 do
write(A[i, j]:4);
writeln
end
end;
var
A1, A2, A3: M;
B1, B2, B3: V;
n1, m1, n2, m2, n3, m3: integer;
begin
Randomize;
writeln('Введите число строк и столбцов массива');
readln(n1, m1);
SetLength(A1, n1, m1);
InitM(A1);
Writeln('массив А1');
PrintM(A1);
GetV(A1, B1);
writeln('Количество положительных ', B1[1], ', количество отрицательных ', B1[2]);
writeln('Введите число строк и столбцов массива');
readln(n2, m2);
SetLength(A2, n2, m2);
InitM(A2);
Writeln('массив А2');
PrintM(A2);
GetV(A2, B2);
writeln('Количество положительных ', B2[1], ', количество отрицательных ', B2[2]);
writeln('Введите число строк и столбцов массива');
readln(n3, m3);
SetLength(A3, n3, m3);
InitM(A3);
Writeln('массив А3');
PrintM(A3);
GetV(A3, B3);
writeln('Количество положительных ', B3[1], ', количество отрицательных ', B3[2]);
end.
Тестовый прогон:
Введите число строк и столбцов массива
3 3
массив А1
6 11 -46
24 -41 36
44 9 18
Количество положительных 7, количество отрицательных 2
Введите число строк и столбцов массива
2 4
массив А2
37 -4 -2 43
-18 36 0 44
Количество положительных 4, количество отрицательных 3
Введите число строк и столбцов массива
5 2
массив А3
5 -15
49 -1
-40 35
-33 -9
-22 -31
Количество положительных 3, количество отрицательных 7
a, b, h, x: real;
begin
writeln('Введите начальное значение, конечное значение и шаг ');
readln(a, b, h);
x := a;
while x <= b do
begin
writeln(x:5:2,' ',2 * cos(x) - 1:10:7);
x := x + h
end
end.
Тест:
Введите начальное значение, конечное значение и шаг
-1.8 1.6 0.2
-1.80 -1.4544042
-1.60 -1.0583990
-1.40 -0.6600657
-1.20 -0.2752845
-1.00 0.0806046
-0.80 0.3934134
-0.60 0.6506712
-0.40 0.8421220
-0.20 0.9601332
0.00 1.0000000
0.20 0.9601332
0.40 0.8421220
0.60 0.6506712
0.80 0.3934134
1.00 0.0806046
1.20 -0.2752845
1.40 -0.6600657
1.60 -1.0583990