Advertisement
viraco4a

Simple_Loops_Task11

Feb 7th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.13 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _11_OddEvenPosition
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. //в следващите редове чета от конзолата n, и дефинирам началните стойности на променливите, които ще смятам:
  14. int n = int.Parse(Console.ReadLine());
  15. double oddMin = double.MaxValue;
  16. double oddMax = double.MinValue;
  17. double oddSum = 0;
  18. double evenMin = double.MaxValue;
  19. double evenMax = double.MinValue;
  20. double evenSum = 0;
  21. // тука извиквам метод, който съм кръстил "Calc". Практически цялата логика на задачата се смята в този метод (от ред 74 започва).
  22. Calc(n, ref oddMin, ref oddMax, ref oddSum, ref evenMin, ref evenMax, ref evenSum);
  23. //сметнал съм всички суми, минимуми и максимуми и тука извиквам метода, кръстен от мене PrintOdd, който ми принтира всички нечетни неща (методът започва от ред 51)
  24. PrintOdd(oddMin, oddMax, oddSum);
  25. //тука принтирам всички четни числа (методът PrintEven започва от ред 30)
  26. PrintEven(evenMin, evenMax, evenSum);
  27.  
  28. }
  29. // Този метод просто прави принтирането на четните неща, като прави проверки ако липсва минимум или максимум да принтира "No"
  30. private static void PrintEven(double evenMin, double oddMax, double evenSum)
  31. {
  32. Console.WriteLine($"EvenSum={evenSum},");
  33. if (evenMin < double.MaxValue)
  34. {
  35. Console.WriteLine($"EvenMin={evenMin},");
  36. }
  37. else
  38. {
  39. Console.WriteLine("EvenMin=No,");
  40. }
  41. if (oddMax > double.MinValue)
  42. {
  43. Console.WriteLine($"EvenMax={oddMax},");
  44. }
  45. else
  46. {
  47. Console.WriteLine("EvenMax=No,");
  48. }
  49. }
  50. //Този метод просто прави принтирането на нечетните неща, като прави проверки ако липсва минимум или максимум да принтира "No"
  51. private static void PrintOdd(double oddMin, double oddMax, double oddSum)
  52. {
  53. Console.WriteLine($"OddSum={oddSum},");
  54. if (oddMin < double.MaxValue)
  55. {
  56. Console.WriteLine($"OddMin={oddMin},");
  57. }
  58. else
  59. {
  60. Console.WriteLine("OddMin=No,");
  61. }
  62. if (oddMax > double.MinValue)
  63. {
  64. Console.WriteLine($"OddMax={oddMax},");
  65. }
  66. else
  67. {
  68. Console.WriteLine("OddMax=No,");
  69. }
  70. }
  71. //Това е методът Calc. Ключовите думи private и static засега ги игнорирай (по-натам се учи какво точно значат), думата "void"
  72. //означава, че методът не връща в главната програма нищо, а само прави нещо (т.е. не връща например някаква величина от тип double, която си
  73. //сметнала в метода - просто взима тия 6 променливи oddMin, oddMax, oddSum, evenMin, evenMax и evenSum и ги променя по някаква логика)
  74. private static void Calc(int n, ref double oddMin, ref double oddMax, ref double oddSum, ref double evenMin, ref double evenMax, ref double evenSum)
  75. {
  76. //целият метод представлява един единствен цикъл от 1 до n включително
  77. for (int i = 1; i <= n; i++)
  78. {
  79. //на всяка итерация чета число от конзолата и го ръгам в променливата от тип double "num"
  80. double num = double.Parse(Console.ReadLine());
  81. //ако броячът ми i е нечетен (т.е. проверката i % 2 != 0 ми връща true)
  82. if (i % 2 != 0)
  83. {
  84. //добавям към oddSum прочетеното число от конзолата
  85. oddSum += num;
  86. //ако числото е по-голямо от oddMax, което в началото е най-малкото въобще число, за което C# знае, а именно double.MinValue
  87. // то тогава oddMax става равно на това число num
  88. if (num > oddMax)
  89. {
  90. oddMax = num;
  91. }
  92. //и в отделна if проверка, не вързана към проверката за максимално число - ако num е по-малко от oddMin, oddMin става равно на num
  93. if (num < oddMin)
  94. {
  95. oddMin = num;
  96. }
  97. }
  98. //аналогична логика за четните суми и четните минимум и максимум
  99. else
  100. {
  101. evenSum += num;
  102. if (num > evenMax)
  103. {
  104. evenMax = num;
  105. }
  106. if (num < evenMin)
  107. {
  108. evenMin = num;
  109. }
  110. }
  111. }
  112. }
  113. }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement