using System.Diagnostics; using System.Diagnostics.Metrics; namespace Library { public class MethodExamTask { public Stack AddValueInStack(double value, Stack stackValues) { var listener = new TextWriterTraceListener("LogFileAll.txt"); Trace.Listeners.Add(listener); Trace.AutoFlush = true; Debug.AutoFlush = true; Trace.Indent(); Debug.Indent(); stackValues.Push(value); Trace.WriteLine($"Значение стека: {value}"); Debug.WriteLine($"Значение стека: {value}"); Trace.Unindent(); Debug.Unindent(); return stackValues; } public int CountOtricNumInStack(Stack stackValues) { int count = 0; foreach (var item in stackValues) { if (item < 0) count++; } return count; } public double CountSumOricNumInStack(Stack stackValues) { double sum = 0; foreach (var item in stackValues) { if (item < 0) sum+= item; } return sum; } public double CountSredArifOtricNumInStack(Stack stackValues) { var listener = new TextWriterTraceListener("LogFileCountSredArif.txt"); Trace.Listeners.Add(listener); Trace.AutoFlush = true; Debug.AutoFlush = true; Trace.Indent(); Debug.Indent(); Trace.WriteLine($"Сумма отрицательных чисел: {CountSumOricNumInStack(stackValues)}"); Debug.WriteLine($"Сумма отрицательных чисел: {CountSumOricNumInStack(stackValues)}"); Trace.WriteLine($"Количество отрицательных чисел: {CountOtricNumInStack(stackValues)}"); Debug.WriteLine($"Количество отрицательных чисел: {CountOtricNumInStack(stackValues)}"); Trace.Unindent(); Debug.Unindent(); return CountSumOricNumInStack(stackValues) / CountOtricNumInStack(stackValues); } } }