ExceptionHandling4.cs 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Library1_4Basics
  7. {
  8. public class ExceptionHandling4
  9. {
  10. static void Zadanie1()
  11. {
  12. try
  13. {
  14. int N;
  15. double SumCh = 0;
  16. double SumNeCh = 0;
  17. Console.WriteLine("Введите число N: ");
  18. N = Convert.ToInt32(Console.ReadLine());
  19. for (int i = 1; i <= N; i++)
  20. {
  21. if (i % 2 == 0) //Квадраты четных чисел
  22. {
  23. SumCh += Math.Pow(i, 2);
  24. }
  25. else //Кубы нечетных чисел
  26. {
  27. SumNeCh += Math.Pow(i, 3);
  28. }
  29. }
  30. Console.WriteLine($"Сумма квадратов четных чисел: {SumCh}");
  31. Console.WriteLine($"Сумма кубов нечетных чисел: {SumNeCh}");
  32. }
  33. catch (FormatException)
  34. {
  35. Console.WriteLine("Введенные данные не являются числами");
  36. }
  37. }
  38. static void Zadanie2()
  39. {
  40. try
  41. {
  42. int N, height;
  43. int Sum = 0;
  44. Console.Write("Введите количество учащихся в классе: ");
  45. N = Convert.ToInt32(Console.ReadLine());
  46. for (int i = 0; i < N; i++)
  47. {
  48. Console.Write($"Введите рост {i} учащегося: ");
  49. height = Convert.ToInt32(Console.ReadLine());
  50. Sum = Sum + height;
  51. }
  52. Console.WriteLine($"Средний рост учащихся = {Sum / N} ");
  53. }
  54. catch (Exception e)
  55. {
  56. Console.WriteLine($"Тип ошибки: {e.GetType().Name}");
  57. Console.WriteLine($"Описание: {e.Source}");
  58. Console.WriteLine($"Строка: {e.StackTrace}");
  59. }
  60. }
  61. static void Zadanie3()
  62. {
  63. try
  64. {
  65. int N;
  66. int size = 0;
  67. int CountChet = 0; //колич четных чисел
  68. Console.Write("Введите число: ");
  69. N = Convert.ToInt32(Console.ReadLine());
  70. int temp = N;
  71. //определение размера массива
  72. while (temp > 0)
  73. {
  74. temp = temp / 10;
  75. size++;
  76. }
  77. int[] Num = new int[size];
  78. temp = N;
  79. string str = Convert.ToString(N);
  80. for (int i = 0; i < size; i++)
  81. {
  82. Num[i] = str[i] - '0';
  83. }
  84. for (int i = 0; i < size; i++)
  85. {
  86. if (Num[i] % 2 == 0) //четное
  87. {
  88. CountChet++;
  89. }
  90. }
  91. Console.WriteLine(N / CountChet);
  92. }
  93. catch (FormatException)
  94. {
  95. Console.WriteLine("Введенные данные не являются числами");
  96. }
  97. catch (DivideByZeroException)
  98. {
  99. Console.WriteLine("Деление на ноль невозможно");
  100. }
  101. }
  102. static void Zadanie4()
  103. {
  104. try
  105. {
  106. Random random = new Random();
  107. Console.Write("Введите количество элементов в массиве: ");
  108. int n = Convert.ToInt32(Console.ReadLine());
  109. int sum = 0;
  110. int[] array = new int[n];
  111. int[] sumArray = new int[n];
  112. Console.Write("Исходный массив: ");
  113. for (int i = 0; i < array.Length; i++)
  114. {
  115. array[i] = random.Next(10, 100); //[10; 99]
  116. Console.Write(array[i] + " ");
  117. }
  118. Console.Write("\nМассив из суммы чисел исходного: ");
  119. for (int i = 0; i < sumArray.Length; i++)
  120. {
  121. sumArray[i] = (array[i] / 10) + (array[i] % 10);
  122. sum += sumArray[i];
  123. Console.Write(sumArray[i] + " ");
  124. }
  125. Console.WriteLine($"\nСумма элементов массива = {sum}");
  126. }
  127. catch
  128. {
  129. Console.WriteLine("Упс, возникла ошибка");
  130. }
  131. }
  132. public void Call()
  133. {
  134. int n, end;
  135. do
  136. {
  137. Console.WriteLine("Выберите задание: ");
  138. Console.WriteLine("-------------------------------------------------------------------------------------------------");
  139. Console.WriteLine("1. Квадраты четных чисел и кубы нечетных от 1 до N");
  140. Console.WriteLine("2. Средний рост всех учащихся");
  141. Console.WriteLine("3. Частное от деления введенного числа на количество четных цифр этого числа");
  142. Console.WriteLine("4. Массив из суммы цифр элементов исходного массива и сумма всех элементов полученного массива");
  143. Console.WriteLine("-------------------------------------------------------------------------------------------------");
  144. n = Convert.ToInt32(Console.ReadLine());
  145. switch (n)
  146. {
  147. case 1: Zadanie1(); break;
  148. case 2: Zadanie2(); break;
  149. case 3: Zadanie3(); break;
  150. case 4: Zadanie4(); break;
  151. default: Console.WriteLine("Такого задания нет"); break;
  152. }
  153. Console.WriteLine("\n1 - Выбрать другое задание, 0 - Назад.");
  154. end = Convert.ToInt32(Console.ReadLine());
  155. } while (end > 0);
  156. }
  157. }
  158. }