Exemplo n.º 1
0
 public static double FunkWithInterval(FuncArX f, double[] x, int start = 0, int stop = 0)
 {
     if ((start == 0 && stop == 0) || stop >= x.Length)
     {
         return(f(x));
     }
     else
     {
         int[] ind = new int[start - stop + 1];
         for (int i = 0, j = start; i < ind.Length; i++, j++)
         {
             ind[i] = j;
         }
         return(f((double[])x.GetValue(ind)));
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// <para>2b</para>
 /// <para>Модифицировать программу нахождения минимума функции так, чтобы можно было передавать функцию в виде делегата.</para>
 /// <para>Переделать функцию Load, чтобы она возвращала массив считанных значений. </para>
 /// <para>Пусть она возвращает минимум через параметр (с использованием модификатора out)</para>
 /// </summary>
 /// <param name="f">func for value calculation</param>
 /// <param name="fileName">filename to write values</param>
 /// <param name="funcRes">result of f function</param>
 /// <returns>all values from file (see 'SaveResults' method)</returns>
 public static double[] Load(FuncArX f, string fileName, out double funcRes, FuncArXInterval ff = null, int startInt = 0, int stopInt = 0)
 {
     double[] results;
     using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
     {
         using (BinaryReader bw = new BinaryReader(fs))
         {
             results = new double[fs.Length / sizeof(double)];
             for (int i = 0; i < fs.Length / sizeof(double); i++)
             {
                 results[i] = bw.ReadDouble();
             }
         }
         funcRes = ff == null?f(results) : ff(f, results, startInt, stopInt);
     }
     return(results);
 }