MetgodsLibrary.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System.Diagnostics;
  2. using System.Diagnostics.Metrics;
  3. namespace Library
  4. {
  5. public class MethodExamTask
  6. {
  7. public Stack<double> AddValueInStack(double value, Stack<double> stackValues)
  8. {
  9. var listener = new TextWriterTraceListener("LogFileAll.txt");
  10. Trace.Listeners.Add(listener);
  11. Trace.AutoFlush = true;
  12. Debug.AutoFlush = true;
  13. Trace.Indent();
  14. Debug.Indent();
  15. stackValues.Push(value);
  16. Trace.WriteLine($"Значение стека: {value}");
  17. Debug.WriteLine($"Значение стека: {value}");
  18. Trace.Unindent();
  19. Debug.Unindent();
  20. return stackValues;
  21. }
  22. public int CountOtricNumInStack(Stack<double> stackValues)
  23. {
  24. int count = 0;
  25. foreach (var item in stackValues)
  26. {
  27. if (item < 0) count++;
  28. }
  29. return count;
  30. }
  31. public double CountSumOricNumInStack(Stack<double> stackValues)
  32. {
  33. double sum = 0;
  34. foreach (var item in stackValues)
  35. {
  36. if (item < 0) sum+= item;
  37. }
  38. return sum;
  39. }
  40. public double CountSredArifOtricNumInStack(Stack<double> stackValues)
  41. {
  42. var listener = new TextWriterTraceListener("LogFileCountSredArif.txt");
  43. Trace.Listeners.Add(listener);
  44. Trace.AutoFlush = true;
  45. Debug.AutoFlush = true;
  46. Trace.Indent();
  47. Debug.Indent();
  48. Trace.WriteLine($"Сумма отрицательных чисел: {CountSumOricNumInStack(stackValues)}");
  49. Debug.WriteLine($"Сумма отрицательных чисел: {CountSumOricNumInStack(stackValues)}");
  50. Trace.WriteLine($"Количество отрицательных чисел: {CountOtricNumInStack(stackValues)}");
  51. Debug.WriteLine($"Количество отрицательных чисел: {CountOtricNumInStack(stackValues)}");
  52. Trace.Unindent();
  53. Debug.Unindent();
  54. return CountSumOricNumInStack(stackValues) / CountOtricNumInStack(stackValues);
  55. }
  56. }
  57. }