Найдите наиболее часто встречающиеся буквы в строке, которая вводится с клавиатуры и содержит как русские

  • 46
Найдите наиболее часто встречающиеся буквы в строке, которая вводится с клавиатуры и содержит как русские, так и латинские символы. PascalABC.NET
Pechka
43
Хорошо, чтобы решить данную задачу, нам понадобится написать программу на языке PascalABC.NET. Давайте пошагово разберемся, как это сделать:

1. Сначала мы будем использовать переменную-счетчик для каждой буквы алфавита, чтобы подсчитать, сколько раз она встречается в строке. Создайте массив целых чисел для хранения счетчиков, где каждый элемент массива будет соответствовать определенной букве алфавита. Инициализируйте все элементы массива нулями.

Например:
var counters: array["A".."Z"] of integer;
i: char;

2. Теперь мы будем считывать строку с клавиатуры. Используйте функцию Readln для этого.

Например:
var inputString: string;
...
Readln(inputString);

3. После считывания строки, мы будем проходить по каждому символу строки и увеличивать соответствующий счетчик в массиве.

Например:
for i := 1 to Length(inputString) do
begin
if (inputString[i] in ["A".."Z"]) or (inputString[i] in ["a".."z"]) then
counters[UpCase(inputString[i])] := counters[UpCase(inputString[i])] + 1;
end;

4. Теперь у нас есть массив счетчиков, в котором каждый элемент указывает, сколько раз встречается соответствующая буква алфавита. Нам нужно найти наиболее часто встречающиеся буквы. Для этого создадим еще одну переменную, которая хранит наибольшее значение счетчика.

Например:
var maxCount: integer;
...
maxCount := maxint;

5. Пройдем по всем элементам массива счетчиков и найдем наибольшее значение счетчика.

Например:
for i := "A" to "Z" do
begin
if counters[i] > maxCount then
maxCount := counters[i];
end;

6. Теперь у нас есть наибольшее значение счетчика. Пройдем по всем элементам массива счетчиков и выведем буквы с наибольшим значением счетчика.

Например:
for i := "A" to "Z" do
begin
if counters[i] = maxCount then
WriteLn("Наиболее часто встречающаяся буква: ", i);
end;

7. Вот и всё! Теперь программа найдет наиболее часто встречающиеся буквы в введенной строке и выведет их на экран.

Вот полный код программы:

pascal
var
counters: array["A".."Z"] of integer;
i: char;
inputString: string;
maxCount: integer;

begin
for i := "A" to "Z" do
counters[i] := 0;

Readln(inputString);

for i := 1 to Length(inputString) do
begin
if (inputString[i] in ["A".."Z"]) or (inputString[i] in ["a".."z"]) then
counters[UpCase(inputString[i])] := counters[UpCase(inputString[i])] + 1;
end;

maxCount := 0;
for i := "A" to "Z" do
begin
if counters[i] > maxCount then
maxCount := counters[i];
end;

for i := "A" to "Z" do
begin
if counters[i] = maxCount then
WriteLn("Наиболее часто встречающаяся буква: ", i);
end;
end.


Если у вас есть еще вопросы, пожалуйста, спросите!