Exemplo n.º 1
0
        private void Search()
        {
            int i = c;

            double[] res;
            bool     b;

            while (true)
            {
                res = Expendator.Seq(tmin, tmax, i);
                b   = false;
                for (int k = 0; k < mas.Length; k++)
                {
                    if (res.Contains(mas[k]))
                    {
                        b = true;
                        break;
                    }
                }
                if (!b)
                {
                    if (res.Where((double n) => n >= dtmin && n <= dtmax).Count() >= count)
                    {
                        label8.Text = $"Число точек: {i}; шаг: {res[1] - res[0]}";
                        tcount      = i;
                        return;
                    }
                }

                i++;
            }
        }
        private void SetDirects()
        {
            string p;

            if (File.Exists("LastDirectory.txt") && Expendator.IfDirectoryExists("LastDirectory.txt", out p))
            {
                globalbase = p;
            }
            else
            {
                p = "Замеры";
                Directory.CreateDirectory(p);
                globalbase = Path.Combine(Environment.CurrentDirectory, p);
            }

            textBox12.Text = globalbase;
            SetForlders();
            SetFiles();

            listBox2.Items.Clear();
            for (int i = 0; i < countPorts; i++)
            {
                listBox2.Items.Add(i);
            }
            listBox2.SelectedIndex = countPorts / 2;
        }
Exemplo n.º 3
0
        public async void анимацияПоПоследнимСохранённымДаннымToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!File.Exists("3D ur, uz(info).txt"))
            {
                MessageBox.Show("Не найдено файла со списком изображений", $"Нет списка \"3D ur, uz(info).txt\"", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }


            string[] st = Expendator.GetStringArrayFromFile("3D ur, uz(info).txt", true);
            for (int i = 0; i < st.Length; i++)
            {
                if (!File.Exists(st[i]))
                {
                    FlexibleMessageBox.Show($"Не найдено файла \"{st[i]}\" из списка изображений. Анимация не готова", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    if (FilesUrUzExist(st) && MessageBox.Show($"Поскольку все нужные текстовые файлы в наличии, изображения можно восстановить. Создать анимацию? (может занять около 15 минут)", "Перерисовка", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                    {
                        await Task.Run(() => Expendator.StartProcessOnly("ReDraw3Duxt2.r", true));

                        break;
                    }
                    else
                    {
                        return;
                    }
                }
            }


            new Anima(st).Show();
        }
        /// <summary>
        /// Конструктор
        /// </summary>
        public PS5000ABlockForm(double w0_, double w1_, int l_, int Scount = 8)
        {
            InitializeComponent();
            w0           = w0_;
            w1           = w1_;
            wcount       = l_;
            sourcesCount = Scount;

            //     comboRangeA.DataSource = System.Enum.GetValues(typeof(Imports.Range));
            toolStripStatusLabel1.Text = "Готов к работе";
            toolStripStatusLabel2.Text = "";

            timer1.Interval = 300;
            timer1.Tick    += new EventHandler(Timer1_Tick);

            SetDirects();
            SetParams();
            InfoGet();

            this.FormClosing += (object o, FormClosingEventArgs aa) =>
            {
                GetParams();
                Expendator.WriteStringInFile(Path.Combine(globalbase, "Описание.txt"), textBox23.Text);
            };

            this.FormClosed += new FormClosedEventHandler((object o, FormClosedEventArgs a) =>
            {
                FurierTransformer.Dispose();
            });

            Hides();
        }
        public async Task GetDataAsync()
        {
            masA = new long[CountSum];
            int it = 0;
            int mx = CountOfEdges;

            for (int i = 0; i < sourcesCount; i++)
            {
                textBoxUnitInfo.AppendText(Switch_.GetAccepted() + "\n");
                Switch_.SendCmd(0, i);
                textBoxUnitInfo.AppendText(Switch_.GetAccepted() + "\n");
                await Task.Delay(2000);

                for (int j = 0; j < sourcesCount; j++)
                {
                    if (i != j)
                    {
                        await GetDataMiniAsync(j, Path.Combine(ItFolder(i), ArraysNames[j]));

                        toolStripStatusLabel2.Text = $"Выполнено {++it} из {mx} ({Expendator.GetProcent(it, mx, 2)}%)";
                    }
                }
                toolStripStatusLabel2.Text = "";

                FurierOrShowIterationAsync(ItFolder(i), null, i);
            }
        }
        public void BeeHiveVersNotBeeHive()
        {
            string BeeHiveAdress    = @"C:\Users\крендель\Desktop\Code\Defect2019\bin\Debug\EllipseData";
            string NotBeeHiveAdress = @"C:\Users\крендель\Desktop\Code\Defect2019\bin\Release\EllipseData";
            string Symbols          = "ABCDEFGH";

            string[] files = new string[Symbols.Length * (Symbols.Length - 1)];
            int      k     = 0;

            for (int i = 0; i < Symbols.Length; i++)
            {
                for (int j = 0; j < Symbols.Length; j++)
                {
                    if (i != j)
                    {
                        files[k++] = $"{Symbols[i]}to{Symbols[j]}(MaxCoordinate).txt";
                    }
                }
            }

            double[] Get(string path) => files.Select(s => Expendator.GetStringArrayFromFile(Path.Combine(path, s))[2].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[2].ToDouble()).ToArray();

            var vec1 = Get(BeeHiveAdress);
            var vec2 = Get(NotBeeHiveAdress);

            using (StreamWriter r = new StreamWriter("bee.txt"))
                for (int i = 0; i < vec1.Length; i++)
                {
                    r.WriteLine($"{vec1[i]} {vec2[i]}");
                }

            Expendator.StartProcessOnly("TestBee.r");
            Process.Start("bee.png");
        }
        /// <summary>
        /// Задать параметры метрики в файл
        /// </summary>
        /// <param name="s"></param>
        private static void MetricSet(string s = "max", string path = null)
        {
            path = path ?? Environment.CurrentDirectory;

            Expendator.WriteStringInFile(Path.Combine(path, "MetrixSumOrMax.txt"), s);
            Expendator.WriteStringInFile("MetrixSumOrMax.txt", s);
        }
        public void CompMult()
        {
            Complex[] mas = new Complex[] { new Complex(1, 3), new Complex(4, -1) };
            var       r   = Expendator.Mult(mas, new Complex(2));

            new CVectors(r).Show();
        }
        private void InteractFlags(string path)
        {
            string s1 = checkBox4.Checked ? "true" : "false";
            string s2 = checkBox5.Checked ? "true" : "false";

            Expendator.WriteInFile(Path.Combine(path, "FlagsForInteractive.txt"), new string[] { s1, s2 });
        }
Exemplo n.º 10
0
        public static void ParserExamples()
        {
            var gen = Expendator.ThreadSafeRandomGen(1);

            Func <double, double> f1 = Parser.GetDelegate("cos(x)+sin(x/2+4,6)*exp(-sqr(x))+abs(x)^0,05");
            Func <double, double> f2 = x => Math.Cos(x) + Math.Sin(x / 2 + 4.6) * Math.Exp(-x * x) + Math.Pow(Math.Abs(x), 0.05);

            for (int i = 0; i < 5; i++)
            {
                var d = gen.NextDouble() * 50;
                $"{f1(d)} == {f2(d)}".Show();
            }
            //2,1254805141764708 == 2,1254805141764708
            //1,8237614071831993 == 1,8237614071831991
            //0,9607774340933849 == 0,9607774340933849
            //1,8366859282256982 == 1,8366859282256982
            //1,3013656833866554 == 1,3013656833866554

            Func <Complex, Complex> c1 = ParserComplex.GetDelegate("Re(z)*Im(z) + sh(z)*I + sin(z)/100");
            Func <Complex, Complex> c2 = z => z.Re * z.Im + Complex.Sh(z) * Complex.I + Complex.Sin(z) / 100;

            for (int i = 0; i < 5; i++)
            {
                var d = new Complex(gen.NextDouble() * 50, gen.NextDouble() * 10);

                $"{c1(d)} == {c2(d)}".Show();
            }

            // 485696399,00749403 - 1151202339,537752i == 485696398,8506223 - 1151202339,7349265i
            //- 1,328008130324937E+20 + 8,291419281824573E+19i == -1,328008130324937E+20 + 8,291419281824573E+19i
            // - 12609203585138,465 + 42821192159972,99i == -12609203585138,78 + 42821192159972,99i
            //7270,488386388151 - 121362,61308893963i == 7270,344179063162 - 121362,52416901031i
            //- 7,964336745137357E+20 + 1,3345594600169975E+21i == -7,964336745137357E+20 + 1,3345594600169975E+21i
        }
        private async void button1_Click(object sender, EventArgs e)
        {
            OtherMethods.IlushaMethod(checkBox4);
            OtherMethods.PlaySound("Поехали");
            SetDir();
            SetSymbols();

            var tmp = GetDataPaths();

            string[] names     = tmp.Item1;
            string[] wheredata = tmp.Item2;

            List <string> pathellipse = new List <string>(sources.Length * (sources.Length - 1));

            int             alles    = sources.Length * (sources.Length - 1);
            IProgress <int> progress = new Progress <int>((int val) => save = val);

            for (int i = 0; i < sources.Length; i++)
            {
                var itSource     = sources[i];
                var otherSources = sources.Without(itSource);
                var othernames   = names.Without(names[i]);
                var snames       = new string(symbols.ToCharArray().Without(symbols[i]));

                timer1.Start();
                for (int k = 0; k < otherSources.Length; k++)
                {
                    TransformArea(Path.Combine(wheredata[i], $"{snames[k]}.txt"), Path.Combine(wheredata[i], othernames[k]), globalTimeMin, timestep);
                    GetData();
                    string savename = $"{snames[k]} -> {symbols[i]}";

                    toolStripLabel1.Text = $"Замер {symbols[i]}, источник {snames[k]}, осталось {alles--}";

                    var tuple = (radioButton1.Checked) ? await Functions.GetMaximunFromAreaAsync(Wnet, Tnet, progress, new System.Threading.CancellationToken(),
                                                                                                 globalTimeMin, timestep, tickCount, othernames[k], Path.Combine(dir, savename.Replace(" -> ", "to")),
                                                                                                 MyWavelet, wheredata[i], byevery, epsForWaveletValues) :
                                await Functions.GetMaximunFromAreaAsync(wmin, wmax, tmin, tmax,
                                                                        globalTimeMin, timestep, tickCount, othernames[k], Path.Combine(dir, savename.Replace(" -> ", "to")),
                                                                        MyWavelet, wheredata[i], byevery, epsForWaveletValues,
                                                                        pointcount, pointmax, pointmax2);

                    pathellipse.Add($"{otherSources[k].Center.x} {otherSources[k].Center.y} {itSource.Center.x} {itSource.Center.y} {Functions.Vg2(tuple.Item1).ToRString()} {tuple.Item2.ToRString()} {i} {savename} {tuple.Item1}");
                }
                Expendator.WriteInFile(Path.Combine("EllipseData", "Params.txt"), pathellipse.ToArray());
                SetDefaltProgressBar();
                timer1.Stop();
                OtherMethods.PlaySound("ЗамерОбработан");
            }

            string where = Path.GetDirectoryName(Path.GetDirectoryName(wheredata[0]));
            await Expendator.DirectoryCopyAsync(
                Path.Combine(Environment.CurrentDirectory, "EllipseData"),
                Path.Combine(where, "EllipseData")
                );

            OtherMethods.PlaySound("СоздаемЭллипсы");
            MakeEllipses(pathellipse.ToArray());
            SetDefaultStrip();
        }
        private static int GetTrack(int min, int max, int count, double val)
        {
            val = min + (max - min) * val;

            var arr = Expendator.Seq(min, max, count);

            return(Array.IndexOf(arr, Vectors.Create(arr).BinaryApproxSearch(val)));
        }
 public void Vg2()
 {
     double[] w = Expendator.GetStringArrayFromFile("vg.dat", true).Select(s => s.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[1].Replace('.', ',').ToDouble() * pimult2 * 1e-3).ToArray();
     foreach (var c in w)
     {
         Console.WriteLine($"{c}  {Functions.Vg(c)}");
     }
 }
        /// <summary>
        /// Читает файл описания и закидывает в нужное поле
        /// </summary>
        private void InfoGet()
        {
            string name = Path.Combine(globalbase, "Описание.txt");

            if (File.Exists(name))
            {
                textBox23.Text = Expendator.GetWordFromFile(name);
            }
        }
        public void BiserchTest()
        {
            double[] a = new double[] { 1, 2, 3, 4, 5, 6, 7 };
            var      t = Expendator.BinarySearch(a, 3);

            Assert.IsTrue(t.Item1 == 2 && t.Item2 == 2);
            t = Expendator.BinarySearch(a, 4.5);
            Assert.IsTrue(t.Item1 == 3 && t.Item2 == 4);
        }
Exemplo n.º 16
0
        private async void загрузитьНеобходимыеПакетыRToolStripMenuItem_Click(object sender, EventArgs e)
        {
            const string mess = "Требуется подключение к Интернету. Будут загружены все пакеты R, необходимые программе. Загрузка может занимать несколько минут, по окончанию загрузки консоль закроется. Уже установленные пакеты могут загрузиться заново либо обновиться. Выполнить действие?";

            if (MessageBox.Show(mess, "Требуется подтверждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                SoundMethods.OK();
                await Task.Run(() => Expendator.StartProcessOnly(OtherMethods.GetResource("InstallPackages.r"), true));
            }
        }
Exemplo n.º 17
0
        private void FillZam()
        {
            string where  = Expendator.GetWordFromFile("WhereData.txt");
            where         = Path.GetDirectoryName(where);
            textBox1.Text = where;

            string file = Path.Combine(where, "Описание.txt");

            textBox2.Text = (File.Exists(file)) ? Expendator.GetWordFromFile(file) : "";
        }
Exemplo n.º 18
0
        static void ReadData()
        {
            //File.Copy(Expendator.GetResource("Файл с данными.txt"), Environment.CurrentDirectory);
            var arr = Expendator.GetStringArrayFromFile("Файл с данными.txt", true).Where(s => !s.StartsWith('#')).ToArray()[1..];

            double getVal(string s) => s.Split(' ')[1].ToDouble();

            var ind = Array.IndexOf(arr, arr.First(p => p.StartsWith("xmin"))) - 1;

            funcs = arr[..ind];
Exemplo n.º 19
0
 private void GetParamsFromFile()
 {
     if (System.IO.File.Exists("TrapeziParams.txt"))
     {
         var ss = Expendator.GetWordFromFile("TrapeziParams.txt").Split(' ');
         beg = ss[0].ToInt32() / 100.0;
         s   = ss[1].ToInt32() / 100.0;
         end = ss[2].ToInt32() / 100.0;
     }
 }
 public void GPeriods()
 {
     double[] m1 = new double[] { 1, 1, 1, 1, 1, 1, 1, 1, 1 };
     double[] m2 = new double[] { 1, 2, 3, 4, 5, 6 };
     double[] m3 = new double[] { 1, 2, 3, 1, 2, 3 };
     double[] m4 = new double[] { 1, 1, 1, 1, 2, 1, 1, 1, 1, 2 };
     Expendator.GetPeriod(m1).Show();
     Expendator.GetPeriod(m2).Show();
     Expendator.GetPeriod(m3).Show();
     Expendator.GetPeriod(m4).Show();
 }
Exemplo n.º 21
0
        /// <summary>
        /// Только создать 3D графики с сохранением в файлы
        /// </summary>
        /// <param name="shortname"></param>
        /// <param name="F"></param>
        /// <param name="xmin"></param>
        /// <param name="xmax"></param>
        /// <param name="ymin"></param>
        /// <param name="ymax"></param>
        /// <param name="count"></param>
        /// <param name="progress"></param>
        /// <param name="token"></param>
        /// <param name="graficType"></param>
        /// <param name="title"></param>
        /// <param name="xlab"></param>
        /// <param name="ylab"></param>
        /// <param name="zlab"></param>
        /// <param name="parallel"></param>
        public static async Task JustGetGraficInFilesAsync(string shortname, string savename, Func <double, double, double> F, NetOnDouble x, NetOnDouble y, IProgress <int> progress, System.Threading.CancellationToken token, StringsForGrafic forGrafic, GraficType graficType = GraficType.PdfPngHtml, bool parallel = true)
        {
            await GetDataToFileAsync(shortname, savename, F, x.Array, y.Array, progress, token, forGrafic, parallel);

            GraficTypeToFile(graficType);
            RemoveOlds(shortname);
            if (x.Count == y.Count)
            {
                await Task.Run(() => Expendator.StartProcessOnly("Magic3Dscript.R"));
            }
        }
Exemplo n.º 22
0
        static void Main(string[] args)
        {
            // WaveletCreateFromFunction();
            //WaveletCreateFromArray();

            //new MostSimpleGrafic(FuncMethods.GaussBell2(10, 6), new NetOnDouble(0, 20, 100)).ShowDialog();

            // Create3DGrafic();

            Expendator.DirectoryCopyAsync(@"C:\Users\крендель\Desktop\Code\Консоль\bin\Debug\Макс и", @"C:\Users\крендель\Desktop\OKT\Макс и").GetAwaiter().GetResult();
        }
        public void Vg()
        {
            var arr = Expendator.Seq(абКонсоль.wbeg, абКонсоль.wend, 300);

            using (StreamWriter f = new StreamWriter("Vg.txt"))
            {
                foreach (var p in arr)
                {
                    f.WriteLine($"{p} {Functions.Vg(p)}");
                }
            }
        }
 private void CopyImages(string name) =>
 Expendator.CopyFiles(Environment.CurrentDirectory,
                      Path.GetDirectoryName(Expendator.GetWordFromFile("WhereData.txt")),
                      new string[]
 {
     $"{name} .pdf",
     $"{name} (heatmap).png",
     $"{name} (heatmap_uz).png",
     $"{name} (ur).html",
     $"{name} (uz).html",
     $"{name} (ur).txt",
     $"{name} (uz).txt"
 }.Where(f => File.Exists(f)).ToArray());
        public Point[] GetPointArray(int count)
        {
            double cost = Math.Cos(tau), sint = Math.Sin(tau);
            var    angles = Expendator.Seq(0, 2 * Math.PI, count, false);

            Point[] res = new Point[count];
            for (int i = 0; i < angles.Length; i++)
            {
                double sinf = Math.Sin(angles[i]), cosf = Math.Cos(angles[i]);
                res[i] = new Point(xM.x + a * cost * cosf - b * sint * sinf, xM.y + a * sint * cosf + b * cost * sinf);
            }
            return(res);
        }
        private void label7_Click(object sender, EventArgs e)
        {
            var st = new string[]
            {
                "Выражение вида:",
                "\tВеса: 50 80 100",
                "\tРазы: 15 10 10",
                "\tСеты: 1 1 2",
                "означает 1 подход в 50кг на 15 раз + 1 подход в 80кг на 10 раз + 2 подхода в 100кг на 10 раз"
            };

            FlexibleMessageBox.Show(Expendator.StringArrayToString(st), "Пример использования", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
Exemplo n.º 27
0
 private void Timer1_Tick(object Sender, EventArgs e)
 {
     if (label1String != null)
     {
         toolStripStatusLabel1.Text = label1String;
     }
     if (label2String != null)
     {
         toolStripStatusLabel2.Text = label2String;
     }
     toolStripProgressBar1.Value = (int)(Expendator.GetProcent(save, all) / 100 * toolStripProgressBar1.Maximum);
     this.Refresh();
 }
Exemplo n.º 28
0
        public void TestMethod1()
        {
            var arr = new int[] { 2, 3, 4, 4, 5, 6, 4, 3, 8 };
            var s   = Expendator.IndexesWhichGetSum(arr, 9);
            int sum = 0;

            for (int i = 0; i < s.Length; i++)
            {
                sum += arr[s[i]];
            }

            Assert.AreEqual(sum, 9);
        }
        static void Main(string[] args)
        {
            string BeeHiveAdress    = @"C:\Users\user1\source\repos\CodeIt\Defect2019\bin\Release\EllipseData";
            string NotBeeHiveAdress = @"C:\Users\user1\Desktop\EllipseData";
            string Symbols          = "ABCDEFGH";

            string[] files = new string[Symbols.Length * (Symbols.Length - 1)];
            int      k     = 0;

            for (int i = 0; i < Symbols.Length; i++)
            {
                for (int j = 0; j < Symbols.Length; j++)
                {
                    if (i != j)
                    {
                        files[k++] = $"{Symbols[i]}to{Symbols[j]}(MaxCoordinate).txt";
                    }
                }
            }

            double[] Get(string path) => files.Select(s => Expendator.GetStringArrayFromFile(Path.Combine(path, s))[2].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[2].Replace('.', ',').ToDouble()).ToArray();

            var vec1 = Get(BeeHiveAdress);
            var vec2 = Get(NotBeeHiveAdress);

            double s1 = 0, s2 = 0;

            using (StreamWriter r = new StreamWriter("bee.txt"))
                for (int i = 0; i < vec1.Length; i++)
                {
                    r.WriteLine($"{vec1[i]} {vec2[i]}");
                    Console.WriteLine($"{vec1[i]} \t{vec2[i]} " + ((vec1[i] >= vec2[i]) ? "\tЛучше  +" : "\tХучше  -"));
                    double tmp = vec1[i] - vec2[i];
                    if (tmp < 0)
                    {
                        s2 -= tmp;
                    }
                    else
                    {
                        s1 += tmp;
                    }
                }
            Console.WriteLine($"Выигрыш = \t{s1} ({Expendator.GetProcent(s1, s1 + s2)}%)");
            Console.WriteLine($"Проигрыш = \t{s2} ({Expendator.GetProcent(s2, s1 + s2)}%)");

            File.Copy(Expendator.GetResource("TestBee.r", "OptimisationTest"), "TestBee.r", true);
            Expendator.StartProcessOnly("TestBee.r");
            Process.Start("bee.png");

            Console.ReadKey();
        }
        /// <summary>
        /// Просуммировать все замеры
        /// </summary>
        private void SSum()
        {
            var p = Expendator.GetStringArrayFromFile("WhereData.txt");

            string[]   names  = Expendator.GetStringArrayFromFile("textnames.txt");
            string[][] fnames = new string[p.Length][];

            for (int k = 0; k < p.Length; k++)
            {
                string[] tmp = Expendator.GetStringArrayFromFile(Path.Combine(p[k], "textnames.txt"));
                fnames[k] = new string[names.Length];
                for (int i = 0; i < names.Length; i++)
                {
                    fnames[k][i] = Path.Combine(p[k], tmp[i]);
                }
            }

            int len = count * count2;

            Parallel.For(0, names.Length, (int i) =>
            {
                Vectors v  = new Vectors(len);
                Vectors v1 = new Vectors(len);
                for (int k = 0; k < p.Length; k++)
                {
                    v  += Vectors.VectorFromFile(fnames[k][i].Replace(".txt", " (ur).txt"));
                    v1 += Vectors.VectorFromFile(fnames[k][i].Replace(".txt", " (uz).txt"));
                }

                v.ToFile(names[i].Replace(".txt", " (ur).txt"));
                v1.ToFile(names[i].Replace(".txt", " (uz).txt"));
            });

            string name = Expendator.GetWordFromFile("SurfaceMain.txt");

            names = new string[p.Length];
            for (int i = 0; i < names.Length; i++)
            {
                names[i] = Path.Combine(p[i], Expendator.GetWordFromFile(Path.Combine(p[i], "SurfaceMain.txt")));
            }

            Vectors vv1 = new Vectors(len), vv2 = new Vectors(len);

            for (int k = 0; k < p.Length; k++)
            {
                vv1 += Vectors.VectorFromFile(names[k] + " (ur).txt").Norming;
                vv2 += Vectors.VectorFromFile(names[k] + " (uz).txt").Norming;
            }
            (vv1 / p.Length).ToFile(name + " (ur).txt");
            (vv2 / p.Length).ToFile(name + " (uz).txt");
        }