Для решения задачи на языке Pascal, нужно написать программу, которая будет анализировать входное сообщение и определять, какой символ встречается в нем чаще всего из заданных: ')', '(', '!', '.'.
Вот пример программы на Pascal, которая выполняет описанные действия:
program EmotionDetector;
uses SysUtils;
function DetectEmotion(message: string): string;
var
i: Integer;
countCloseParen, countOpenParen, countExclam, countDot: Integer;
maxCount: Integer;
begin
// Инициализация счетчиков
countCloseParen := 0;
countOpenParen := 0;
countExclam := 0;
countDot := 0;
// Подсчет символов в сообщении
for i := 1 to Length(message) do
begin
case message[i] of
')': Inc(countCloseParen);
'(': Inc(countOpenParen);
'!': Inc(countExclam);
'.': Inc(countDot);
end;
end;
// Определение максимального числа вхождений
maxCount := Max(Max(countCloseParen, countOpenParen), Max(countExclam, countDot));
// Определение эмоции на основе максимального числа вхождений
if (countCloseParen = maxCount) and (countCloseParen > 0) and
(countCloseParen > countOpenParen) and (countCloseParen > countExclam) and (countCloseParen > countDot) then
Result := 'Funny'
else if (countOpenParen = maxCount) and (countOpenParen > 0) and
(countOpenParen > countCloseParen) and (countOpenParen > countExclam) and (countOpenParen > countDot) then
Result := 'Sad'
else if (countExclam = maxCount) and (countExclam > 0) and
(countExclam > countCloseParen) and (countExclam > countOpenParen) and (countExclam > countDot) then
Result := 'Angry'
else if (countDot = maxCount) and (countDot > 0) and
(countDot > countCloseParen) and (countDot > countOpenParen) and (countDot > countExclam) then
Result := 'Deep'
else
Result := 'Unclear';
end;
var
message: string;
emotion: string;
begin
// Ввод сообщения пользователя
Write('Введите сообщение: ');
ReadLn(message);
// Определение эмоционального оттенка
emotion := DetectEmotion(message);
// Вывод результата
WriteLn('Эмоциональный оттенок сообщения: ', emotion);
end.
Объяснение работы программы:
Инициализация Счетчиков:
- Программа начинает с инициализации счетчиков для каждого из символов:
countCloseParen
для ')', countOpenParen
для '(', countExclam
для '!' и countDot
для '.'.
Подсчет Символов:
- Используется цикл
for
для перебора каждого символа в строке message
.
- С помощью конструкции
case of
программа увеличивает соответствующий счетчик при обнаружении одного из интересующих символов.
Определение Максимального Количества Вхождений:
- Используются функции
Max
для определения максимального значения среди всех счетчиков.
Определение Эмоции:
- Программа проверяет, какой из символов встречается чаще всего. Если есть символ с максимальным числом вхождений, программа возвращает соответствующую эмоцию.
- Если несколько символов имеют одинаковое максимальное количество вхождений, программа возвращает 'Unclear'.
Ввод и Вывод:
- Пользователь вводит сообщение, и программа выводит определенный эмоциональный оттенок на экран.
Эта программа является простым примером анализа текста на основе частоты появления определенных символов. В реальном приложении для анализа настроения или эмоционального оттенка сообщений можно использовать более сложные алгоритмы, такие как машинное обучение или обработка естественного языка (NLP).