Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 16

В массиве найти повторяющиеся элементы и количество их повторений

28.12.2015, 17:48. Показов 4315. Ответов 1

Студворк — интернет-сервис помощи студентам
Помогите решить задачку

В произвольном массиве из n целых чисел (n<100) найти повторяющиеся элементы и количество повторений каждого из таких элементов.


Я написала программу, чтобы он искал и выводил повторяющиеся элементы и количество повторений каждого из таких элементов тоже, мне нужно ещё сделать так, чтобы он считал и выводил количество повторяющихся элементов в массиве

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
34
35
36
37
38
39
40
41
42
43
44
const nmax=100; 
var a,a1,b,b1:array[1..nmax] of integer; 
n,m,i,j,k,c:integer; 
begin 
 
 
repeat 
write('Размер массива до ',nmax,' n='); 
readln(n); 
until n in [1..nmax]; 
writeln('Исходный массив:'); 
for i:=1 to n do 
begin 
 
writeln(a[i]); read(a[i]); 
end; 
writeln; 
a1:=a;{сохраним исходный массив} 
m:=0; 
while n>0 do 
begin 
c:=a1[1];{первый элемент} 
m:=m+1; 
b[m]:=c; 
k:=0; {количество} 
for i:=n downto 1 do{идем с конца} 
if a1[i]=c then 
begin 
k:=k+1; {считаем и удаляем} 
if i=n then n:=n-1 
else 
begin 
for j:=i to n-1 do 
a1[j]:=a1[j+1]; 
n:=n-1; 
end; 
end; 
b1[m]:=k; 
end; 
for i:=1 to m do 
if b1[i]>1 then 
writeln(b[i],' ',b1[i],' '); 
 
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.12.2015, 17:48
Ответы с готовыми решениями:

Массивы. Найти повторяющиеся элементы и количество повторений каждого из таких элементов
Добрый день! Нужна помощь в написании программы: В произвольном массиве из n целых чисел (n&lt;100) найти повторяющиеся элементы и...

Подпрограммы: для каждого из массивов вывести на печать повторяющиеся элементы, и количество их повторений
Задачка: Заданы три одномерных массива разной размерности.Для каждого из массивов вывести на печать повторяющиеся элементы и количество...

В произвольном тексте найти повторяющиеся слова,определить количество повторений каждого из них
В произвольном тексте найти повторяющиеся слова,определить количество повторений каждого из них. Блок схема и саму программу,если можно..

1
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
28.12.2015, 19:46
код не самый понятный получился, скажем так...
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
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
const
    NMAX = 100;
type
    TTypeInUse = ShortInt; //чтоб менять нужно было лишь в одном месте
    TNumber = record
        numb: TTypeInUse; //само число
        count: Byte; //количество самих повторов, не сколько раз встречается число
    end;
    TArray = Array[1..NMAX] Of TNumber;
 
procedure Process(var ar: TArray; var n: Byte; const x: TTypeInUse);
var
    id: Byte = 0;
    flag: Boolean = False;
begin
    while ((Not flag) And (id < n)) do //проверяем, есть ли такой элемент в нашей "базе"
    begin
        Inc(id);
        flag := (ar[id].numb = x);
    end;
    if (flag) //если нашли
    then //наращиваем счётчик
        Inc(ar[id].count)
    else //или добавляем новый
    begin
        Inc(n);
        ar[n].numb := x;
        ar[n].count := 0;
    end;
end;
 
function IsRepeats(const ar: TArray; const n: Byte): Boolean; //проверяем имеются ли у нас повторы
var
    i: Byte = 0;
    Result: Boolean = False;
begin
    while ((Not Result) And (i < n)) do //если количество хоть одного из чисел больше единицы
    begin
        Inc(i);
        Result := (ar[i].count > 0);
    end;
    IsRepeats := Result;
end;
 
function GetTotalSum(const ar: TArray; const n: Byte): Integer; //суммируем повторы
var
    i: Byte;
    Result: Integer = 0;
begin
    for i := 1 to n do
        with ar[i] do
            Inc(Result, ar[i].count);
    GetTotalSum := Result;
end;
 
var
    i, na, nb: Byte;
    nonuniq: TArray;
    arr: Array[1..NMAX] Of TTypeInUse;
begin
    Randomize();
    repeat
        Write('Input n(1..', NMAX, '): ');
        ReadLn(na);
    until (na in [1..NMAX]);
    nb := 0;
    for i := 1 to na do
    begin
        arr[i] := Random(199) - 99; //рандомим новое число
        Write(arr[i]:4);
        Process(nonuniq, nb, arr[i]); //проверяем "на вшивость"
    end;
    WriteLn; WriteLn;
    if (IsRepeats(nonuniq, nb)) //если были повторы
    then
    begin
        for i := 1 to nb do
            with nonuniq[i] do
                if (count > 0) //если количество данного числа выше 1 (если были повторы конкретно этого числа)
                then
                    WriteLn(numb:4, ' - ', count);
        Write('Total repeats: ', GetTotalSum(nonuniq, nb)); //и общая сумма повторений
    end
    else
        Write('All elements are uniq!');
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.12.2015, 19:46
Помогаю со студенческими работами здесь

Сортировка Хоара: Найти повторяющиеся элементы в массиве А, которые присутствуют в массиве В
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; int comp(const void * a, const void * b) { return *((int*)a) -...

Найти повторяющиеся элементы в массиве А, которые присутствуют в массиве В
Повторяющиеся элементы в массиве А, которые присутствуют в массиве В

Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый массив из первого массива
Всем привет. Можете помочь написать такой алгоритм, нужно в одном массиве найти повторяющиеся элементы, а затем вставить в другой массив...

Найти повторяющиеся в массиве элементы
Помогите написать программу: Исходными данными являются массив из 10 элементов, заполненный пользователем с клавиатуры.Написать...

Подсчитать количество различных элементов,встречающихся в массиве A=(ai) (i=1.16) Повторяющиеся элементы учитывать
Помогите, пожалуйста,буду очень сильно благодарен Информатика спбпу 1 курс шелестев


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru