В строках из файла определить буквы, на которые начинаются слова, в порядке убывания частоты их употребления - Free Pascal

Узнай цену своей работы

Формулировка задачи:

подскажите пожалуйста как определить буквы, на которые начинаются слова?!!! Дан текстовый файл f. В каждой строке определить буквы, на которые начинаются слова, в порядке убывания частоты их употребления. Результат выполненных действий сохранить в текстовом файле g.

Решение задачи: «В строках из файла определить буквы, на которые начинаются слова, в порядке убывания частоты их употребления»

textual
Листинг программы
  1. type
  2.   let=record
  3.     c:char;
  4.     n:integer;
  5.   end;
  6. var
  7.   f,g:text;
  8.   c:char;
  9.   s:string;
  10.   t:let;
  11.   l:array[byte] of let;
  12.   i:integer;
  13.   j,k:byte;
  14.   b:boolean;
  15. begin
  16.  assign(f,'f');
  17.  reset(f);
  18.   assign(g,'g');
  19.   rewrite(g);
  20.  while not eof(f) do begin
  21.    readln(f,s);b:=true;
  22.    for i:=1 to length(s) do begin
  23.      c:=s[i];
  24.      if not (c in ['a'..'z','A'..'Z','А'..'Я','а'..'я','ё','Ё']) then b:=true
  25.      else if b then begin
  26.         j:=ord(c);
  27.         inc(l[j].n);
  28.         l[j].c:=c;
  29.         b:=false;
  30.       end;
  31.     end;
  32.   for k:=0 to 254 do
  33.     for j:=k+1 to 255 do
  34.       if l[k].n<l[j].n then begin
  35.         t:=l[k];
  36.         l[k]:=l[j];
  37.         l[j]:=t;
  38.       end;
  39.       b:=false;
  40.   for k:=0 to 255 do
  41.     if l[k].n>0 then begin write(g,l[k].c);l[k].n:=0;b:=true;end;
  42.   writeln(g);
  43.  end;
  44.   close(f);
  45.   close(g);
  46. end.

Объяснение кода листинга программы

  1. Создаются типы данных: record let с полями c:char и n:integer;
  2. Определяются переменные:
    • f, g: text;
    • c: char;
    • s: string;
    • t: let;
    • l: array[byte] of let;
    • i: integer;
    • j, k: byte;
    • b: boolean.
  3. Открываются файлы f и g для чтения и записи соответственно;
  4. В цикле while считывается каждая строка из файла f;
  5. В каждой строке ищутся буквы, на которые начинается слово;
  6. Если буква не является буквой русского или английского алфавита, то она пропускается;
  7. Если буква уже была учтена, то увеличивается её частота в массиве l;
  8. В конце каждой буквы записывается в файл g;
  9. Закрываются файлы f и g.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы