using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Text.RegularExpressions; namespace lab03 { class Program { static void Main(string[] args) { string Flag = null, my_string = null; foreach (string arg in args) if (arg == "-a") { Console.WriteLine("Лабораторная работа №3\n" + "Пункт 1:\n" + "Прочитать с консоли произвольное число символов,\n" + "разделенных пробелом, и вывести их среднее арифметическое.\n" + "Примечание. Ввод символа «не цифры» является корректным.\n" + "Пункт 2:\n" + "Прочитать с консоли произвольное число чисел и найти их\n" + "среднее геометрическое. При вводе недопустимого символа\n" + "вывести информацию об ошибке. Примечание. Допускается ввод\n" + "целых и вещественных чисел. Разделителем целой и\n" + "дробной части является символ точки или запятой.\n" + "\nГруппа: 5-ПМИ-095\nСделал: Дубровский Николай\n" + "Нажмите что-нибудь, чтобы продолжить работу"); Console.ReadLine(); Console.Clear(); } do { int Result = 0; Console.WriteLine("Произвольное число символов, разделенных пробелами. Ср. арифм."); my_string = Console.ReadLine(); string[] my_sort_string = my_string.Split((string[])null, StringSplitOptions.RemoveEmptyEntries); foreach (string element in my_sort_string) { try { if (char.IsLetter(element[0])) { if (element.Length != 1) { Console.WriteLine("Нельзя вводить символы, не разделив пробелом."); break; } else Result += Convert.ToInt32(element[0]); } else Result += Convert.ToInt32(element); } catch (System.FormatException) { Result = 0; Console.WriteLine("Неверный ввод."); } } Result /= my_sort_string.Length; Console.WriteLine("Результатом является символ {0}, код которого равен {1}", (char)Result, Result); Console.WriteLine("\n\nХотите ли вы повторить ввод?\n" + "Введите Д/Н (да/нет) для продолжения"); for (; ; ) { Flag = Console.ReadLine(); if (Flag == "Y" || Flag == "Д" || Flag == "y" || Flag == "д") { Console.Clear(); break; } if (Flag == "N" || Flag == "Н" || Flag == "n" || Flag == "н") break; } } while (Flag == "Y" || Flag == "Д" || Flag == "y" || Flag == "д"); Flag = null; //задание Б Console.Write('\n'); bool FlagOfError = false; double ResultB = 1.0; string temp = null; do { Console.WriteLine("Произвольное число чисел, разделенных пробелами. Ср. геом."); my_string = Console.ReadLine(); string[] my_sort_string = my_string.Split((string[])null, StringSplitOptions.RemoveEmptyEntries); foreach (string my_second_string in my_sort_string) { temp = null; foreach (char element in my_second_string) { if (!char.IsLetter(element)) { if (element == '.') temp += ','; else temp += element; } else { Console.WriteLine("Нельзя вводить буквы"); FlagOfError = true; break; } } ResultB *= Convert.ToDouble(temp); } if (!FlagOfError) { ResultB = Math.Pow(ResultB, 1.0 / my_sort_string.Length); Console.WriteLine(ResultB); } Console.WriteLine("\n\nХотите ли вы повторить ввод?\n" + "Введите Д/Н (да/нет) для продолжения"); ResultB = 1.0; temp = null; FlagOfError = false; for (; ; ) { Flag = Console.ReadLine(); if (Flag == "Y" || Flag == "Д" || Flag == "y" || Flag == "д") { Console.Clear(); break; } if (Flag == "N" || Flag == "Н" || Flag == "n" || Flag == "н") break; } } while (Flag == "Y" || Flag == "Д" || Flag == "y" || Flag == "д"); } } }