Решите задачу на паскале Недавно школьник Петя придумал классную идею для своего стартапа. Идея состоит...

Тематика Информатика
Уровень 10 - 11 классы
Паскаль программа эмоциональный анализ социальные сети стартап алгоритм символы сообщения весело грустно раздражение глубокомысленность неясность.
0

Решите задачу на паскале Недавно школьник Петя придумал классную идею для своего стартапа. Идея состоит в том, чтобы написать программу, которая определяет эмоциональный оттенок сообщений пользователей из всем известной социальной сети. Петя считает, что думать над качественным решением задачи нет смысла — ведь приложение нужно как можно скорее выбросить на рынок, пока этого не сделали конкуренты. Поэтому в первой версии Петя собирается использовать следующий алгоритм: • Сначала в сообщении нужно посчитать количество символов «)», «(», «!» и «.». • Если в сообщении больше всего символов «)» — значит автору сообщения весело, и программа должна вывести «Funny». • Если в сообщении больше всего символов «(» — значит автору сообщения грустно, и програм- ма должна вывести «Sad». • Если в сообщении больше всего символов «!» — значит автор сообщения раздражен, и про- грамма должна вывести «Angry». • Если в сообщении больше всего символов «.» — значит перед нами какое-то глубокомысленное сообщение с большим числом многоточий, и программа должна вывести «Deep». • Если каких-либо наиболее число встречающихся символов (из перечисленных выше) поровну — то тогда эмоция сообщения не понятна и программа должны вывести «Unclear».

avatar
задан месяц назад

2 Ответа

0

Для решения задачи на языке 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.

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

  1. Инициализация Счетчиков:

    • Программа начинает с инициализации счетчиков для каждого из символов: countCloseParen для ')', countOpenParen для '(', countExclam для '!' и countDot для '.'.
  2. Подсчет Символов:

    • Используется цикл for для перебора каждого символа в строке message.
    • С помощью конструкции case of программа увеличивает соответствующий счетчик при обнаружении одного из интересующих символов.
  3. Определение Максимального Количества Вхождений:

    • Используются функции Max для определения максимального значения среди всех счетчиков.
  4. Определение Эмоции:

    • Программа проверяет, какой из символов встречается чаще всего. Если есть символ с максимальным числом вхождений, программа возвращает соответствующую эмоцию.
    • Если несколько символов имеют одинаковое максимальное количество вхождений, программа возвращает 'Unclear'.
  5. Ввод и Вывод:

    • Пользователь вводит сообщение, и программа выводит определенный эмоциональный оттенок на экран.

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

avatar
ответил месяц назад
0

Для решения данной задачи на языке программирования Pascal необходимо написать программу, которая будет считывать сообщение от пользователя и подсчитывать количество символов «)», «(», «!» и «.». Затем программа должна определить, какой из символов встречается чаще всего и вывести соответствующую эмоцию.

Пример кода на языке Pascal:

program EmotionDetector;

var
  message: string;
  countHappy, countSad, countAngry, countDeep, totalCount: integer;
  i: integer;
  emotion: string;

begin
  countHappy := 0;
  countSad := 0;
  countAngry := 0;
  countDeep := 0;
  
  write('Enter your message: ');
  readln(message);
  
  totalCount := length(message);
  
  for i := 1 to totalCount do
  begin
    case message[i] of
      ')': countHappy := countHappy + 1;
      '(': countSad := countSad + 1;
      '!': countAngry := countAngry + 1;
      '.': countDeep := countDeep + 1;
    end;
  end;
  
  if (countHappy > countSad) and (countHappy > countAngry) and (countHappy > countDeep) then
    emotion := 'Funny'
  else if (countSad > countHappy) and (countSad > countAngry) and (countSad > countDeep) then
    emotion := 'Sad'
  else if (countAngry > countHappy) and (countAngry > countSad) and (countAngry > countDeep) then
    emotion := 'Angry'
  else if (countDeep > countHappy) and (countDeep > countSad) and (countDeep > countAngry) then
    emotion := 'Deep'
  else
    emotion := 'Unclear';
  
  writeln('Emotion detected: ', emotion);
  
end.

Этот код считывает сообщение от пользователя, подсчитывает количество встречающихся символов и определяет эмоцию сообщения в соответствии с заданным алгоритмом.

avatar
ответил месяц назад

Ваш ответ

Вопросы по теме