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

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

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

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

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

textual
Листинг программы
{$MODE TP}
const
    separators: Set Of Char = [' ', '.', ',', ';', ':', '!', '?'];
var
    f, g: Text;
    s, sWord: String;
    c: Char;
begin
    Assign(f, 'f.txt'); ReSet(f);
    Assign(g, 'g.txt'); ReWrite(g);
    Write('Input char: '); ReadLn(c);
    while (Not EoF(f)) do
    begin
        ReadLn(f, s);
        s := s + ' '; sWord := '';
        while (Length(s) > 0) do
        begin
            if (s[1] in separators)
            then
            begin
                if (sWord[1] = c)
                then
                    WriteLn(g, sWord);
                sWord := '';
            end
            else
                sWord := sWord + s[1];
            Delete(s, 1, 1);
        end;
    end;
    Close(f); Close(g);
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
Похожие ответы