Файл: Анализ и оценка средств реализации структурных методов и проектирования экономической информационной системы.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.04.2023

Просмотров: 693

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

foreach (double el in inverse_cov)

{

int k = 0;

for (int i = str; i < kroneker_icount; i++)

{

int m = 0;

for (int j = stl; j < kroneker_jcount; j++)

{

kroneker[i, j] = el * one_matr[k, m];

m++;

}

k++;

}

if (k == count)

{

kroneker_jcount = kroneker_jcount + count;

stl = stl + count;

}

if (stl == count * 3)

{

kroneker_jcount = count;

str = kroneker_icount;

kroneker_icount = kroneker_icount + count;

stl = 0;

}

}

return kroneker;

}

public double[,] Transp(double[,]x, int count)

{

double[,] trans = new double[12,count * 3];

for (int i = 0; i < count*3; i++)

for (int j = 0; j < 12; j++)

trans[j, i] = x[i, j];

return trans;

}

public double[,] Multipl(double[,] a, double[,] b)

{

int a_rows=a.GetLength(0);

int b_rows=b.GetLength(0);

int b_col=b.GetLength(1);

double[,] multi = new double[a_rows, b_col];

for (int i = 0; i < a_rows; i++) // каждая строка A

{

for (int j = 0; j < b_col; j++) // каждый столбец B

for (int k = 0; k < b_rows; k++)

multi[i, j] += a[i, k] * b[k, j];

}

return multi;

}

public double[] Multipl_1(double[,] a, double[] b)

{

double[] result = new double[a.GetLength(0)];

for (int i = 0; i < a.GetLength(0); ++i) // каждая строка A

for (int k = 0; k < a.GetLength(1); ++k)

result[i] += a[i, k] * b[k];

return result;

}

public double[,] inverse_matrix(double[,] hhh)

{ //'единичная матрица

// h = 3; //активаровать для проверки. результат найдите тут: http://matrixcalc.org/

int h = hhh.GetLength(0);

double[,] ggg = new double[h, h];// единичная матрица

// Dim A_edin(k + 1, k + 1) As Double 'затем она перейдёт в обратную

for (int i = 0; i < h; )

{

for (int j = 0; j < h; )

{

if (i == j)

{ ggg[i, j] = 1; }

else

{ ggg[i, j] = 0; }

j++;

}

i++;

}

for (int i = 0; i < h; i++)

{

// normalizing row (making first element =1)

double tmp = hhh[i, i];

for (int j = h - 1; j >= 0; j--)

{

ggg[i, j] /= tmp;

hhh[i, j] /= tmp;

}

// excluding i-th element from each row except i-th one

for (int j = 0; j < h; j++)

if (j != i)

{

tmp = hhh[j, i];

for (int k = h - 1; k >= 0; k--)

{

ggg[j, k] -= ggg[i, k] * tmp;

hhh[j, k] -= hhh[i, k] * tmp;

}

}

}

// now e contains inverted matrix so we need only to copy e to matrix

for (int i = 0; i < h; i++)

for (int j = 0; j < h; j++)

hhh[i, j] = ggg[i, j];

return hhh;

}

public string Lis (DataSet data, double pr)

{

double obor_capital = (double)data.Tables["XLData2"].Rows[0][2] - (double)data.Tables["XLData2"].Rows[0][5];

double x1 = obor_capital / ((double)data.Tables["XLData2"].Rows[0][1] + (double)data.Tables["XLData2"].Rows[0][2]);

double x2 = (double)data.Tables["XLData2"].Rows[0][9] / ((double)data.Tables["XLData2"].Rows[0][1] + (double)data.Tables["XLData2"].Rows[0][2]);

double x3 = pr / ((double)data.Tables["XLData2"].Rows[0][1] + (double)data.Tables["XLData2"].Rows[0][2]);

double x4 = (double)data.Tables["XLData2"].Rows[0][3] / ((double)data.Tables["XLData2"].Rows[0][1] + (double)data.Tables["XLData2"].Rows[0][2]);

double lis = Math.Round(0.063 * x1 + 0.092 * x2 + 0.057 * x3 + 0.001 * x4, 4);

string inter = "";

if (lis > 0.037) inter = " - низкая вероятность";

else inter = "- высокая вероятность";

string result = "расчетный показатель = " + lis.ToString() + inter;

return result;

}

public string Sprin(DataSet data, double tek)

{

double obor_capital = (double)data.Tables["XLData2"].Rows[0][2] - (double)data.Tables["XLData2"].Rows[0][5];

double x1 = obor_capital / ((double)data.Tables["XLData2"].Rows[0][1] + (double)data.Tables["XLData2"].Rows[0][2]);


double x2 = (double)data.Tables["XLData2"].Rows[0][8] / ((double)data.Tables["XLData2"].Rows[0][1] + (double)data.Tables["XLData2"].Rows[0][2]);

double x3 = (double)data.Tables["XLData2"].Rows[0][9] / tek;

double x4 = (double)data.Tables["XLData2"].Rows[0][6] / ((double)data.Tables["XLData2"].Rows[0][1] + (double)data.Tables["XLData2"].Rows[0][2]);

double spr = Math.Round(1.03 * x1 + 3.07 * x2 + 0.66 * x3 + 0.4 * x4, 4);

string inter = "";

if (spr > 0.862) inter = " - низкая вероятность";

else inter = "- высокая вероятность";

string result = "расчетный показатель = " + spr.ToString() + inter;

return result;

}

public string Dav (DataSet data, double sr_act, double zat)

{

double obor_capital = (double)data.Tables["XLData2"].Rows[0][2] - (double)data.Tables["XLData2"].Rows[0][5];

double x1 = obor_capital / ((double)data.Tables["XLData2"].Rows[0][1] + (double)data.Tables["XLData2"].Rows[0][2]);

double x2 = (double)data.Tables["XLData2"].Rows[0][10] / (double)data.Tables["XLData2"].Rows[0][3];

double x3 = (double)data.Tables["XLData2"].Rows[0][6] / sr_act;

double x4 = (double)data.Tables["XLData2"].Rows[0][10] / zat;

double dav = Math.Round(8.38 * x1 + x2 + 0.054 * x3 + 0.063 * x4, 4);

string inter = "";

if (dav > 0.42) inter = " - вероятность банкротства меньше 10%";

else if (dav > 0.32) inter = "- вероятность банкротства от 10% до 35%";

else if (dav > 0.18) inter = "- вероятность банкротства от 35% до 50%";

else if (dav > 0) inter = "- вероятность банкротства от 60% до 80%";

else inter = "- вероятность банкротства от 90% до 100%";

string result = "расчетный показатель = " + dav.ToString() + inter;

return result;

}

public string Say(DataSet data, double sr_act, double tek)

{

double x1 = (double)data.Tables["XLData2"].Rows[0][3] / (double)data.Tables["XLData2"].Rows[0][2];

double x2 = (double)data.Tables["XLData2"].Rows[0][2] / tek;

double x3 = (double)data.Tables["XLData2"].Rows[0][6] / sr_act;

double x4 = (double)data.Tables["XLData2"].Rows[0][8] / (double)data.Tables["XLData2"].Rows[0][6];

double x5 = (double)data.Tables["XLData2"].Rows[0][10] / (double)data.Tables["XLData2"].Rows[0][3];

double say = Math.Round(2 * x1 + 0.1 * x2 + 0.08 * x3 + 0.045 * x4 + x5, 4);

string inter = "";

if (say >= 1) inter = " - низкая вероятность";

else inter = "- высокая вероятность";

string result = "расчетный показатель = " + say.ToString() + inter;

return result;

}

}

}

Приложение Г. Тесты

Таблица Г.1. Тесты по стратегии черного ящика

Входные данные

Ожидаемый результат

Полученный результат

Тест

Excel-файл с числовыми данными не по шаблону.

Год {2009, 2010, 2011}

1 переменная {23,24,25}

….

Ошибка загрузки

Сообщение «Ошибка: неверных формат заголовков. Заполните данные в подготовленном шаблоне»

+

Excel-файл с числовыми данными по шаблону.

Год {2009, 2010, 2011}

X1 {23,24,25}

….

Загрузка данных, расчет результатов

Значение прогноза коэффициента финансовой стабильности:

по SUR-модели: 0,5112 или 51,12%

по регрессионной модели: 0,4852 или 48,52%

Таблица с данными

+

Excel-файл не с числовыми данными не по шаблону.

Год {2009, 2010, 2011}

1 переменная {23,24,25}

….

Ошибка загрузки

Сообщение «Ошибка: неверных формат данных»

+

Excel-файл не с числовыми данными по шаблону.


Год {2009, 2010, 2011}

X1{23,24,25}

….

Ошибка загрузки

Сообщение «Ошибка: неверных формат данных»

+

Не выбрана ни одна модель:

галочка не проставлена

Ошибка

Сообщение: «Необходимо выбрать хотя бы одно значение»

+

Выбор моделей: модель Лиса

Доступ к вводу верных доп. полей

Доп. поле «Нераспределенная прибыль»

+

Выбор моделей: модель Спрингейта

Доступ к вводу верных доп. полей

Доп. поле «Текущие обязательства»

+

Выбор моделей: модель Давыдовой-Беликова

Доступ к вводу верных доп. полей

Доп. поля «Средняя стоимость активов» и «Затраты компании»

+

Выбор моделей: модель Сайфулина-Кадыкова

Доступ к вводу верных доп. полей

Доп. поля «Средняя стоимость активов» и «Текущие обязательства»

+

Выбор моделей: модель Лиса и модель Спрингейта

Доступ к вводу верных доп. полей

Доп. поля «Нераспределенная прибыль» и «Текущие обязательства»

+

Выбор моделей: модель Лиса, модель Спрингейта и модель Давыдовой-Беликова

Доступ к вводу верных доп. полей

Доп. поля «Нераспределенная прибыль», «Текущие обязательства», «Средняя стоимость активов» и «Затраты компании»

+

Выбор моделей: все модели

Доступ к вводу верных доп. полей

Доп. поля «Нераспределенная прибыль», «Текущие обязательства», «Средняя стоимость активов» и «Затраты компании»

+

Выбор моделей: модель Спрингейта и модель ДавыдовойБеликова

Доступ к вводу верных доп. полей

Доп. поля «Текущие обязательства», «Средняя стоимость активов» и «Затраты компании»

+

Таблица Г.1. Тесты по стратегии черного ящика (продолжение)

Входные данные

Ожидаемый результат

Полученный результат

Тест

Выбор моделей: модель Спрингейта, модель ДавыдовойБеликова и модель Сайфулина-Кадыкова

Доступ к вводу верных доп. полей

Доп. поля «Текущие обязательства», «Средняя стоимость активов» и «Затраты компании»

+

Выбор моделей: модель ДавыдовойБеликова и модель Сайфулина-Кадыкова

Доступ к вводу верных доп. полей

Доп. поля «Текущие обязательства», «Средняя стоимость активов» и «Затраты компании»

+

Ввод не числовых дополнительных данных: раыарворлвы

Ошибка ввода

Блокировка ввода

+

Ввод слишком больших числовых значений: 4342354354355345435435435435455

Ошибка ввода

Блокировка ввода по истечению лимита символов

+

Ввод десятичных значений через запятую:

Нераспределенная прибыль: 10,2

Загрузка данных

Вероятность банкроства компании: