Другие языки программирования и технологии
Как найти моду в массиве на PASCAL?
25 mod 10=5
Во внутреннем цикле с параметром сравниваешь первый элемент с остальными и увеличиваешь счетчик на единицу в случае равенства. Потом второй, третий и т. д. Во внешнем цикле сравниваешь каждый раз значение счетчика с максимальным из предыдущих. Не совсем оптимально, но просто и работать будет.
Посчитать, дык.
const
n = 5;//Размер массива чисел.
a = 1; b = 5;//Диапазон рандомных чисел, например от одного до пяти.
var
Ar:array [1..n] of integer; //Ar - массив чисел.
ctrAr:array [a..b] of integer;// ctrAr - массив-счётчик чисел из массива Ar.
i,j: integer;
maxCtr,index:integer;//Счётчик максимально встречающегося числа и один из его индексов в массиве Ar.
begin
//В этом цикле генерируем случайные числа и выводим их на экран.
for i := 1 to n do begin
Ar[i] := random (b - a) + a;
write(ar[i],' ');
end;
writeln();
//Обнуляем массив-счётчик.
for i := 1 to n do ctrAr[i] := 0;
//Обнуляем переменную для количества повторов самой частой цифры.
maxCtr := 0;
//В этом цикле пройдёмся по массиву чисел - Ar.
for j := 1 to n do
for i := a to b do begin //А в этом пройдёмся по массиву-счётчику ctrAr.
if(Ar[j] = i) then inc(ctrAr[i]);//Если значение ячейки массива равно числу i (напрмер 3), то увеличим на единицу значение ячейки массива-счётчика с этим индексом (ctrAr[3]).
if(ctrAr[i] > maxCtr) then begin
maxCtr := ctrAr[i];//Наёдём максимум в массиве-счётчике ctrAr.
index := j;//И индекс максимум в массиве чисел Ar.
end;
end;
writeln('Мода - ',Ar[index],'. Повторяется ',maxCtr,' раз. ');
end.
n = 5;//Размер массива чисел.
a = 1; b = 5;//Диапазон рандомных чисел, например от одного до пяти.
var
Ar:array [1..n] of integer; //Ar - массив чисел.
ctrAr:array [a..b] of integer;// ctrAr - массив-счётчик чисел из массива Ar.
i,j: integer;
maxCtr,index:integer;//Счётчик максимально встречающегося числа и один из его индексов в массиве Ar.
begin
//В этом цикле генерируем случайные числа и выводим их на экран.
for i := 1 to n do begin
Ar[i] := random (b - a) + a;
write(ar[i],' ');
end;
writeln();
//Обнуляем массив-счётчик.
for i := 1 to n do ctrAr[i] := 0;
//Обнуляем переменную для количества повторов самой частой цифры.
maxCtr := 0;
//В этом цикле пройдёмся по массиву чисел - Ar.
for j := 1 to n do
for i := a to b do begin //А в этом пройдёмся по массиву-счётчику ctrAr.
if(Ar[j] = i) then inc(ctrAr[i]);//Если значение ячейки массива равно числу i (напрмер 3), то увеличим на единицу значение ячейки массива-счётчика с этим индексом (ctrAr[3]).
if(ctrAr[i] > maxCtr) then begin
maxCtr := ctrAr[i];//Наёдём максимум в массиве-счётчике ctrAr.
index := j;//И индекс максимум в массиве чисел Ar.
end;
end;
writeln('Мода - ',Ar[index],'. Повторяется ',maxCtr,' раз. ');
end.
Как-то так:

Результат oldmd и будет являться модой. data_array - массив чисел, count - размерность массива.
Честно, нашёл в своём старом проекте, который писал на C и наскоряк переписал на Pascal. Работоспособность не проверял, но всё должно быть корректно.

Результат oldmd и будет являться модой. data_array - массив чисел, count - размерность массива.
Честно, нашёл в своём старом проекте, который писал на C и наскоряк переписал на Pascal. Работоспособность не проверял, но всё должно быть корректно.
Похожие вопросы
- Помогите сделать задания по програмированию(двумерные массивы)Turbo Pascal
- Вопрос по двумерному массиву в Pascal?
- Функции и массивы в Pascal
- помогите пожалуста с одномерным массивом в Pascal
- C# Дан массив размера N. Найти 2 элемента массива, сумма которых наиболее близка к максимуму массива и поменять
- помогите найти ошибка в программе на PASCAL тема: "файлы".
- Как а в ассемблере найти минимальный элемент массива?
- найти произведение элементов массива, расположенных после максимального по модулю элемента
- Pascal . Дан массив вещественных чисел. Найти сумму элементов, номера которых являются простыми числами
- Pascal одномерные массивы.