С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 25

Вывести цифру, наиболее часто встречающуюся в массиве

05.07.2011, 12:22. Показов 2474. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан непустой массив из цифр. Вывести цифру наиболее часто встречающуюся в этом массиве.

Создала массив с задающейся размерностью, заполняемый с помощью рандома или вручную. Как вывести цифру наиболее часто встречающуюся в этом массиве?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
const
   Nmax=10;
   type
   mas2=array[1..Nmax,1..Nmax] of extended;
   mas1=array[1..Nmax] of extended;
var
  Form1: TForm1;
  A:mas2;
  B,Y:mas1;
  N,M,i,j:integer;
  s:extended;
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
N:=3;
M:=3;
edit1.Text:=floattostr(n);
edit2.Text:=floattostr(m);
stringgrid1.ColCount:=m+1;
stringgrid1.rowCount:=n+1;
    stringgrid1.cells[0,0]:='masiv A';
for i:=1 to n do
   stringgrid1.cells[0,i]:='i='+inttostr(i);
for j:=1 to m do
   stringgrid1.cells[j,0]:='j='+inttostr(j);
end;
 
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
n:=strtoint(edit1.Text);
m:=strtoint(edit2.Text);
stringgrid1.ColCount:=m+1;
stringgrid1.rowCount:=n+1;
 
    for i:=1 to n do
   stringgrid1.cells[0,i]:='i='+inttostr(i);
for j:=1 to m do
   stringgrid1.cells[j,0]:='j='+inttostr(j);
end;
 
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
randomize;
for i:=1 to n do
for j:=1 to m do
  stringgrid1.cells[j,i]:=inttostr(random(10));
 
end;
 
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
 
(какой должен быть тут текст программы???)
 
end;
 
end.
 Комментарий модератора 
Теги кода добавлены модератором. По правилам форума, код должен быть оформлен соответствующими тегами. Для оформления кода Delphi следует выделить этот код и на панели редактирования сообщения нажать кнопку: "DELPHI".
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.07.2011, 12:22
Ответы с готовыми решениями:

Дан непустой массив из цифр. Вывести цифру наиболее часто встречающуюся в этом массиве
В Delphi7. просто только начал работу в Delphi7, нужна помощь)

Дан непустой массив А из цифр. Вывести на экран цифру, наиболее часто встречающуюся в этом массиве
Дан непустой массив А из цифр. Вывести на экран цифру, наиболее часто встречающуюся в этом массиве.

Дан непустой массив А из цифр. Вывести на экран цифру, наиболее часто встречающуюся в этом массиве
Дан непустой массив А из цифр. Вывести на экран цифру, наиболее часто встречающуюся в этом массиве. Заранее спасибо Вот примерный код ...

11
11 / 11 / 1
Регистрация: 27.06.2011
Сообщений: 19
05.07.2011, 13:10
насколько я понял, массив это у тебя матрица, размером n на m и для нее надо находить значение? или же для каждой строки таблицы?
1
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 25
05.07.2011, 13:17  [ТС]
Да, матрица. Нужно из всех её значений найти наиболее часто встречающееся и вывести его
memo1.Lines.add('наиболее часто встречается число: '+floattostr(a[n])) ;
или
memo1.Lines.Add('наиболее часто встречается число'+floattostr(x));
что-то вроде того...
0
11 / 11 / 1
Регистрация: 27.06.2011
Сообщений: 19
05.07.2011, 14:11
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

вот, вроде так
проверял много раз, считает правильно.

см исходники, внутри архива бонус

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
procedure TForm2.BitBtn3Click(Sender: TObject);
var cnt_arr:array[1..Nmax,1..Nmax] of integer; //массив значений
tmp,i_ar,j_ar,max:integer;
begin
  for i:=0 to n do for j:=0 to m do cnt_arr[i,j]:=0;
  for i_ar:=1 to n do
  begin
    for j_ar:=1 to m do
    begin
      for i:=1 to n do
      begin
        for j:=1 to m do
        begin
          if strtoint(stringgrid1.Cells[j_ar,i_ar])=strtoint(stringgrid1.Cells[j,i]) then cnt_arr[i_ar,j_ar]:=cnt_arr[i_ar,j_ar]+1;
        end;
      end;
    end;
  end;
  max_point:=strtoint(stringgrid1.Cells[1,1]);
  max:=0;
  for i:=1 to n do for j:=1 to m do
    if cnt_arr[i,j]>max then
    begin
      max:=cnt_arr[i,j];
      max_point:=strtoint(stringgrid1.Cells[j,i])
    end;
  label1.Caption:='наиболее часто встречается число: '+inttostr(max_point)+' Оно встречается '+inttostr(max)+' раз';
  stringgrid1.Repaint;
end;
Вложения
Тип файла: rar max_point.rar (4.1 Кб, 23 просмотров)
1
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 25
05.07.2011, 14:25  [ТС]
спасибо большое))) а можно еще раз бонус только полностью сохранить))) а то у меня не запускается((
0
11 / 11 / 1
Регистрация: 27.06.2011
Сообщений: 19
05.07.2011, 15:07
в архиве готовый проект был, правда в 2010 delphi написан.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm2.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
const
clPaleGreen = TColor($CCFFCC);
var
  float : Extended;
  errorPos : Integer;
begin
  val(stringgrid1.cells[acol,arow],float,errorpos);
  if errorpos=0 then
  begin
    if strtoint(stringgrid1.cells[acol,arow])=max_point then
    begin
      StringGrid1.canvas.brush.Color:=clPaleGreen;
      StringGrid1.Canvas.FillRect(Rect);
      StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]);
    end;
  end;
end;
собственно вот и весь бонус ) число, которое больше всего повторяется в таблице подсвечиваться будет.

на каком этапе у тебя ругается? что в логе ошибок?
0
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 25
05.07.2011, 15:12  [ТС]
нет просто перескакивает в проект
Application.MainFormOnTaskbar := True; выделяет красным
0
11 / 11 / 1
Регистрация: 27.06.2011
Сообщений: 19
05.07.2011, 15:13
может брейкпоинт стоит. В коде красным кружочком обозначен. Попробуй снять, ткнув в него (если есть)
а вообще необязательная это опция,

Application.MainFormOnTaskbar := True;

можно смело удалить
0
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 25
05.07.2011, 15:17  [ТС]
а как мне из 2010 в борланд делфи 7 переделать?

Добавлено через 3 минуты
нет красного кружечка.. пишет [Error]Project1.dpr(11):Undeclared identifier:'MainFormOnTaskbar'
0
11 / 11 / 1
Регистрация: 27.06.2011
Сообщений: 19
05.07.2011, 15:19
удаляй строку

Application.MainFormOnTaskbar := True;

в delphi 7 видимо нет такой опции
1
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 25
05.07.2011, 15:28  [ТС]
спасибо))) работает, а можно переделать так, что бы оно не выделяло цветом а в мемо писало это значение?
0
11 / 11 / 1
Регистрация: 27.06.2011
Сообщений: 19
05.07.2011, 15:32
вместо
Delphi
1
label1.Caption:='наиболее часто встречается число: '+inttostr(max_point)+' Оно встречается '+inttostr(max)+' раз';
напиши
Delphi
1
memo1.Lines.Add('наиболее часто встречается число: '+inttostr(max_point)+' Оно встречается '+inttostr(max)+' раз');
а рисование чтобы убрать - полностью удаляй процедуру
TForm2.StringGrid1DrawCell
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.07.2011, 15:32
Помогаю со студенческими работами здесь

Для заданного целого числа N определить цифру а, наиболее часто встречающуюся в числе
Для заданного целого числа N определить цифру а, наиболее часто встречающуюся в числе Помогите решить эту задачу срочно...

Вывести на экран цифру, наиболее часто встречающийся в массиве
Дан непустой массив из цифр,вывести на экран цифру, наиболее часто встречающийся в этом массиве.

Вывести цифру которая наиболее часто встречается в массиве цифр
Дан массив состоящий из цифр. Нужно вывести цифру которая наиболее часто встречается в массиве. Нужно сделать через StringGrid. Я в...

Вывести на экран цифру, наиболее часто встречающийся в этом массиве
Дан непустой массив из цифр,вывести на экран цифру, наиболее часто встречающийся в этом массиве.

Дан непустой текст из цифр, за которым следует точка. Напечатать цифру, наиболее часто встречающуюся
Дан непустой текст из цифр, за которым следует точка. Напечатать цифру, наиболее часто встречающуюся в этом тексте (если таких...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru