Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Прошу помощи в решении задачи на Паскале! (http://www.tehnari.ru/f41/t28184/)

Диана-бельчонок 13.09.2009 16:18

Прошу помощи в решении задачи на Паскале!
 
Помогите, пожалуйста! очень надо решить срочно задачу на языке Паскаль!!!! условие такое: "Дан массив натуральных чисел. Найти цифру, которая чаще всех встречается и какое кол-во раз?" Буду очень благодарна тому, кто поможет!;)

AlexZir 13.09.2009 16:40

Уточните, пожалуйста, подсчитывать нужно именно чаще всего встречающуюся цифру или все-таки число?

По определению множества натуральных чисел таковых в природе бесчисленное количество и, если речь идет о цифрах, а не о числах - придется рассматривать все разряды чисел, а это значительно усложнит алгоритм подсчета.

Long Cat 13.09.2009 16:43

В предположении, что речь идет о подсчете чисел....

program example;
const
n=10;
var
a:array[1..n] of integer;
i:integer;
k:integer;
j:integer;
pos:integer;
freq:integer;
begin
a[1]:=181;
a[2]:=223;
a[3]:=332;
a[4]:=11;
a[5]:=51;
a[6]:=11;
a[7]:=72;
a[8]:=11;
a[10]:=121;

pos:=1;
freq:=1;
for i:=1 to n do
begin
k:=1;
for j:=i+1 to n do
begin
if a[i]=a[j] then k:=k+1;
end;
if k>freq then
begin
freq:=k;
pos:=i;
end;
end;
writeln(a[pos],' ',freq);
readln;
end.

Диана-бельчонок 13.09.2009 16:50

ответ
 
Дан массив именно натуральных чисел. При запуске программы мы сами вбиваем эти числа. А программа должна подсчитать ЦИФРУ, которая чаще всего встречается и ее кол-во. Програма будет просматривать введенные нами числа, делить их на разряды и уже проделывать свою работу - искать нужную цифру и подсчитывать ее кол-во.:)
Поможете?:) к вечеру...

AlexZir 13.09.2009 16:53

По количеству разрядов в числе ограничение какое-нибудь есть?

Диана-бельчонок 13.09.2009 16:57

нет. Нужно будет вставить алгоритм, который бы делил все числа на разряды. Ну как?:)

AlexZir 13.09.2009 17:00

Попробую сделать, если никто не опередит :D, ждите чуть позже.

Long Cat 13.09.2009 17:01

уже дописываю...

Диана-бельчонок 13.09.2009 17:02

Заранее спасибо:D:D:D

Long Cat 13.09.2009 17:14

Код:

program example;
var
  a:array[1..1000] of integer;
  digit:array[0..9] of integer;
  i:integer;
  j:integer;
  t:integer;
  r:integer;
  q:integer;
  n:integer;
begin
 write('count? ');
 readln(n);
 for i:=1 to n do
 begin
  write('a[',i,']=');
  readln(a[i]);
 end;

 for i:=0 to 9 do
 begin
  digit[i]:=0;
 end;

 for i:=1 to n do
 begin
  t:=a[i];
  while t > 0 do
  begin
  r:=t-(t div 10)*10;
  t:=t div 10;
  digit[r]:=digit[r]+1;
  end;
 end;
 j:=0;
 q:=0;
 for i:=0 to 9 do
 begin
  if digit[i]>q then
  begin
  q:=digit[i];
  j:=i;
  end;
 end;
 writeln(j,' ',q);
 readln;
end.



Часовой пояс GMT +4, время: 12:59.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.