Файл: Справочник для опытных и как пособие для начинающих программистов. Компактдиск содержит исходные коды примеров из книги.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 951
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Pi ().
Для этого перейдем на вкладку программного кода Form1.cs и напишем программный код, приведенный в листинге 9.3.
Листинг 9.3. Обращение к одной из функций MS Excel
// Программа обращается к одной простой функции объектной библиотеки
// MS Excel для получения значения числа Пи = 3,14
using System.Windows.Forms;
// Другие директивы using удалены, поскольку они не используются в данной программе
namespace ЕхсеlПи
{ // Чтобы добавить ссылку на объектную библиотеку Excel, в пункте меню
// Project выберем команду. Add Reference. Затем, если на вашем компьютере
// установлен MS Office 2007, то на вкладке СОМ дважды щелкнем по ссылке
// на библиотеку Microsoft Excel 12.0 Object Library,
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Создание экземпляра класса Excel.Application
var xl = new Microsoft.Office.Interop.Excel.Application();
double PI = xl.WorksheetFunction.Pi();
// Выводим значение ПИ в строку заголовка формы
this.Text = "PI = " + pi;
}
}
}
Как видно, сразу после вызова метода InitializeComponent при обработке бытия загрузки формы создается объект Excel.Application, с помощью которого( имеем доступ для одной из функций MS Excel, возвращающей число π = 3,14.
Результат работы программы показан на рис. 9.4.
Рис. 9.4. Вывод числа л в заголовок формы
Убедиться в работоспособности программы можно, открыв решение ЕхсеlПи.sln в папке ЕхсеlПи.
Пользоваться функциями MS Excel в Сопрограмме очень перспективно. Например, оцените возможность решать сложнейшие в математическом смысле операционные задачи (т. е. задачи нахождения максимума/минимума с набором ограничений), доступные в MS Excel через Сервис | Поиск решения.
Пример 57. Использование финансовой функции MS Excel
Рассмотрим еще один пример обращения к функциям MS Excel из программы на С# 2010. Допустим, вы взяли кредит на покупку квартиры 100 тыс. долларов под 15% годовых, срок погашения кредита— 10 лет. Требуется узнать сумму, которую вы вынуждены будете платить ежемесячно. В русскоязычном MS Excel для подобных расчетов есть функция ПЛТ(), на вход которой следует подать месячную процентную ставку (т. е. в нашем случае 0.15/12), срок погашения кредита в месяцах (120 месяцев) и размер кредита ($100 тыс.). Аналогом функции ПЛТ() является функция (метод) Pmt() класса WorksheetFunction, которая имеет такие же аргументы. Таким образом, мы можем написать
С# -программу с обращением к функции Pmt() и проверить результат в русскоязычной версии MS Excel. Список всех методов (функций) объекта WorksheetFunction с описанием аргументов можно найти по адресу: http://msdn.microsoft.com/en-us/library/bb225774.aspx.
Для программирования обращений к этим функциям из программы, созданной в Visual Studio 2010, важно найти соответствие русскоязычных функций MS Excel и их аналогов в объекте WorksheetFunction для отладки на тестовых примерах.
Запустим Visual Studio 2010, далее закажем новый проект из шаблона Windows Forms Application С#. В проектируемую экранную форму из панели Toolbox перенесем три метки, три текстовых поля (для ввода трех вышеперечисленных аргументов функции Pmt() и кнопку. В текущий проект подключаем библиотеку объектов MS Excel. Для этого в меню Project выберем команду Add Reference, затем на вкладке СОМ дважды щелкнем на ссылке Microsoft Excel 12.0 Object Library. Теперь можно перейти к программному коду, приведенному в листинге 9.4.
Листинг 9.4. Использование финансовой функции MS Excel
//Программа использует финансовую функцию Pmt() объектной библиотеки
//MS Excel для вычисления суммы периодического платежа на основе
// Постоянства сумм платежей и постоянства процентной ставки
using System;
using System.Windows.Forms;
// Другие директивы using удалены, поскольку они не используются в данной программе
namespace ЕхсеlПлт
{
// Для подключения библиотеки объектов MS Excel в пункте меню Project
// выберем команду Add Reference. Затем, если на вашем компьютере
// установлен MS Office 2007, то на вкладке СОМ дважды щелкнем по ссылке
//на библиотеку Microsoft Excel 12.0 Object Library
public partial class Form1:Form
{
public Form1()
{
InitializeComponent();
Label1.Text = "Год. ставка в %"; label2.Text = "Срок в месяцах"; label3.Text = "Размер кредита";
textBox1.Clear();textBox2.Clear();textBox3.Clear();
this.Text = "Расчет ежемесячных платежей";button1.Text = "Расчет"
}
private void button1_Click(object sender, EventArgs e)
{
try
{
var XL = new Microsoft.Office.Interop.Excel.Application() ;
double pay = XL.WorksheetFunction.Pmt(
(Convert.ToDouble(textBoxl.Text)) / 1200,
Convert.ToDouble(textBox2.Text),
Convert.ToDouble(textBox3.Text));
// ИЛИ, если использовать функцию Pmt() из Microsoft.VisualBasic
//double pay = Microsoft.VisualBasic.Financial.Pmt(
// (Convert.ToDouble(textBoxl.Text)) / 1200,
// Convert.ToDouble(textBox2.Text),
// Convert.ToDouble(textBox3.Text));
string ss = String.Format(
"Каждый месяц следует платить {0:$#.##} долларов",
Math.Abs(pay)); MessageBox.Show(ss);
}
catch(Exception Ситуация)
{
MessageBox.Show(Ситуация.Message, "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
}
}
Как видно из текста программы, сразу после вызова метода InitializeComponentочищаются (clear) текстовые поля, а также подписываются названия этих полей с помощью меток label1—iabel3 и присваивается название кнопки Button1.
Рис. 9.5. Расчет ежемесячных платежей
Убедиться в работоспособности программы можно, открыв решение ExcelПлт.sln в папке ExcelПлт.
В данном примере на простом примере мы рассмотрели, как легко подключиться к библиотеке объектов MS Excel и пользоваться ее функциями. Однако Функция Pmt() имеется также в среде Visual Studio 2010 в пространстве имен Microsoft .VisualBasic. Financial точно с такими же параметрами. (Более того, эта функция была еще в Visual Basic 6.) Для обращения к этой функции потребовалось бы подключение к Visual Basic, как мы это делали в примере 14 (см. глава2). То есть следовало бы в проект добавить ссылку на библиотеку Microsoft.VisualBasic.dll. Для этого в пункте меню Project надо выбрать команду Аdd Reference, а на вкладке .NET дважды щелкнуть на ссылке Microsoft.VisualBasic. В этом случае можно было бы обращаться к функции Pmt(), как это представлено в комментарии. Однако в данном примере показана принципиальная возможность работы с функциями MS Excel из С#-программы.
Пример 58. Решение системы уравнений р с помощью функций MS Excel
Используя функции MS Excel, в своей программе, созданной в Visual С#2011 можно решать и более серьезные задачи. Например, рассмотрим, как решить ] I тему линейных алгебраических уравнений:
X1 + X2 + X3 = 6
Х1 + Х2 = 3
Х2 + Х3 = 5
через обратную матрицу. Исходную систему уравнений запишем в матричном виде
А • X = L.
Здесь А — матрица коэффициентов при неизвестных; X — вектор неизвестных X1, Х2,Х3;
L— вектор свободных членов 6, 3, 5. Тогда решением системы будет выражение
X=A-1•L,
где Х-1 —обратная матрица.
Для нахождения обратной матрицы в русскоязычной версии MS Excel есть функция МОБР(), а объект WorksheetFunction в библиотеке объектов Microsoft Excel
имеет функцию Minverse(). Для умножения обратной матрицы на вектор свободных членов есть соответственно функции мпроиз() и MMult(). Таких функций нет в Visual Studio 2010, и в данном случае мы получаем реальный положительный эффект от подключения к функциям MS Excel.
Для программной реализации решения поставленной задачи запустим Visual Studio 2010. Далее выберем новый проект из шаблона Windows Forms Application С# и щелнем на кнопке ОК. В проектируемую форму из панели Toolbox добавив метку и растянем ее побольше и симметрично относительно формы. На ней 6yдем формировать ответ задачи. Кроме того, добавим библиотеку объектов MS Ехel. Для этого в пункте меню Project выберем команду Add Reference и на вкладке СОМ отметим библиотеку Microsoft Excel 12.0 Object Library, а затем щелкнем на кнопке ОК.
Программу построим следующим образом (листинг 9.5): сразу после выполнения процедуры InitializeComponent прямо в тексте программы зададим (инициализируем) прямую матрицу в виде двумерного массива и вектор свободных членов в виде одномерного массива. Затем после решения системы выведем ответ на метку label1.
Листинг 9.5. Решение системы линейных алгебраических уравнений
// Программа решает систему уравнений с помощью функций объектной
// библиотеки MS Excel
using System;
using System.Windows.Forms;
using XL = Microsoft.Office.Interop.Excel.Application;
// Другие директивы using удалены, поскольку они не используются в данной программе
namespace ЕхсеlСЛАУ
{ // Для подключения библиотеки объектов MS Excel в пункте меню Project ,
//выберем команду Add Reference. Затем, если на вашем компьютере
//установлен MS Office 2007, то на вкладке СОМ дважды щелкнем по ссылке
//на библиотеку Microsoft Excel 12.0 Object Library
public partial class Form1:Form
{
public Form1()
{
InitializeComponent();
// Матричное уравнение AX = L решаем через
// обратную матрицу: X = A(-1)L.
// Здесь (-1) - "знак" обратной матрицы.
// Решаем систему
// XI + X2 + Х3 = 6
// XI + Х2 =3
// Х2 + ХЗ = 5
// Для этой системы прямая матрица будет иметь вид
// double[,] А = new double[n, n]; // - матрица коэффициентов
Double[,] А = {{1, 1, 1},
{1, 1, 0},
{0, 1, 1}};
// double[] L = new double[n]; // - вектор свободных членов
// Свободные члены
Double[] L = { 6, 3, 5 };
XL XL1 = new XL() ;
// Вычисление детерминанта матрицы A
double det_A = XL1.Application.WorksheetFunction.MDeterm(A);
// Если det_A != 0, то выход из процедуры:
if (Math.Abs(det_A) < 0.01)
{
Label1.Text = "Система не имеет решения, поскольку\n\n" + "определитель равен нулю";
return;
}
// Получение обратной матрицы оА:
Object oA = XL1.Application.WorksheetFunction.Minverse(A);
// Умножение обратной матрицы на вектор свободных членов
Object[,] X = XL1.Application.WorksheetFunction.MMult(
oA, XL1.Application.WorksheetFunction.Transpose(L));
// ТАК НАПИСАТЬ ПРАВОМОЧНО
// double X1 = (double)X[1, 1] ;
// Формирование ответа:
Label1.Text = String.Format("Неизвестные равны:\n\nX1 = {0}; X2 = {1}; X3 = {2}.", X[l, 1], X[2, 1], X[3, 1]);
}
}
}
Как видно из текста программы, задаем прямую матрицу, причем присваиваем значения коэффициентов сразу при объявлении двумерного массива. Аналогично поступаем с вектором свободных членов. Согласно требованию объекта WorksheetFunction возвращаемые обратная матрица и вектор неизвестных должны быть объявлены как объектные переменные. Вначале вычисляем детерминант ( определитель) прямой матрицы, используя функцию MS Excel Mdeterm(). Если прямая матрица плохо обусловлена, т. е. определитель по абсолютному значению меньше 0.01, то выходим из процедуры и сообщаем пользователю в метке label1 что система не имеет решения. Если определитель матрицы больше 0.01, то с помощью функции MS Excel Minverse() находим обратную матрицу. Далее обратную матрицу с помощью функции MS Excel MMuit() умножаем на вектор неизвестных, но прежде его следует сделать вертикальным массивом с помощью функции MS Excel Transpose, т. е. транспонировать массив l. Следующим оператором форматируем ответ в метке label1.
Результат работы программы приведен на рис. 9.6. Убедиться в работоспособности программы можно, открыв решение ExcelСЛАУ.sln в папке ЕхсеlСЛАУ.
Рис. 9.6. Решение системы линейных алгебраических уравнений
Как видим, довольно сложные задачи можно решать в коротенькой программе благодаря обращению к функциям MS Excel. Причем на компьютере, где будет работать данная программа, вовсе не обязательно должен быть инсталлирован MS Excel. Однако инсталляция вашей программы должна содержать соответсвующую dll-библиотеку.
Пример 59. Построение диаграммы средствами MS Excel
Очень часто необходимо изобразить на графике (диаграмме) какие-либо экономические показатели или технические измерения (геодезические, метрологические, астрономические), например, с целью принятия каких-либо решений, часто сделать это надо очень оперативно. Для этих целей в ячейки рабочего листа MSExcel можно ввести измеренные данные
Для этого перейдем на вкладку программного кода Form1.cs и напишем программный код, приведенный в листинге 9.3.
Листинг 9.3. Обращение к одной из функций MS Excel
// Программа обращается к одной простой функции объектной библиотеки
// MS Excel для получения значения числа Пи = 3,14
using System.Windows.Forms;
// Другие директивы using удалены, поскольку они не используются в данной программе
namespace ЕхсеlПи
{ // Чтобы добавить ссылку на объектную библиотеку Excel, в пункте меню
// Project выберем команду. Add Reference. Затем, если на вашем компьютере
// установлен MS Office 2007, то на вкладке СОМ дважды щелкнем по ссылке
// на библиотеку Microsoft Excel 12.0 Object Library,
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Создание экземпляра класса Excel.Application
var xl = new Microsoft.Office.Interop.Excel.Application();
double PI = xl.WorksheetFunction.Pi();
// Выводим значение ПИ в строку заголовка формы
this.Text = "PI = " + pi;
}
}
}
Как видно, сразу после вызова метода InitializeComponent при обработке бытия загрузки формы создается объект Excel.Application, с помощью которого( имеем доступ для одной из функций MS Excel, возвращающей число π = 3,14.
Результат работы программы показан на рис. 9.4.
Рис. 9.4. Вывод числа л в заголовок формы
Убедиться в работоспособности программы можно, открыв решение ЕхсеlПи.sln в папке ЕхсеlПи.
Пользоваться функциями MS Excel в Сопрограмме очень перспективно. Например, оцените возможность решать сложнейшие в математическом смысле операционные задачи (т. е. задачи нахождения максимума/минимума с набором ограничений), доступные в MS Excel через Сервис | Поиск решения.
Пример 57. Использование финансовой функции MS Excel
Рассмотрим еще один пример обращения к функциям MS Excel из программы на С# 2010. Допустим, вы взяли кредит на покупку квартиры 100 тыс. долларов под 15% годовых, срок погашения кредита— 10 лет. Требуется узнать сумму, которую вы вынуждены будете платить ежемесячно. В русскоязычном MS Excel для подобных расчетов есть функция ПЛТ(), на вход которой следует подать месячную процентную ставку (т. е. в нашем случае 0.15/12), срок погашения кредита в месяцах (120 месяцев) и размер кредита ($100 тыс.). Аналогом функции ПЛТ() является функция (метод) Pmt() класса WorksheetFunction, которая имеет такие же аргументы. Таким образом, мы можем написать
С# -программу с обращением к функции Pmt() и проверить результат в русскоязычной версии MS Excel. Список всех методов (функций) объекта WorksheetFunction с описанием аргументов можно найти по адресу: http://msdn.microsoft.com/en-us/library/bb225774.aspx.
Для программирования обращений к этим функциям из программы, созданной в Visual Studio 2010, важно найти соответствие русскоязычных функций MS Excel и их аналогов в объекте WorksheetFunction для отладки на тестовых примерах.
Запустим Visual Studio 2010, далее закажем новый проект из шаблона Windows Forms Application С#. В проектируемую экранную форму из панели Toolbox перенесем три метки, три текстовых поля (для ввода трех вышеперечисленных аргументов функции Pmt() и кнопку. В текущий проект подключаем библиотеку объектов MS Excel. Для этого в меню Project выберем команду Add Reference, затем на вкладке СОМ дважды щелкнем на ссылке Microsoft Excel 12.0 Object Library. Теперь можно перейти к программному коду, приведенному в листинге 9.4.
Листинг 9.4. Использование финансовой функции MS Excel
//Программа использует финансовую функцию Pmt() объектной библиотеки
//MS Excel для вычисления суммы периодического платежа на основе
// Постоянства сумм платежей и постоянства процентной ставки
using System;
using System.Windows.Forms;
// Другие директивы using удалены, поскольку они не используются в данной программе
namespace ЕхсеlПлт
{
// Для подключения библиотеки объектов MS Excel в пункте меню Project
// выберем команду Add Reference. Затем, если на вашем компьютере
// установлен MS Office 2007, то на вкладке СОМ дважды щелкнем по ссылке
//на библиотеку Microsoft Excel 12.0 Object Library
public partial class Form1:Form
{
public Form1()
{
InitializeComponent();
Label1.Text = "Год. ставка в %"; label2.Text = "Срок в месяцах"; label3.Text = "Размер кредита";
textBox1.Clear();textBox2.Clear();textBox3.Clear();
this.Text = "Расчет ежемесячных платежей";button1.Text = "Расчет"
}
private void button1_Click(object sender, EventArgs e)
{
try
{
var XL = new Microsoft.Office.Interop.Excel.Application() ;
double pay = XL.WorksheetFunction.Pmt(
(Convert.ToDouble(textBoxl.Text)) / 1200,
Convert.ToDouble(textBox2.Text),
Convert.ToDouble(textBox3.Text));
// ИЛИ, если использовать функцию Pmt() из Microsoft.VisualBasic
//double pay = Microsoft.VisualBasic.Financial.Pmt(
// (Convert.ToDouble(textBoxl.Text)) / 1200,
// Convert.ToDouble(textBox2.Text),
// Convert.ToDouble(textBox3.Text));
string ss = String.Format(
"Каждый месяц следует платить {0:$#.##} долларов",
Math.Abs(pay)); MessageBox.Show(ss);
}
catch(Exception Ситуация)
{
MessageBox.Show(Ситуация.Message, "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
}
}
Как видно из текста программы, сразу после вызова метода InitializeComponentочищаются (clear) текстовые поля, а также подписываются названия этих полей с помощью меток label1—iabel3 и присваивается название кнопки Button1.
Рис. 9.5. Расчет ежемесячных платежей
Убедиться в работоспособности программы можно, открыв решение ExcelПлт.sln в папке ExcelПлт.
В данном примере на простом примере мы рассмотрели, как легко подключиться к библиотеке объектов MS Excel и пользоваться ее функциями. Однако Функция Pmt() имеется также в среде Visual Studio 2010 в пространстве имен Microsoft .VisualBasic. Financial точно с такими же параметрами. (Более того, эта функция была еще в Visual Basic 6.) Для обращения к этой функции потребовалось бы подключение к Visual Basic, как мы это делали в примере 14 (см. глава2). То есть следовало бы в проект добавить ссылку на библиотеку Microsoft.VisualBasic.dll. Для этого в пункте меню Project надо выбрать команду Аdd Reference, а на вкладке .NET дважды щелкнуть на ссылке Microsoft.VisualBasic. В этом случае можно было бы обращаться к функции Pmt(), как это представлено в комментарии. Однако в данном примере показана принципиальная возможность работы с функциями MS Excel из С#-программы.
Пример 58. Решение системы уравнений р с помощью функций MS Excel
Используя функции MS Excel, в своей программе, созданной в Visual С#2011 можно решать и более серьезные задачи. Например, рассмотрим, как решить ] I тему линейных алгебраических уравнений:
X1 + X2 + X3 = 6
Х1 + Х2 = 3
Х2 + Х3 = 5
через обратную матрицу. Исходную систему уравнений запишем в матричном виде
А • X = L.
Здесь А — матрица коэффициентов при неизвестных; X — вектор неизвестных X1, Х2,Х3;
L— вектор свободных членов 6, 3, 5. Тогда решением системы будет выражение
X=A-1•L,
где Х-1 —обратная матрица.
Для нахождения обратной матрицы в русскоязычной версии MS Excel есть функция МОБР(), а объект WorksheetFunction в библиотеке объектов Microsoft Excel
имеет функцию Minverse(). Для умножения обратной матрицы на вектор свободных членов есть соответственно функции мпроиз() и MMult(). Таких функций нет в Visual Studio 2010, и в данном случае мы получаем реальный положительный эффект от подключения к функциям MS Excel.
Для программной реализации решения поставленной задачи запустим Visual Studio 2010. Далее выберем новый проект из шаблона Windows Forms Application С# и щелнем на кнопке ОК. В проектируемую форму из панели Toolbox добавив метку и растянем ее побольше и симметрично относительно формы. На ней 6yдем формировать ответ задачи. Кроме того, добавим библиотеку объектов MS Ехel. Для этого в пункте меню Project выберем команду Add Reference и на вкладке СОМ отметим библиотеку Microsoft Excel 12.0 Object Library, а затем щелкнем на кнопке ОК.
Программу построим следующим образом (листинг 9.5): сразу после выполнения процедуры InitializeComponent прямо в тексте программы зададим (инициализируем) прямую матрицу в виде двумерного массива и вектор свободных членов в виде одномерного массива. Затем после решения системы выведем ответ на метку label1.
Листинг 9.5. Решение системы линейных алгебраических уравнений
// Программа решает систему уравнений с помощью функций объектной
// библиотеки MS Excel
using System;
using System.Windows.Forms;
using XL = Microsoft.Office.Interop.Excel.Application;
// Другие директивы using удалены, поскольку они не используются в данной программе
namespace ЕхсеlСЛАУ
{ // Для подключения библиотеки объектов MS Excel в пункте меню Project ,
//выберем команду Add Reference. Затем, если на вашем компьютере
//установлен MS Office 2007, то на вкладке СОМ дважды щелкнем по ссылке
//на библиотеку Microsoft Excel 12.0 Object Library
public partial class Form1:Form
{
public Form1()
{
InitializeComponent();
// Матричное уравнение AX = L решаем через
// обратную матрицу: X = A(-1)L.
// Здесь (-1) - "знак" обратной матрицы.
// Решаем систему
// XI + X2 + Х3 = 6
// XI + Х2 =3
// Х2 + ХЗ = 5
// Для этой системы прямая матрица будет иметь вид
// double[,] А = new double[n, n]; // - матрица коэффициентов
Double[,] А = {{1, 1, 1},
{1, 1, 0},
{0, 1, 1}};
// double[] L = new double[n]; // - вектор свободных членов
// Свободные члены
Double[] L = { 6, 3, 5 };
XL XL1 = new XL() ;
// Вычисление детерминанта матрицы A
double det_A = XL1.Application.WorksheetFunction.MDeterm(A);
// Если det_A != 0, то выход из процедуры:
if (Math.Abs(det_A) < 0.01)
{
Label1.Text = "Система не имеет решения, поскольку\n\n" + "определитель равен нулю";
return;
}
// Получение обратной матрицы оА:
Object oA = XL1.Application.WorksheetFunction.Minverse(A);
// Умножение обратной матрицы на вектор свободных членов
Object[,] X = XL1.Application.WorksheetFunction.MMult(
oA, XL1.Application.WorksheetFunction.Transpose(L));
// ТАК НАПИСАТЬ ПРАВОМОЧНО
// double X1 = (double)X[1, 1] ;
// Формирование ответа:
Label1.Text = String.Format("Неизвестные равны:\n\nX1 = {0}; X2 = {1}; X3 = {2}.", X[l, 1], X[2, 1], X[3, 1]);
}
}
}
Как видно из текста программы, задаем прямую матрицу, причем присваиваем значения коэффициентов сразу при объявлении двумерного массива. Аналогично поступаем с вектором свободных членов. Согласно требованию объекта WorksheetFunction возвращаемые обратная матрица и вектор неизвестных должны быть объявлены как объектные переменные. Вначале вычисляем детерминант ( определитель) прямой матрицы, используя функцию MS Excel Mdeterm(). Если прямая матрица плохо обусловлена, т. е. определитель по абсолютному значению меньше 0.01, то выходим из процедуры и сообщаем пользователю в метке label1 что система не имеет решения. Если определитель матрицы больше 0.01, то с помощью функции MS Excel Minverse() находим обратную матрицу. Далее обратную матрицу с помощью функции MS Excel MMuit() умножаем на вектор неизвестных, но прежде его следует сделать вертикальным массивом с помощью функции MS Excel Transpose, т. е. транспонировать массив l. Следующим оператором форматируем ответ в метке label1.
Результат работы программы приведен на рис. 9.6. Убедиться в работоспособности программы можно, открыв решение ExcelСЛАУ.sln в папке ЕхсеlСЛАУ.
Рис. 9.6. Решение системы линейных алгебраических уравнений
Как видим, довольно сложные задачи можно решать в коротенькой программе благодаря обращению к функциям MS Excel. Причем на компьютере, где будет работать данная программа, вовсе не обязательно должен быть инсталлирован MS Excel. Однако инсталляция вашей программы должна содержать соответсвующую dll-библиотеку.
Пример 59. Построение диаграммы средствами MS Excel
Очень часто необходимо изобразить на графике (диаграмме) какие-либо экономические показатели или технические измерения (геодезические, метрологические, астрономические), например, с целью принятия каких-либо решений, часто сделать это надо очень оперативно. Для этих целей в ячейки рабочего листа MSExcel можно ввести измеренные данные