Данара24
06.09.2020 15:48

Надо построить подробный алгоритм диалога с пользователем по школьным предметам. Возможный алгоритм может быть следующим: при запуске кода класс случайным образом выбирается из верхних (например, математика, история, наука, ...). Для каждого класса используются все предложения (которые были ранее закодированы с графического интерфейса пользователя) на основе их связанного свойства (имеет положительный результат, вопрос, ...). Могут быть добавлены другие свойства (например, ответ). Например, система может: 1) сказать положительное предложение по теме 2) задать вопрос 3) проверить правильность ответа 4) вернуться к 2, пока не будут заданы все вопросы (или максимальное количество вопросов). Когда тема была исследована, система должна использовать иерархическую структуру Ontology для изучения следующего класса, переходя более подробно, пока мы не дойдем до конца диалогового дерева.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
LRM999919
09.10.2022 09:19

Как-то так:

#include <iostream>


using namespace std;


// В данном примере я использовал типы float, т. к. при попытке делить 3 на 2 мы получаем 1.5, но тип int обрезает все после .


int main()

{

   cout << "Task 30240725!" << endl; // just for fun


   int m[12] = {-1,-2,3,4,5,6,7,8,9,10,11,12}; // Инициализируем массив из 12 элементов, чтоб хоть части из них была отрицательная


   // среднее арифметическое состоит из сумма_числел / кол-во_чисел


   float min_sum = 0;          // сумма чисел

   float total_min_count = 0;  // кол-во чисел


   // Инициализиуем цикл от 0 (т. к. все массивы начинаются с 0) до 12 не включительно (т. к. всего элементов 12 начиная с 0. Значит 11)

   for (int i = 0; i < 12; i++) {


       // если текущий элемент массива m от индекса i меньше чем 0, значит это отрицательное число

       if (m[i] < 0) {


           min_sum += m[i];    // складываем, непосредственно, само число m[i]

           total_min_count++;  // увеличиваем кол-во чисел на 1. Можно написать строку вида total_min_count = total_min_count + 1; - суть не поменяется


       }

   }


   // Если в массиве не было отрицательных чисел, то делаем проверку. Если кол_во_чисел и сумма_чисел равны 0 значит в массиве не было отрицательных чисел.

   // а т. к. по умолчанию min_sum и total_min_count равны 0, то при попытке поделить их получим ошибку. Для этого обрабатываем это условие, чтоб не дать ее допустить.

   if (total_min_count == 0 && min_sum == 0) {

       // Выкидываем сообщение, мол, нету в массиве отрицательных чисел, работать не буду

       cout << "There are no negative numbers in the array" << endl;


       // делаем return, дабы программа не продолжила выполнение

       return 0;

   }


   // если же у нас есть и кол-во_чисел и общая_сумма, то спокойно делим одно на другое и сразу выводим в консоль результат.

   cout << "Average: " << min_sum / total_min_count << endl;


   // завершаем выполнение программы

   return 0;

}

0,0(0 оценок)
Ответ:
крик56
30.06.2022 12:27
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
begin
  var s:=ReadInteger('n=').ToString.JoinIntoString('');
  Writeln('Цифр в числе- ',s.Length);
  Writeln('Сумма цифр- ',s.Select(d->Integer.Parse(d)).Sum);
  Writeln('Последняя цифра- ',s.Last);
  Writeln('Первая цифра- ',s.First);
  Writeln('Предпоследняя цифра- ',s[s.Length-1]);
  var m:=ReadInteger('m=');
  Write('Сумма ',m,' последних цифр числа- ');
  Writeln(s.Skip(s.Length-m).Select(d->Integer.Parse(d)).Sum);
  Write('Цифра 3 в запись числа ');
  if Pos('3',s)>0 then Writeln('входит')
  else Writeln('не входит');
  Writeln('Число в обратном порядке- ',s.Reverse.JoinIntoString(''));
  Writeln('Перестановка первой и последней цифр- ',
    s.Last+Copy(s,2,s.Length-2)+s.First);
end.

Тестовое решение:
n= 1063
Цифр в числе- 4
Сумма цифр- 10
Последняя цифра- 3
Первая цифра- 1
Предпоследняя цифра- 6
m= 2
Сумма 2 последних цифр числа- 9
Цифра 3 в запись числа входит
Число в обратном порядке- 3601
Перестановка первой и последней цифр- 3061
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота