Подсчитать количество одинаковых чисел в целочисленном массиве - Pascal
Формулировка задачи:
Написать программу алгоритма, который подсчитывает и выводит на дисплей количество одинаковых чисел в массиве целых чисел А [1...35]
Решение задачи: «Подсчитать количество одинаковых чисел в целочисленном массиве»
textual
Листинг программы
const nMax = 35; type TArrayType = ShortInt; TNonUniq = record number: ShortInt; count: Byte; end; var orig: Array[0..nMax - 1] Of TArrayType; nonUniq: Array[0..nMax - 1] Of TNonUniq; i, j, nnu, cnu: Byte; flag: Boolean; sum: Word; begin nnu := 0; Randomize(); Write('Original array:'); for i := 0 to nMax - 1 do begin orig[i] := Random(19) - 9; Write(orig[i]:4); flag := False; j:= 0; while ((Not flag) And (j < nnu)) do begin flag := (orig[i] = nonUniq[j].number); Inc(j); end; if (flag) then Inc(nonUniq[j - 1].count) else begin nonUniq[nnu].number := orig[i]; nonUniq[nnu].count := 1; Inc(nnu); end; end; WriteLn; sum := 0; cnu := 0; for i := 0 to nnu - 1 do with nonUniq[i] do if (count > 1) then begin WriteLn(number:4, #9, count); Inc(sum, count); Inc(cnu); end; WriteLn('Количество повторяемых чисел: ', cnu); WriteLn('Количество повторов без первого использования числа: ', sum - cnu); end.
Объяснение кода листинга программы
- Объявлены константы: nMax = 35, TArrayType = ShortInt, TNonUniq = record number: ShortInt; count: Byte; end;
- Задаются исходные данные: orig: Array[0..nMax - 1] Of TArrayType; nonUniq: Array[0..nMax - 1] Of TNonUniq; i, j, nnu, cnu: Byte; flag: Boolean; sum: Word;
- Инициализируются счётчики: nnu := 0;
- Задаются случайные значения для массива orig;
- Выводится приглашение к вводу исходного массива;
- Цикл по всем элементам массива orig;
- Для каждого элемента orig выполняется поиск в массиве nonUniq;
- Если элемент не найден, он добавляется в массив nonUniq;
- Выводится количество повторяющихся чисел и сумма их повторов;
- Выводится количество повторов без первого использования числа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д