Текстовые файлы. Посчитать сколько содержится в файле символов, строк и слов - Pascal ABC
Формулировка задачи:
Посчитать сколько содержится в файле символов, строк и слов.
Разделителями слов считать пробелы и перенос строки
Решение задачи: «Текстовые файлы. Посчитать сколько содержится в файле символов, строк и слов»
textual
Листинг программы
var f: file of char; fname: string; ch: char; n, line, w: word; flag: boolean; begin write('File address&name: '); readln(fname); assign(f, fname); reset(f); n := 0; line := 0; w := 0; flag := false; while not EOF(f) do begin read(f, ch); if ord(ch) = 13 then begin read(f, ch); line := line + 1; flag := false; end else begin n := n + 1; if ch = ' ' then flag := false else if flag = false then begin w := w+1; flag := true; end; end; end; if n <> 0 then line := line + 1; writeln(n); writeln(line); writeln(w); readln; end.
Объяснение кода листинга программы
- Объявление переменных:
- f: file of char; - файловый указатель
- fname: string; - имя файла
- ch: char; - текущий символ
- n, line, w: word; - счётчики для подсчёта количества символов, строк и слов соответственно
- flag: boolean; - флаг для определения текущего элемента (символ/слово)
- Ввод имени файла с помощью функции readln() и его открытие с помощью функции assign()
- Начало цикла while, который выполняется до тех пор, пока не достигнет конца файла (EOF)
- Внутри цикла, каждый символ считывается с помощью функции read(f, ch)
- Если текущий символ является символом новой строки (13), то увеличивается счётчик строк и сбрасывается флаг flag := false
- Если текущий символ не является символом новой строки, то проверяется его значение:
- Если символ равен пробелу, то флаг flag := false
- Если флаг равен false, то увеличивается счётчик слов и флаг flag := true
- После окончания цикла, если счётчик символов n не равен нулю, то увеличивается счётчик строк line на 1
- Вывод результатов подсчёта количества символов, строк и слов с помощью функции writeln()
- Завершение программы с помощью функции readln()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д