Подсчитать количество повторений каждой буквы - Pascal
Формулировка задачи:
У меня считает буквы на первой строке, выводит их в файл, потом считает на второй строке и опять выводит, а мне нужно общее количество каждой буквы в тексте, а не в строке. т.е если в файле написано
aaaa
aa
он должен вывести:a-kol-6
а у меня выводит следующее:a-kol-4
a-kol-2
Решение задачи: «Подсчитать количество повторений каждой буквы»
textual
Листинг программы
var quantity: Array[#65..#122] Of LongWord; f: File Of Char; c: Char; begin for c := #65 to #122 do quantity[c] := 0; Assign(f, 'f.txt'); ReSet(f); while Not (EoF(f)) do begin Read(f, c); if (c in [#65..#122]) then Inc(quantity[c]); end; Close(f); c := #65; while (c < #123) do begin if (c = #91) then Inc(c, 6); WriteLn(c, ' - ', quantity[c]); Inc(c); end; end.
Объяснение кода листинга программы
- Объявляется массив «quantity» типа «Array[#65..#122] Of LongWord» для хранения количества повторений каждой буквы в тексте.
- Объявляется переменная файла «f» для открытия файла и переменная символа «c» для хранения каждого символа из файла.
- В цикле от #65 до #122 устанавливается начальное значение каждого элемента массива «quantity» равным 0.
- Задаётся файл «f» и открывается для чтения.
- Запускается цикл, пока не достигнут конец файла. Каждый символ файла считывается в переменную «c». Если символ является буквой от #65 до #122, то увеличивается соответствующий элемент массива «quantity» на 1.
- Файл закрывается. Переменная «c» устанавливается обратно в начальное значение #65.
- Запускается второй цикл, пока переменная «c» меньше #123. Здесь, если переменная «c» равна #91, она увеличивается на 6 (что пропускает все символы внутри скобок квадратных скобок). Затем выводится значение переменной «c» и количество повторений этой буквы из массива «quantity», и переменная «c» увеличивается на 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д