// PascalABC.NET 3.0, сборка 1156 от 30.01.2016 function Avg(a:array[,] of integer):real; begin var s:=0; var k:=0; foreach var e:integer in a do if e>0 then begin s+=e; Inc(k) end; if k>0 then Result:=s/k else Result:=1e-100; end;
begin var A:=MatrixRandom(4,4,-50,50); Writeln(A); Writeln('Среднее арифметическое положительных равно ',Avg(A):0:3); var B:=MatrixRandom(5,5,-30,30); Writeln(B); Writeln('Среднее арифметическое положительных равно ',Avg(B):0:3); var C:=MatrixRandom(4,5,-25,38); Writeln(C); Writeln('Среднее арифметическое положительных равно ',Avg(C):0:3); end.
Тестовое решение: [[35,35,5,-47],[14,34,35,-13],[25,-5,35,-29],[-7,10,-12,12]] Среднее арифметическое положительных равно 24.000 [[-12,-17,-10,19,14],[20,17,-27,-2,16],[-3,-21,30,2,10],[5,-3,-17,-3,18],[0,-26,29,1,-22]] Среднее арифметическое положительных равно 15.083 [[-5,-11,17,-4,15],[15,17,-24,36,15],[-8,-3,-22,28,-25],[-21,6,12,31,-1]] Среднее арифметическое положительных равно 19.200
// PascalABC.Net 3.0, сборка 1052 const Rus=['А'..'Я']; var s:string; i,k,t:integer; c,c1,tc,sc:char; f:array['А'..'а'] of byte; // 'а' - это для 'Ё' ch:array['А'..'а'] of char; begin Write('Введите строку: '); Readln(s); for c:='А' to 'а' do begin f[c]:=0; ch[c]:=c end; k:=0; for i:=1 to Length(s) do begin c:=UpCase(s[i]); if c in Rus then begin Inc(f[c]); Inc(k) end else if c='Ё' then begin Inc(f['а']); Inc(k) end; end; Writeln('Количество русских букв равно ',k); { сортировка массива со счетчиком количества букв } for c1:='А' to Pred('а') do for c:='А' to Pred('а') do if f[c]<f[Succ(c)] then begin t:=f[c]; tc:=ch[c]; sc:=Succ(c); f[c]:=f[sc]; ch[c]:=ch[sc]; f[sc]:=t; ch[sc]:=tc end; Writeln('Частота встретившихся букв'); c:='А'; while (c<='а') and (f[c]>0) do begin if ch[c]='а' then ch[c]:='Ё'; Writeln(ch[c],' - ',f[c]); Inc(c) end; end.
Тестовое решение: Введите строку: Когда я был парнишкой, носил я брюки клёш Количество русских букв равно 33 Частота встретившихся букв К - 4 И - 3 Л - 3 О - 3 А - 2 Б - 2 Н - 2 Р - 2 Ш - 2 Я - 2 Г - 1 Д - 1 Й - 1 П - 1 С - 1 Ы - 1 Ю - 1 Ё - 1
function Avg(a:array[,] of integer):real;
begin
var s:=0; var k:=0;
foreach var e:integer in a do
if e>0 then begin s+=e; Inc(k) end;
if k>0 then Result:=s/k else Result:=1e-100;
end;
begin
var A:=MatrixRandom(4,4,-50,50); Writeln(A);
Writeln('Среднее арифметическое положительных равно ',Avg(A):0:3);
var B:=MatrixRandom(5,5,-30,30); Writeln(B);
Writeln('Среднее арифметическое положительных равно ',Avg(B):0:3);
var C:=MatrixRandom(4,5,-25,38); Writeln(C);
Writeln('Среднее арифметическое положительных равно ',Avg(C):0:3);
end.
Тестовое решение:
[[35,35,5,-47],[14,34,35,-13],[25,-5,35,-29],[-7,10,-12,12]]
Среднее арифметическое положительных равно 24.000
[[-12,-17,-10,19,14],[20,17,-27,-2,16],[-3,-21,30,2,10],[5,-3,-17,-3,18],[0,-26,29,1,-22]]
Среднее арифметическое положительных равно 15.083
[[-5,-11,17,-4,15],[15,17,-24,36,15],[-8,-3,-22,28,-25],[-21,6,12,31,-1]]
Среднее арифметическое положительных равно 19.200