MainForm.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace calculator
  11. {
  12. public partial class MainForm : Form
  13. {
  14. public MainForm()
  15. {
  16. InitializeComponent();
  17. }
  18. /// <summary>
  19. /// Вычисляет ответ задания
  20. /// </summary>
  21. /// <param name="x">Переменная x</param>
  22. /// <param name="y">Переменная y</param>
  23. /// <param name="z">Переменная z</param>
  24. /// <param name="success">Указатель на переменную успеха</param>
  25. /// <returns>Ответ задания</returns>
  26. public double CalculateAnswer(double x, double y, double z, ref bool success)
  27. {
  28. Console.Write(y);
  29. double output = 0.00d;
  30. try
  31. {
  32. output += Math.Pow(2, Math.Pow(y, x));
  33. output += Math.Pow(Math.Pow(3, x), y);
  34. output -= (y * (Math.Atan(z) - Math.PI / 6)) / (Math.Abs(x) + 1 / (y * y - 1));
  35. success = true;
  36. }
  37. catch (DivideByZeroException)
  38. {
  39. success = false;
  40. }
  41. return output;
  42. }
  43. /// <summary>
  44. /// Клик кнопки, вычисляющей ответ
  45. /// </summary>
  46. /// <param name="sender"></param>
  47. /// <param name="e"></param>
  48. private void btnCalculate_Click(object sender, EventArgs e)
  49. {
  50. double x, y, z;
  51. // Считываем данные
  52. try
  53. {
  54. x = double.Parse(tbInputX.Text);
  55. y = double.Parse(tbInputY.Text);
  56. z = double.Parse(tbInputZ.Text);
  57. } catch (FormatException)
  58. {
  59. MessageBox.Show("Убедитесь, что во всех полях указаны числа в правильном формате!");
  60. return;
  61. }
  62. // Вычисляем ответ
  63. bool success = false;
  64. double answer = CalculateAnswer(x, y, z, ref success);
  65. if (success)
  66. {
  67. // Выводим ответ в lblAnswer
  68. lblAnswer.Visible = true;
  69. lblAnswer.Text = Convert.ToString(answer);
  70. } else
  71. {
  72. MessageBox.Show("При вычислении ответа произошла ошибка!");
  73. }
  74. }
  75. /// <summary>
  76. /// Метод загрузки главной формы
  77. /// </summary>
  78. /// <param name="sender"></param>
  79. /// <param name="e"></param>
  80. private void MainForm_Load(object sender, EventArgs e)
  81. {
  82. lblAnswer.Visible = false;
  83. }
  84. }
  85. }