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

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

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

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

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

textual
Листинг программы
  1. const
  2.   fName = 'la.txt';
  3. var
  4.   f : File of Char;
  5.   ch : Char;
  6.   trigerLA : Boolean;
  7.   countLA  : Integer;
  8.   resultLA : Integer;
  9.  
  10. procedure lalala(var count : Integer);
  11. begin
  12.   if count - 2 > 0 then
  13.     resultLA := resultLA + (count - 2);
  14.   count := 0;
  15. end;
  16.  
  17. begin
  18.   resultLA := 0;
  19.  
  20.   Assign(f, fName);
  21.   Reset(f);
  22.   trigerLA := False;
  23.   countLA  := 0;
  24.   while Not EOF(f) do
  25.     begin
  26.       Read(f, ch);
  27.  
  28.       { собственно считаем тут }
  29.       if ch = 'l' then
  30.         trigerLA := True
  31.       else if (ch = 'a') and trigerLA then
  32.         begin
  33.           trigerLA := False;
  34.           Inc(CountLA);
  35.         end
  36.       else
  37.         begin
  38.           trigerLA := False;
  39.           lalala(CountLA);
  40.         end;
  41.  
  42.     end;
  43.   if CountLA > 0 then
  44.     lalala(CountLa);
  45.    
  46.   Close(f);
  47.  
  48.   WriteLn(resultLA);
  49. 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

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

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

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