// PascalABC.NET 3.2, сборка 1439 от 09.05.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк в матрице:'); var m:=ReadInteger('Количество столбцов в матрице:'); Writeln('*** Исходная матрица [',n,',',m,'] ***'); var a:=MatrRandom(n,m,-99,99); a.Println(4); Writeln(4*a.ColCount*'-'); var s:=a.Row(0).Sum+a.Row(n-1).Sum; s+=a.Col(0).Skip(1).Take(n-2).Sum+a.Col(m-1).Skip(1).Take(n-2).Sum; Writeln('Сумма по периметру ',s) end.
Пример Количество строк в матрице: 4 Количество столбцов в матрице: 5 *** Исходная матрица [4,5] *** 87 -67 11 59 46 -13 86 -74 20 -98 -74 24 6 51 74 26 -93 36 40 66
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк в матрице:');
var m:=ReadInteger('Количество столбцов в матрице:');
Writeln('*** Исходная матрица [',n,',',m,'] ***');
var a:=MatrRandom(n,m,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var s:=a.Row(0).Sum+a.Row(n-1).Sum;
s+=a.Col(0).Skip(1).Take(n-2).Sum+a.Col(m-1).Skip(1).Take(n-2).Sum;
Writeln('Сумма по периметру ',s)
end.
Пример
Количество строк в матрице: 4
Количество столбцов в матрице: 5
*** Исходная матрица [4,5] ***
87 -67 11 59 46
-13 86 -74 20 -98
-74 24 6 51 74
26 -93 36 40 66
Сумма по периметру 100
a) 1 + 2 + 2 · 3 = 3 + 6 = 9
b) (1 + 2 + 2) · 3 = 5 · 3 = 15
c) 1 · 2 + 2 · 3 = 2 + 6 = 8
d) 1 · (2 + 2) · 3 = 1 · 4 · 3 = 12
e) (1 · 2 + 2) · 3 = (2 + 2) · 3 = 4 · 3 = 12
f) 1 · (2 + 2 · 3) = 2 + 6 = 8
g) 1 · 2 = 2
h) (1>2) or (6 · 1 > 2 + 3) = false or true = 0 + 1 = 1 (дизъюнкция - логическая ИЛИ, сложение)
i) not(3 + 2 + 3 > 0) = not(8 > 0) = not(true) = false = 0 (логическое отрицание, инверсия)
j) not(1 + 2 > 0) and not(3 < 0) = not(3 > 0) and not(false) = not(true) and true = false and true = 0 · 1 = 0 (конъюнкция, логическая И, умножение)