private double GetMedian(List <Task1.Interval> l) { double halfOfSumOfFrequencies = l[l.Count - 1].accumulatedFrequency / 2; Task1.Interval temp = l[0]; int i = 1; while (temp.accumulatedFrequency < halfOfSumOfFrequencies) { temp = l[i]; i++; } i--; double result = temp.leftEdge + (temp.rightEdge - temp.leftEdge) * (halfOfSumOfFrequencies - l[i - 1].accumulatedFrequency) / (temp.Frequency); string output = $"{ temp.leftEdge:f2}+{temp.rightEdge - temp.leftEdge:f2}*({halfOfSumOfFrequencies:f2}-{l[i - 1].accumulatedFrequency:f2})/{temp.Frequency:f2}={result:f2}"; medianaTB.Text = output; return(result); }
private double GetModa(List <Task1.Interval> l) { Task1.Interval temp = l[0]; int index = 0; for (int i = 1; i < l.Count; i++) { if (temp.Frequency < l[i].Frequency) { index = i; temp = l[i]; } } double result = 0; result = temp.leftEdge + (temp.rightEdge - temp.leftEdge) * (temp.Frequency - l[index - 1].Frequency) / ((temp.Frequency - l[index - 1].Frequency) + (temp.Frequency - l[index + 1].Frequency)); string output = $"{temp.leftEdge:f2}+{(temp.rightEdge - temp.leftEdge):f2}*" + $"({temp.Frequency}-{l[index - 1].Frequency})/(({temp.Frequency}-{l[index - 1].Frequency})+({temp.Frequency}-{l[index + 1].Frequency}))={result:f2}"; modTB.Text = output; return(result); }