Типизированный файл, тип Char, нахождение нужной строки - Pascal

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

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

В типизированный файл записаны символы(File of Char), программа должна искать строчку lalala, в конце программа должна вывести количесво строчек,где есть lalala, при том, если строчка такая: lalalala, то у нас две строчки lalala. Будьте добры, подскажите, как это сделать.

Решение задачи: «Типизированный файл, тип Char, нахождение нужной строки»

textual
Листинг программы
const
  fName = 'la.txt';
var
  f : File of Char;
  ch : Char;
  trigerLA : Boolean;
  countLA  : Integer;
  resultLA : Integer;
  
procedure lalala(var count : Integer);
begin
  if count - 2 > 0 then
    resultLA := resultLA + (count - 2);
  count := 0;
end;
 
begin
  resultLA := 0;
  
  Assign(f, fName);
  Reset(f);
  trigerLA := False;
  countLA  := 0;
  while Not EOF(f) do
    begin
      Read(f, ch);
 
      { собственно считаем тут }
      if ch = 'l' then
        trigerLA := True
      else if (ch = 'a') and trigerLA then
        begin
          trigerLA := False;
          Inc(CountLA);
        end
      else
        begin
          trigerLA := False;
          lalala(CountLA);
        end;
 
    end;
  if CountLA > 0 then
    lalala(CountLa);
    
  Close(f);
  
  WriteLn(resultLA);
end.

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

  1. Переменная fName содержит имя файла, который нужно открыть.
  2. Переменная f является объектом типа File of Char, который представляет собой файловый объект, связанный с файлом fName.
  3. Переменная ch является символом типа Char, который представляет собой отдельный символ из файла.
  4. Переменная trigerLA является булевым значением, которое указывает, был ли найден символ 'l' в файле.
  5. Переменная countLA является целым числом, которое отслеживает количество символов 'l' в файле.
  6. Переменная resultLA является целым числом, которое содержит итоговый результат обработки файла.
  7. Функция lalala принимает целое число count в качестве параметра и увеличивает значение resultLA на count - 2.
  8. В начале цикла while Not EOF(f) выполняется следующее:
    • Чтение символа из файла f в переменную ch.
    • Проверка, равен ли символ 'l'. Если да, то устанавливается значение trigerLA в True.
    • Если символ не равен 'l', но trigerLA равно True, то устанавливается значение trigerLA в False и увеличивается значение CountLA на 1.
    • Если символ не равен 'l' и trigerLA равно False, то вызывается функция lalala с аргументом CountLA.
  9. После окончания цикла while Not EOF(f) выполняется следующее:
    • Закрытие файлового объекта f.
    • Вывод значения resultLA в консоль.

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


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

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

5   голосов , оценка 3.8 из 5
Похожие ответы