public static void ShowYourStatistics(NameData[] names) { /* Придумайте и изучите какую-нибудь статистику про имена рождающихся людей. То, получите ли вы балл за эту задачу завивисит от интересности и нетривиальности результата и оставляется на усмотрение преподавателя. Эта задача принимается только если предыдущие приняты. */ }
public static void ShowBirthDateStatistics(NameData[] names) { Console.WriteLine("Статистика рождаемости по датам"); var days = names.Select(name => name.BirthDate.Day).ToArray(); var months = names.Select(name => name.BirthDate.Month).ToArray(); Charts.ShowHeatmap("Пример карты интенсивностей", new double[,] {{1, 2, 3}, {1,1,1}}, 1, 1); }
private static NameData[] ReadData() { string[] lines = File.ReadAllLines(dataFilePath, Encoding.GetEncoding(1251)); var names = new NameData[lines.Length]; for (int i = 0; i < lines.Length; i++) { names[i] = NameData.ParseFrom(lines[i]); } return(names); }
public static void ShowBirthDaysOfName(NameData[] names, string name) { /* Напишите код, готовящий данные для построения гистограммы — количества людей в выборке c заданным именем в зависимости от числа (то есть номера дня в месяце) их рождения. Не учитывайте тех, кто родился 1 числа любого месяца. Если вас пугает незнакомое слово гистограмма — вам как обычно в википедию! http://ru.wikipedia.org/wiki/%D0%93%D0%B8%D1%81%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0 Посмотрите пример выше с годами рождения. Объясните наблюдаемый результат! */ //Charts.ShowHistorgam("Рождаемость людей с именем '" + name +"'", ..., ...); }
// Пример подготовки данных для построения графиков: public static void ShowBirthYearsStatisticsHistogram(NameData[] names) { /* Подготовка данных для построения гистограммы — количества людей в выборке в зависимости от года их рождения. */ Console.WriteLine("Статистика рождаемости по годам"); var minYear = int.MaxValue; var maxYear = int.MinValue; foreach (var name in names) { minYear = Math.Min(minYear, name.BirthDate.Year); maxYear = Math.Max(maxYear, name.BirthDate.Year); } var years = new string[maxYear - minYear + 1]; for (int y = 0; y < years.Length; y++) years[y] = (y + minYear).ToString(); var birthsCounts = new double[maxYear - minYear + 1]; foreach (var name in names) birthsCounts[name.BirthDate.Year - minYear]++; Charts.ShowHistorgam("Рождаемость по годам", years, birthsCounts); }
private static NameData[] ReadData() { string[] lines = File.ReadAllLines(dataFilePath, Encoding.GetEncoding(1251)); var names = new NameData[lines.Length]; for (int i = 0; i < lines.Length; i++) names[i] = NameData.ParseFrom(lines[i]); return names; }