Подсчитать количество повторений каждой буквы - 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.

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

  1. Объявляется массив «quantity» типа «Array[#65..#122] Of LongWord» для хранения количества повторений каждой буквы в тексте.
  2. Объявляется переменная файла «f» для открытия файла и переменная символа «c» для хранения каждого символа из файла.
  3. В цикле от #65 до #122 устанавливается начальное значение каждого элемента массива «quantity» равным 0.
  4. Задаётся файл «f» и открывается для чтения.
  5. Запускается цикл, пока не достигнут конец файла. Каждый символ файла считывается в переменную «c». Если символ является буквой от #65 до #122, то увеличивается соответствующий элемент массива «quantity» на 1.
  6. Файл закрывается. Переменная «c» устанавливается обратно в начальное значение #65.
  7. Запускается второй цикл, пока переменная «c» меньше #123. Здесь, если переменная «c» равна #91, она увеличивается на 6 (что пропускает все символы внутри скобок квадратных скобок). Затем выводится значение переменной «c» и количество повторений этой буквы из массива «quantity», и переменная «c» увеличивается на 1.

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


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

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

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