Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace _11_OddEvenPosition
- {
- class Program
- {
- static void Main(string[] args)
- {
- //в следващите редове чета от конзолата n, и дефинирам началните стойности на променливите, които ще смятам:
- int n = int.Parse(Console.ReadLine());
- double oddMin = double.MaxValue;
- double oddMax = double.MinValue;
- double oddSum = 0;
- double evenMin = double.MaxValue;
- double evenMax = double.MinValue;
- double evenSum = 0;
- // тука извиквам метод, който съм кръстил "Calc". Практически цялата логика на задачата се смята в този метод (от ред 74 започва).
- Calc(n, ref oddMin, ref oddMax, ref oddSum, ref evenMin, ref evenMax, ref evenSum);
- //сметнал съм всички суми, минимуми и максимуми и тука извиквам метода, кръстен от мене PrintOdd, който ми принтира всички нечетни неща (методът започва от ред 51)
- PrintOdd(oddMin, oddMax, oddSum);
- //тука принтирам всички четни числа (методът PrintEven започва от ред 30)
- PrintEven(evenMin, evenMax, evenSum);
- }
- // Този метод просто прави принтирането на четните неща, като прави проверки ако липсва минимум или максимум да принтира "No"
- private static void PrintEven(double evenMin, double oddMax, double evenSum)
- {
- Console.WriteLine($"EvenSum={evenSum},");
- if (evenMin < double.MaxValue)
- {
- Console.WriteLine($"EvenMin={evenMin},");
- }
- else
- {
- Console.WriteLine("EvenMin=No,");
- }
- if (oddMax > double.MinValue)
- {
- Console.WriteLine($"EvenMax={oddMax},");
- }
- else
- {
- Console.WriteLine("EvenMax=No,");
- }
- }
- //Този метод просто прави принтирането на нечетните неща, като прави проверки ако липсва минимум или максимум да принтира "No"
- private static void PrintOdd(double oddMin, double oddMax, double oddSum)
- {
- Console.WriteLine($"OddSum={oddSum},");
- if (oddMin < double.MaxValue)
- {
- Console.WriteLine($"OddMin={oddMin},");
- }
- else
- {
- Console.WriteLine("OddMin=No,");
- }
- if (oddMax > double.MinValue)
- {
- Console.WriteLine($"OddMax={oddMax},");
- }
- else
- {
- Console.WriteLine("OddMax=No,");
- }
- }
- //Това е методът Calc. Ключовите думи private и static засега ги игнорирай (по-натам се учи какво точно значат), думата "void"
- //означава, че методът не връща в главната програма нищо, а само прави нещо (т.е. не връща например някаква величина от тип double, която си
- //сметнала в метода - просто взима тия 6 променливи oddMin, oddMax, oddSum, evenMin, evenMax и evenSum и ги променя по някаква логика)
- private static void Calc(int n, ref double oddMin, ref double oddMax, ref double oddSum, ref double evenMin, ref double evenMax, ref double evenSum)
- {
- //целият метод представлява един единствен цикъл от 1 до n включително
- for (int i = 1; i <= n; i++)
- {
- //на всяка итерация чета число от конзолата и го ръгам в променливата от тип double "num"
- double num = double.Parse(Console.ReadLine());
- //ако броячът ми i е нечетен (т.е. проверката i % 2 != 0 ми връща true)
- if (i % 2 != 0)
- {
- //добавям към oddSum прочетеното число от конзолата
- oddSum += num;
- //ако числото е по-голямо от oddMax, което в началото е най-малкото въобще число, за което C# знае, а именно double.MinValue
- // то тогава oddMax става равно на това число num
- if (num > oddMax)
- {
- oddMax = num;
- }
- //и в отделна if проверка, не вързана към проверката за максимално число - ако num е по-малко от oddMin, oddMin става равно на num
- if (num < oddMin)
- {
- oddMin = num;
- }
- }
- //аналогична логика за четните суми и четните минимум и максимум
- else
- {
- evenSum += num;
- if (num > evenMax)
- {
- evenMax = num;
- }
- if (num < evenMin)
- {
- evenMin = num;
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement