- •Лабораторная работа № 5. Потоки и процессы в Microsoft Visual Studio.
- •Методы решения дифференциального уравнения
- •Лабораторная работа № 6. Динамически подключаемые библиотеки
- •6.1. Цель работы
- •6.2. Теоретические сведения
- •Лабораторная работа № 7 Обработка исключительных ситуаций в Visual c#
- •7.1. Цель работы
- •7.2. Теоретические сведения
- •1) Контролируемый блок – составной оператор, предваряемый ключе-
- •Организация удаленного взаимодействия при помощи технологии .Net
- •8.1. Цель работы
- •8.2. Теоретические сведения
Методы решения дифференциального уравнения
-
№ варианта
Название метода
1
Эйлера (ломанных)
2
Эйлера-Коши
3
Рунге-Кутта 4-порядка
4
Эйлера (ломанных)
5
Эйлера-Коши
6
Рунге-Кутта 4-порядка
7
Эйлера (ломанных)
8
Эйлера-Коши
9
Рунге-Кутта 4-порядка
10
Эйлера (ломанных)
11
Эйлера-Коши
12
Рунге-Кутта 4-порядка
13
Эйлера (ломанных)
14
Эйлера-Коши
15
Рунге-Кутта 4-порядка
Лабораторная работа № 6. Динамически подключаемые библиотеки
6.1. Цель работы
Научиться создавать динамические подключаемые библиотеки (DLL) при помощи Microsoft Visual Studio.
6.2. Теоретические сведения
Операционная система Windows исходно задумывалась как многозадач- ная, что означает возможность выполнения на одном персональном компьюте- ре (ПК) нескольких задач. Часто требуется, чтобы такие задачи взаимодейство- вали между собой, обменивались информацией, причем на основе стандартного
механизма, не требующего от программиста в разрабатываемом им приложе- нии реализации способа такого взаимодействия.
Самый простой способ обмена информацией между программами – это использование динамически подключаемых библиотек *.dll. Библиотека *.dll – это не программа, а хранилище программного кода (например, функций) и ре-сурсов (например, форм). Она подключается к программе динамически, после того как программа запущена. Использовать библиотеки *.dll очень удобно. Пусть, например, имеется программа прогнозирования некоего значения на ос- новании данных, вводимых пользователем. В этом случае будет целесообразно создать пользовательский интерфейс, а сам алгоритм расчета прогноза выде- лить в отдельную функцию и поместить его в библиотеку *.dll, подключаемую к программе. Если разработчик улучшит алгоритм прогнозирования, то пользо- вателям достаточно поменять только библиотеку *.dll, а вносить изменения в код, ответственный за интерфейс, вообще не придется.
Для создания библиотеки *.dll следует выбрать в меню пункт File ►New
►Project (шаблон Class Library). Далее в сгенерированный Visual Studio шаб- лон библиотеки следует добавить текст функции, которую требуется динамиче- ски подключать к программе. В листинге 6.1 приведен пример текста библио-
теки *.dll.
Листинг 6.1. Динамически подключаемая библиотека
using System;
using System.Collections.Generic;
using System.Text;
namespace ClassLibrary1
{
public class Class1
{
// текст функции, создаваемой программистом
public int summ(int i, int j)
{
// вычисляется сумма двух чисел
return i + j;
}
}
}
Для демонстрации возможности использования библиотеки *.dll созда-
дим программу, вызывающую функцию из этой библиотеки. Окно интерфейса программы приведено на рис. 6.1.
Рис. 6.1. Окно программы, использующей функцию из *.dll библиотеки
В этой программе два текстовых поля используются для ввода исходных слагаемых, третье для вывода результата работы функции. Текст программы, осуществляющий вызов библиотеки, приведен в листинге 6.2.
Листинг 6.2. Программа, использующая библиотеку *.dll
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data; using System.Drawing; using System.Text;
using System.Windows.Forms;
using ClassLibrary1; // Подключение библиотеки
namespace WindowsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// создается обьект класа библиотеки *.dll
ClassLibrary1.Class1 meLib = new Class1();
// вызывается функция из библиотеки
int result=meLib.summ(Convert.ToInt16(textBox1.Text), Convert.ToInt16(textBox2.Text));
textBox3.Text = result.ToString();
}
}
}
Предварительно к приложению надо подключить используемую библио-
теку, выбрав в меню пункт Project ►Add Reference ►Browse.
6.3. Программа работы
Создайте интерфейс программы, обеспечивающий работу простейшего калькулятора (должны выполняться четыре арифметических действия). В за- висимости от варианта задания (табл. 6.1) дополнить реализацию программы вычислением следующих функций (их реализацию поместить в динамическую
библиотеку *.dll):
1. Нахождения гиперболического синуса sh(x)=(ex-e-x)/2.
2. Нахождения гиперболического косинуса ch(x)= (ex+e-x)/2.
3. Нахождения обратного гиперболического синуса arcsh(x)=ln(x+(x2+1)1/2).
4. Нахождения обратного гиперболического косинуса arcch(x)=ln(x+(x2-1)1/2).
5. Нахождения интегрального синуса
.
где γ=0.57721566 – постоянная Эйлера.
7. Нахождения интегрального гиперболического синуса
.
.
9. Нахождения факториала n!
10. Нахождения гиперболического тангенса th(x)=sh(x)/ch(x).
11. Нахождения интегральной показательной функции по ее разложению в ряд
.
13. Нахождения сочетаний n элементов по m
14. Нахождения корней квадратного уравнения.
15. Нахождения решения системы двух линейных уравнений с двумя неиз- вестными.
Функции, помещаемые в библиотеку *.dll
Таблица 6.1
№ варианта |
№ функций |
№ варианта |
№ функций |
№ варианта |
№ функций |
1 |
1, 15 |
11 |
5, 12 |
21 |
1, 10 |
2 |
2, 14 |
12 |
6, 11 |
22 |
2, 9 |
3 |
3, 12 |
13 |
7, 10 |
23 |
3, 8 |
4 |
4, 11 |
14 |
8, 9 |
24 |
4, 7 |
5 |
5, 10 |
15 |
3, 15 |
25 |
5, 6 |
6 |
6, 9 |
16 |
4, 14 |
26 |
2, 13 |
7 |
7, 8 |
17 |
5, 13 |
27 |
3, 12 |
8 |
2, 15 |
18 |
6, 12 |
28 |
4, 11 |
9 |
3, 14 |
19 |
7, 11 |
29 |
5, 10 |
10 |
4, 13 |
20 |
8, 10 |
30 |
6, 9 |