- •Лабораторная работа n 6
- •1. Цель работы.
- •2. Задание.
- •3. Отчет.
- •Лабораторная работа n 7
- •1. Цель работы.
- •2. Задание.
- •3. Отчет.
- •Лабораторная работа n 8
- •1. Цель работы.
- •2. Задание.
- •3. Отчет.
- •Лабораторная работа n 9
- •1. Цель работы.
- •2. Задание.
- •Формат функций для совместной работы приложений с библиотеками
- •Внутренняя функция:
- •Пример получения данных из библиотеки
- •3. Отчет.
- •Лабораторная работа n 10
- •1. Цель работы.
- •2. Задание.
- •3. Отчет.
3. Отчет.
Отчет должен содержать следующие разделы: титульный лист, задание, текст программы, примеры (с показом хэш-данных), вывод.
Лабораторная работа n 9
по дисциплине "Теория и технология программирования"
на тему: "Использование библиотек динамической компоновки"
1. Цель работы.
Цель задания – Ознакомиться с возможностью и методами использования библиотек динамической компоновки dll (Dynamic Linked Library).
2. Задание.
Написать программу в которой для вычисления функции, используется динамически подключенная библиотека dll. Вычисление ряда проводить до условия минимизации значения разности двух соседних членов ряда меньше заданного эпсилон. Вычислить значения невязки значений рядной и стандартной Windows ("math.h") функций , проанализировать динамику изменения значения невязки в зависимости от количества слагаемых в ряде. Для остановки счета рядов необходимо использовать следующее условие: .
Вариант заданной собственной функции:
Вычисление ;
Вычисление exp(x), ;
число е, ;
число пи, ;
Вычисление sin2(x), ;
Вычисление cos2(x), ;
Вычисление ;
Вычисление sin(x), ;
Вычисление cos(x) ;
Вычисление cos3(x), ;
Вычисление cosec2(x), , ;
Вычисление квадратного корня;
Вычисление sec2(x);
Вычисление ex(1+x);
Вычисление кубического корня;
Возведение в квадрат и куб;
Вычисление esin(x);
Вычисление ecos(x);
Вычисление etg(x);
Вычисление earcsin(x);
Для каждой из предложенных функций существует соответствующие степенные ряды. Вычисление функций производить с помощью их.
В работе должны вводиться с клавиатуры следующие переменные:
Точность , границы промежутка вычисления и шаг , значение для точного расчета.
В результате работы на экране пользователя должно быть выведена таблица с вычислением значения функции в интервале для заданной точности :
x |
MyFunction(x) |
Function(x) |
|
|
|
|
|
|
|
|
|
|
|
|
|
Имя функции в таблице (Function) должно передаваться из библиотеки и должно изменяться при замене файла dll на файл другого варианта.
Далее пользователю должно быть предложено ввести значение и выведена таблица с вычислением значения функции для заданного для различных значений точности (в диапазоне 10-1 - 10-7)
|
MyFunction(x) |
Function(x) |
|
0.1 |
|
|
|
|
|
|
|
0.0000001 |
|
|
|
Формат функций для совместной работы приложений с библиотеками
Для корректной совместной работы приложения и dll, в проекте библиотеки необходимо использовать следующий формат функций:
double myf_группа(double /*1 параметр*/, double /*2 параметр*/, double /*точность*/)
//Возвращает значение собственной функции. В теле функции myf_группа
//должен быть вызов внутренней функции family_func, в которой будет
//производится вычисление "рядной" функции.
//В функции myf_группа вместо имени "группа" должна быть выполнена
//подстановка дроби вашей группы (1,2,3)
double myf_math(double /*1 параметр*/, double /*2 параметр*/)
//Возвращает значение математической функции
char * FName();
//Возвращает строку названия функции