В строках из файла определить буквы, на которые начинаются слова, в порядке убывания частоты их употребления - Free Pascal
Формулировка задачи:
подскажите пожалуйста как определить буквы, на которые начинаются слова?!!!
Дан текстовый файл f. В каждой строке определить буквы, на которые начинаются слова, в порядке убывания частоты их употребления. Результат выполненных действий сохранить в текстовом файле g.
Решение задачи: «В строках из файла определить буквы, на которые начинаются слова, в порядке убывания частоты их употребления»
textual
Листинг программы
- type
- let=record
- c:char;
- n:integer;
- end;
- var
- f,g:text;
- c:char;
- s:string;
- t:let;
- l:array[byte] of let;
- i:integer;
- j,k:byte;
- b:boolean;
- begin
- assign(f,'f');
- reset(f);
- assign(g,'g');
- rewrite(g);
- while not eof(f) do begin
- readln(f,s);b:=true;
- for i:=1 to length(s) do begin
- c:=s[i];
- if not (c in ['a'..'z','A'..'Z','А'..'Я','а'..'я','ё','Ё']) then b:=true
- else if b then begin
- j:=ord(c);
- inc(l[j].n);
- l[j].c:=c;
- b:=false;
- end;
- end;
- for k:=0 to 254 do
- for j:=k+1 to 255 do
- if l[k].n<l[j].n then begin
- t:=l[k];
- l[k]:=l[j];
- l[j]:=t;
- end;
- b:=false;
- for k:=0 to 255 do
- if l[k].n>0 then begin write(g,l[k].c);l[k].n:=0;b:=true;end;
- writeln(g);
- end;
- close(f);
- close(g);
- end.
Объяснение кода листинга программы
- Создаются типы данных: record let с полями c:char и n:integer;
- Определяются переменные:
- f, g: text;
- c: char;
- s: string;
- t: let;
- l: array[byte] of let;
- i: integer;
- j, k: byte;
- b: boolean.
- Открываются файлы f и g для чтения и записи соответственно;
- В цикле while считывается каждая строка из файла f;
- В каждой строке ищутся буквы, на которые начинается слово;
- Если буква не является буквой русского или английского алфавита, то она пропускается;
- Если буква уже была учтена, то увеличивается её частота в массиве l;
- В конце каждой буквы записывается в файл g;
- Закрываются файлы f и g.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д