Использование функции из библиотеки Excel - C#
Формулировка задачи:
Всем доброго времени суток, у меня проблема с работой библиотеки Exel(некоторыми их функциями)
Всё подлкючил
все вроде как работает, сделал добавление случайного числа, вроде все ок.
работает формула добавление случайного числа
Но вот эту формулу (Частота) не воспринимает и возращает -2146826273
как мне исправить работу этой формулы?
int res = excel._Evaluate("{=FREQUENCY({22;22;22;22};{22})}");
кажется правильно записал....
using Excel = Microsoft.Office.Interop.Excel;
Excel.Application excel = new Excel.Application(); //создаем COM-объект Excel
Object formula, result; //переменные для хранения формулы и результата
formula = ""; //берем формулу
result = excel._Evaluate(formula); //вычисляем формулу
MessageBox.Show(result.ToString()); //выводим результат
string h = "0.1;0.2;0.3;0.4;0.5";
string rand = "";
int rnumb = 200;
for (int i = 0; i < rnumb; i++)
{
rand = rand + Convert.ToString(excel._Evaluate("=RAND()"));
if (i != 0 || i != rnumb - 1)
{
rand = rand + ";";
}
} int res = excel._Evaluate("{=FREQUENCY({22;22;22;22};{22})}");
MessageBox.Show(Convert.ToString(excel._Evaluate("{=FREQUENCY({"+rand+"};{"+h+"})}")));
excel.Quit();
подскажет кто в чем проблема?
Решение задачи: «Использование функции из библиотеки Excel»
textual
Листинг программы
class RandomArray
{
//массив значений
double[] array;
//верхние границы интервалов
double[] intervals = { 0.2, 0.4, 0.6, 0.8, 1.0 };
public RandomArray(int size) //конструктор, принимает количество элементов в создаваемом массиве
{
Random rnd = new Random();
array = new double[size];
for (int i = 0; i < size; i++)
{
array[i] = rnd.NextDouble();
}
}
public int[] Frequency() //метод возвращающий массив частот
{
int[] freqArray = new int[intervals.Length + 1];
for (int i = 0; i < array.Length; i++)
{
freqArray[GetIndex(array[i])]++;
}
return freqArray;
}
int GetIndex(double d) //метод, определяющий номер интервала для элемента
{
for (int i = 0; i < intervals.Length; i++)
{
if (d < intervals[i]) return i;
}
return intervals.Length;
}
public double[] GetArray() //возвращение массива
{
return array;
}
}