Инверсия это вещь отрицание, тебе из условия дано, что каждая буква означает, так вот например, С= Серёжа съел конфету, а в таблицу мы записываем их высказывания, например там сказано мол Серёжа сказал, что не ел конфету, в таблицу запиши С с чертой
1)
for i := 1 to n do
read(a[i]);
for i := 1 to n do
if (a[i] div 100 = 0)and(a[i] div 10 > 0) then
write(a[i], ' ');
2)
for i := 1 to n do
read(a[i]);
for i := 1 to n do
if (a[i] mod 2 = 0) then
write(a[i], ' ');
3)
for i := 1 to n do
read(a[i]);
for i := 1 to n do
if (a[i] mod 2 = 0)then
a[i] := a[i]*2
else
a[i] := a[i] - 1;
for i := 1 to n do
wirte(a[i]);
<em>// PascalABC.NET 3.2, сборка 1425 от 22.04.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
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.
<u>Пример</u>
-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
Вообще более менее очевидно что нужно поменять максимальное число с минусом и минимальное число с плюсом
это -99 и 2
Посчитаем исходную сумму. Если суммировать попарно (-1+2)+(-3+4)+... = 1+1... = 100/2 = 50
Посчитаем новую сумму с заменой
50- (-99 + 2) + (99 - 2) = 244