Составьте программу поиска чаще всего встречающегося элемента массива с(м,м)
126
314
Ответы на вопрос:
{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
Можно воспользоваться преимуществами, которые дает 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
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
aninagalamova06.12.2020 13:42
-
sherkesovna8211.06.2021 01:29
-
Vikaadamm29.05.2023 18:22
-
1КрУтАя112.10.2020 01:14
-
eviljew124.02.2023 15:52
-
Куска28.06.2020 14:08
-
erop4ik128.10.2022 07:13
-
ArseniyZnanija06.02.2021 11:09
-
rudnevskaya2004104.06.2020 07:57
-
Facebook189890926.09.2022 00:21
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.