Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2016, 20:58   #1
rogge
Пользователь
 
Регистрация: 02.12.2015
Сообщений: 15
По умолчанию Visual Studio C++ CLR работа с Excel

Здравствуйте, не подскажите пожалуйста как нужно написать код Visual Studio ,чтобы при выполнении программы запускался Excel и там данные были записаны в таблицу, и по этим данным строился график
Формулы, которые нужно использовать это:
вычисления коэффициента корреляции по Пирсону и коэффициентов линейной аппроксимации

я написал код этих формул(код ниже), а как записать, чтобы Excel вывел не знаю
подскажите пожалуйста
Код:
#include<vector>

using namespace std;

using namespace System;
using namespace Microsoft::Office::Interop::Excel;
using namespace Microsoft::Office::Interop::Word;
double mean(vector <double> a)
{
	double temp = 0.0;
	int n = a.size();
	if (n > 1)
	{
		for (int i = 0; i < n; i++)
			temp += a.at(i);
		return temp / n;
	}
	else
	return -1;
}
//**************************************************
double mean(double a [], int n)
{
	double temp = 0.0;
	
	//cout << n << endl;
	if (n > 1)
	{
		for (int i = 0; i < n; i++)
			temp += a[i];
		return temp / n;
		
	}
	else
	return -1;
}
double meanwh(double a[], int n)
{
	int i = 0;
	double temp = 0.0;
	if (n > 1)
	{
		while (i < n)
		{
			temp += a[i];

			i++;
		}
		return temp / n;
	}
	else return -1;


}

double meandwh(double a[], int n)
{
	int i = 0;
	double temp = 0.0;
	if (n > 1)
	{
		do
		{
			temp += a[i];

			i++;
		} while (i < n);
		return temp / n;
	}
	else return -1;


}

double covariance(vector<double> a, vector<double> b)
{
	if (a.size() != b.size())
	{
		return -1;
	}
	else
	{
		double ma = mean(a);
		double mb = mean(b);
		double sum = 0.0;


		for (int i = 0; i < a.size(); i++)
		{
			sum += ((a.at(i) - ma)*(b.at(i) - mb));

		}

		return sum;
	}
}


double variane(vector<double> a)
{
	double temp = 0.0;
	double ma = mean(a);

	for (int i = 0; i < a.size(); i++)
	{
		temp += ((a.at(i) - ma)*(a.at(i) - ma));

	}
	return temp;
}
double pearson(vector<double> a, vector<double> b)
{
	if (a.size() != b.size())
	{
		return -1;
	}
	else
	{

		double cov = covariance(a, b);
		double v = sqrt(variane(a) * variane(b));

		return cov / v;
	}

}
double indexb(vector<double> a, vector<double> b) //вычисление линейной аппроксимации
{
	return covariance(a, b)/variane(a);
}

double indexa(vector<double> a, vector<double> b)
{
	return mean(b) - indexb(a, b)*mean(a);
}
double sqpowr(double d)
{
	return pow(d, 2);
}


int main()
{
	int n;
	vector<double>v1 = {7, 10.5, 14, 10.4, 10.5, 13.5, 2, 13};
	vector<double>v2 = {90, 57, 60, 56.7, 39, 30, 78, 30};
	double ar1[] = { 7, 10.5, 14, 10.4, 10.5, 13.5, 2, 13 };

	cout << meandwh(ar1, sizeof(ar1)/sizeof(double)) << endl;
	cout << mean(v1) << endl;

	cout << "Correlation of Pearson: " << pearson(v1, v2) << endl;
	cout << "r_sq: " << pow(pearson(v1, v2), 2) << endl;
	cout << "Approx coeff b " << indexb(v1, v2) << endl;
	cout << "Approx coeff a " << indexa(v1, v2) << endl;

	cin >> n;

		
	return(0);
}
rogge вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задание в Visual Studio (макросы Excel) kpavel1990 Помощь студентам 0 24.12.2014 19:42
Excel и Visual Studio Фатима2811 Помощь студентам 0 11.05.2014 14:00
Курсовая работа в Visual Studio superDmitry Visual C++ 0 23.11.2011 19:12
Как правильно написать структуру для проекта FormApplication на Visual Studio C++/CLR(CLI) ImmortalAlexSan Общие вопросы C/C++ 0 25.06.2011 18:35
работа с бд в visual studio динарочка Visual C++ 1 02.05.2011 18:36