using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MyLib
{
///Обчислення математичних фунцій
public class MySin
{
/// <summary>
/// Sin(x)
/// </summary>
/// <param name="x">кут в радіанах – перший аргумент функції Sin</param>
///<param name="n">показник ступеня – другий аргумент функції Sin</param>
/// <returns>Повертає значення функції Sin для заданого кута</returns>
public static double Sin(double x, int n)
{
double result = 0;
for (int i = 0; i < n; i++)
{
result = result + (Math.Pow((-1), i) * Math.Pow(x, (2 * i + 1))) / F(2 * i + 1);
}
return result;
}
static double F(int n)
{
double tmp = 1;
for (int i = 1; i <= n; i++)
{
tmp = tmp * i;
}
return tmp;
}
}
}
Побудуйте Рішення, що містить проект, для чого в Головному меню виберіть пункт Build|Build Solution. В результаті успішної компіляції буде побудований файл з розширенням dll. Оскільки побудована збірка не містить виконуваного файлу, то безпосередньо запустити наш проект на виконання не удасться. Побудуємо консольний проект, до якого приєднаємо нашу DLL, і протестуємо, наскільки коректно працюють створені нами методи.
Створення консольного проекту для тестування функції з бібліотеки
|
|
Виберіть пункт меню File|New|Project, задайте тип проекту ConsoleApplication, назвіть йому – ConsoleMySin, вкажіть, що проект додається до існуючого Рішення Lab1. В результаті у вже існуюче Рішення додасться ще один проект.
Напишіть код, який викликає реалізовану функцію Sin(x,n), стандартну функцію Sin(x), обчислює похибку і виводить результат на консоль.
Лістинг 1.2. Консольний застосунок, який викликає бібліотечний метод
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleMySin
{
class Program
{
/// <summary>
/// Виклик бібліотечного методу Sin(x,n) з MySin.dll
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
Console.WriteLine("Введите x- угол в радианах");
double x = double.Parse(Console.ReadLine());
Console.WriteLine("Введите показатель степени n");
int n = int.Parse(Console.ReadLine());
//вызов метода вычисления sin(x) из библиотеки
double my_sinus = MyLib.MySin.Sin(x, n);
//вызов метода из класса Math
double sinus = Math.Sin(x);
double delta = sinus - my_sinus;
Console.WriteLine("my_sinus= {0},sin={1},delta={2}", my_sinus, sinus, delta);
Console.ReadKey();
}
}
}
Побудуємо рішення і отримаємо повідомлення про помилку. Наша бібліотека не підключена до проекту.