void analizeToolStripMenuItem_Click(object sender, EventArgs e) { try { string[] arrG, arrGU; int[][] arrArrI; int N, N1; Quality.SetID(matrY, arrYMin, arrYMax, out arrG, out arrGU, out arrArrI, out N, out N1); int[] arrIS, arrFreq; string[] arrGS; int[][] arrArrIS; Quality.Sort(arrGU, arrArrI, out arrIS, out arrFreq, out arrGS, out arrArrIS); string[] arrGC; double[] arrP, arrP1, arrPM; int[] arrGFreq; double H; Quality.Clustering(arrGS, arrArrIS, N, N1, out arrGC, out arrGFreq, out arrP, out arrP1, out arrPM, out H); arrRep[9] = string.Format("Общее количество экземпляров: {0}<br>" + "Количество качественных экземпляров: {1}<br>" + "Количество бракованных экземпляров: {2}<br>", N, N - N1, N1) + Quality.PieChart("Соотношение качественных и бракованных экземпляров", "pc1", new double[] { N - N1, N1 }, new string[] { "Качественные", "Брак" }); arrRep[10] = Quality.GTable(arrGU, arrArrI); double[] arrF = new double[arrYName.Length]; string[] arrStr = new string[arrYName.Length]; for (int i = 0; i < arrYName.Length; i++) { arrF[i] = arrFreq[i]; arrStr[i] = arrYName[arrIS[i]]; } arrRep[11] = Quality.ITable(arrIS, arrYName, arrFreq) + "<br>" + Quality.PieChart("Частота недостижения показателей качества", "pc2", arrF, arrStr); arrRep[12] = Quality.GTable(arrGS, arrArrIS); arrF = new double[arrGS.Length]; for (int i = 0; i < arrGS.Length; i++) { arrF[i] = arrArrIS[i].Length; } arrRep[13] = Quality.PieChart("Диаграмма состояния качества продукции", "pc3", arrF, arrGS); arrRep[14] = Quality.PTable(arrGC, arrGFreq, arrP, arrP1, arrPM); arrRep[15] = Quality.ID2dTable(arrGC, arrP) + "<br>" + Quality.PieChart("Распределение дефектов", "pc4", arrP, arrGC); arrRep[16] = Quality.ID2dTable(arrGC, arrP1); arrRep[17] = Quality.ID2dTable(arrGC, arrPM) + "<br>" + Quality.PieChart("Распределение дефектов\n(при условии независимости показателей качества)", "pc5", arrPM, arrGC); arrRep[18] = string.Format("H = {0:F3}", H); } catch { MessageBox.Show("Ошибка анализа"); } }