Найти в типизированном файле число повторяющиеся больше всего раз - Free Pascal
Формулировка задачи:
В типизированном файле записаны символы и числа найти целое число которое повторяется больше всего раз
Помогите написать саму подпрограму нахождения числа
Решение задачи: «Найти в типизированном файле число повторяющиеся больше всего раз»
textual
Листинг программы
uses Crt;
const n=10;
var a:file of char;
i,t,k:byte;
c,c1,c2:char;
begin
ClrScr;
Assign(a,'F:\FPC\Program\ABC.dat');
Rewrite(a);
for i:=1 to n do
begin
Readln(c);
Write(a,c);
end;
Close(a);
k:=0;
for c1:='0' to '9' do
begin
Reset(a);
t:=0;
While not Eof(a) do
begin
Read(a,c);
if c=c1
then Inc(t);
if t>k
then
begin
k:=t;
c2:=c1;
end;
end;
end;
Writeln;
if k<2
then Writeln('Net povtorjajushihcja cisel')
else Writeln('Cifra ',c2,' povtorjaetsja ',k,' ras');
ReadKey;
end.
Объяснение кода листинга программы
- Объявление переменных:
- a: файл для чтения и записи данных
- i, t, k: переменные для хранения количества повторений чисел
- c, c1, c2: переменные для хранения символов
- Очистка экрана и открытие файла ABC.dat для записи
- Запись 10-ти случайно сгенерированных чисел в файл
- Закрытие файла
- Переменная k инициализируется значением 0
- Цикл от 0 до 9 для обработки каждого числа
- Внутри цикла файл открывается для чтения
- В цикле внутри цикла читается каждый символ из файла
- Если текущий символ равен текущему числу, увеличивается значение переменной t
- Если значение t больше значения k, обновляется значение k и сохраняется текущее число в c2
- После окончания внутреннего цикла, файл закрывается
- После окончания внешнего цикла выводится сообщение о числе, которое повторяется больше всего
- Если число повторений меньше 2, выводится сообщение о том, что число не повторяется
- Если число повторений больше или равно 2, выводится сообщение о числе и количестве его повторений
- Программа ожидает нажатия клавиши для завершения работы