(LAZARUS)Даны три вещественных числа a, b, c Если a>b>c|, каждое число увеличивается вдвое иначе- каждое число уменьшается на единицу. МОЖЕТЕ ЕЩЁ ФОРУ НАПИСАТЬ
var a: array[1..nn, 1..nn] of integer; i, j, n, k: integer;
begin Write('Введите число строк (столбцов) матрицы: '); Readln(n); Randomize; Writeln('Исходная матрица'); for i := 1 to n do begin for j := 1 to n do begin a[i, j] := Random(101) - 50; Write(a[i, j]:4) end; Writeln end; Writeln('Количество отрицательных элементов по столбцам'); for j := 1 to n do begin k := 0; for i := 1 to n do if a[i, j] < 0 then Inc(k); Write(k:4) end; Writeln end.
nn = 20;
var
a: array[1..nn, 1..nn] of integer;
i, j, n, k: integer;
begin
Write('Введите число строк (столбцов) матрицы: '); Readln(n);
Randomize;
Writeln('Исходная матрица');
for i := 1 to n do
begin
for j := 1 to n do
begin
a[i, j] := Random(101) - 50;
Write(a[i, j]:4)
end;
Writeln
end;
Writeln('Количество отрицательных элементов по столбцам');
for j := 1 to n do
begin
k := 0;
for i := 1 to n do
if a[i, j] < 0 then Inc(k);
Write(k:4)
end;
Writeln
end.
Тестовое решение:
Введите число строк (столбцов) матрицы: 10
Исходная матрица
22 12 -15 -42 29 49 26 -26 -3 -5
18 45 2 2 -3 -28 20 -15 -16 29
7 48 -13 -33 38 -22 39 28 -6 -50
23 37 -33 50 7 27 39 -8 -35 43
1 17 -11 -29 -35 -1 -27 37 -25 -36
8 -49 -17 34 -27 24 -26 -32 -30 0
-41 48 30 -3 23 31 28 3 45 20
-16 -23 -30 -8 -23 40 9 -35 -48 -12
-45 -49 2 -20 -7 21 4 -16 26 33
3 21 -29 15 33 4 38 43 -1 -15
Количество отрицательных элементов по столбцам
3 3 7 6 5 3 2 6 8 5
===== PascalABC.NET =====
type
Node = auto class
public
data: integer;
left, right: Node;
end;
procedure Add(var root: Node; x: integer);
begin
if root = nil then
begin
root := new Node(x, nil, nil);
exit
end;
if root.data > x then
Add(root.left, x)
else if root.data < x then
Add(root.right, x)
end;
procedure Postfix(root: Node);
begin
if root = nil then exit;
Postfix(root.left);
Postfix(root.right);
Print(root.data)
end;
begin
var s := Seq(51, 25, 73, 15);
var R: Node;
R := nil;
foreach var x in s do
Add(R,x);
Add(R, 31);
Add(R, 93);
Postfix(R);
end.