Вопрос задан 01.09.2023 в 16:39. Предмет Информатика. Спрашивает Макарова Аня.

Дана непустая последовательность слов из строчных латинских букв; между соседними словами –

запятая, за последним словом – точка. Напечатать все буквы, которые входят в наибольшее количество слов этой последовательности. Писать на Pascal.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Калинин Егор.
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.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи на Pascal, вы можете использовать следующий код:

pascal
program 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.

Эта программа сначала считывает последовательность слов, разбивает их на отдельные слова, подсчитывает количество каждой буквы и находит буквы с наибольшим количеством вхождений. В результате выполнения программы будет выведена наиболее часто встречающаяся буква или буквы.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос