Найти все слова, в которых количество цифр максимально - Turbo Pascal
Формулировка задачи:
Помогите пожалуйста с задачей. Всю голову сломал себе.
Дан текстовый файл f, каждая строка которого состоит из слов, разделённых одним и более пробелами. Найти все слова, в которых количество цифр максимально. Записать их в новый файл g.
Решение задачи: «Найти все слова, в которых количество цифр максимально»
textual
Листинг программы
uses
crt;
var
a: array [1..10] of string;
s, sl: string;
i, j, k, kg, kgmax: integer;
fin,fout:text;
begin
assign(fin,'fin.txt');
assign(fout,'fout.txt');
reset(fin);
rewrite(fout);
while not eof(fin) do
begin
readln (fin,s);
s:=s+' ';
sl:='';
j:=1;
for i:=1 to length (s) do
if s[i]<>' ' then
begin
sl:=sl+s[i];
if s[i] in ['0'..'9'] then
inc(kg);
end
else
begin
a[j]:=sl;
inc(j);
sl:='';
inc(k);
if kg>kgmax then
begin
kgmax:=kg;
kg:=0;
end
else kg:=0;
end;
writeln ('Максимальное количество цифр = ', kgmax);
if kgmax>0 then
begin
writeln ('содержат следующие слова');
for j:=1 to k do
begin
kg:=0;
sl:=a[j];
for i:=1 to length(sl) do
if sl[i] in ['0'..'9'] then
inc(kg);
if kg=kgmax then
begin
writeln(a[j]);
writeln(fout,a[j]);
end;
end;
end;
end;
readln;
close(fin);
close(fout);
end.
Объяснение кода листинга программы
Этот код написан на Turbo Pascal и предназначен для поиска слов с максимальным количеством цифр. Он читает текстовый файл, разбивает каждое слово на отдельные цифры, подсчитывает количество цифр в каждом слове и сохраняет эти слова в массиве. Затем он выводит список слов с максимальным количеством цифр. Вот список действий, представленных в коде, с соответствующими номерами:
- Объявляются переменные
a,s,sl,i,j,k,kg,kgmax,fin,fout,length. - Открывается файл
finдля чтения. - Устанавливается имя выходного файла
fout. - Очищается выходной файл
fout. - Читается файл
finпострочно. - Каждая строка добавляется к переменной
s. - Переменная
slустанавливается равной пустой строке. - Переменная
jустанавливается равной 1. - Для каждой цифры в строке
s:- Если цифра меньше или равна 0, она игнорируется.
- Если цифра находится в диапазоне от 0 до 9, переменная
kgувеличивается на 1. - Иначе, переменная
slустанавливается равной текущей строке, а переменнаяiустанавливается равной 1. - Переменная
kустанавливается равной 1. - Если
kgбольшеkgmax,kgmaxустанавливается равнымkg, иkgсбрасывается на 0. - Если
kgравноkgmax, выводится текущее слово, а также выводится имя выходного файла с текущим словом.
- Выводится общее количество слов с максимальным количеством цифр.
- Чтение файла завершается.
- Закрываются файлы
finиfout.