C++
Создайте 3 заголовочных файла, имена придумайте самостоятельно. В каждом файле предусмотрите защиту от повторного включения: в одном используйте директиву pragma
, в двух других реализуйте защиту через директиву ifndef
.
В первом файле реализуйте функцию принимающую одно целое число и возвращающую факториал этого число .
Во втором файле реализуйте функцию принимающую два аргумента: - вещественное число и - количество членов в разложении функции синус в ряд Тейлора:
В третьем файле реализуйте функцию принимающую два целых числа и ()и возвращающую количество сочетаний из по :
Второй и третий файлы должны включать (include) первый. Расчёт синуса и сочетаний обязательно реализовать с использованием функции расчёта факториала из первого файла.
Все три файла подключите к .cpp файлу вашего проекта. Воспользуйтесь написанными функциями и выведите:
Формат ввода
Нет ввода
Формат вывода
В первой строке выходных данных выведите строку "n", затем табуляция и "n!". В последующих 10 строках выведите значение и через табуляцию . Закончите вывод таблицы пустой строкой.
Затем выведите строку "x", табуляция и "sin(x)". В последующих 46 строках выведите значение и через табуляцию с точностью 4 значащих цифры. Для указания точности воспользуйтесь манипулятором setprecision. Закончите вывод таблицы пустой строкой.
Выведите строку "k", табуляция и "C(k, 10)". В последующих 10 строках выведите значение и через табуляцию .
Пример
Ввод | Вывод |
n n! 1 1 2 2 3 6 4 24 5 120 6 720 7 5040 8 40320 9 362880 10 3628800 |
Дан файл in.json
в формате json содержащий массив объектов следующего вида:
xxxxxxxxxx
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
Где поле userId
- это целое число, идентификатор пользователя ; id
- целое число, идентификатор (номер) записи в массиве ; title
- название задачи, строка состоящая символов латинского алфавита; completed
- логическое значение, указывает выполнена ли задача (true - выполнена, false - не выполнена).
Для каждого пользователя посчитайте количество выполненных задач и результат сохраните в файл out.json
в формате json. Данные должны быть представлены в виде массива объектов вида:
xxxxxxxxxx
{
"userId": 1,
"task_completed": 10
}
Где поле userId
- это целое число, идентификатор пользователя ; task_completed
- целое число, количество выполненных пользователем задач .
Для ознакомления с форматом json:
С++:
Для задания используйте библиотеку JSON for Modern C++: https://github.com/nlohmann/json. Для этого скачайте и подключите к проекту заголовочный файл json.hpp
расположенный в репозитории в каталоге single_include.
Чтение/запись из/в файла показаны в разделе To/from streams (e.g. files, string streams) во втором блоке кода. Но дополнительно нужно подключить библиотеку для работы с файлами #include <fstream>
.
Несколько примеров от автора библиотеки: итерирование по массиву и объекту, создание и заполнение массива. При работе с массивами можно использовать push_back, size и остальные методы стандартных контейнеров std.
Python:
Для задания используйте стандартный модуль json. Описание модуля на английском языке приведено в документации.
Про базовые способы работы с модулем json на руссом языке можно почитать тут: https://python-scripts.com/json.
Видео пример работы с модулем json: https://youtu.be/rIhygmw9HZM и https://youtu.be/Wt4WAcqEje8
Формат ввода
Ввод данных в программу осуществляется при помощи файла с названием in.json
. Гарантируется, что этот файл существует, располагается в том же каталоге, что и программа и содержит валидный json.
Формат вывода
Ввод данных из программы осуществляется в файл с названием out.json
. Файл должен создаваться в том же каталоге, что и программа и должен содержать валидный json. Визуальное форматирование, порядок объектов в массиве и порядок полей в объекте могут быть произвольными.
Пример
Входной файл | Выходной файл |
in.json | out.json |