Форум программистов, компьютерный форум, киберфорум
Наши страницы
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
KiraOnce
0 / 0 / 0
Регистрация: 12.01.2013
Сообщений: 5
1

Нахождение одинаковых элементов массива

13.01.2013, 17:26. Просмотров 779. Ответов 4
Метки нет (Все метки)

Есть рандомный массив от 1 до 28. Нужно выполнить проверку каждого элемента на наличие одинаковых значений. Причем одинаковые значения должны идти подряд. Подскажите, пожалуйста, как можно вычислить кол-во таких элементов, и если таких "промежутков постоянства" несколько, найти среднее значение этих "промежутков".
P.S. на практике если вводить рандомные числа, врядли получатся много таких промежутков, если они вообще будут, но все же нужна программа по их нахождению.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2013, 17:26
Ответы с готовыми решениями:

Нахождение суммы элементов массива
Программа нахождения суммы элементов массиваю

Сумма одинаковых элементов массива
Используя процедуры, найдите сумму элементов, присутствующих в двух данных...

Поиск одинаковых элементов массива
Дана квадратная целочисельная матрица A. N<100; Определить, есть ли в ней хотя...

Определить максимальное количество одинаковых элементов массива
Дан целочисленный массив размера N. Определить максимальное количество его...

Нахождение суммы нечётных элементов массива
В общем надо программа которая считает сумму всех нечётных элементов массива,...

4
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26149 / 17526 / 6950
Регистрация: 22.10.2011
Сообщений: 30,864
Записей в блоге: 6
13.01.2013, 19:19 2
Вот это имелось в виду:
Pascal
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
type
   Range = 1 .. 28;
var
   Arr : array[Range] of Integer;
   i : Integer;
   Count : Integer;
begin
   Randomize;
   for i in Range do
   begin
      Arr[i] := Random(5); // 0 .. 4, чтобы было больше дубликатов, для теста
      write(Arr[i]:3);
   end;
   writeln;
 
   Count := 0; // счетчик дубликатов
   i := Low(Range) + 1; // Начинаем со второго элемента массива
   while i <= High(Range) do // Пока на дойдем до конца:
   begin
      if Arr[i] = Arr[i - 1] then // текущий и предыдущий элементы равны?
      begin
         Inc(Count); // Значит, увеличиваем счетчик
 
         // и, пока не закончится массив или не найдем разную пару "предыдущий-текущий"
         // продвигаемся дальше, то есть, все повторения того элемента, для которого
         // уже был увеличен счетчик, пропускаются.
         while (i <= High(Range)) and (Arr[i] = Arr[i - 1]) do Inc(i); 
      end
      else Inc(i); // текущий и предыдущий - разные? Тогда просто продвигаемся вперед, к следующему элементу массива
   end;
 
   writeln(Count, ' equal(s)');
end.
?
1
KiraOnce
0 / 0 / 0
Регистрация: 12.01.2013
Сообщений: 5
13.01.2013, 20:21  [ТС] 3
UI, спасибо большое за программу! А вы можете объяснить словами, что происходит с 16 по 25 пункты..? А то я не совсем понял, какие действия выполняются...
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26149 / 17526 / 6950
Регистрация: 22.10.2011
Сообщений: 30,864
Записей в блоге: 6
13.01.2013, 22:04 4
Добавил комментарии к программе.
1
KiraOnce
0 / 0 / 0
Регистрация: 12.01.2013
Сообщений: 5
14.01.2013, 01:02  [ТС] 5
UI, еще раз большое спасибо! Очень помогли!
0
14.01.2013, 01:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2013, 01:02

Рекурсивное нахождение суммы элементов массива.
Привет Народ! Напишите пожалуйста рекурсию вычисление суммы элементов...

Нахождение среднего арифметического элементов массива
составить программу которая определяет среднее арифметичекое четных элементов и...

Нахождение наибольшего среди элементов массива в определённом интервале
Составить программу нахождения наибольшего среди тех элементов одномерного...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru