Записывать в файл все слова, начинающиеся с заданной буквы - Turbo Pascal

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

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

Написать программу, которая записывает в файл все слова, начинающиеся с задаваемой с клавиатуры буквы из исходного текстового файла. Словом считать набор символов, не содержащий пробелов, знаком препинания и ограниченный пробелами, знаками препинания или началом/концом строки. Если исходный файл не содержит подходящих слов, то оставить результирующий файл пустым.

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

textual
Листинг программы
  1. {$MODE TP}
  2. const
  3.     separators: Set Of Char = [' ', '.', ',', ';', ':', '!', '?'];
  4. var
  5.     f, g: Text;
  6.     s, sWord: String;
  7.     c: Char;
  8. begin
  9.     Assign(f, 'f.txt'); ReSet(f);
  10.     Assign(g, 'g.txt'); ReWrite(g);
  11.     Write('Input char: '); ReadLn(c);
  12.     while (Not EoF(f)) do
  13.     begin
  14.         ReadLn(f, s);
  15.         s := s + ' '; sWord := '';
  16.         while (Length(s) > 0) do
  17.         begin
  18.             if (s[1] in separators)
  19.             then
  20.             begin
  21.                 if (sWord[1] = c)
  22.                 then
  23.                     WriteLn(g, sWord);
  24.                 sWord := '';
  25.             end
  26.             else
  27.                 sWord := sWord + s[1];
  28.             Delete(s, 1, 1);
  29.         end;
  30.     end;
  31.     Close(f); Close(g);
  32. end.

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

  1. В начале объявляются необходимые переменные: f, g — текстовые файлы, s, sWord — строки, c — символ.
  2. Затем устанавливаются ссылки на файлы: Assign(f, 'f.txt'); ReSet(f); Assign(g, 'g.txt'); ReWrite(g);
  3. Выводится запрос на ввод символа.
  4. В цикле while считывается строка из файла f и добавляется в s, затем в sWord.
  5. Если второй символ строки является одним из разделителей (',.!?'), то проверяется, начинается ли sWord с заданного символа. Если да, то записывается в файл g, затем sWord очищается.
  6. Если второй символ не является разделителем, то он добавляется к sWord.
  7. После завершения цикла while, файлы закрываются.

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


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

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

11   голосов , оценка 3.636 из 5

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

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

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