const n = 10000;//Не изменяемая по ходу программы переменная var a: array[1..n] of integer; b: array[1..10]of integer; c: array[1..10]of integer; i, s, v: integer; begin for i := 1 to 10 do //Заполнение массива с числами от 1 до 10 c[i] := i; for i := 1 to n do //Заполнение массива a[i] := random(10) + 1; //Делается для того чтобы в массиве не было нулей for i := 1 to n do case a[i] of 1: b[1] := b[1] + 1; 2: b[2] := b[2] + 1; 3: b[3] := b[3] + 1; 4: b[4] := b[4] + 1; 5: b[5] := b[5] + 1; 6: b[6] := b[6] + 1; 7: b[7] := b[7] + 1; 8: b[8] := b[8] + 1; 9: b[9] := b[9] + 1; 10: b[10] := b[10] + 1; End; for i := 1 to 10 do for s := 1 to 9 do if b[s] > b[s + 1] then begin v := b[s]; b[s] := b[s + 1]; b[s + 1] := v; v := c[s]; c[s] := c[s + 1]; c[s + 1] := v; end; writeln(c[10], ' - их ', b[10]); end.
{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
const n = 10000;//Не изменяемая по ходу программы переменная
var a: array[1..n] of integer; b: array[1..10]of integer; c: array[1..10]of integer; i, s, v: integer;
begin for i := 1 to 10 do //Заполнение массива с числами от 1 до 10 c[i] := i; for i := 1 to n do //Заполнение массива a[i] := random(10) + 1; //Делается для того чтобы в массиве не было нулей for i := 1 to n do case a[i] of 1: b[1] := b[1] + 1; 2: b[2] := b[2] + 1; 3: b[3] := b[3] + 1; 4: b[4] := b[4] + 1; 5: b[5] := b[5] + 1; 6: b[6] := b[6] + 1; 7: b[7] := b[7] + 1; 8: b[8] := b[8] + 1; 9: b[9] := b[9] + 1; 10: b[10] := b[10] + 1; End; for i := 1 to 10 do for s := 1 to 9 do if b[s] > b[s + 1] then begin v := b[s]; b[s] := b[s + 1]; b[s + 1] := v; v := c[s]; c[s] := c[s + 1]; c[s + 1] := v; end; writeln(c[10], ' - их ', b[10]); end.