CalculatorMain.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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 RadioCalculator
  11. {
  12. public partial class CalculatorMain : Form
  13. {
  14. public CalculatorMain()
  15. {
  16. InitializeComponent();
  17. }
  18. /// <summary>
  19. /// Метод загрузки главной формы
  20. /// </summary>
  21. /// <param name="sender"></param>
  22. /// <param name="e"></param>
  23. private void CalcMainLoad(object sender, EventArgs e)
  24. {
  25. lblAnswer.Visible = false;
  26. }
  27. /// <summary>
  28. /// Обработчик нажатия кнопки вычисления ответа
  29. /// </summary>
  30. /// <param name="sender"></param>
  31. /// <param name="e"></param>
  32. private void btnCalculate_Click(object sender, EventArgs e)
  33. {
  34. // Считываем значения, проверяем правильность
  35. float x, y, z, Output;
  36. try
  37. {
  38. x = float.Parse(tbInputX.Text);
  39. y = float.Parse(tbInputY.Text);
  40. z = float.Parse(tbInputZ.Text);
  41. }
  42. catch (FormatException)
  43. {
  44. MessageBox.Show("Убедитесь, что во всех полях указаны числа в правильном формате!");
  45. return;
  46. }
  47. // Вычисляем ответ
  48. // Значение функции f(x)
  49. float FunctionOutput;
  50. try
  51. {
  52. if (rbFunctionSh.Checked)
  53. {
  54. FunctionOutput = MathF.Sinh(x);
  55. }
  56. else if (rbFunctionPow2.Checked)
  57. {
  58. FunctionOutput = (float)Math.Pow(x, 2);
  59. }
  60. else
  61. {
  62. FunctionOutput = (float)Math.Pow(Math.E, x);
  63. }
  64. // Значение выражения
  65. Output = Math.Min(FunctionOutput + y, y - z) / Math.Max(FunctionOutput, y);
  66. } catch (Exception ex)
  67. {
  68. MessageBox.Show($"Возникла ошибка при вычислении выражения! ({ex.Message})");
  69. return;
  70. }
  71. // Записываем ответ в надпись
  72. lblAnswer.Visible = true;
  73. lblAnswer.Text = Convert.ToString(Output);
  74. }
  75. }
  76. }