// PascalABC.NET 3.2, сборка 1417 от 28.03.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*'-'); Writeln('Ср.арифм. положительных: ',a.ElementsByRow.Where(x->x>0).Average) end.
Перефразируем данное по условию высказывание, чтобы использовать слова-понятия, применяемые в алгебре логики: Не идет дождь ИЛИ прогулка отменяется И я останусь дома СЛЕДОВАТЕЛЬНО я не вымокну. Заменим части предложения на выражения, выданные нам по условию: НЕТ "идет дождь" ИЛИ ("прогулка отменяется" И "я останусь дома") СЛЕДОВАТЕЛЬНО НЕТ "я вымокну" Запишем полученную фразу, заменив выражения на символьное обозначение: not A or (B and D) → not C Запишем фразу символами алгебры логики ¬A ∨ (B∧D) → ¬C
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк в массиве:');
var m:=ReadInteger('Количество столбцов в массиве:');
Writeln('*** Исходный массив [',n,',',m,'] ***');
var a:=MatrRandom(n,m,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
Writeln('Ср.арифм. положительных: ',a.ElementsByRow.Where(x->x>0).Average)
end.
Пример
Количество строк в массиве: 5 12
Количество столбцов в массиве: *** Исходный массив [5,12] ***
99 -73 -67 46 -95 -79 23 98 -53 -58 83 -12
68 62 -75 -25 -29 2 -22 5 -75 -83 -22 31
-41 -68 29 68 -92 95 97 -30 -23 -85 -5 -59
21 -99 57 43 -4 39 30 74 -14 55 -81 24
-43 96 3 -97 31 74 -52 82 48 1 -13 73
Ср.арифм. положительных: 51.9