Программа ** паскале В массив записаны случайные числа от 1 до 10 , количество элементов...

0 голосов
75 просмотров

Программа на паскале
В массив записаны случайные числа от 1 до 10 , количество элементов в массиве 10000. Определить какое число чаще всего повторяется


Информатика (53 баллов) | 75 просмотров
Дано ответов: 2
0 голосов

Не самый лёгкий, но работающий способ

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.

(2.6k баллов)
0

Если есть программа PascalABC.Net на компьютере вставь этот текст туда и форматируй код

0

как-то не правильно копировалось - вставилось сюда

0

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

0

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.

0

Соедини эти две части

0 голосов

Для этого задания необязательно делать массив из 10000 элементов , но если надо то вот простейший вариант.

var
a:array[1..10000] of byte;
count:array[1..10] of integer;
i, max, index:integer;
begin
for i:=1 to 10000 do
    begin
    a[i]:=random(10) + 1;
    inc(count[ a[i] ]);    
    end;    
for i:=1 to 10 do
    if max < count[i] then        
        begin
        max:= count[i];
        index:= i;
        end;
writeln(index,' Повторяется ',max);
end.  

(2.2k баллов)