
Вопрос задан 01.09.2023 в 16:39.
Предмет Информатика.
Спрашивает Макарова Аня.
Дана непустая последовательность слов из строчных латинских букв; между соседними словами –
запятая, за последним словом – точка. Напечатать все буквы, которые входят в наибольшее количество слов этой последовательности. Писать на Pascal.

Ответы на вопрос

Отвечает Калинин Егор.
Var
a : array['a'..'z'] of integer;
t : array['a'..'z'] of boolean;
m : integer;
c : char;
begin
m := 0;
for c := 'a' to 'z' do
a[c] := 0;
repeat
for c := 'a' to 'z' do
t[c] := false;
read(c);
while (c <> ',') and (c <> '.') do
begin
if not t[c] then
begin
a[c] := a[c] + 1;
if a[c] > m then
m := a[c];
t[c] := true
end;
read(c)
end
until c = '.';
for c := 'a' to 'z' do
if a[c] = m then
write(c,' ')
end.
a : array['a'..'z'] of integer;
t : array['a'..'z'] of boolean;
m : integer;
c : char;
begin
m := 0;
for c := 'a' to 'z' do
a[c] := 0;
repeat
for c := 'a' to 'z' do
t[c] := false;
read(c);
while (c <> ',') and (c <> '.') do
begin
if not t[c] then
begin
a[c] := a[c] + 1;
if a[c] > m then
m := a[c];
t[c] := true
end;
read(c)
end
until c = '.';
for c := 'a' to 'z' do
if a[c] = m then
write(c,' ')
end.



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения этой задачи на Pascal, вы можете использовать следующий код:
pascalprogram MostFrequentLetters; const MAX_WORDS = 1000; // Максимальное количество слов в последовательности MAX_LENGTH = 100; // Максимальная длина слова var inputStr: string; words: array [1..MAX_WORDS] of string; lettersCount: array ['a'..'z'] of integer; i, j, maxCount: integer; mostFrequentLetters: string; procedure InitializeLettersCount; var ch: char; begin for ch := 'a' to 'z' do lettersCount[ch] := 0; end; procedure FindMostFrequentLetters; var word: string; ch: char; begin for i := 1 to length(inputStr) do begin if inputStr[i] = ',' then begin // Нашли разделитель - обработать слово for ch in word do if ch in ['a'..'z'] then lettersCount[ch] := lettersCount[ch] + 1; word := ''; end else if inputStr[i] = '.' then begin // Достигли конца последовательности - обработать последнее слово for ch in word do if ch in ['a'..'z'] then lettersCount[ch] := lettersCount[ch] + 1; break; end else word := word + inputStr[i]; end; end; begin Write('Введите последовательность слов: '); Readln(inputStr); // Инициализируем массив счетчиков букв InitializeLettersCount; // Разбиваем введенную строку на слова i := 1; j := 1; while i <= length(inputStr) do begin while (i <= length(inputStr)) and (inputStr[i] <> ',') and (inputStr[i] <> '.') do begin words[j] := words[j] + inputStr[i]; i := i + 1; end; j := j + 1; i := i + 1; end; // Находим наибольшее количество букв FindMostFrequentLetters; // Определяем буквы с максимальным количеством вхождений maxCount := 0; mostFrequentLetters := ''; for i := 1 to MAX_WORDS do for ch := 'a' to 'z' do if lettersCount[ch] > maxCount then begin maxCount := lettersCount[ch]; mostFrequentLetters := ch; end else if lettersCount[ch] = maxCount then mostFrequentLetters := mostFrequentLetters + ch; // Выводим результат Writeln('Наибольшее количество букв: ', mostFrequentLetters); end.
Эта программа сначала считывает последовательность слов, разбивает их на отдельные слова, подсчитывает количество каждой буквы и находит буквы с наибольшим количеством вхождений. В результате выполнения программы будет выведена наиболее часто встречающаяся буква или буквы.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili