Можно воспользоваться преимуществами, которые дает pascal 3.1 и программа будет достаточно короткой. // pascalabc.net 3.1, сборка 1250 от 28.05.2016 begin var m: =readinteger('m='); var c: =matrixrandom(m,m,10,99); var d: =new dictionary< integer,integer> ; for var i: =0 to m-1 do begin for var j: =0 to m-1 do print(c[i,j]); println; end; foreach var e in c do d[e]: =d.get(e)+1; var q: =d.orderbydescending(x-> x.value); var p: =q.first.value; if p=1 then writeln('все значения в массиве уникальны') else begin var s: =q.takewhile(x-> x.value=p).select(x-> x.key); write('наиболее часто (',p,') '); if s.count=1 then begin print('встречается значение'); s.print end else begin print('встречаются значения: '); s.println end end end. тестовые решения m= 3 76 34 96 47 99 79 94 33 11 все значения в массиве уникальны m= 5 43 19 46 70 51 73 46 50 18 25 19 10 32 83 81 32 46 81 23 84 27 91 84 79 28 наиболее часто (3) встречается значение 46 m= 10 89 11 84 46 18 68 56 13 28 34 86 25 84 34 51 13 37 41 26 23 33 74 87 21 11 42 61 42 32 65 34 37 47 23 24 20 61 14 93 31 71 27 19 31 81 94 38 87 74 83 19 74 81 28 70 24 23 72 44 76 17 24 80 62 10 58 78 71 19 40 52 33 48 94 51 16 64 65 40 16 13 74 68 48 56 60 56 28 53 99 97 88 69 27 23 57 46 57 31 33 наиболее часто (4) встречаются значения: 23 74
krisrespect2
11.03.2022
{attention! это самое отвратное моё решение на знаниях. запаситесь валерьянкой перед прочтением кода} //pascal abc.net 3.1 сборка 1219 type ty=record valu: integer; count: integer; end; const n=3; var ma: array[1..n,1..n] of integer; tyar: array of ty; se: set of integer; i,j,z,k,maxcount: integer; begin randomize; se: =[]; k: =0; maxcount: =integer.minvalue; writeln('matrix: '); for i: =1 to n do begin for j: =1 to n do begin ma[i,j]: =random(-10,10); write(ma[i,j]: 4); if not(ma[i,j] in se) then begin inc(k); setlength(tyar,k+1); tyar[k].valu: =ma[i,j]; tyar[k].count: =1; se: =se+[ma[i,j]]; end else for z: =1 to k do {o(n^3) в худшем случае - нормальные люди ненавидят это} if tyar[z].valu=ma[i,j] then begin inc(tyar[z].count); break; end; end; writeln; end; for i: =1 to k do if maxcount< tyar[i].count then maxcount: =tyar[i].count; writeln('res: '); for i: =1 to k do if tyar[i].count=maxcount then writeln(tyar[i].valu); end. пример работы программы: matrix: -7 -2 10 8 0 -2 6 10 1 res: -2 10
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Прочитай отрывок из сказки, впиши пропущенные слова на схеме состава. запиши адреса всех героев сказки.